Par contre ton fichier Dico2.pb tu peux quand même l'améliorer.
Que de répétitions !
Essaye ça, non testé avec ce code car j'ai pas toutes les archives mais teste donc et dis moi si ça passe.
Code : Tout sélectionner
Enumeration
#src ; sera 0
#dst ; sera 1
EndEnumeration
Procedure.s ReplaceAccents(Chaine$)
; by Falsam
; Modif : Ar-S
Chaine$=LCase(Chaine$) ; On passe tout en min histoire que ce soit propre et que le ReplaceString() dure 2 x moins longtemps
Protected i
Protected CharToFind.s="àáâãäåßçèéêëìíîïñòóôõöÞùúûüýÿ"
Protected CharToReplace.s="aaaaaabceeeeiiiinooooopuuuuyy"
For i=1 To Len(CharToFind)
ReplaceString(Chaine$, Mid(CharToFind,i,1), Mid(CharToReplace,i,1),#PB_String_InPlace, 1)
Next
; vérif pour les caractères spéciaux passant de 1 à 2 caractères
Chaine$ = ReplaceString(Chaine$, "œ", "oe")
Chaine$ = ReplaceString(Chaine$, "æ", "ae")
ProcedureReturn Chaine$
EndProcedure
chemin$="c:\.Trash-999\"
If ReadFile(#dst, chemin$+"Liste de motsItaliens.txt")
While Eof(#dst) = 0 ; loop as long the 'end of file' isn't reached
mot$=ReadString(#dst)
ReplaceAccents(mot$) ; ICI
mot2$=Mid(mot$,2,Len(mot$)-1)
a$=Left(mot$,1)
Debug mot$
If OpenFile(#src, chemin$+"dico-"+a$+Str(Len(mot$)))
ReplaceAccents(mot$) ; ICI
x=Len(mot$)
For i=10 To 96
a$=Chr(i)
mot$=ReplaceString(mot$,a$,"")
Next
For i=123 To 255
a$=Chr(i)
mot$=ReplaceString(mot$,a$,"")
Next
For i=97 To 122
a$=Chr(i)+Chr(i)+Chr(i)
mot$=ReplaceString(mot$,a$,"")
Next
Debug mot$
If x<>Len(mot$)
Goto ok45
EndIf
While Eof(#src) = 0 ; loop as long the 'end of file' isn't reached
mot3$=ReadString(#src)
If mot3$=mot2$
Goto ok45
EndIf
Wend
WriteStringN(#src, mot2$)
ok45:
CloseFile(#src)
EndIf
Wend
ok60:
CloseFile(#dst)
Else
MessageRequester ("Erreur", "Lecture du fichier " + chemin$ + "Liste de motsItaliens.txt" + " impossible",#MB_OK) ;-test
EndIf