Page 1 sur 1

[Resolu] caractères exotiques avec ReadString()

Publié : dim. 31/août/2008 18:44
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 ?

Re: caractères exotiques

Publié : dim. 31/août/2008 19:08
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

Publié : dim. 31/août/2008 19:28
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() " ?

Publié : dim. 31/août/2008 21:28
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$

Publié : lun. 01/sept./2008 1:29
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 =)