probleme avec stringfield et unicode

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

probleme avec stringfield et unicode

Message par case »

Code : Tout sélectionner

a$="bonjour£bonsoir"
debug stringfield(a$,1,"£")
debug stringfield(a$,2,"£")
unicode

bonjour?bonsoir
bonjour?bonsoir

unicode décoché dans le compilateur

bonjour
bonsoir

est-ce normal ?
ImageImage
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: probleme avec stringfield et unicode

Message par falsam »

Puisque tu peux décocher la prise en charge unicode, c'est que tu effectues ce test avec une version de PureBasic < 5.50.

J'ai effectué ce test avec l’éditeur officiel de PureBasic 5.42 (x86 / x64) en cochant puis décochant la prise en charge unicode.

Le résultat est le même.
bonjour
bonsoir
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: probleme avec stringfield et unicode

Message par case »

j'utilise le 5.42 LTS bizarre

beuh mon exemple poste plus haut fonctionne maintenant...je l'avais pas teste étant donné qu'il s'agit mis a part du texte d'un copier coller de mon code...
Dernière modification par case le ven. 15/juil./2016 2:39, modifié 1 fois.
ImageImage
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: probleme avec stringfield et unicode

Message par case »

en fait cela se produit dans le cas suivant



si on crée un fichier test.txt sous windows avec le bloc note

que tu entre a la main dans le bloc note

bonjour£bonsoir

le problème se produit en unicode

Code : Tout sélectionner

rd=ReadFile(#PB_Any,"test.txt")
a$=ReadString(rd)
CloseFile(rd)

debug StringField(a$,1,"£")
Debug StringField(a$,2,"£")
ImageImage
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: probleme avec stringfield et unicode

Message par Ar-S »

Ton texte doit être en AINSI je suppose.
Essaye avec

Code : Tout sélectionner

a$=ReadString(rd,#PB_Ascii)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: probleme avec stringfield et unicode

Message par Zorro »

avec Pb 5.50 et donc compilation unicode

j'arrive seulement de cette façon

Code : Tout sélectionner



 
rd=ReadFile(#PB_Any,"test.txt",#PB_ASCII)
a$=ReadString(rd,#PB_ASCII)
code=asc(mid(a$,8,1))
CloseFile(rd)

debug "le code ascii (ou unicode suivant la compile) est :"+str(code)
debug "soit le caractere :"+chr(code)

debug StringField(a$,1,chr(code))
Debug StringField(a$,2,chr(code))

je vais tester avec la 5.42 ... je reviens
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: probleme avec stringfield et unicode

Message par Ar-S »

Avec a$=ReadString(rd,#PB_Ascii) ça marche en 5.42 unicode et 5.50

Code : Tout sélectionner

rd=ReadFile(#PB_Any,"test.txt")
a$=ReadString(rd,#PB_Ascii)
CloseFile(rd)

Debug StringField(a$,1,"£")
Debug StringField(a$,2,"£")
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: probleme avec stringfield et unicode

Message par Zorro »

@Case , j'espere que tu ne lance pas ce code sur EPB

je viens de voir qu'effectivement avec mon editeur, ça ne marche pas :oops: :oops:
je vais essayer de comprendre pourquoi !! 8O


je ne comprends d'ailleurs pas
je sauve avec EPB
si je recharge le code avec l'editeur officiel
j'obtiens :

Code : Tout sélectionner

Debug StringField(a$,1,"£")
Debug StringField(a$,2,"£")
au lieu de

Code : Tout sélectionner

Debug StringField(a$,1,"£")
Debug StringField(a$,2,"£")
si je recharge avec EPB c'est bon ... 8O (ps je sauve et charge en #UTF8 ) sinon j'ai du chinois
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: probleme avec stringfield et unicode

Message par Zorro »

c'est bon avec EPB , j'ai corrigé l'archive !!

je sauvais et chargeais les fichiers *.PB en UTF8 !! , j’étais en avance sur mon temps
je viens de découvrir que l'editeur Officiel creer et charge des fichiers en Ascii !!

maintenant le prg Fonctionne compilé sou EPB ! :)
désolé pour le dérangement (si tu codais avec EPB )
et merci , tu m'a trouvé un bug :)
tu peux juste remplacer le Epb.exe ...
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: probleme avec stringfield et unicode

Message par case »

comment savoir si un fichier utilise l’Unicode ou non ?
ImageImage
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: probleme avec stringfield et unicode

Message par falsam »

case a écrit :comment savoir si un fichier utilise l’Unicode ou non ?
Tu utilises l'editeur officiel ou EPB ?
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: probleme avec stringfield et unicode

Message par Ar-S »

Avec un editeur de texte comme notepad++
Tu as un menu "encodage" qui te montre illico le format de ton fichier.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: probleme avec stringfield et unicode

Message par Zorro »

falsam a écrit :Tu utilises l'editeur officiel ou EPB ?
de toute façon,il n'y a plus de différence de format de fichier, entre les deux maintenant ! ;)
Ar-S a écrit :Avec un editeur de texte comme notepad++
Tu as un menu "encodage" qui te montre illico le format de ton fichier.
c'est même comme ça que j'ai vu la différence de format entre l'editeur off (Format ANsi) , et EPB (qui etait au format UTF8 Sans BOOM Image ) :)

case a écrit :comment savoir si un fichier utilise l’Unicode ou non ?
pour repondre a la question :

Code : Tout sélectionner

If ReadStringFormat(0) =#PB_Ascii  ; remplacer par #Pb_UTF8 ou #PB_unicod
	EPB_Ascii=1
Else
	EPB_ascii=0
EndIf
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: probleme avec stringfield et unicode

Message par falsam »

Zorro a écrit :de toute façon,il n'y a plus de différence de format de fichier, entre les deux maintenant !
Tu es bien sur de toi.

Que ce soit Pb 5.50 ou 5.42 le format de fichier peut etre ASCII ou UTF8.

Fichier -> Format de fichier -> Regarde les options possibles.

:idea: D'une manière général, Il serait bon que chaque utilisateur précise si il utilise EPB en début de topic ainsi que le compilateur exécuté.

:idea: Si vous avez des soucis de compilations avec EPB. Commencez par regarder si le souci est le même avec l’éditeur officiel.

Exemple si EPB : [EPB] [5.42 x86]
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: probleme avec stringfield et unicode

Message par Zorro »

falsam a écrit :Que ce soit Pb 5.50 ou 5.42 le format de fichier peut etre ASCII ou UTF8.
heu t'es sur de ça ??
parce que si c'est le cas, faudra que je remodifie mon code !

j'ai fait plusieurs sauvegardes a partir de l'editeur Officiel , c'est toujours de l'ascii (ANSI ) ! ??

les seuls fichiers *.Pb au format UTF8 qui me reste , ont été sauvé par EPB (ancienne version )
ça ne devrai pas trop poser de problemes en principe, quelques petites correction d'accents
EPB sauvera en AScii , donc ....

sinon tout les codes que j'ai , et sauvé par l'editeur officiel, semble etre en Ascii !
Dernière modification par Zorro le ven. 15/juil./2016 12:30, modifié 1 fois.
Répondre