PDA

Click to See Complete Forum and Search --> : vb6 - storing chinese/jap character in INI file.


fang_eve
Jan 24th, 2007, 10:13 PM
i have figure out how to store chinese/japanese character in INI. the codes are as follow. hope it helps.


Public Enum CodeEnum
cgNone = 0
cgANSI = 1
cgUTF8 = 2
cgUTF16 = 3
cgHTML = 4
End Enum


'the function to convert the input character to some encoding,
'you can convert the encoding back to the character
Public Function Uni_VB(ByVal sText As String) As String
Dim lLen As Long
Dim i As Long
Dim sChar As String
Dim lChar As Integer
Dim CodeEnum As CodeEnum

lLen = Len(sText)

If lLen Then
For i = 1 To lLen
sChar = Mid$(sText, i, 1)
lChar = AscW(sChar)
If (lChar >= &H0) And (lChar <= &HFF) Then
Select Case CodeEnum
Case cgNone
Uni_VB = Uni_VB & Chr$(34)
Case cgANSI

Case cgUTF16
Uni_VB = Uni_VB & " & " & Chr$(34)
End Select
CodeEnum = cgANSI
Uni_VB = Uni_VB & sChar
Else
If CodeEnum = cgANSI Then
Uni_VB = Uni_VB & Chr$(34)
End If
CodeEnum = cgUTF16
'Uni_VB = Uni_VB & " & ChrW$(&H" & Hex$(lChar) & ")"
Uni_VB = Uni_VB & " &H" & Hex$(lChar) & "|"
End If
Next

If CodeEnum = cgANSI Then
Uni_VB = Uni_VB & Chr$(34)
End If

End If
End Function

'usage:
'to insert into ini file
str1 = TextBox1.Text
fstr = Uni_VB(str1)
'Debug.Print fstr
iniFile$ = "C:\CP.ini"
WriteToINI "Section", "Key", fstr, iniFile$

'to display it:
iniFile$ = "C:\CP.ini"
szaTemp = Space(lSize)
lRet = GetPrivateProfileString("Section", "Key", "", szaTemp, lSize, iniFile$)
szaTemp = Left(szaTemp, lRet)
strCode = Split(szaTemp, "|")
fstr = fstr & ChrW$(strCode(i))
TextBox2.Text = fstr