Hallo,
mache mal 'nen blöden Vorschlag:
Da Du ja schon eine Datenbank hast, lies Dir die Dateinamen in eine eigene Tabelle ein.
Die Tabelle bekommt eine Spalte für den Dateinamen und weitere Spalten für Datum und Uhrzeit.
Code:
G1-01_05_2014 00_10_57.csv
G1-01_05_2014 00_10_57.txt
G1-SC status-01_05_2014 00_10_57.txt
Nun teilst Du Dir beim Befüllen der Tabelle den Dateinamen auf:
Delphi-Quellcode:
// Nur hingedaddelt, nicht getestet.
procedure TuEsInDieDatenbank(sDateiname : String);
Var
sDatum : String;
sZeit : String;
iPos : Integer;
begin
sDatum := ChangeFileExt(sDateiname,'');
sDatum := AnsiReplaceText(sDatum,'SC status-','');
iPos := Pos('-',sDatum) + 1;
sDatum := Copy(sDatum,iPos,Length(sDatum));
iPos := Pos(' ',sDatum);
sZeit := Copy(sDatum,iPos + 1,Length(sDatum));
sDatum := Copy(sDatum,1,iPos - 1);
sDatum := AnsiReplaceText(sDatum,'_','.');
sZeit := AnsiReplaceText(sZeit,'_',':');
tabelle.append;
tabelle.FieldByName('dateiname').AsString := sDateiname;
tabelle.FieldByName('datum').AsDateTime := StrToDate(sDatum);
tabelle.FieldByName('zeit').AsDateTime := StrToTime(sZeit);
// Müsste eigentlich auch gehen.
tabelle.FieldByName('Zeitstempel').AsDateTime := StrToDateTime(sDatum + ' ' + sZeit);
tabelle.Post;
end;
Wenn Du nun den Inhalt der Datenbank per
Code:
select Dateiname from tabelle order by zeit, datum, dateinamen
liest, sollten immer die drei zusammengehörenden Sätze hintereinander liegen.
Über den Dateinamen kannst Du ja dann ausmachen, um welchen Dateityp es sich handelt, um die weitere Verarbeitung zu steuern.
Aber: Ich gehe nicht davon aus, dass das in 100% der Fälle so funktioniert.
Wenn die Dateien in kurzen Zeitabständen erstellt werden, kann es immernoch zu Problemen bei der Zuordnung kommen.
Code:
G1-01_05_2014 00_10_56.csv
G1-01_05_2014 00_10_57.txt
G1-SC status-01_05_2014 00_10_57.txt
G1-01_05_2014 00_10_57.csv
G1-01_05_2014 00_10_58.txt
G1-SC status-01_05_2014 00_10_58.txt
Was gehört jetzt zusammen?
Wie oben schon mal kommentiert:
Zitat von
frankyboy1974:
Nein, wir suchen eine andere Lösung.
Wenn irgendmöglich ist diese Alternative vorzuziehen!