Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Textzeile in Txt auslesen (https://www.delphipraxis.net/25697-textzeile-txt-auslesen.html)

Alexander Roth 10. Jul 2004 17:48


Textzeile in Txt auslesen
 
Wie lese ich in einer Txt Datei eine ganz bestimmte Zeile aus, zB. Zeile 576 :?:

Nikolas 10. Jul 2004 17:50

Re: Textzeile in Txt auslesen
 
Du machst 576 mal ein readln. Dann hast du die Zeile. Andere Möglichkeit wär seek, aber ich bin nicht sicher ob das auch bei .txt geht.

Aenogym 10. Jul 2004 17:54

Re: Textzeile in Txt auslesen
 
ganz einfach so:

Delphi-Quellcode:
var sl: TStringList;
    zeile: string;
begin
  sl := TStringList.Create;
  sl.loadfromfile('diedatei.txt');
  zeile := sl[576];
  sl.free;
end;
dann hast du zeile 576 in der variable "zeile" ;)

Aenogym

Alexander Roth 10. Jul 2004 17:56

Re: Textzeile in Txt auslesen
 
In einer Schleife, ist das nicht ein bisschen umständlich?

Alexander Roth 10. Jul 2004 17:59

Re: Textzeile in Txt auslesen
 
Die obere Antwort bezieht sich auf das vorherige. Mein Browser hat es nicht so schnell aktualiesiert.

Gute Idee.

Danke.

Nikolas 10. Jul 2004 18:01

Re: Textzeile in Txt auslesen
 
Is schon recht umständlich. Die Methode von Aenogym ist da viel besser.

Tipp: Du kannst deinen Beitrag auch editieren und musst nicht immer einen neuen Beitrag schreiben.

Alexander Roth 16. Jul 2004 05:28

Re: Textzeile in Txt auslesen
 
Also, bei mir compiliert er zwar fehlerfrei, aber beim Auwsführen bringt er einen Fehler.
Ich habe mal alles unwichtige aus meiner Procedure gestrichen und es hier dargestellt.
Erkennt vielleicht jemand was daran falsch ist???
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var    sl: TStringList;
       f:textfile;

begin

assignfile(f, 'E:\Delphi\Mathematik\Aufgelistete Primzahlen.txt');
rewrite(f);
write(f, '2');

    while j < aerg do
      begin
        sl.loadfromfile('E:\Delphi\Mathematik\Aufgelistete Primzahlen.txt');
        primzahl:=strtoint64(sl[j]);
        sl.free;
      end;
closefile(f);
end;
:?:

alcaeus 16. Jul 2004 05:53

Re: Textzeile in Txt auslesen
 
Ich hab hier im Moment kein Delphi, und weiß eben nicht ob LoadFromFile mit einer geöffneten Datei zurechtkommt. Muss die Datei denn unbedingt in der ganzen Prozedur geöffnet sein?

Greetz
alcaeus

Alexander Roth 16. Jul 2004 06:05

Re: Textzeile in Txt auslesen
 
Ja gut, ich habs jetzt umgestellt, klappt aber trotzdem noch nicht. Der Computer hat nun einen seiner anderen Fehler ausgespuckt beim ausführen.
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var   sl: TStringList;
    f:textfile;

begin

assignfile(f, 'E:\Delphi\Mathematik\Aufgelistete Primzahlen.txt');
rewrite(f);
write(f, '2');
closefile(f);
sl := TStringList.Create;

    while j < aerg do
      begin
        sl.loadfromfile('E:\Delphi\Mathematik\Aufgelistete Primzahlen.txt');
        primzahl:=strtoint64(sl[j]);
        sl.free;
      end;
end;

Duffy 16. Jul 2004 06:27

Re: Textzeile in Txt auslesen
 
Hallo Alexander Roth,
habe mal deinen Code kommentiert. Ich denke Du siehst selber was falsch ist. Ferner würde die Stringliste auch mit einem Fehler versagen. Du wirbelst da mit j und aerg rum, aber was ist wenn deine Liste nur einen String enthält und deine Variablenwerte oberhalb von 0 liegen?

Zitat:

Zitat von Alexander Roth
Ja gut, ich habs jetzt umgestellt, klappt aber trotzdem noch nicht. Der Computer hat nun einen seiner anderen Fehler ausgespuckt beim ausführen.
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var   sl: TStringList;
    f:textfile;

begin

assignfile(f, 'E:\Delphi\Mathematik\Aufgelistete Primzahlen.txt'); <= OK Darei zuweisen
rewrite(f); <= und eine leere aufmachen
write(f, '2'); <= eine Zahl als Text hinein
closefile(f); <= und die Datei wieder schließen
sl := TStringList.Create; <= Stringliste erzeugen

    while j < aerg do
      begin
        sl.loadfromfile('E:\Delphi\Mathematik\Aufgelistete Primzahlen.txt'); <= Datei laden
        reset(f); <= Datei zurücksetzen. IST ABER NICHT MEHR OFFEN -- FEHLER WEIL OBEN SCHON GESCHLOSSEN
        primzahl:=strtoint64(sl[j]); <= mach irgendwas ...
        closefile(f); <= ist zwar schon zu ... macht nichts ... die Runtime bringt einen Fehler
        sl.free; <= Sringliste freigeben
      end;
end;

bye
Claus


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz