Pedro
Nombre de messages : 1594 Date d'inscription : 19/01/2014
| Sujet: Problème avec SearchStringList. Dim 26 Juil 2020 - 12:56 | |
| Bonjour. @Klaus. Je rencontre un problème avec cette fonction. Les résultats sont différents, selon le mode (0,1 ou 2). Le problème vient du fait que la variable e$ contient un caractère accentué (cependant nécessaire en espagnol). Merci de ton aide. - Code:
-
dim e$, f$, mode%, re$, res%, te$ mode%=2
dll_on "kgf"
' https://mon-partage.fr/f/B7CHttrt/ f$="formes_verbales_espagnol_français_sans_complement.txt" res%=dll_call2("CreateStringList",1,mode%) if res%=0 then res%=dll_call2("LoadStringList",1,adr(f$))
te$=string$(100," ") e$="intentará#" res%=abs(dll_call3("SearchStringList",1,adr(e$),adr(te$)))
e$=string$(255," ") res%=dll_call3("ReadStringList",1,res%,adr(e$)) message trim$(e$) terminate
| |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème avec SearchStringList. Dim 26 Juil 2020 - 13:06 | |
| Je veux bien tester, mais mets-moi le lien vers le fichier formes_verbales... stp ! | |
|
Pedro
Nombre de messages : 1594 Date d'inscription : 19/01/2014
| Sujet: Problème avec SearchStringList. Dim 26 Juil 2020 - 13:08 | |
| Le lien est indiqué dans le code, Klaus, sur mon-partage.fr.
| |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème avec SearchStringList. Dim 26 Juil 2020 - 13:41 | |
| Oups... désolé. Je télécharge. | |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème avec SearchStringList. Dim 26 Juil 2020 - 14:19 | |
| J'ai regardé ce problème. En effet, le résultat est différent en fonction du mode de tri. Mode 0 = aucun tri, recherche séquentielle, toujours à partir du début du fichier. Très lent. Mode 1 = tri en mode Windows, et ça pose problème avec les caractères accentués ui ne corresôndent pas à la langue choisie pour le système. A déconseiller dans ce cas. Mode 2: tri ASCII, basé sur la valeur binaire des caractères. Très rapide, car recherche par dichotomie, et fournit le bon résultat quelque soit la langue choisie. Recommandé ici. J'ai mis le problème en évidence en sauvegardant le fichier après son chargement: - Code:
-
' test_Pedro_ReadStringList.bas
dim e$, f$, ft$, mode%, re$, res%, res1%, res2%, te$ mode%=2
dll_on "kgf"
' https://mon-partage.fr/f/B7CHttrt/ f$="formes_verbales_espagnol_français_sans_complement.txt" mode% = 1 res%=dll_call2("CreateStringList",1,mode%) if res%=0 then res%=dll_call2("LoadStringList",1,adr(f$))
ft$ = "formes_verbales_espagnol_français_sans_complement_trié.txt" res% = dll_call2("SaveStringList",1,adr(ft$))
te$=string$(100," ") e$="intentará#" res1%=abs(dll_call3("SearchStringList",1,adr(e$),adr(te$))) message "res1%="+str$(res1%)+" "+trim$(te$)
e$=string$(255," ") res2%=dll_call3("ReadStringList",1,res1%,adr(e$)) message "res1%="+str$(res1%)+" res2%="+str$(res2%)+" "+trim$(e$) terminate Si tu regardes le fichier ormes_verbales_espagnol_français_sans_complement_trié.txt avec NotePad++ par exemple, out en gardant le résultat de ce petit programme affiché, tu verras le problèùe immédiateùent: en mode 1, "intentará#" se situe APRES "intentara#" (logique selon le code ASCII), mais la recherche en mode Windows ne tient pas compte de l'accentuation non française. En mode 2, tout se passe bien. | |
|
Pedro
Nombre de messages : 1594 Date d'inscription : 19/01/2014
| Sujet: Problème avec SearchStringList. Dim 26 Juil 2020 - 14:50 | |
| Merci d'avoir pris le temps de regarder Klaus. Je vais donc toujours utiliser le mode 2 dorénavant. | |
|
Contenu sponsorisé
| Sujet: Re: Problème avec SearchStringList. | |
| |
|