Une des lignes de mon fichier texte est composée comme suit :
- des valeurs numérique
- des séparateurs (;)
- des caractères NULL chr(0) , ici après 37
- et des caractères retour chariot chr(13) + saut de ligne chr(10) a la fin de la ligne
5283;0572;1040; 760; 91;2086; 10; 2; 10; 0;0310; 3; 37; ;0343; 01
je voulais mettre une pièce jointe pour l'exemple mais je ne vois pas comment ... pouvez vous m'indiquer la démarche, merci.
Le problème si vous recopiez simplement cette ligne dans un fichier txt, les NUL se transforme en blanc.
Je voudrais supprimer les caractères NUL chr(0) hexa(00) et les remplacer par une autre valeur ex:chr(32).
Code : Tout sélectionner
;pour localiser chr(0)
ReadFile(0,"C:\leFichier.txt")
While Eof(0)=0
ligne.s=ReadString(0)
char=FindString(ligne.s,Chr(0),1)
lg=Len(ligne.s)
Wend
CloseFile(0)
ce qui parait normal car La doc dit:
"NUL (NULL) : caractère nul
Typiquement (et spécialement en PureBasic) utilisé pour indiquer la fin d'une chaîne."
Pourtant pour la commande ReadString la doc dit:
" Lit une chaîne de caractères à partir du #Fichier spécifié, jusqu'au prochain retour chariot
(les formats de fichiers texte DOS, Unix et MacOS sont supportés).
Si le paramètre 'Option' n'est pas spécifié, la chaîne de caractères est lue au format UTF-8 si
le programme est compilé en mode unicode, sinon la lecture s'effectue en ASCII. "
Avec un éditeur hexa j'arrive à les localiser, mais je ne trouve pas le moyen
de le faire avec PB 4.31.
Une autre solution pour supprimer ce chr(0) serait de pouvoir enregistrer depuis PB ce fichier sous
un format txt correct, sans passer par Requester, et là je ne vois pas comment procéder non plus.
J'ai essayé de créer un fichier txt avec CreateFile et de copier le fichier dedans avec CopyFile, mais
cela me donne exatement le même fichier.
Je pense que PB peut surmonter ces problèmes, mais avec mes connaissances actuelles je suis bloqué.
Je vous remercie par avance pour votre aide