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

Class dùng cho Delimited Text String

3 240 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

Nội dung

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 ' 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: 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, ";", " ") . Instantiate an Object called DString of class clsString Set DString = New clsString ' Assign the text to DString DString .Text = txtString ' Assign the. 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

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