Wir gingen bisher davon aus, dass die Uhrzeit am Anfang der Zeile steht. Damit deine Beispielzeilen korrekt verarbeitet werden, müsstest du in der Prozedur CheckForMissingLines() folgende Zeile ändern:
Delphi-Quellcode:
// DT := StrToTime(Copy(line, 1, 8));
DT := Between(line, ' ', ' ');
Die Funktion Between() könnte so aussehen:
Delphi-Quellcode:
function Between(const s, sLeft, sRight: String): String;
var
iLeft, iRight: Integer;
begin
iLeft := Pos(sLeft, s);
if iLeft > 0 then
begin
Inc(iLeft, Length(sLeft));
iRight := PosEx(sRight, s, iLeft);
if iRight > 0
then Result := Copy(s, iLeft, iRight - iLeft)
else Result := ''
end else Result := '';
end;
Auch die Funktion PosEx() findest du hier im Forum, falls du sie nicht in der
Unit StrUtils hast. Du solltest vielleicht deine Delphi-Version in dein
DP-Profil eintragen.
Ganz allgemein gilt, dass du ein Muster in deinen Daten erkennen und den Code zur Extraktion der Zeitangaben entsprechend anpassen musst. Und vergiss nicht, dass es Probleme beim Tagwechsel geben wird, wenn du keine Vorkehrungen triffst.
marabu