Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi mehrere zeilen auslesen (https://www.delphipraxis.net/45515-mehrere-zeilen-auslesen.html)

whiteshark 7. Mai 2005 17:03


mehrere zeilen auslesen
 
Moin Leute,
ich bin gerade dabei das externe speichern und einlesen zu üben. mit einer Zeile aus einer Datei klappt es ja schon, aber wie kann ich mehrere Zeilen auslesen?
Delphi-Quellcode:
function einlesen;
var File:textfile;
var s:String;
begin
AssignFile(File, 'test.dat');
Reset(File);
Readln(File,s);
memo1.Lines[0] :=s;
CloseFile(File);
Delphi-Quellcode:
function speichern;
var File:textfile;
var s:string;
begin
AssignFile(File, 'test.dat');
Rewrite(File);
s:=memo1.lines[0];
writeln(File,s);
CloseFile(File);
Wie kann ich jetzt mehrere Zeilen auslesen?

Nikolas 7. Mai 2005 17:09

Re: mehrere zeilen auslesen
 
Einfach readln mehrmals hintereinander ausführen.

Delphi-Quellcode:
readln(Afile,a);
readln(Afile,b);
usw.

Und besser keinen reservierten Ausdruck wie 'File' benutzen.

Waldteufel 7. Mai 2005 17:12

Re: mehrere zeilen auslesen
 
Hi.

Oder, um alles zu lesen/schreiben :

Delphi-Quellcode:
procedure Speichern;
var
  i : integer
  f : file;
begin
  Assign(f, 'test.dat');
  Rewrite(f);
  for i := 0 to Memo1.Lines.Count - 1 do
    WriteLn(f, Memo1.Lines[i]);
  Close(f);
end;

procedure Laden;
var
  s : string;
  f : file;
begin
  Assign(f, 'test.dat');
  Reset(f);
  while not eof(f) do
  begin
    ReadLn(f, s);
    Memo1.Lines.Add(s);
  end;
  Close(f);
end;

Keldorn 7. Mai 2005 17:15

Re: mehrere zeilen auslesen
 
Hallo

Zitat:

AssignFile(File, 'test.dat');
so eine relative Pfadangabe wird dir irgendwann große Probleme bereiten.

Zitat:

memo1.Lines[0] :=s;
lösch das memo am Anfang mit memo.clear und füge die neuen Zeilen mit memo.lines.add hinzu. Bei deiner drirektzuweisung mußt Du dir sicher sein, daß wirklich so viele Zeilen exisieren, wenn nicht, siehst du eine AV.

nutze die eof-Funktion in einer While-Anweisung, um jede Zeile auszulesen.

mit memo1.lines.loadfromfile gehts natürlich noch schneller ;)

Mfg Frank

whiteshark 7. Mai 2005 17:19

Re: mehrere zeilen auslesen
 
@Toxman: geht aber nicht so richtig!

fantotal 7. Mai 2005 17:20

Re: mehrere zeilen auslesen
 
3 Leute haben dir nun einen Vorschlag gemacht und du sagst nur: "Geht aber nicht so richtig!"

Was geht nicht richtig? :gruebel:

Keldorn 7. Mai 2005 17:21

Re: mehrere zeilen auslesen
 
Zitat:

Zitat von whiteshark
geht aber nicht so richtig!

geniale Antwort! Du willst uns nicht zufälligerweise auch mitteilen WAS nicht geht? Hellsehen macht sich heut gaaanz schlecht.

whiteshark 7. Mai 2005 18:27

Re: mehrere zeilen auslesen
 
Sorry! :-D
War mit meiner Antwort etwas kurz. Aber die Variante von Toxman funktioniert bei mir nicht so richtig.

Christian Seehase 7. Mai 2005 18:32

Re: mehrere zeilen auslesen
 
Moin Whiteshark,

mit der Antwort hast Du nich ein bisschen mehr ausgesagt, als mit der vorigen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:40 Uhr.

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