En écrivant vous-même une fonction de lecture de fichier texte, le premier problème que vous rencontrerez est : pour un nom de fichier donné, comment savoir que le fichier disque qu'il représente est bien un fichier texte ? Voici une méthode très simple : traitez le fichier donné comme un fichier binaire non typé, puis lisez chaque octet du fichier séquentiellement. S'il y a un octet dans le fichier avec une valeur égale à 0, alors ce fichier n'est pas un texte. file ; au contraire, si aucun octet du fichier n’a la valeur 0, on peut déterminer que le fichier est un fichier texte. C'est le principe. Voyons comment programmer dans Delphi pour l'implémenter -
Copiez le code comme suit :
functionIsTextFile(FileName:string):booléen;
var
Fs:TFileStream ;
je,taille:entier;
IsTextFile:booléen;
OctetDonnées : octet ;
commencer
ifFileExists(FileName)alors
commencer
Fs:=TFileStream.Create(FileName,fmOpenRead);
IsTextFile :=true ;
je:=0;
taille:=Fs.Taille;
Tandis que(je<taille)etIsTextFiledo
commencer
Fs.Read(ByteData,1);
IsTextFile:=ByteData<>0;
inc(i)
fin;
Fs.Gratuit ;
Résultat :=IsTextFile
fin
autre
Résultat :=faux
fin;