Conversion de chaine de caractères

Conversion de chaine de caractères

Messagepar Stephane Maillard » 19 Mars 2008 à 10:07

Code : Tout sélectionner
Const OS_TRANSLATE_NATIVE_TO_LMBCS=0 'Translate platform-specific to LMBCS
Const OS_TRANSLATE_LMBCS_TO_NATIVE=1 'Translate LMBCS to platform-specific
Const OS_TRANSLATE_LOWER_TO_UPPER=3 'current int'l case table
Const OS_TRANSLATE_UPPER_TO_LOWER=4 'current int'l case table
Const OS_TRANSLATE_UNACCENT=5 'int'l unaccenting table
Const OS_TRANSLATE_LMBCS_TO_UNICODE=20
Const OS_TRANSLATE_LMBCS_TO_UTF8=22
Const OS_TRANSLATE_UNICODE_TO_LMBCS=23
Const OS_TRANSLATE_UTF8_TO_LMBCS=24

Declare Function OSTranslateToLMBCS% Lib "nnotes" _
Alias "OSTranslate" (Byval nTranslateMode%, Byval dwIn$, Byval nLength%, Byval lpszOut As Lmbcs String, Byval nOutLength%)
Declare Function OSTranslateToUTF8% Lib "nnotes" _
Alias "OSTranslate" (Byval nTranslateMode%, Byval dwIn As Lmbcs String, Byval nLength%, Byval lpszOut As String, Byval nOutLength%)


Fonction d'exemple
Code : Tout sélectionner
Function ConvertLineEncoding(InputLine As String, ConvertString As String, LineLen As Integer, EncodingConv As String) As Integer
Dim fullLine As String
Dim ConvertedLine As String
Dim ConvertedLineEndPos As Long
Dim EncodingConvertCode As Integer

ConvertLineEncoding=0

ConvertedLine=String(linelen,0)
Select Case EncodingConv
Case "UTF8_TO_LMBCS"
EncodingConvertCode=OS_TRANSLATE_UTF8_TO_LMBCS
Call OSTranslateToLMBCS(EncodingConvertCode, Byval InputLine, linelen, Byval ConvertedLine, linelen)
Case "UNICODE_TO_LMBCS"
EncodingConvertCode=OS_TRANSLATE_UNICODE_TO_LMBCS
Call OSTranslateToLMBCS(EncodingConvertCode, Byval InputLine, linelen, Byval ConvertedLine, linelen)
Case "LMBCS_TO_UTF8"
EncodingConvertCode=OS_TRANSLATE_LMBCS_TO_UTF8
Call OSTranslateToUTF8(EncodingConvertCode, Byval InputLine, linelen, Byval ConvertedLine, linelen)
End Select

ConvertedLineEndPos=Instr(ConvertedLine,Chr$(0))
If ConvertedLineEndPos>1 Then
ConvertString=Left(ConvertedLine, ConvertedLineEndPos-1)
Else
ConvertString=ConvertedLine
End If

End Function
Exemple pour l'utilisation de la fonction
Code : Tout sélectionner
Line Input #fileNum%, txt$
Call ConvertLineEncoding(txt, txt, Len(txt), "UTF8_TO_LMBCS")


Call ConvertLineEncoding(txt, txt, 3*Len(txt), "LMBCS_TO_UTF8")
Cordialement

Stéphane Maillard
Avatar de l’utilisateur
Stephane Maillard
Lord of DominoArea
Lord of DominoArea
 
Message(s) : 8695
Inscrit(e) le : 16 Déc 2004 à 01:10
Localisation : Bretagne

Retour vers API