Einzelnen Beitrag anzeigen

Trafel21

Registriert seit: 16. Nov 2018
69 Beiträge
 
#15

AW: String in einer Stringliste an Trennzeichen zerlegen

  Alt 16. Mai 2019, 11:16
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;
Vom TStreamReader hab ich noch nie gelesen, das hilft mir auf jedenfall weiter, vielen Dank!
  Mit Zitat antworten Zitat