My Opera is closing 3rd of March

Share tùa lua

Share từa lưa share tùm lum share tè le share tuốt luốt lun

Đọc dữ liệu từ Foxpro for DOS và Convert sang Vni-Times hoặc Font TCVN3 bằng Visual Basic 6

[/img]Đọc dữ liệu từ Foxpro for DOS và Convert sang Vni-Times hoặc Font TCVN3 bằng Visual Basic 6

Thời này mà còn nói, còn bàn đến FoxPro for Dos thì đúng là dở hơi thật bigsmile . Hệch hệch... Thây kệ, em đây rãnh rỗi dở hơi nên cứ viết mà Post thui. Lỡ công ty của anh em nào còn dùng cái Phóc bờ rồ for Dos mà lấn cấn trong việc chuyển đổi Font từ Fox thì cứ làm theo em thì được hà. (Nếu không được thì ráng chịu ha ^_^).

Dạo ấy (nói là dạo ấy chứ thực chất là tính đến thời điểm đang ngồi gõ luôn bigsmile ). Dạo ấy cái Bank của bên em nó vẫn còn hàng nghìn chi nhánh trong cả nước xài cái Fox cổ lỗ xĩ. Ngó sang bên Bank bạn thấy nó chạy chương trình trên nền quin dau nè, dữ liệu tập trung nè, giao dịch thì cứ cờ lic chuột 1 cái là DONE. Phẻ lắm.
Còn bên em thì phải nói là thôi rồi, trần ai khoai củ với cái Fox lun. hồi bốn năm trước em chỉ học C, C#, VB6, VB.NET, ASP, ASP.NET, HTML, Javascript, PHP, Pascal, DelPhi, rồi cả cấp thấp như chú ASM (Assembler) cũng chơi tuốt, ôi nhiều quá...bigsmile (Anh em thông cảm gõ nhiều để có tác dụng cho Gút gồ nó tìm ra đó mà ^_^).
Vì thế nên khi đụng đến thèn Foxpro em cáu lắm. Dùng mấy chiêu ODBC hay gì gì gì gì ....để kết nối đến Database của Foxpro thì được nhưng mà hix hix mấy cái Font chữ thì thằng VB 6 hông hiểu, bữa trước em có tìm hiểu kỹ vì sao lại như thế lắm idea . Nhưng hôm nay quên rùi, cứ nói dạng thô trước đi ha. Rồi khi nào em nhớ thì em nói thêm về Font phiếc nữa bigsmile. à ờ ...nói chung là không được vì Dos nó encode kiểu khác (OEM hay sao á) còn win thì ANSI (Trong Windows cũng có cách chỉnh trong Registry cho nó hiểu khác vẫn được, nhưng ở đây em không nói về cách chỉnh đó, vì nói về nó chỉ có 2 dòng làm ngắn bài post của em nên em xin thôi ^_^). Cũng có mấy đợt 1 số chi nhánh cái bank của em chuyển đổi số liệu từ Fox lên để dùng cho các ứng dụng trên Windows, nhưng mà hỏi mấy lão ở trển lão nào cũng lắc đầu không chỉ (Hay là không biết cũng nên) nên đành tự mày mò vậy idea .
Vào chủ đề chính ha :
Đầu tiên để đọc được mấy cái file chấm DBF thì phải biết cấu trúc của nó rồi ...tá lả um la xùm hết. Em đây cũng choáng váng khi tìm hiểu về nó faint . He he. Nhưng hổng sao, cà cày cà cọc trên Net cũng lòi ra được 1 cái Module đọc file DBF do anh nào tốt bụng share tùa lua trên VBForum (http://www.vbforums.com) nên em dùng luôn. (Lúc đầu em có tập viết cái đọc rùi, nhưng đọc ra toàn tầm bậy cộng tầm bạ không à yuck )
Code của nó đây . Do ngứa tay chưn nên Em có chỉnh lổ chỗ mấy chỗ, mong tác giả đừng báng bổ furious thì em lại khổ ^_^ :

Chép vào trong 1 Module
Option Explicit

Private Type dBHeader
   Version As String * 1         'dBaseIII file header
   Lastupdate As String * 3      ' 32 bytes
   NumRecs As Long
   NumBytesHeader As Integer
   NumBytesRec As Integer
   Trash As String * 20
End Type

Private Type FieldDescriptor     'Field Descriptions
   FName As String * 11          ' 32 bytes * Number of Fields
   FType As String * 1           ' Up to 128
   DataAddress As String * 4
   Length As String * 1
   DecimalCount As String * 1
   Trash As String * 14
End Type

Private Header As dBHeader, FieldDes As FieldDescriptor    'Creating variables for user-defined types
Private Function FileExistsWithDir(ByVal filename As String)
Dim file_name As String

    file_name = Dir$(filename)
    FileExistsWithDir = (file_name <> "")
End Function
Public Sub readDBF(dBaseName As String, ByRef myTable() As Variant, ByRef myFieldNames() As String)
  Dim fID As Integer
  Dim inYear As Integer, inMonth As Integer, inDay As Integer
  Dim NumFields As Integer
  Dim i As Long, j, k As Integer
  Dim DELETED As Boolean
  Dim FieldDes() As FieldDescriptor
  Dim s As String
  Dim Length As Long
  Dim curRecord As String, curField As String
  Dim dValue As Double, bValue As Boolean, lValue As Long
  Dim dateValue As Date

  fID = FreeFile
If dBaseName$ = "" Then Exit Sub

If FileExistsWithDir(dBaseName$) = False Then
    MsgBox "File :" & dBaseName$ & "Khong ton ta.i"
End If
  Open dBaseName For Binary As #fID
  Get #1, , Header
  Select Case Header.Version
     Case Chr$(&H3)
     Case Chr$(&H83)
     Case Chr$(&HF5) 'Ca'i na`y ca'c file FOXPro 2.6 cu~ Header version la` H85
     Case Else
        MsgBox "This is not Database dBASE III file & " & Header.Version
        Close #1
        Exit Sub
  End Select

  inYear = 1900 + Asc(Mid$(Header.Lastupdate, 1, 1))
  inMonth = Asc(Mid$(Header.Lastupdate, 2, 1))
  inDay = Asc(Mid$(Header.Lastupdate, 3, 1))

  'Calculate the number of fields
  NumFields = Header.NumBytesHeader \ 32 - 1
  ReDim FieldDes(1 To NumFields) As FieldDescriptor
  ReDim myFieldNames(1 To NumFields)

  'Looping through NumFields by reading in 32 byte records
  For i = 1 To (NumFields)
    Get #1, (32 * i) + 1, FieldDes(i)
    myFieldNames(i) = FieldDes(i).FName
  Next i

  ' Initialise the table
  If Header.NumRecs = 0 Then
        MsgBox "File: " & dBaseName & " chua co' so lie.u"
    ReDim myTable(0 To Header.NumRecs, 1 To NumFields)
    k = 0
  Else
    ReDim myTable(1 To Header.NumRecs, 1 To NumFields)
    k = 1
  End If

  'The field names, lengths, and types are read.  Now read in the data

  Seek #1, Header.NumBytesHeader + 1                    'Advance the file pointer to the beginning of the data section
  For i = k To Header.NumRecs                           'Now loop through the number of records
    curRecord = String$(Header.NumBytesRec, " ")        'Create MangDuLieu variable string length of length= record length
    Get #1, , curRecord                                 'Read in the number of bytes in one record

    Length = 2
    For j = 1 To NumFields
      ' test if record is to be treatend as deleted
      If Left$(curRecord, 1) = "*" Then Exit For
      curField = Mid$(curRecord, Length, Asc(FieldDes(j).Length))
      Select Case FieldDes(j).FType
        Case "D"
           myTable(i, j) = curField
        Case "C"
          myTable(i, j) = curField
        Case "N"
          'Turn numeric fields into DOUBLE types
           If FieldDes(j).DecimalCount <> " " Then
              dValue = Val(curField) / 10 ^ Val(FieldDes(j).DecimalCount)
           Else
              dValue = Val(curField)
           End If
           myTable(i, j) = dValue
        Case "L"
          'assign an integer to logical types
          myTable(i, j) = False
          If curField = "T" Or curField = "Y" Then myTable(i, j) = True
        Case "M"
          ' Memo field (ignore!)
      End Select
      Length = Length + Asc(FieldDes(j).Length)
    Next j
  Next i
  ' now close the File
  Close #fID
End Sub


Đọc vào code nếu anh em nào khó hiểu chỗ nào thì cứ nói em, em sẽ giải thích cho ha.
Cái thủ tục của nó là readDBF với 3 tham số, anh em đã đến mức tìm hỉu về cái việc này chỉ chắc khỏi cần giải thích nữa ha. tham số thứ nhất là đường dẫn đến file DBF, tham số thứ hai là các Record của file DBF đó, và tham số thứ ba là tên của các trường
ví dụ file DBF của ta có đường dẫn là d:\hehe.DBF, có 2 trường là STT và HoTen, trong đó có số liệu của 1000 sinh viên. Thì để đọc thì ta dùng cú pháp sau : ReadDBF "d:\hehe.DBF", DanhSachSinhVien, TenTruong
Với khai báo biến DanhSachSinhVien là kiểu mảng Variant và TenTruong là kiểu mảng chuỗi String nhé.

Sau khi đọc xong thì mọi việc đã trở nên đơn giản hơn rùi. Bây giờ thì tới lúc cần đến sự cần cù bù thông minh đây. Hix ! phải mò từng kí tự tương ứng để chuyển đổi cho phù hợp mà knockout . Em xin giới thiệu 1 số hàm nhé :
- Function vniDosToVni(vnidos As Byte) As String : Nhìn vào tên hàm thật dễ hiểu bigsmile , hàm này có tác dụng chuyển đổi 1 mã ký tự Character Code (Kiểu Byte) từ Vni DOS sang Vni for Windows. Xin giải thích thêm là : ví dụ trên Windows có nhiều chương trình hỗ trợ việc nhập liệu tiếng Việt Như VietKey, Unikey, Vietware,...thì khi xa xưa ở trên nền Dos cũng có nhiều chương trình hỗ trợ việc nhập liệu và thể hiện tiếng việt, Vni Dos em dùng trong câu văn là những dữ liệu được nhập liệu bởi VietRes (1 chương trình hỗ trợ nhập liệu và thể hiện Tiếng Việt trong DOS) hoặc các chương trình tương tự như Vni-EZ,...
- Function vniDosToAbc(vnidos As Byte) As Byte Tương tự như cái hàm trên kia chỉ khác là nó chuyển sang TCVN3 thôi. Còn thêm 1 cái khác nữa là dũ liệu trả về lại là kiểu Byte, vì sao ở trên thì trả về String còn ở dưới lại là Byte hả ta ?? À tại vì chú Font chữ Vni là 2 byte còn chú TCVN3 là font chữ chỉ 1 Byte thui.
- Function Convert_ChuoiDosToABC(ByVal str As String) As String : à ờ cái hàm này dùng chuyển 1 chuỗi Vni Dos sang ABC thui.
- Function Convert_ChuoiDosToVNI(ByVal str As String) As String : .........y chang như trên ................VNI.......^_^
- Còn 2 cái Function TCVN3toVNI và VNItoTCVN3 thì em lụm đâu đó trên In tờ lét nhét vô lun cho nó nhiều hàm đó mà ^_^ (2 hàm này có tác dụng chuyển đổi 1 chuỗi từ VNI sang TCVN3 và ngược lại thui)
Còn sau đây là code của các chú nó đây: (AE cho nó vào cái Module cho dễ quản nhé)
Option Explicit
Public Function vniDosToVni(vnidos As Byte) As String
Select Case vnidos
    Case 161:     vniDosToVni = "í"
    Case 140, 141: vniDosToVni = "ì"
    Case 169:     vniDosToVni = "æ"
    Case 170:     vniDosToVni = "ó"
    Case 171:     vniDosToVni = "ò"
    Case 238:     vniDosToVni = "yù"
    Case 239:     vniDosToVni = "yø"
    Case 240:     vniDosToVni = "yû"
    Case 241:     vniDosToVni = "yõ"
    Case 242:     vniDosToVni = "î"
    Case 173:     vniDosToVni = "ñ"
    Case 174:     vniDosToVni = "Ñ"
    Case 252:     vniDosToVni = "AÊ"
    Case 232:    vniDosToVni = "aê"
    Case 253:    vniDosToVni = "AÂ"
    Case 131:    vniDosToVni = "aâ"
    Case 254:   vniDosToVni = "EÂ"
    Case 136:   vniDosToVni = "eâ"
    Case 249: vniDosToVni = "OÂ"
    Case 147: vniDosToVni = "oâ"
    Case 250: vniDosToVni = "Ô"
    Case 243: vniDosToVni = "ô"
    Case 251: vniDosToVni = "Ö"
    Case 159: vniDosToVni = "ö"
    Case 96, 133: vniDosToVni = "aø"
    Case 124, 224: vniDosToVni = "aû"
    Case 125, 225: vniDosToVni = "aõ"
    Case 94, 160: vniDosToVni = "aù"
    Case 126, 226: vniDosToVni = "aï"
    Case 234:     vniDosToVni = "aè"
    Case 235:     vniDosToVni = "aú"
    Case 236:     vniDosToVni = "aü"
    Case 233:     vniDosToVni = "aé"
    Case 237:     vniDosToVni = "aë"
    Case 135, 228: vniDosToVni = "aà"
    Case 229:     vniDosToVni = "aå"
        'Ta bo di 140 vi` GDTT xem 140 la` ki tu i`
        'Nguyen Mau la nhu the nay: case  140, 229:      vniDosToVNI = 200   '   ?,?
    Case 144, 230: vniDosToVni = "aã"
    Case 128, 227: vniDosToVni = "aá"
    Case 175, 231: vniDosToVni = "aä"
    Case 5, 138: vniDosToVni = "eø"
    Case 6, 129: vniDosToVni = "eû"
    Case 7, 132: vniDosToVni = "eõ"
    Case 4, 130: vniDosToVni = "eù"
    Case 8, 134: vniDosToVni = "eï"
    Case 10, 139: vniDosToVni = "eà"
    Case 11, 142: vniDosToVni = "eå"
    Case 12, 143: vniDosToVni = "eã"
    Case 9, 137: vniDosToVni = "eá"
    Case 190, 172: vniDosToVni = "eä"
    Case 20, 149: vniDosToVni = "oø"
    Case 21, 145: vniDosToVni = "oû"
    Case 22, 146: vniDosToVni = "oõ"
    Case 19, 162: vniDosToVni = "où"
    Case 23, 148: vniDosToVni = "oï"
    Case 25, 152: vniDosToVni = "oà"
    Case 206, 153: vniDosToVni = "oå"
    Case 27, 154: vniDosToVni = "oã"
    Case 24, 150: vniDosToVni = "oá"
    Case 28, 155: vniDosToVni = "oä"
    Case 30, 245: vniDosToVni = "ôø"
    Case 31, 246: vniDosToVni = "ôû"
    Case 208, 247: vniDosToVni = "ôõ"
    Case 29, 244: vniDosToVni = "ôù"
    Case 209, 248: vniDosToVni = "ôï"
    Case 211, 151: vniDosToVni = "uø"
    Case 212, 156: vniDosToVni = "uû"
    Case 213, 157: vniDosToVni = "uõ"
    Case 210, 163: vniDosToVni = "uù"
    Case 214, 158: vniDosToVni = "uï"
    Case 216, 165: vniDosToVni = "öø"
    Case 217, 166: vniDosToVni = "öû"
    Case 218, 167: vniDosToVni = "öõ"
    Case 215, 164: vniDosToVni = "öù"
    Case 219, 168: vniDosToVni = "öï"
    Case Else:         vniDosToVni = Chr(vnidos) 'Khong doi
End Select
End Function

Public Function vniDosToAbc(vnidos As Byte) As Byte
Select Case vnidos                       '   Gi?i thích
    Case 161:       vniDosToAbc = 221   'i'
    Case 140, 141:      vniDosToAbc = 215   'i`
    Case 169:       vniDosToAbc = 216   'i?
    Case 170:       vniDosToAbc = 220   'i~
    Case 171:       vniDosToAbc = 222   'i.
    Case 238:       vniDosToAbc = 253   'y'
    Case 239:       vniDosToAbc = 250   'y`
    Case 240:       vniDosToAbc = 251   'y?
    Case 241:       vniDosToAbc = 252   'y~
    Case 242:       vniDosToAbc = 254   'y.
    Case 173:       vniDosToAbc = 174   'd+
    Case 174:       vniDosToAbc = 167   'D+
    Case 173:       vniDosToAbc = 174
    Case 174:       vniDosToAbc = 167
    Case 252:       vniDosToAbc = 161
    Case 232:       vniDosToAbc = 168
    Case 253:       vniDosToAbc = 162
    Case 131:       vniDosToAbc = 169
    Case 254:       vniDosToAbc = 163
    Case 136:       vniDosToAbc = 170
    Case 249:       vniDosToAbc = 164
    Case 147:       vniDosToAbc = 171
    Case 250:       vniDosToAbc = 165
    Case 243:       vniDosToAbc = 172
    Case 251:       vniDosToAbc = 166
    Case 159:       vniDosToAbc = 173
    Case 96, 133:       vniDosToAbc = 181   '   À,à
    Case 124, 224:      vniDosToAbc = 182   '   ?,?
    Case 125, 225:      vniDosToAbc = 183   '   Ã,ã
    Case 94, 160:       vniDosToAbc = 184   '   Á,á
    Case 126, 226:      vniDosToAbc = 185   '   ?,?
    Case 234:       vniDosToAbc = 187   '   ?
    Case 235:       vniDosToAbc = 188   '   ?
    Case 236:       vniDosToAbc = 189   '   ?
    Case 233:       vniDosToAbc = 190   '   ?
    Case 237:       vniDosToAbc = 198   '   ?
    Case 135, 228:      vniDosToAbc = 199   '   ?,?
    Case 229:       vniDosToAbc = 200   '   ?,?
    'Ta bo di 140 vi` GDTT xem 140 la` ki tu i`
    'Nguyen Mau la nhu the nay: Case 140, 229:      vniDosToAbc = 200   '   ?,?
    Case 144, 230:      vniDosToAbc = 201   '   ?,?
    Case 128, 227:      vniDosToAbc = 202   '   ?,?
    Case 175, 231:      vniDosToAbc = 203   '   ?,?
    Case 5, 138:        vniDosToAbc = 204   '   È,è
    Case 6, 129:        vniDosToAbc = 206   '   ?,?
    Case 7, 132:        vniDosToAbc = 207   '   ?,?
    Case 4, 130:        vniDosToAbc = 208   '   É,é
    Case 8, 134:        vniDosToAbc = 209   '   ?,?
    Case 10, 139:       vniDosToAbc = 210   '   ?,?
    Case 11, 142:       vniDosToAbc = 211   '   ?,?
    Case 12, 143:       vniDosToAbc = 212   '   ?,?
    Case 9, 137:        vniDosToAbc = 213   '   ?,?
    Case 190, 172:      vniDosToAbc = 214   '   ?,?
    Case 20, 149:       vniDosToAbc = 223   '   Ò,ò
    Case 21, 145:       vniDosToAbc = 225   '   ?,?
    Case 22, 146:       vniDosToAbc = 226   '   Õ,õ
    Case 19, 162:       vniDosToAbc = 227   '   Ó,ó
    Case 23, 148:       vniDosToAbc = 228   '   ?,?
    Case 25, 152:       vniDosToAbc = 229   '   ?,?
    Case 206, 153:      vniDosToAbc = 230   '   ?,?
    Case 27, 154:       vniDosToAbc = 231   '   ?,?
    Case 24, 150:       vniDosToAbc = 232   '   ?,?
    Case 28, 155:       vniDosToAbc = 233   '   ?,?
    Case 30, 245:       vniDosToAbc = 234   '   ?,?
    Case 31, 246:       vniDosToAbc = 235   '   ?,?
    Case 208, 247:      vniDosToAbc = 236   '   ?,?
    Case 29, 244:       vniDosToAbc = 237   '   ?,?
    Case 209, 248:      vniDosToAbc = 238   '   ?,?
    Case 211, 151:      vniDosToAbc = 239   '   Ù,ù
    Case 212, 156:      vniDosToAbc = 241   '   ?,?
    Case 213, 157:      vniDosToAbc = 242   '   ?,?
    Case 210, 163:      vniDosToAbc = 243   '   Ú,ú
    Case 214, 158:      vniDosToAbc = 244   '   ?,?
    Case 216, 165:      vniDosToAbc = 245   '   ?,?
    Case 217, 166:      vniDosToAbc = 246   '   ?,?
    Case 218, 167:      vniDosToAbc = 247   '   ?,?
    Case 215, 164:      vniDosToAbc = 248   '   ?,?
    Case 219, 168:      vniDosToAbc = 249   '   ?,?

    Case Else:          vniDosToAbc = vnidos    '   Không ??i
End Select
End Function

Public Function VNItoTCVN3(vnstr As String)
Dim c As String, i As Integer
Dim db As Boolean
For i = 1 To Len(vnstr)
    db = False
    If i < Len(vnstr) Then
    c = Mid(vnstr, i + 1, 1)
    If c = "ù" Or c = "ø" Or c = "û" Or c = "õ" Or c = "ï" Or _
    c = "ê" Or c = "é" Or c = "è" Or c = "ú" Or c = "ü" Or c = "ë" Or _
    c = "â" Or c = "á" Or c = "à" Or c = "å" Or c = "ã" Or c = "ä" Or _
    c = "Ù" Or c = "Ø" Or c = "Û" Or c = "Õ" Or c = "Ï" Or _
    c = "Ê" Or c = "É" Or c = "È" Or c = "Ú" Or c = "Ü" Or c = "Ë" Or _
    c = "Â" Or c = "Á" Or c = "À" Or c = "Å" Or c = "Ã" Or c = "Ä" Then db = True
    End If
    If db Then
    c = Mid(vnstr, i, 2)
    Select Case c
    Case "aù": c = "¸"
    Case "aø": c = "µ"
    Case "aû": c = "¶"
    Case "aõ": c = "·"
    Case "aï": c = "¹"
    Case "aê": c = "¨"
    Case "aé": c = "¾"
    Case "aè": c = "»"
    Case "aú": c = "¼"
    Case "aü": c = "½"
    Case "aë": c = "Æ"
    Case "aâ": c = "©"
    Case "aá": c = "Ê"
    Case "aà": c = "Ç"
    Case "aå": c = "È"
    Case "aã": c = "É"
    Case "aä": c = "Ë"
    Case "eù": c = "Ð"
    Case "eø": c = "Ì"
    Case "eû": c = "Î"
    Case "eõ": c = "Ï"
    Case "eï": c = "Ñ"
    Case "eâ": c = "ª"
    Case "eá": c = "Õ"
    Case "eà": c = "Ò"
    Case "eå": c = "Ó"
    Case "eã": c = "Ô"
    Case "eä": c = "Ö"
    Case "où": c = "ã"
    Case "oø": c = "ß"
    Case "oû": c = "á"
    Case "oõ": c = "â"
    Case "oï": c = "ä"
    Case "oâ": c = "«"
    Case "oá": c = "è"
    Case "oà": c = "å"
    Case "oå": c = "æ"
    Case "oã": c = "ç"
    Case "oä": c = "é"
    Case "ôù": c = "í"
    Case "ôø": c = "ê"
    Case "ôû": c = "ë"
    Case "ôõ": c = "ì"
    Case "ôï": c = "î"
    Case "uù": c = "ó"
    Case "uø": c = "ï"
    Case "uû": c = "ñ"
    Case "uõ": c = "ò"
    Case "uï": c = "ô"
    Case "öù": c = "ø"
    Case "öø": c = "õ"
    Case "öû": c = "ö"
    Case "öõ": c = "÷"
    Case "öï": c = "ù"
    Case "yù": c = "ý"
    Case "yø": c = "ú"
    Case "yû": c = "û"
    Case "yõ": c = "ü"
    Case "AÙ": c = "¸"
    Case "AØ": c = "µ"
    Case "AÛ": c = "¶"
    Case "AÕ": c = "·"
    Case "AÏ": c = "¹"
    Case "AÉ": c = "¾"
    Case "AÈ": c = "»"
    Case "AÚ": c = "¼"
    Case "AÜ": c = "½"
    Case "AË": c = "Æ"
    Case "AÁ": c = "Ê"
    Case "AÀ": c = "Ç"
    Case "AÅ": c = "È"
    Case "AÃ": c = "É"
    Case "AÄ": c = "Ë"
    Case "EÙ": c = "Ð"
    Case "EØ": c = "Ì"
    Case "EÛ": c = "Î"
    Case "EÕ": c = "Ï"
    Case "EÏ": c = "Ñ"
    Case "EÁ": c = "Õ"
    Case "EÀ": c = "Ò"
    Case "EÅ": c = "Ó"
    Case "EÃ": c = "Ô"
    Case "EÄ": c = "Ö"
    Case "OÙ": c = "ã"
    Case "OØ": c = "ß"
    Case "OÛ": c = "á"
    Case "OÕ": c = "â"
    Case "OÏ": c = "ä"
    Case "OÁ": c = "è"
    Case "OÀ": c = "å"
    Case "OÅ": c = "æ"
    Case "OÃ": c = "ç"
    Case "OÄ": c = "é"
    Case "ÔÙ": c = "í"
    Case "ÔØ": c = "ê"
    Case "ÔÛ": c = "ë"
    Case "ÔÕ": c = "ì"
    Case "ÔÏ": c = "î"
    Case "UÙ": c = "ó"
    Case "UØ": c = "ï"
    Case "UÛ": c = "ñ"
    Case "UÕ": c = "ò"
    Case "UÏ": c = "ô"
    Case "ÖÙ": c = "ø"
    Case "ÖØ": c = "õ"
    Case "ÖÛ": c = "ö"
    Case "ÖÕ": c = "÷"
    Case "ÖÏ": c = "ù"
    Case "YÙ": c = "ý"
    Case "YØ": c = "ú"
    Case "YÛ": c = "û"
    Case "YÕ": c = "ü"
    Case "AÊ": c = "¡"
    Case "AÂ": c = "¢"
    Case "EÂ": c = "£"
    Case "OÂ": c = "¤"
    End Select
    Else
    c = Mid(vnstr, i, 1)
    Select Case c
    Case "ô": c = "¬"
    Case "i": c = "i"
    Case "í": c = "Ý"
    Case "ì": c = "×"
    Case "æ": c = "Ø"
    Case "ó": c = "Ü"
    Case "ò": c = "Þ"
    Case "ö": c = "­"
    Case "î": c = "þ"
    Case "ñ": c = "®"
    Case "A": c = "A"
    Case "Ô": c = "¥"
    Case "I": c = "I"
    Case "Í": c = "Æ"
    Case "Ý": c = "Ø"
    Case "U": c = "U"
    Case "Ö": c = "¦"
    Case "Y": c = "Y"
    Case "Ñ": c = "§"
    End Select
    End If
    VNItoTCVN3 = VNItoTCVN3 + c
    If db Then i = i + 1
Next i
End Function

Public Function Convert_ChuoiDosToABC(ByVal str As String) As String
    Dim ii As Integer
    Dim s1 As String
    s1 = ""
    For ii = 1 To Len(str)
        s1 = s1 & Chr(vniDosToAbc(Asc(Mid(str, ii, 1))))
    Next ii
    Convert_ChuoiDosToABC = s1
End Function
Public Function Convert_ChuoiDosToVNI(ByVal str As String) As String
    Dim ii As Integer
    Dim s1 As String
    s1 = ""
    For ii = 1 To Len(str)
        s1 = s1 & vniDosToVni(Asc(Mid(str, ii, 1)))
    Next ii
    Convert_ChuoiDosToVNI = s1
End Function
Public Function TCVN3toVNI(ByVal vnstr As String)
Dim c As String, i As Integer
Dim db As Boolean
For i = 1 To Len(vnstr)
    db = False
    c = Mid(vnstr, i, 1)
    If c = "¸" Or c = "µ" Or c = "¶" Or c = "·" Or c = "¹" Or c = "¨" Or c = "¾" Or c = "»" Or c = "¼" Or c = "½" Or _
        c = "Æ" Or c = "©" Or c = "Ê" Or c = "Ç" Or c = "È" Or c = "É" Or c = "Ë" Or c = "Ð" Or c = "Ì" Or c = "Î" Or c = "Ï" Or c = "Ñ" Or c = "ª" Or c = "Õ" Or c = "Ò" Or c = "Ó" Or c = "Ô" Or c = "Ö" Or c = "ã" Or c = "ß" Or c = "á" Or c = "â" Or c = "ä" Or c = "«" Or c = "è" Or c = "å" Or c = "æ" Or c = "ç" Or c = "é" Or c = "í" Or c = "ê" Or c = "ë" Or c = "ì" Or c = "î" Or c = "ó" Or c = "ï" Or c = "ñ" Or c = "ò" Or c = "ô" Or c = "ø" Or c = "õ" Or c = "ö" Or c = "÷" Or c = "ù" Or c = "ý" Or c = "ú" Or c = "û" Or c = "ü" Or c = "¸" Or _
        c = "µ" Or c = "" Or c = "•" Or c = "¹" Or c = "¾" Or c = "»" Or c = "¼" Or c = "½" Or c = "Æ" Or c = "Ê" Or c = "Ç" Or c = "È" Or c = "É" Or c = "Ë" Or c = "Ð" Or c = "Ì" Or c = "Î" Or c = "Ï" Or c = "Ñ" Or _
        c = "Õ" Or c = "Ò" Or c = "Ó" Or c = "Ô" Or c = "Ö" Or c = "ã" Or c = "ß" Or c = "á" Or c = "â" Or c = "ä" Or c = "è" Or c = "å" Or c = "æ" Or c = "ç" Or c = "é" Or c = "í" Or c = "ê" Or c = "ë" Or c = "ì" Or c = "î" Or c = "ó" Or c = "ï" Or c = "ñ" Or c = "ò" Or c = "ô" Or c = "ø" Or _
        c = "õ" Or c = "ö" Or c = "÷" Or c = "ù" Or c = "ý" Or c = "ú" Or c = "û" Or c = "ü" Or c = "¡" Or c = "¢" Or c = "£" Or c = "¤" Or c = "¬" Or c = "i" Or _
        c = "Ý" Or c = "×" Or c = "Ø" Or c = "Ü" Or c = "Þ" Or c = "­" Or c = "þ" Or c = "®" Or c = "A" Or c = "¥" Or c = "I" Or c = "Æ" Or c = "Ø" Or c = "U" Or c = "¦" Or c = "Y" Or c = "§" Then db = True
   If db Then
    Select Case c
        Case "¸":       c = "aù"
        Case "µ":       c = "aø"
        Case "¶":       c = "aû"
        Case "·":       c = "aõ"
        Case "¹":       c = "aï"
        Case "¨":       c = "aê"
        Case "¾":       c = "aé"
        Case "»":       c = "aè"
        Case "¼":       c = "aú"
        Case "½":       c = "aü"
        Case "Æ":       c = "aë"
        Case "©":       c = "aâ"
        Case "Ê":       c = "aá"
        Case "Ç":       c = "aà"
        Case "È":       c = "aå"
        Case "É":       c = "aã"
        Case "Ë":       c = "aä"
        Case "Ð":       c = "eù"
        Case "Ì":       c = "eø"
        Case "Î":       c = "eû"
        Case "Ï":       c = "eõ"
        Case "Ñ":       c = "eï"
        Case "ª":       c = "eâ"
        Case "Õ":       c = "eá"
        Case "Ò":       c = "eà"
        Case "Ó":       c = "eå"
        Case "Ô":       c = "eã"
        Case "Ö":       c = "eä"
        Case "ã":       c = "où"
        Case "ß":       c = "oø"
        Case "á":       c = "oû"
        Case "â":       c = "oõ"
        Case "ä":       c = "oï"
        Case "«":       c = "oâ"
        Case "è":       c = "oá"
        Case "å":       c = "oà"
        Case "æ":       c = "oå"
        Case "ç":       c = "oã"
        Case "é":       c = "oä"
        Case "í":       c = "ôù"
        Case "ê":       c = "ôø"
        Case "ë":       c = "ôû"
        Case "ì":       c = "ôõ"
        Case "î":       c = "ôï"
        Case "ó":       c = "uù"
        Case "ï":       c = "uø"
        Case "ñ":       c = "uû"
        Case "ò":       c = "uõ"
        Case "ô":       c = "uï"
        Case "ø":       c = "öù"
        Case "õ":       c = "öø"
        Case "ö":       c = "öû"
        Case "÷":       c = "öõ"
        Case "ù":       c = "öï"
        Case "ý":       c = "yù"
        Case "ú":       c = "yø"
        Case "û":       c = "yû"
        Case "ü":       c = "yõ"
        Case "¸":       c = "AÙ"
        Case "µ":       c = "AØ"
        Case "":        c = "AÛ"
        Case "•":       c = "AÕ"
        Case "¹":       c = "AÏ"
        Case "¾":       c = "AÉ"
        Case "»":       c = "AÈ"
        Case "¼":       c = "AÚ"
        Case "½":       c = "AÜ"
        Case "Æ":       c = "AË"
        Case "Ê":       c = "AÁ"
        Case "Ç":       c = "AÀ"
        Case "È":       c = "AÅ"
        Case "É":       c = "AÃ"
        Case "Ë":       c = "AÄ"
        Case "Ð":       c = "EÙ"
        Case "Ì":       c = "EØ"
        Case "Î":       c = "EÛ"
        Case "Ï":       c = "EÕ"
        Case "Ñ":       c = "EÏ"
        Case "Õ":       c = "EÁ"
        Case "Ò":       c = "EÀ"
        Case "Ó":       c = "EÅ"
        Case "Ô":       c = "EÃ"
        Case "Ö":       c = "EÄ"
        Case "ã":       c = "OÙ"
        Case "ß":       c = "OØ"
        Case "á":       c = "OÛ"
        Case "â":       c = "OÕ"
        Case "ä":       c = "OÏ"
        Case "è":       c = "OÁ"
        Case "å":       c = "OÀ"
        Case "æ":       c = "OÅ"
        Case "ç":       c = "OÃ"
        Case "é":       c = "OÄ"
        Case "í":       c = "ÔÙ"
        Case "ê":       c = "ÔØ"
        Case "ë":       c = "ÔÛ"
        Case "ì":       c = "ÔÕ"
        Case "î":       c = "ÔÏ"
        Case "ó":       c = "UÙ"
        Case "ï":       c = "UØ"
        Case "ñ":       c = "UÛ"
        Case "ò":       c = "UÕ"
        Case "ô":       c = "UÏ"
        Case "ø":       c = "ÖÙ"
        Case "õ":       c = "ÖØ"
        Case "ö":       c = "ÖÛ"
        Case "÷":       c = "ÖÕ"
        Case "ù":       c = "ÖÏ"
        Case "ý":       c = "YÙ"
        Case "ú":       c = "YØ"
        Case "û":       c = "YÛ"
        Case "ü":       c = "YÕ"
        Case "¡":       c = "AÊ"
        Case "¢":       c = "AÂ"
        Case "£":       c = "EÂ"
        Case "¤":       c = "OÂ"
        Case "¬":        c = "ô"
        Case "i":       c = "i"
        Case "Ý":       c = "í"
        Case "×":       c = "ì"
        Case "Ø":       c = "æ"
        Case "Ü":       c = "ó"
        Case "Þ":       c = "ò"
        Case "­":       c = "ö"
        Case "þ":       c = "î"
        Case "®":       c = "ñ"
        Case "A":       c = "A"
        Case "¥":       c = "Ô"
        Case "I":       c = "I"
        Case "Æ":       c = "Í"
        Case "Ø":       c = "Ý"
        Case "U":       c = "U"
        Case "¦":       c = "Ö"
        Case "Y":       c = "Y"
        Case "§":       c = "Ñ"
        End Select
    End If
    TCVN3toVNI = TCVN3toVNI + c
Next i
End Function


yikes Ồ làm sao mà anh ấy lại biết các kí tự tương ứng của các bảng mã hay thế flirt flirt , đơn giản vậy mà cũng hỏi, tìm từng cái chứ bằng cách gì nữa . Hix lâu dã man lun cry .
Roài ! Thế là xong rùi đó. Cách Use của nó thì anh em cũng đã hiểu rùi chứ hẻ ! nếu có théc méc thì cứ péc lên cho em téc yes .
Mọi chuyện đến đây đã kết thúc (Giúng Hugo nhà ta wá bigsmile). Thế là từ đó em có thể nhặt nhạnh số liệu, chuyển đổi, read ra read riếc mấy chú Fox for DOS ngon lành bằng VB 6 . và từ đó phát sinh ra hàng lô hàng lốc các chương trình cho các cái Bank nhà em. Hì hì, do không được Pub lên chứ nếu hông thì em cũng Pub lên cho anh em tham nhũng 1 tí, í wên tham khảo 1 tí bigsmile.

Phù! Copy paste mệt quá . lại wên nữa p , gõ nãy giờ mệt wá mới đúng chứ ^_^. Đi ra chích 1 mũi con mèo rồi zô kím trò post típ chứ ^_^
p

Map cái Blog cho zui cái nàoLại một ngày có em và không có em

Comments

Unregistered user Monday, August 27, 2007 4:45:21 AM

Cotez writes: Còn điếu nào ko? Mới ngủ dậy ko có thuốc hổng chịu nổi :D Sẵn bóc tem cái này...

Baby ITbaby Monday, August 27, 2007 4:49:11 AM

ặc ặc, sao mấy cái bài post của tui toàn là Min dê rồi Ko_Tex_sieu_Tham với lại Cotez bóc tem không à, chắc Xui phải biết bigsmile . Lại còn đi xin thuốc nữa chứ p

Unregistered user Tuesday, August 28, 2007 2:31:42 AM

Anonymous writes: bac itbaby cho to xin cai module nay nha', khi nao can dang con` sai`. tuong lai the nao cung dung den. cam on bac nhieu. do ton cong di tim.(tethien63)

musicblog Tuesday, September 11, 2007 1:14:11 AM

hay qua nhi.

Unregistered user Tuesday, October 2, 2007 3:00:20 AM

Anonymous writes: Cái này thì không hay rồi, quá dài dòng mà xử lý lại chậm nữa!!!!!! tui có đoạn code viết 1 hàm chuyển đổi thẳng từ VNI-DOS sang unicode luôn nè, tui viết trên Access 2003. Ai có nhu cầu liên hệ tttuyentinh@yahoo.com

Unregistered user Tuesday, October 2, 2007 3:02:28 AM

Anonymous writes: quá dỡ!

Baby ITbaby Saturday, October 6, 2007 10:16:49 AM

Chời Deck ! Có code hay sao muh hông Up lên lun đi. từ VNI-DOS sang unicode thì cũng chẳng khó khăn gì cả ! Hục hục ! Chỉ vì mấy cái Bank nhà em nó cứ vẫn dùng Font Vờ ni với Tiêu chửng vợt nem thoai . Mấy cái đóa thì vào ClbVB có mà đầy p he he

meouhamchoi Sunday, October 12, 2008 5:34:41 PM

Hi baby, mình dỡ lập trình lắm, nên mặc dù được bạn hướng dẫn kỹ càng mà vẫn ko biết làm sao gắn dc cái hàm readDBF và vniDosToVni cho nó chạy nữa. Bạn lỡ share từa lưa rồi, có thể share thêm ctrinh gắn các hàm đó cho mình dc ko? Hixx, thật sự mình rất cần nhưng hok biết làm, nếu dc thì gửi cho mình wa mail này dc ko : funny_baby84@yahoo.com. Thanks nhìu nhìu sad

Unregistered user Saturday, April 10, 2010 11:38:36 PM

phantrunghien@gmail.com writes: Dzui lòng cho anh hỏi chút! ANh cũng gặp rắc rối như trên, nhưng Fox(Ver. 2.6) của anh chạy trong Win, khi xuất ra DBF, anh dùng Exel2003 để đọc thì font chữ không đọc được mặc dù máy đã có font của Vietware và cả bảng mã của Vietware-F, anh dùng Convert to Unicode Vietnamese(2UV) của Lạc Việt để chuyển cũng không được, mong hồi âm! Thân

Unregistered user Wednesday, June 16, 2010 2:38:38 AM

Anonymous writes: caùi code nay mình dung sao paùte do cho naøo vay

Write a comment

New comments have been disabled for this post.