Autor Beitrag
skall
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: So 25.01.09 22:50 
nabend

kurze Frage ist es irgendwie möglich Daten aus einem Dokument raus zufiltern, die bestimmte werte beitzen? bzw Zeilen wo ein bestimmter Wert vor kommt...

Oder anders:

ich habe jetzt Zeilen mit den Werten:

A B C D

und ich möchte alle Zeilen haben wo an der dritten Stelle C = C ist...
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 25.01.09 22:56 
Entweder nimmst du eine TStringList oder du nimmst AssignFile, Reset, ReadLn, CloseFile.

Dann hast du jeweils den String mit einer Zeile, z.B. mit der StringList:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var
  xy: TStringList;
begin
  xy := TStringList.Create;
  xy.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'Datei.txt');
  for i := 0 to xy.Count - 1 do
    if xy[i][3] = 'C' then
      ShowMessage('Zeile ' + IntToStr(i) + ': ' + xy[i]);
  xy.Free;
Bei größeren Dateien wäre die andere Methode besser, da die Datei nicht komplett in den Speicher geladen wird.
skall Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: So 25.01.09 23:12 
naja die Datei ist ein wenig länger...

über 600 Zeilen...
Und ich such da halt immer so 60 Zeilen zusammen raus...

Lade die eigentlich auch mit AssignFile ReadLn...
Aber wie filter ich denn dann da?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 26.01.09 02:36 
user profile iconskall hat folgendes geschrieben Zum zitierten Posting springen:
Lade die eigentlich auch mit AssignFile ReadLn...
Aber wie filter ich denn dann da?
Ich verstehe nicht, wo genau dabei das Problem ist? :gruebel:
Zum Beispiel so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
var
  CurrentLine: String;
  Results: TStringList;
begin
  Results := TStringList.Create;

  ...
  ReadLn(MyFile, CurrentLine);
  if CurrentLine[3] = 'C' then // die Zeile überprüfen
    ErgebnisListe.Add(CurrentLine); // und ggf. benutzen
  ...

  ShowMessage(Results.Text);
  Results.Free;