Les Snippets

Connexion

Convertion de chaine ANSI>ASCII et ASCII>ANSI

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 17/09/2006 15:38:53 et initié par EBArtSoft [Liste]
Date de mise à jour : 24/02/2007 14:10:50
Vue : 17725
Catégorie(s) : Trucs & Astuces, Algorithme, Chaîne de caractères
Langages dispo pour ce code :
- VB6, VBA
- Windev
- VB6, VBA
- VB 2005



Langage : VB6 , VBA
Date ajout : 17/09/2006
Posté par EBArtSoft [Liste]
Public Function OEMConvert(ByRef Text As String, ByVal FromAscii As Boolean) As String
    Static OInit   As Boolean
    Static Os(255) As Byte 'Ascii
    Static Oc(255) As Byte 'Ansi
    Dim t()        As Byte
    Dim i          As Long
    
    If Not OInit Then
        For i = 0 To 255
            Os(i) = i: Oc(i) = i
        Next
        Os(132) = 228: Os(148) = 246: Os(129) = 252: Os(225) = 223: Os(142) = 196: Os(153) = 214: Os(154) = 220: Os(128) = 199
        Os(130) = 233: Os(131) = 226: Os(133) = 224: Os(134) = 229: Os(135) = 231: Os(136) = 234: Os(137) = 235: Os(138) = 232
        Os(139) = 239: Os(140) = 238: Os(143) = 197: Os(144) = 201: Os(147) = 244: Os(150) = 251: Os(151) = 249: Os(20) = 182
        Os(145) = 230: Os(146) = 198: Os(155) = 162: Os(156) = 163: Os(166) = 170: Os(167) = 186: Os(171) = 189: Os(172) = 188
        Os(237) = 216: Os(241) = 177: Os(246) = 247: Os(253) = 178: Os(21) = 167:  Os(157) = 165
        Oc(228) = 132: Oc(246) = 148: Oc(252) = 129: Oc(223) = 225: Oc(196) = 142: Oc(214) = 153: Oc(220) = 154: Oc(199) = 128
        Oc(233) = 130: Oc(226) = 131: Oc(224) = 133: Oc(229) = 134: Oc(231) = 135: Oc(234) = 136: Oc(235) = 137: Oc(232) = 138
        Oc(239) = 139: Oc(238) = 140: Oc(197) = 143: Oc(201) = 144: Oc(244) = 147: Oc(251) = 150: Oc(249) = 151: Oc(182) = 20:
        Oc(230) = 145: Oc(198) = 146: Oc(162) = 155: Oc(163) = 156: Oc(170) = 166: Oc(186) = 167: Oc(189) = 171: Oc(188) = 172:
        Oc(216) = 237: Oc(177) = 241: Oc(247) = 246: Oc(178) = 253: Oc(167) = 21:  Oc(165) = 157
        OInit = True
    End If
    
    If (Len(Text) = 0) Then Exit Function
    
    t = StrConv(Text, vbFromUnicode)
    If FromAscii Then
        For i = 0 To UBound(t)
            t(i) = Os(t(i))
        Next
    Else
        For i = 0 To UBound(t)
            t(i) = Oc(t(i))
        Next
    End If
    OEMConvert = StrConv(t, vbUnicode)
    
End Function
Remarque :
Exemple : OEMConvert(OEMConvert("éàéè",False),True)

Utilisable dans les programmes en mode console ou pour lire un nom de fichier dans une archive zip
Langage : Windev
Date ajout : 18/09/2006
Posté par fabienlaps [Liste]
AnsiVersOEM(ChaineAconvertir)
OemVersAnsi(ChaineAconvertir)
Langage : VB6 , VBA
Date ajout : 18/09/2006
Posté par EBArtSoft [Liste]

Private Declare Function CharToOem Lib "user32" Alias "CharToOemA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long
Private Declare Function OemToChar Lib "user32" Alias "OemToCharA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long

Public Sub Main()
    Debug.Print "From ANSI  : " & OEMConvert("éèà", False)
    Debug.Print "From ASCII : " & OEMConvert("‚Š…", True)
End Sub

