Autor Beitrag
chrisbie
Hält's aus hier
Beiträge: 4

win XP

BeitragVerfasst: Mo 19.01.04 18:58 
ich möchte mit delphi gezielt eine zeile aus einer textdatei auslenen.
wie kann ich das machen?
obbschtkuche
Gast
Erhaltene Danke: 1



BeitragVerfasst: Mo 19.01.04 19:04 
Am einfachsten gehts wohl mit TStringList:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
function ReadLine(filename: string; line: integer): string;
begin
 with TStringList.Create do
 try
  LoadFromFile(filename);
  if count <= line then
   result := Strings[line]
  else
   result := ''
 finally
  free; 
 end;
end;


(ungetestet)
derDoc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 623

Win Vista Prof
D2007 Prof
BeitragVerfasst: Mo 19.01.04 19:04 
Datei in StringList (StringList ist der Bezeichner) laden.
ausblenden Delphi-Quelltext
1:
StringList.LoadFromFile('C:\MirEgal.txt');					

Mit StringList.Strings[4] (5. Zeile) darauf zugreifen.

//Edit: Zu langsam

_________________
MfG derDoc
There are only 10 types of people: those who understand binary and those who don't.


Zuletzt bearbeitet von derDoc am Mo 19.01.04 19:07, insgesamt 1-mal bearbeitet
ixtreme
Gast
Erhaltene Danke: 1



BeitragVerfasst: Mo 19.01.04 19:06 
wieso über die umwege und wieso ein stringlist missbrauchen...

Zitat:
Die Prozedur Readln liest eine Textzeile aus einer Datei.


gruß

ixtreme.de
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 19.01.04 19:09 
Schön, aber wenn du an die 3269 Zeile willst, musst du erst alle 3268 Zeilen vorher auslesen. ;)
ixtreme
Gast
Erhaltene Danke: 1



BeitragVerfasst: Mo 19.01.04 19:12 
ja aber davon stand ja nichts in der frage!

gruß

ixtreme.de
obbschtkuche
Gast
Erhaltene Danke: 1



BeitragVerfasst: Mo 19.01.04 19:41 
chrisbie hat folgendes geschrieben:
ich möchte mit delphi gezielt eine zeile aus einer textdatei auslenen.


Da steht aber auch nicht "Wie kann ich gezielt Zeile 1 auslesen"
ixtreme
Gast
Erhaltene Danke: 1



BeitragVerfasst: Mo 19.01.04 19:46 
ne aber auch bei 10 von 100 zeilen wäre es noch annehmbarer...

gruß

ixtreme.de
Brueggendiek
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 304

Win 98, Win98SE, Win XP Home
D5 Std
BeitragVerfasst: Mo 19.01.04 22:49 
Hallo Leute!

Die Readln-Methode ist aus meiner Sicht deshalb vorzuziehen, weil nur die Zeilen bis zur Gewünschten geladen werden müssen.

Bei einer Stringlist wird die ganze Datei in den RAM kopiert - auch Zeile 2589, wo doch nur Zeile 1234 gebraucht wurde. Deshalb dauert die Stringlist-Variante abhängig von der Größe der Datei (mit überproportionaler Verlängerung, wenn Windows den Hauptspeicher auf die Platte schreiben muß), bei der Readln-Variante aber abhängig von der Position der gesuchten Zeile (normalerweise ohne Hauptspeicher-Auslagerung, da ja immer nur 1 Zeile im RAM ist - sinnvolle Zeilenlängen stark unterhalb 1MB vorausgesetzt).

Gruß

Dietmar Brüggendiek
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Di 20.01.04 02:21 
Haa, wenigstens auf Brueggendiek ist noch Verlass. Nichts von wegen: in Zeile 2-10 von 50.000 ist irgendwas, aber wo genau ? Na, dann lese ich eben alle 50.000 und hole durch Verwendung von succ usw. wieder 0.0001 Sek. von 10.000 wieder rein. 8)

_________________
Gruß
Hansa
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 20.01.04 12:23 
wer sagt denn dass er nur ein mal eine Zeile braucht?. Braucht er später noch mal eine, fängt er wieder von vorne an die Datei zu lesen. ;)
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Di 20.01.04 13:02 
chrisbie hat folgendes geschrieben:
ich möchte mit delphi gezielt eine zeile aus einer textdatei auslenen.
wie kann ich das machen?


Wenn ich das wörtlich nehme, dann besser readln. Ansonsten (z.B. wiederholtes Suchen, überwiegend am Ende der Datei suchen) hat Luckie natürlich Recht. Den Fragesteller scheints sowieso nicht mehr zu jucken. :mrgreen:

_________________
Gruß
Hansa
ixtreme
Gast
Erhaltene Danke: 1



BeitragVerfasst: Di 20.01.04 13:59 
ich denke mal das ist jetzt auch egal, wir haben die möglichkeiten aufgezählt, soll er sich die beste (für sein Projekt) raussuchen...

Gruß

ixtreme.de
chrisbie Threadstarter
Hält's aus hier
Beiträge: 4

win XP

BeitragVerfasst: Di 20.01.04 16:15 
danke für die hilfe
G-man
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 258

Win 2000, Win ME, SuSE 8.2
D5 Standard, D6 Professional
BeitragVerfasst: Di 20.01.04 16:25 
Ich weiß jetzt nicht genau, wofür du das lesen einer Textdatei brauchst,
aber du kannst, wenn es sich um eine Datei handelt, in der du Einstellungen speicherst, auch eine Ini-Datei benutzen, dazu findest du hier schon einen Haufen Fragen zu...

_________________
...To err is human, but to really foul things up requires a computer.