Einzelnen Beitrag anzeigen

gerry22

Registriert seit: 19. Dez 2007
2 Beiträge
 
#1

Anfängerfrage - Mehere Zeilen auslesen

  Alt 24. Jan 2008, 01:19
Hallo,

ich habe in ein Memofeld eine Textdatei (Liste) geladen. Diese Textdatei hat folgendes Format:
Code:
Zeile mit Schlüsselwort 1
Nun kommen mehere
Zeilen unterschiedlicher Anzahl
und Länge
Zeile mit Schlüsselwort 2
Wieder mehere Zeilen
unterschiedlicher Anzahl
und Länge
Zeile mit Schlüsselwort 3
Wieder mehere Zeilen
unterschiedlicher Anzahl
und Länge
Zeile mit Schlüsselwort 1
Wieder mehere
Zeilen unterschiedlicher Anzahl
und Länge
Zeile mit Schlüsselwort 2
Wieder mehere Zeilen
unterschiedlicher Anzahl
und Länge
Zeile mit Schlüsselwort 3
Wieder mehere Zeilen
unterschiedlicher Anzahl
und Länge
Zeile mit Schlüsselwort 1
Wieder mehere
Zeilen unterschiedlicher Anzahl
und Länge
Zeile mit Schlüsselwort 2
Wieder mehere Zeilen
unterschiedlicher Anzahl
und Länge
Zeile mit Schlüsselwort 3
Wieder mehere Zeilen
unterschiedlicher Anzahl
u.s.w. Die Schüsselworte sind immer gleich - die Datensätze sind natürlich verschieden. Das ganze kann sich beliebig oft wiederholen.

Ich möchte einzelne Zeilen in ein zweites Memofeld laden und dabei folgendes Format erzielen:
Code:
Schlüsselwort 1
Text zwischen Schlüsselwort 2 und Schlüsselwort 3
Schlüsselwort 1
Text zwischen Schlüsselwort 2 und Schlüsselwort 3
Schlüsselwort 1
Text zwischen Schlüsselwort 2 und Schlüsselwort 3
Bisher habe ich folgendes versucht, aber ich komme nicht weiter.
Delphi-Quellcode:
var i: integer;
    m: integer; // Zeilennummer Schlüsselwort 2
    q: integer; // Zeilennummer Schlüsselwort 3
    ti: string; // Zeileninhalt Schlüsselwort 1

begin

  for i := 0 to Memo1.Lines.Count - 1 do
  begin

   if Pos('Schlüsselwort 1' , Memo1.Lines.Strings[i]) <> 0 then
      begin
        ti:= Memo1.Lines.Strings[i];
        Memo2.Lines.Add(ti);
        end;

   if Pos('Schlüsselwort 2' , Memo1.Lines.Strings[i]) <> 0 then
      begin
        m:= i;
        Memo2.Lines.Add ('m ' +(intToStr(i))); // Zeilen-Nr. SW2
      end;

   if Pos('Schlüsselwort 3' , Memo1.Lines.Strings[i]) <> 0 then
      begin
        q:= i;
        Memo2.Lines.Add ('q ' +(intToStr(i))); // Zeilen-Nr. SW3
      end;

    if (i > m) and (i < q) then
      begin
      Memo2.Lines.Add(intToStr(i));
      end;

  end;
end;
Wie kann ich den Text zwischen Schlüsselwort 2 und 3 in mehrmals nacheinander auslesen ?
Ich wäre für jeden Tipp dankbar.
  Mit Zitat antworten Zitat