Einzelnen Beitrag anzeigen

BerndS

Registriert seit: 8. Mär 2006
Ort: Jüterbog
480 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Effizientes Einlesen und Verarbeiten von Textdatei

  Alt 1. Jul 2022, 14:43
Effizienter wäre es sicher, wenn das Auswerten der Stringlist ohne IndexOf und Delete gemacht würde. Das sind zusätzliche Speicheroperationen, die nicht nötig wären, wenn man es in etwas so machen würde.

Delphi-Quellcode:
var
  Lsl: TStringList;
  LidxH, LidxF: integer;
  Lstr, Line: string;
  I: Integer;
begin
    Lsl:= TStringList.Create;
    try
      Lsl.LoadFromFile(FFileName);
      LidxH := -1;
      LidxF := -1;
      Lstr := '';
      for I := 0 to lsl.Count -1 do
      begin
        Line := lsl[I].Trim;
        case IndexStr(Line, [PEM_HEADER, PEM_FOOTER]) of
          0: LidxH := I;
          1:
            if LidxH>=0 then
            begin
              NameNotRelevant2(Lstr);
              LidxH := -1;
              LidxF := -1;
              Lstr := '';
            end;
          else
           if LidxH >= 0 then
             Lstr := Lstr + Line;
        end;
      end;
    finally
      Lsl.Free;
    end;
end;
Es geht sicher auch, wie du es machst.
Ob diese Änderung aber schneller ist, kann ich ohne geeignete Daten nicht prüfen.
Um die Zeitdauer von bestimmten Operationen zu messen, werwende ich gerne GetTickCount. Das ist zwar nicht genau, aber man bekommt dadurch grob raus, wo es länger dauert.
Bernd
  Mit Zitat antworten Zitat