Page 1 sur 1

[R] Enlever les accents

Posté : mer. 04 juin 2008 11:03
par babou
Bonjour :D

Je suis entrain de lister les fichiers d'un repertoire et je les ecris en majuscule dans un fichier xml.
Seulement j'ai un soucis d'accent, les noms des fichiers listés en majuscule dans le fichier .xml, sont ecrit avec les accents. Je souhaite enlever ses accents car la base dans laquel j'injecte ensuite ne gère pas les accents :( .

Pourriez vous me dire comment procéder, je pensais transformer le charactereset du fichier mais je ne sais pas comment faire. Peut etre existe t'il une fonction dans autoit ou une variable, mais pareil je ne la connais pas.

Voici comment je procède :

Code : Tout sélectionner

Const $FLAG2CHECK = "FLG;OK;REM;IMP"
Const $SECTION_TITLE = "DIRECTIONS;APPLICATIONS;A_DESINSTALLER;IMPRIMANTES"
Const $PATH = "C:\SI"
Const $OUTDIR = "C:\PRECISION\Data\CustomInventory"
Const $FILENAME = "CustomInventory.xml"

Dim $VAR, $I, $FILE, $SEARCH, $VAR2, $TXT

;~ Analyse des flags présents dans C:\SI et génération d'un contenu XML dans $TXT

$VAR = stringsplit($FLAG2CHECK,";")
$VAR2 = StringSplit($SECTION_TITLE,";")

$TXT = "<?xml version=" &chr(34) &"1.0" &chr(34) & " encoding=" & chr(34) &"UTF-8" &chr(34) & " ?>" & @CR
$TXT = $TXT & "<CUSTINVENTORY>" & @CR
For $I = 1 to $VAR[0]
    $SEARCH = FileFindFirstFile($PATH &"\*." & $VAR[$I])
    If $SEARCH <> -1 Then
        $TXT = $TXT & "<OBJECT name=" &chr(34) & $VAR2[$I] &chr(34) & " type=" &chr(34) & $VAR2[$I] &chr(34) &">" & @CR
        $TXT = $TXT & "<ATTRIBUTES>" & @CR
        While 1
            $FILE = FileFindNextFile($SEARCH) 
            If @error Then ExitLoop
            $FILE = STRINGUPPER($VAR[$i] & "-" & Stringreplace(STRINGLEFT($FILE,StringInStr($FILE,".",0,-1)-1),".","-"))
            $TXT = $TXT & "<ATTRIBUTE name=" & chr(34) & stringupper($FILE) & chr(34) & " type=" & chr(34) & "String"  &chr(34) & ">" & stringupper($FILE) & "</ATTRIBUTE>" & @CR
        wend
        $TXT = $TXT & "</ATTRIBUTES>" & @CR
        $TXT = $TXT & "</OBJECT>" & @CR
    endif
next
$TXT = $TXT & "</CUSTINVENTORY>" & @CR

;~ Il faut maintenant écrire le contenu de $TXT dans le fichier CustomInventory

if not fileexists($OUTDIR) then DirCreate($OUTDIR)

$FILE = FileOpen($OUTDIR & "\" & $FILENAME,2)
if @error = - 1 Then
    msgbox(16,"Erreur !","Impossible d'ouvrir " & $OUTDIR & "\" & $FILENAME & " en écriture.")
    exit
Else
    Filewrite($FILE,$TXT)
EndIf
FileClose($FILE)
 

Merci beaucoup

Re: [..] Enlever les accents

Posté : mer. 04 juin 2008 14:10
par Tlem
Ceci répond t-il à vos attentes ?
http://www.autoitscript.fr/forum/viewto ... =21&t=1072

Re: [..] Enlever les accents

Posté : mer. 04 juin 2008 14:26
par babou
Oui carrement :D

Merci beaucoup