[Resolu] caractères exotiques avec ReadString()

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Ouaf-Ouaf
Messages : 212
Inscription : dim. 11/juil./2004 9:07

[Resolu] caractères exotiques avec ReadString()

Message par Ouaf-Ouaf »

[Edit :
  • Ô toi, explorateur eventuel du forum des temps futures, si tu as un problème existentiel de ReadString, ce qui suit éclaireras peut-être ta quête ! Ecoute donc l'Oracle Ouaf-Ouaf :

    Lors-ce-que tu demandes à Pure de lire une string que tu as precedement ecrite, pense lors de ton ecriture à prevoire un espace à la fin de cette dernière, pour ne point deborder sur les informations suivantes !
    FileSeek( ) et Loc( ), pourront t'aider, Questionne eventuellement WriteStringN( ), Peut-être que lui aussi saurât te guider !

/]



Salut,

Je suis en train de modifier des trucs dans mon système de sauvegarde..

En lisant le resultat de ces nouvelles sauvegardes, je me tappe un bug etrange sur les string. Dans le visualisateur de variables, je me retrouve avec :

Inventayre(1, 0)\Nom[0] = "Haubert du Valaha"


C'est le premier objet de la liste, le seul qui marche. Son nom est sencé être juste "Haubert du Valaha", donc mon ReadString "vas trop loin dans la lecture".

Je trouve même pas ces caractères dans l'aide sur les car ASCII de pure :o.

Ca evoque quelque chose a quelqu'un ?
Dernière modification par Ouaf-Ouaf le dim. 31/août/2008 19:41, modifié 3 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: caractères exotiques

Message par Backup »

Ouaf-Ouaf a écrit :
Ca evoque quelque chose a quelqu'un ?
oui !! :D

j'avais deja fait part de ce "bug"

il viens du fait que purebasic ne control pas si l'on depasse la fin de la zone DATA

d'ailleurs j'avais fait un code qui permettais de "voir" une partie de la Ram en utilisant ce bug !! :D



j'en avais parlé ici :
http://www.purebasic.fr/french/viewtopi ... light=data

si tu lance le prg avec le debugger actif, tu devrais avoir un depassement de data reporté !! :D
Avatar de l’utilisateur
Ouaf-Ouaf
Messages : 212
Inscription : dim. 11/juil./2004 9:07

Message par Ouaf-Ouaf »

j'avais fait un code qui permettais de "voir" une partie de la Ram en utilisant ce bug !!
Tiens, c'est avec ça que t'avais fais ce prog :o
C't'intéressant.

Je me demandais si il fallait pas que je vois avec
WriteStringN(#Fichier, Texte$ [, Options])
Ou que je fasse un FileSeek( trucmuche * N_de_l'objet ), afin de laisser une place determinée à cette string, qui se trouve à la fin des variables de l'objet.

Pour l'instant l'objet suivant bug, la première var est erronée... C'est surement ou ..



Tu t'y connais un peu sur le "comment pure determine la taille d'un ReadString() " ?
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Ouaf-Ouaf a écrit : Tu t'y connais un peu sur le "comment pure determine la taille d'un ReadString() " ?

il s'agit des 2 caracteres de fin chr(10) et chr(13) (un retour a la ligne en fait !! :D )


utilise WriteStringN(#Fichier, Texte$ [, Options]) dans ce cas !! :D
parcequ'il ecrit directement les 2 chr() !!

ou alors supprime ces 2 caractères !!

avec un

Code : Tout sélectionner

a$="Dobro"
a$=Left(a$,Len(a$)-2)
Debug a$
Avatar de l’utilisateur
Ouaf-Ouaf
Messages : 212
Inscription : dim. 11/juil./2004 9:07

Message par Ouaf-Ouaf »

J'ai crus au problème d'encodage,

Dans le .pb où j'enregistrais le compilateur est reglé sur

"Encodage du texte : Texte Brut"
"Caractère de fin de ligne :CRLF"

J'ai essayé d'activer l'option #PB_Ascii sur le Write et Read String, mais ça m'as donné le même resultat.

Finalement j'ai fais comme ça à l'ecriture :
...
Seek = Loc( 0 )
WriteString( 0, "Texte" )
FileSeek( 0, Seek + 20 )
...
Reste du fichier
Et à l'ecriture je Trim( ReadString( 0 ) ) comme ça j'contourne le prob ...
et j'peux passer à autre chose ! :)

Merci quand même Dobwo, malgré les violantes et profondes dissensions métaphysiquo-existentiello-spiritueloïdes qui nous separent, de lire et repondre à ma question. :)

Edit :

Ah merci Dobwo, je viens de voir ton edition, super.
Merci =)
Répondre