convertire une chaine comptenent
des caractère a accent
Code : Tout sélectionner
; crée par dieppedalle david le 16 mars 2010
; vous pouvez crée une procedure comme la
; ou alors vous prenez la chaine dans un fichier:
; If ReadFile(1, "chaine.txt") ; Si le fichier peut être lu , on continue...
; While Eof(1) = 0 ; Boucle tant que la fin du fichier n'est pas atteinte. (Eof = 'End Of File')
; chaine$ = ReadString(1) ; Affiche ligne par ligne le contenu du fichier
; Wend
; CloseFile(1) ; Ferme le fichier précédemment ouvert
; Else
; MessageRequester("Information","Impossible d'ouvrir le fichier !")
; EndIf
; l'aventage de prendre la chaine directement dans un fichier
; c'est que ont peut convertire aussie les guillemet
; ce qui ne peut pas ce faire avec une procedure
; car l'on ne peut pas mêtre de guillemet
; pure dans une chaine de caractère
; il y as deux mode, 0 et 1
; le mode 0 est pour les caractères ascii standard qui ne sont pas compatible avec la console
; et le mode 1 est pour les caractères ascii en mode console
Procedure Convertion_caractere(Chaine$, Mode)
If mode = 0
For converssion = 1 To Len(chaine$)
caractere$ = Mid(chaine$, converssion, 1)
If caractere$ = Chr(34) Or caractere$ = "à" Or caractere$ = "â" Or caractere$ = "ä" Or caractere$ = "é" Or caractere$ = "è" Or caractere$ = "ê" Or caractere$ = "ë" Or caractere$ = "î" Or caractere$ = "ï" Or caractere$ = "ô"Or caractere$ = "ö" Or caractere$ = "û" Or caractere$ = "ü" Or caractere$ = "ÿ" Or caractere$ = "ç"
; si un caractères est accentuer ou que c'est un guillemet, ont le convertit
convertisseur = 1
Else
convertisseur = 0
EndIf
If converssion = 1 And convertisseur = 0 ; si c'est le premier caractère de la chaine et que et que ya pas de lèttre a convertire
caractere_convertis$ = Chr(34) + caractere$ ; je debute la chaine de caractère par un guillemet
ElseIf converssion = 1 And convertisseur = 1 ; sinon si c'est le premier caractère de la chaine et que ya une lèttre a convertire
caractere_convertis$ = "Chr(" + Str(Asc(caractere$)) + ") + " + Chr(34) ; ; je debute la chaine de caractère par un chr(identifiant caractère) plus un guillemet
ElseIf converssion = Len(chaine$) And convertisseur = 0 ; sinon si c'est le dernier caractère de la chaine et que ya pas de lèttre a convertire
caractere_convertis$ = caractere$ + Chr(34) ; je tèrmine la chaine de caractère par un guillemet
ElseIf converssion = Len(chaine$) And convertisseur = 1 ; sinon si c'est le dernier caractère de la chaine et que ya une lèttre a convertire
caractere_convertis$ = Chr(34) + " + Chr(" + Str(Asc(caractere$)) + ")" ; je tèrmine la chaine de caractère par un + chr(identifiant caractère)
ElseIf converssion < Len(chaine$) And convertisseur = 0 ; sinon si c'est un caractère qui n'est ni au début ni a la fin de la chaine et que ya pas de lèttre a convertire
caractere_convertis$ = caractere$ ; j'enregistrer le caractere
ElseIf converssion < Len(chaine$) And convertisseur = 1; sinon si c'est un caractère qui n'est ni au début ni a la fin de la chaine et que ya une lèttre a convertire
caractere_convertis$ = Chr(34) + " + Chr(" + Str(Asc(caractere$)) + ") + " + Chr(34) ; je met un guillemet + chr(identifiant caractère) + ") + " + un autre guillemet
EndIf
caractere_convertis_precedent$ = caractere_convertis$
converssion_chaine$ = converssion_chaine$ + caractere_convertis$
Next
ElseIf mode = 1
For converssion = 1 To Len(chaine$)
caractere$ = Mid(chaine$, converssion, 1)
Select caractere$
; si un caractères est accentuer ou que c'est un guillemet, ont le convertit
Case Chr(34)
convertisseur = 1
ascii_caractere = 34
Case "à"
convertisseur = 1
ascii_caractere = 133
Case "â"
convertisseur = 1
ascii_caractere = 134
Case "ä"
convertisseur = 1
ascii_caractere = 132
Case "é"
convertisseur = 1
ascii_caractere = 130
Case "è"
convertisseur = 1
ascii_caractere = 138
Case "ê"
convertisseur = 1
ascii_caractere = 136
Case "ë"
convertisseur = 1
ascii_caractere = 137
Case "î"
convertisseur = 1
ascii_caractere = 140
Case "ï"
convertisseur = 1
ascii_caractere = 139
Case "ô"
convertisseur = 1
ascii_caractere = 147
Case "ö"
convertisseur = 1
ascii_caractere = 153
Case "û"
convertisseur = 1
ascii_caractere = 150
Case "ü"
convertisseur = 1
ascii_caractere = 154
Case "ÿ"
convertisseur = 1
ascii_caractere = 152
Case "ç"
convertisseur = 1
ascii_caractere = 128
Default
convertisseur = 0
EndSelect
If converssion = 1 And convertisseur = 0 ; si c'est le premier caractère de la chaine et que et que ya pas de lèttre a convertire
caractere_convertis$ = Chr(34) + caractere$ ; je debute la chaine de caractère par un guillemet
ElseIf converssion = 1 And convertisseur = 1 ; sinon si c'est le premier caractère de la chaine et que ya une lèttre a convertire
caractere_convertis$ = "Chr(" + Str(ascii_caractere) + ") + " + Chr(34) ; ; je debute la chaine de caractère par un chr(identifiant caractère) plus un guillemet
ElseIf converssion = Len(chaine$) And convertisseur = 0 ; sinon si c'est le dernier caractère de la chaine et que ya pas de lèttre a convertire
caractere_convertis$ = caractere$ + Chr(34) ; je tèrmine la chaine de caractère par un guillemet
ElseIf converssion = Len(chaine$) And convertisseur = 1 ; sinon si c'est le dernier caractère de la chaine et que ya une lèttre a convertire
caractere_convertis$ = Chr(34) + " + Chr(" + Str(ascii_caractere) + ")" ; je tèrmine la chaine de caractère par un + chr(identifiant caractère)
ElseIf converssion < Len(chaine$) And convertisseur = 0 ; sinon si c'est un caractère qui n'est ni au début ni a la fin de la chaine et que ya pas de lèttre a convertire
caractere_convertis$ = caractere$ ; j'enregistrer le caractere
ElseIf converssion < Len(chaine$) And convertisseur = 1; sinon si c'est un caractère qui n'est ni au début ni a la fin de la chaine et que ya une lèttre a convertire
caractere_convertis$ = Chr(34) + " + Chr(" + Str(ascii_caractere) + ") + " + Chr(34) ; je met un guillemet + chr(identifiant caractère) + ") + " + un autre guillemet
EndIf
caractere_convertis_precedent$ = caractere_convertis$
converssion_chaine$ = converssion_chaine$ + caractere_convertis$
Next
EndIf
Debug converssion_chaine$
; voici ce que sa donne
Debug ""
EndProcedure
Convertion_caractere("ë, éléphant, électrique, à, éphémère, être, ö, caraïbe, âme,ÿ, île, hôte, ä, etc.", 1)