Gambas France BETA


Pas de compte ? Incription

Difficultés à mettre en fichier un booléen.

1
AuteurMessages
Foromus#1 Posté le 5/2/2010 à 11:51:00
Bonjour chers amis Gambistes

Voilà, je veux mettre deux données en fichier : un nom, de type String, et un drapeau type booléen.
Je déclare et j'enregistre par :


PUBLIC Prenom AS String
PUBLIC Arrete AS Boolean

.........
Prenom = "Jojo"
Arrete = 0
...........

PUBLIC SUB Creerfichier()
DIM FichierData AS File
FichierData = OPEN Application.path & "/Datas/Jojo.txt" FOR CREATE
PRINT #FichierData, Prenom
PRINT #FichierData, Arrete
CLOSE #FichierData

Cela fonctionne, je peux lire le fichier Jolo, avec un lecteur de fichier, je trouve bien le nom "Jojo" et False.

Ensuite, si je veux lire mon fichier ( par ailleurs ), je déclare et je lis :

PUBLIC Prenom AS String
PUBLIC Arret AS Boolean

PUBLIC SUB lirefichier()
DIM FichierData AS File
FichierData = OPEN Application.path & "/Datas/Jojo.txt" FOR READ
LINE INPUT #FichierData, Prenom
LINE INPUT #FichierData, Arret
CLOSE #FichierData

Et là, bizarre, mon drapeau Arret se retrouve systématiquement à True...

J'ai placé un point d'arrêt, juste sur la ligne qui lit le drapeau : avant lecture, Arret est déjà a False (normal, il n'est pas encore affecté), après lecture, il est à True, alors que dans le fichier, il est à False.
J'ai mis deux orthographes différentes, Arret et Arrete, justement quand j'ai vu que ça coinçait. La modification n'a rien arrangé.

Et ça, ça m'embête bien...
Avez-vous une idée ?
jeanyvon#2 Posté le 5/2/2010 à 12:00:00
Gambas? Ma! Et gustotu n'as pas besoin de booléen pour ça : un string que tu lis "oui" ou "non fera l'affaire
A+
JY
Vieillir? On peut retarder mais pas y échapper!
Foromus#3 Posté le 5/2/2010 à 12:10:00
Merci, mais c'est ce que jai déjà fait dans une application précédente, non pas avec un String mais un Integer. Peut-être même qu'en mettant un Byte, avec zéro et un, ça suffit.
Dommage, j'aimais bien les booléens....
gambix#4 Posté le 10/2/2010 à 09:55:00
Faire simple !Tu peu utiliser les booléen ...


mais en générale true = -1 et false =0


donc utilise bValue = Cbool(sValue) ou sValue est la valeur récuprée...
idem pour l'écrtiture dans le fichier ... si tu fait Print True alors print va marquer "True" dans ton fichier


Bon c'est pas gènant mais tu peut aussi faire Print Cint(True) qui la va enregistrer -1
Moins de texte dans une signature c'est agrandir son espace.
Foromus#5 Posté le 10/2/2010 à 10:03:00
Oh, je pense que je ne vais pas trop m'empoisonner la vie avec ça, après tout, un byte fait l'affaire, et il peut toujours renseigner un booléen si besoin s'en fait sentir. Et en plus, avec un byte, j'ai 255 possibilités au lieu de 2, et ça ne prend pas beaucoup plus de place...
gambix#6 Posté le 10/2/2010 à 10:06:00
Faire simple !en fait oui dans ton cas c'est pas plus intéressant ... ça le serait si tu utilisait des fichiers binaires....
Moins de texte dans une signature c'est agrandir son espace.
1