Einzelnen Beitrag anzeigen

Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#14

Re: Überprüfen ob alle Zeilen vorhanden sind

  Alt 5. Jul 2006, 09:51
Hallo Horst,

hier ist ein Ansatz:

Delphi-Quellcode:
procedure CheckLog (const aFilename: string);
  var DT : TDateTime;
      F : TextFile;
      i : Integer;
      LastSeconds : Integer;
      Line : string;
      NewSeconds : Integer;
begin
  AssignFile (F, aFilename);
  Reset (F);
  LastSeconds := -1;
  while not Eof(F) do
    begin
      ReadLn (F, Line);
      DT := StrToDateTime(Copy(Line, 1, 19));
      // Uhrzeit in Sekunden umrechen
      NewSeconds := Round(86400 * Frac(DT));
      // bei der ersten Zeile erfolgt keine Prüfung
      if (LastSeconds >= 0) then
        for i := LastSeconds + 1 to NewSeconds - 1 do
          ShowMessage (Format('Zeile %d fehlt', [i]));
      LastSeconds := NewSeconds;
    end;
  CloseFile (F);
end;
Es ist keine vollständige Lösung, es fehlen beispielsweise ein paar Absicherungen gegen fehlerhafte Daten. Falls die Datei ein Protokoll über mehrere Tage enthält, wirst du weitere Abfragen einbauen müssen. Die Routine erwartet nach Uhrzeit aufsteigend sortierte Einträge.

Gruß Hawkeye
  Mit Zitat antworten Zitat