Public Function OEMConvert(ByRef Text As String, ByVal FromAscii As Boolean) As String
    OEMConvert = Text
    If FromAscii Then
        OemToChar OEMConvert, OEMConvert
    Else
        CharToOem OEMConvert, OEMConvert
    End If
End Function


Remarque :
Idem en passant par des API
Langage : VB 2005
Date ajout : 24/02/2007
Posté par PCPT [Liste]
DateMAJ : 24/02/2007
Declare Function OemToCharBuff Lib "user32" Alias "OemToCharBuffA" (ByVal lpszSrc As StringByVal lpszDst As String, ByVal cchDstLength As Integer) As Integer
Declare Function CharToOemBuff Lib "user32" Alias "CharToOemBuffA" (ByVal lpszSrc As StringByVal lpszDst As String, ByVal cchDstLength As Integer) As Integer
    Function ASCIItoANSI(ByVal Text As String) As String
        Dim strRet As String = New String("  ", Text.Length)
        OemToCharBuff(Text, strRet, Text.Length)
        Return strRet
    End Function
    Function ANSItoASCII(ByVal Text As String) As String
        Dim strRet As String = New String(" ", Text.Length)
        CharToOemBuff(Text, strRet, Text.Length)
        Return strRet
    End Function

'    EXEMPLE  D'UTILISATION
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As  System.EventArgs) Handles MyBase.Load
        Dim strValue1 As String "€"
        Dim strValue2 As String "Ç"
        MessageBox.Show(strValue1 & "  ->  " & ASCIItoANSI(strvalue1))
        MessageBox.Show(strValue2 & "  ->  " & ANSItoASCII(strValue2))
    End Sub
Remarque :
fonctionne pour un ou plusieurs caractères

Snippets en rapport avec : Chaine, Ascii, Ansi, Convertion, Caractere



Codes sources en rapport avec : Chaine, Ascii, Ansi, Convertion, Caractere

{PHP} FONCTION DE CONVERSION D'UNE CHAINE DE CARACTÈRE VERS UN TYPAGE UNIX
Bonjour, Alors cette fonction permet de convertir n'importe quelle chaine de caractère en une équiv...

{C / C++ / C++.NET} GSTRING - GESTION DES CHAINES DE CARACTÈRES
Voici une petite classe permettant de gérer les chaines de caractères tout comme les std::string, av...

{Assembleur} LECTURE ET ECRITURE D'UN CARACTERE ET D'UNE CHAINE DE CARACTERE !
bon j'ai essayer d'utiliser des interruption pour la première fois je suis vraiment débutant en ass...

{Delphi} DHEX, OUTILS D'AIDE POUR LE DEVELOPPEMENT, TABLE ASCII / DEC / HEX / BIN ...
DHEX est un outils qui permet d'avoir une table ASCII complete avec la representation des caracteres...

{Visual Basic, VB6, VB.NET, VB 2005} MODULE COPIER UN DOSSIER AU MOYEN DE FSO OU DE DOS OU LES DEUX À LA FOIS
'Explication 'Sur les premières version NT le fso n'est pas reconnu 'Il faut donc passer pas un...

{Javascript / DHTML} LIBRAIRIE UTF8 (CODAGE ET DECODAGE À LA VOLÉE )
Ma librairie va vous permettre de coder et decoder en UTF8 vos chaines de caracteres Cela peut para...

{C / C++ / C++.NET} CLASSE DE GESTION DE CHAINE DE CARACTERES SECURISEE [VC++2K5]
Ca ne doit pas être la seule du genre mais regardez le source et vous comprendrez par vous meme...

{C / C++ / C++.NET} EDITEUR DE TEXTE EN LIGNE DE COMMANDE - C - DEVCPP - CHAINES DE CARACTÈRES
Un petit éditeur de texte qui fonctionne en ligne de commande c'est à dire en mode texte. Pour savo...

{C / C++ / C++.NET} SETIOSFLAGS ET RESETIOSFLAGS
Ce code présente différentes valeurs (paramètres) que peut adopter le manipulateur setiosflags. Cha...

{C / C++ / C++.NET} CLASSE CCHAINE
Une petite classe équivalente à la classe MFC CString mais en plus pratique...