Je viens chercher vos lumières sur un problème qui me bloque depuis un certain temps et pour lequel je n'ai trouvé aucune réponse...
Je souhaite vérifier un fichier texte dans lequel se trouvent des caractères NULL (0 en décimal et 00 en hexa), le problème vient du fait que lorsque je lis une ligne qui contient ce caractère avec FileReadLine, la lecture de la ligne s'arrête dès que la fonction trouve NULL, je ne peux donc pas trouver de caractère NULL et encore moins les corriger. Pire, si je recopie ma ligne nettoyée dans un autre fichier, j'ai perdu toutes les informations qui se trouvaient après le ou les caractère(s) NULL.
J'ai essayé le code suivant pour trouver la solution, sans succès :
Code : Tout sélectionner
#include <String.au3>
$Log = FileOpen("LogFile.log", 2)
$file = FileOpen("monfichier.txt", 0)
$file2 = _StringToHex($file)
$line = FileReadLine($file, 1)
FileWriteLine($Log, " Mode lecture classique : " & $line)
$line = _StringToHex($line)
$line = StringReplace($line,Hex(0), " ")
FileWriteLine($Log, " Mode lecture classique, string transformé en Hexa : " & $line)
$line = FileReadLine($file2, 1)
FileWriteLine($Log, " Mode lecture classique, fichier transformé en Hexa avant FileReadLine : " & $line)
FileClose($file)
$file = FileOpen("monfichier.txt", 16)
$file2 = _StringToHex($file)
$line = FileReadLine($file, 1)
FileWriteLine($Log, " Mode lecture binaire : " & $line)
$line = _StringToHex($line)
$line = StringReplace($line,Hex(0), " ")
FileWriteLine($Log, " Mode lecture binaire, string transformé en Hexa : " & $line)
$line = FileReadLine($file2, 1)
FileWriteLine($Log, " Mode lecture binaire, fichier transformé en Hexa avant FileReadLine : " & $line)
FileClose($file)
FileClose($Log)