Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.990 Beiträge
 
Delphi 12 Athens
 
#13

AW: String in einer Stringliste an Trennzeichen zerlegen

  Alt 16. Mai 2019, 09:50
Bei Trim(Eventlst.Values['Event']); nimmt dieser nur das 1. Event auf, nicht das 2. oder evtl 3. oder 4. Gibt es eine Möglichkeit an die auch zu kommen?
Dann musst du die StringList manuell mit jeweils nur einem Block füllen und danach wieder leer machen. Z.B. so:
Delphi-Quellcode:
procedure HandleData(Source: TStrings);
var
  CallerID: string;
  EventName: string;
begin
  if Source.Count = 0 then Exit;

  EventName := Trim(Source.Values['Event']);
  CallerID := Trim(Source.Values['CallerIDNum']);
end;

procedure HandleFile(const AFileName: string);
var
  line: string;
  lst: TStringList;
  reader: TStreamReader;
begin
  reader := TStreamReader.Create(AFileName);
  try
    lst := TStringList.Create;
    try
      lst.NameValueSeparator := ':';
      while not reader.EndOfStream do begin
        line := reader.ReadLine;
        if Trim(line) = 'then begin
          HandleData(lst);
          lst.Clear;
        end
        else begin
          lst.Add(line);
        end;
      end;
      { falls als letztes keine Leerzeile mehr kam }
      HandleData(lst);
    finally
      lst.Free;
    end;
  finally
    reader.Free;
  end;
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat