Fin de fichier prématurée. [Résolu]

Signaler
Messages postés
76
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
10 août 2010
-
cs_PHIL63
Messages postés
76
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
10 août 2010
-
Bonsoir à tous,
Je cherche à lire ligne par ligne un fichier texte. Jusque là pas de souci :)
Sur certains fichiers celà fonctionne parfaitement mais sur d'autres le programme sort de sa boucle de lecture certainement du fait d'une fin de fichier prématurée pour lui ( while not eof(F) ).
J'ai cherché dans l'aide de Delphi (D6) et j'ai trouvé une procédure nommée "SetCRLFMode" en faisant une recherche sur eof().

*********************
Détermine les conventions de fin de ligne et de fin de fichier des entrées/sorties des fichiers texte.

Unité

System

Catégorie

routines de fichiers texte

procedure SetCRLFMode(var T: Text; Enable: Boolean);

Description
Appelez SetCRLFMode pour déterminer la façon dont les routines de fichiers texte trouvent ou marquent la fin d'une ligne et la fin d'un fichier. Les routines concernées incluent Read, Write, Readln, Writeln, Eof, Eoln, SeekEof et SeekEoln. Si vous n'appelez pas SetCRLFMode, les conventions de fin de ligne et de fin de fichier sont déterminées par la valeur de la variable DefaultCRLFMode.

Par exemple :
var
  MyFile: Text;
begin
  SetCRLFMode(MyFile, True);
...
remplace DefaultCRLFMode pour activer les sauts de ligne DOS et les marqueurs EOF pour MyFile.
***********************

Le problème c'est que Delphi ne reconnait pas cette procédure SetCRLFMode et que j'ai droit à un joli "Identificateur non déclaré : SetCRLFMode"....
OK me dis-je, j'ai oublié de déclarer une unité.... si je rajoute l'unité "System" j'ai droit à un message d'erreur comme quoi l'unité est redéclarée ....

Donc si quelqu'un avait une idée

Merci
 

Philippe DROUET

4 réponses

Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
27
uses Classes;

var
  TextFile : TStringList;
begin
  TextFile := TStringList.Create;
  try
    TextFile.LoadFromFile('C:\monfchier.txt');
    { traitement }
    TextFile.SaveToFile('C:\MonFichier.copie.txt'); // sauvegarde si necessaire
  finally
    TextFile.Free;
  end;
end;

<hr size="2" width="100%" />
Messages postés
3809
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
25 janvier 2020
35
Salut,
pourquoi ne pas utiliser un TStringList

il se charge de découper le fichier en ligne juste en le changeant

sinon si tu veux continuer à utiliser ta méthode donne nous le code qui charge, parcourt et contabilise tes lignes.

 
@+
Cirec

<hr siz="" />
Messages postés
3809
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
25 janvier 2020
35
arf ... j'ai trop trainé pour poster mon message

 
@+
Cirec

<hr siz="" />
Messages postés
76
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
10 août 2010

Merci à tous les deux :)
Effectivement, je suis passé par une TStringList et ça fonctionne :)

Merci encore.

Philippe DROUET