Lecture d'un fichier texte en remontant vers le début fichier

cs_ZZZEvelyne Messages postés 8 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 9 février 2009 - 10 juil. 2008 à 21:49
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 13 juil. 2008 à 18:56
Bonjour à tous,

Je cherche comment, dans Delphi, lire les enregistrements en remontant vers le début du fichier....

Dans un premier temps, je lis le fichier de façon habituelle :

    Repeat
       Readln(fic,Enregistrement);
    Until ((CompareStr('12',Copy(Enregistrement,1,2))=0) OR (Eof(fic)));
    ShowMessage('Je suis sur l'enregistrement 12');

Puis, je veux revenir sur la ligne depuis laquelle je suis partie, donc, remeonter le fichier....

Si quelqu'un a une idée, cela m'interresse beaucoup !!!

Merci !!!!!!

ZZZEvelyne

4 réponses

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
10 juil. 2008 à 22:05
Bonsoir,

Utilises une StringList et sers toi de l'index

cantador
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
11 juil. 2008 à 13:50
tout a fait, TStringList si ton fichier texte n'est pas trop gros.

function FaireUnTruc(const str: string; const index: integer): integer;
begin
  ...  Traitement de str et index ...
  ... reussite
   result := 0;
  ... reussite et doit quitter
   result := 1;
  ... erreur
   result := -1;
end;

procedure Machin;
var
  TSL : TStringList;
  S : string;
  N : integer;
begin
  TSL := TStringList.Create;
  try
    for N := TSL.Count-1 downto 0 do
    begin
      S := TSL.Strings[N];
      case FaireUnTruc(S, N) of
        -1: { oops, un probleme }
        0 : { a reussi l'operation }
        1 : { a reussi et doit quitter maintenant} Break; 
      end;
    end;
  finally
    TSL.Free;
  end;
end;

<hr size="2" width="100%" />
0
cs_ZZZEvelyne Messages postés 8 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 9 février 2009
11 juil. 2008 à 14:10
Ok !!!!

Merci pour votre aide, je vais partir sur cette piste.
Mais c'est quand même curieux qu'on ne puisse pas remonter un fichier texte......

Bonne journée à tous !!!

ZZZEvelyne
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
13 juil. 2008 à 18:56
"Mais c'est quand même curieux qu'on ne puisse pas remonter un fichier texte......"



non c'est normal par defaut.
pour lire un fichier a l'envers c'est un chouille plus compliqué et plus lents surtout.
a moins de le mettre a l'envers en memoire, mais c'est pas top quand meme.

<hr size="2" width="100%" />
0
Rejoignez-nous