1. Trang chủ
  2. » Công Nghệ Thông Tin

Class dùng cho Delimited Text String

3 242 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Class dùng cho Delimited Text String
Thể loại Class
Định dạng
Số trang 3
Dung lượng 47,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Class dùng cho Delimited Text StringCó lẽ lập trình với Text String là công việc bạn thường làm nhất.. Dưới đây là một VB6 Class dùng cho delimeted text String, tức là những text strings

Trang 1

Class dùng cho Delimited Text String

Có lẽ lập trình với Text String là công việc bạn thường làm nhất Ðó là lý do tại sao hơn mười năm trước Microsoft Basic của Bill Gates rất thịnh hành vì nó có những

String Functions rất tiện dụng như Left, Right và Mid.

Dưới đây là một VB6 Class dùng cho delimeted text String, tức là những text strings giống như:

John Smith;30 King Street, Newtown,NSW, Australia;9748 3635;18/03/1956

gồm những phần gọi là tokens được ngăn cách bằng character ";" , gọi là delimiter.

Thật ra delimiter character có thể là bất cứ character nào, thường thường là những

characters ít khi dùng Trong các Comma Separated Values file, mỗi hàng Text là một String dùng Comma "," làm delimiter character Thí dụ như:

"26/3/2001","Peter King","Taxi fare",25.40

Các Tokens có thể là những data fields của một record, và chính mỗi Token cũng có thể là một delimited Text String dùng một delimiter character khác Thí dụ, một người

có thể có nhiều Telephone numbers và ta có thể ghép các số Telephone ấy lại với

nhau, dùng "~" làm delimiter character như sau:

Kim Lee;5 Red St, Ryde;9748 3635(W)~9736

2423(H)~0419409854(Mobile);7/05/1960

Trong program mẫu nầy bạn có một TextBox để chứa cái delimited TextString Form

có một array of TextBoxes tên Text1 với array index có giá trị từ 0 đến 3 TextString

ta dùng ở đây có 4 tokens Khi bạn click nút Process Text String, program sẽ ngắc

khúc Text String ở các delimiter characters rồi display chúng trong các TextBoxes Text1

Dưới đây là Listing của Sub CmdProcessTextString_Click:

Private Sub CmdProcessTextString_Click()

Dim DString As clsString ' Declare an Object of class clsString

Dim i

' Instantiate an Object called DString of class clsString

Set DString = New clsString

' Assign the text to DString

DString.Text = txtString

' Assign the Delimiter character ";" to DString

DString.Delimiter = ";"

' The text String has been automatically broken up into tokens

' Iterate through each of the 4 tokens

For i = 1 To DString.TokenCount

' Assign a Token to the appropriate Textbox

Trang 2

' Note that Text1 array index is in range 0 3

' so we use (i-1) for Text1 TextBoxes

Text1(i - 1) = DString.TokenAt(i)

Next

End Sub

Khi Delimited String đã được tokenised rồi, ta refer đến từng Token bằng cách viết

DString.TokenAt(i) mà i là index của Token trong Tokens Array Nếu dùng con số

làm index kiểu nầy nhiều lần ta rất dễ bị lộn Do đó có một cách thay thế những con

số 1,2,3 v.v bằng những hằng số dễ nhớ bằng cách định nghĩa một loại Enum

trong một Basic Module như sau:

' We deliberately name each constant with the prefix cds which stands for Const Delimited String

Public Enum FieldNames

cdsName = 1

cdsAddress = 2

cdsPhone = 3

cdsDOB = 4

End Enum

Sau đó ta có thể nói đến Token Phone bằng cách viết

DString.TokenAt(cdsPhone)

Trong khi viết code mỗi lần muốn đánh các Constant nầy ta đánh prefix cds trước rồi đánh Ctrl-Space để IDE popup những Constants được định nghĩa để ta chọn (dùng up/down arrow keys để select Constant rồi đánh Enter) như trong hình dưới đây:

Bạn có thể download source code của program mẫu nầy kể cả class clsString

Default delimiter character của Class clsString là "|" Mỗi lần bạn assign một Text string hay một delimiter cho clsString Object là nó tự động tokenise (ngắc khúc) text string thành một array of Tokens với array index values 1 TokenCount.

Ngoài ra, bạn còn có thể thay thế bất cứ Token nào bằng một Substring khác,

clsString Object sẽ tự động reconstruct Text String bên trong để bạn có thể lấy ra

modified Text String một cách dễ dàng Listings của các Sub ReplaceToken và ReconstructText của clsString như sau:

Trang 3

Public Sub ReplaceToken(TNum, NewToken)

' Replace a Token with a new substring

If (TNum > 0) And (TNum <= IMaxToken) Then

' Replace directly in the Token array

Tokens(TNum) = NewToken

' Rebuild the internal text string

ReconstructText

End If

End Sub

Private Sub ReconstructText()

' Reconstruct the internal string from the tokens and the delimiter

Dim i

strText = "" ' Initialise temporary string

For i = 1 To IMaxToken

' Concatenate this token to strText

strText = strText & Tokens(i)

' Append a delimiter character except for the last token

If i < IMaxToken Then strText = strText & strDelimiter

Next

End Sub

Dĩ nhiên khỏi phải nhắc bạn cũng nên biết rằng bên trong mỗi token tuyệt đối ta không thể dùng một character giống hệt như delimiter character, vì clsString sẽ lầm tưởng rằng character đó là một delimiter character hợp lệ Thí dụ nếu delimiter

character là ";", thì để thay thế mọi semicolon character trong một token ra blank

space ta có thể viết như sau:

TokenText = Replace (TokenText, ";", " ")

Ngày đăng: 22/10/2013, 11:15

HÌNH ẢNH LIÊN QUAN

up/down arrow keys để select Constant rồi đánh Enter) như trong hình dưới đây: - Class dùng cho Delimited Text String
up down arrow keys để select Constant rồi đánh Enter) như trong hình dưới đây: (Trang 2)

TỪ KHÓA LIÊN QUAN

w