![]() |
Letztes JPEG in einem Ordner erkennen und kopieren
Hallo
Ich habe eine Webcam die speichert permanent ihre Bilder als JPEG (riesige Datenmengen)in einem Ordner ab. Der Dateiname verändert sich ständig z.b. (_20060506_084318_594.jpg, _20060506_084367_794.jpg usw.). Ich will immer das letzte Bild aus diesem Ordner in einem separaten Ordner speichern . Wie kann ich das mit Delphi machen? Ich habe nun folgendes Beispiel gefunden gefunden. ![]() Gruss Mirco |
Re: Letztes JPEG in einem Ordner erkennen und kopieren
|
Re: Letztes JPEG in einem Ordner erkennen und kopieren
Hi, herzlich willkommen!
Du könntest den Code, den du gefunden hast mit dem aus der Code-Library ( ![]() Hat der Dateiname irgendeine Bedeutung? Denn sonst könntest du evtl. direkt am Dateinamen das neueste Bild erkennen. |
Re: Letztes JPEG in einem Ordner erkennen und kopieren
hallo :-D
wow...so schnell bekomme ich Antworten. Danke. Matze. Die Dateinamen sind kein Anahaltspunt, die Dateinamen sind immer unterschiedlich. Das einzigste was mir einfällt wäre anhand des Datums und der Uhrezit das neuste Bild zu erkennen. Finallfiles ist schon echt gut, müßte halt das zuletzt gespeichertes Bilde erkennen. Das krieg ich nicht hin, hast du ein Beispiel? Grüße Mirco |
Re: Letztes JPEG in einem Ordner erkennen und kopieren
_20060506_084318_594.jpg
sieht mir doch aber stark nach: 2006 - Jahr 05 - Monat 06 - Tag 08 - Stunde 43 - Minute 18 - Sekunde 594 - Millisekunde aus. Oder geht das nur mir so? :gruebel: |
Re: Letztes JPEG in einem Ordner erkennen und kopieren
Ja, das dachte ich auch gerade. Nur bei der zweiten Datei paßt es nicht:
Code:
Die 67 Sekunden passen nicht ins Schema - vielleicht ein Schreibfehler?
_20060506_084318_594.jpg -> 06.05.2006, 08:43:18 Uhr, 594 msec
_20060506_084367_794.jpg -> 06.05.2006, 08:43:67 Uhr, 794 msec @Mirco: Wenn die Dateinamen wirklich Datum und Uhrzeit in dieser Form enthalten, brauchst du nur alle Dateinamen mittels FindFirst/FindNext in eine sortierte Stringliste einzufügen. Der letzte Eintrag der Stringliste verweist dann auf die aktuellste Datei. Gruß Hawkeye |
Re: Letztes JPEG in einem Ordner erkennen und kopieren
Zitat:
Zu FindAllFiles, nur ein kleiner Tipp: Angenommen, du nutzt ![]()
Delphi-Quellcode:
Dann noch diese Zeile
TDateDynArray = array of TDateTime;
Delphi-Quellcode:
durch diese ersetzen:
Files[FileCount - 1] := RootFolder + String(wfd.cFileName);
Delphi-Quellcode:
Und schon hast du das Erstelldatum (und die Uhrzeit) in deinem Array. Das lässt sich natürlich auf beliebige Funktionen anwenden. Vergleichen kannst du die Daten dann ganz einfach mit den Vergleichsoperatoren (<, >, >=, <=, ...), da die Informationen bereits vom Typ TDateTime sind.
Files[FileCount - 1] := GetFileDateTime(RootFolder + String(wfd.cFileName));
|
Re: Letztes JPEG in einem Ordner erkennen und kopieren
@Matze
nun muss ich erst mal ausprobieren.Danke ! Hallo Hawkeye219 ich denke das ich mit den Dateinamen nichts anfangen kann, sind zu ungenau. BigTHX Grüße Mirco |
Re: Letztes JPEG in einem Ordner erkennen und kopieren
Zitat:
:) |
Re: Letztes JPEG in einem Ordner erkennen und kopieren
@Matze: Warum mit "GetFileDateTime" die Zeit ermitteln? Die Zeit ist doch im Record der von FindFirst/FindNext befüllt wird enthalten.
Mit folgender Funktion kann man die zuletzt erstellte Datei ermitteln:
Delphi-Quellcode:
function GetNewestFile(ADir: String): String;
var LSearchRec: TSearchRec; LDate : Int64; LGiveback : String; begin ADir := IncludeTrailingBackslash(ADir); LGiveback := ''; if (FindFirst(ADir + '*', faAnyFile, LSearchRec) = 0) then begin LDate := 0; repeat if LSearchRec.Attr and faDirectory <> faDirectory then begin if (Int64(LSearchRec.FindData.ftCreationTime) > LDate) then begin LDate := Int64(LSearchRec.FindData.ftCreationTime); LGiveback := ADir + LSearchRec.Name; end; end; until FindNext(LSearchRec) <> 0; FindClose(LSearchRec); end; result := LGiveback; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz