AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Letztes JPEG in einem Ordner erkennen und kopieren
Thema durchsuchen
Ansicht
Themen-Optionen

Letztes JPEG in einem Ordner erkennen und kopieren

Ein Thema von Mirco · begonnen am 6. Mai 2006 · letzter Beitrag vom 7. Mai 2006
Antwort Antwort
Seite 1 von 2  1 2      
Mirco

Registriert seit: 6. Mai 2006
71 Beiträge
 
#1

Letztes JPEG in einem Ordner erkennen und kopieren

  Alt 6. Mai 2006, 23:11
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.
http://www.swissdelphicenter.ch/de/showcode.php?id=142 , funktioniert nur mit einer Datei.
Gruss Mirco
Mirco Hallenga
  Mit Zitat antworten Zitat
Benutzerbild von Airblader
Airblader

Registriert seit: 29. Okt 2004
Ort: Geislingen an der Steige
742 Beiträge
 
#2

Re: Letztes JPEG in einem Ordner erkennen und kopieren

  Alt 6. Mai 2006, 23:18
Delphi-Referenz durchsuchenFindFirst,Delphi-Referenz durchsuchenFindNext
Gibt in der Hilfe Klasse Erklärungen dazu

MfG, air
Ingo Bürk
Es nimmt der Augenblick, was Jahre geben.

Johann Wolfgang von Goethe
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Letztes JPEG in einem Ordner erkennen und kopieren

  Alt 6. Mai 2006, 23:20
Hi, herzlich willkommen!

Du könntest den Code, den du gefunden hast mit dem aus der Code-Library (FindAllFilesFindAllFiles) kombinieren.
Hat der Dateiname irgendeine Bedeutung? Denn sonst könntest du evtl. direkt am Dateinamen das neueste Bild erkennen.
  Mit Zitat antworten Zitat
Mirco

Registriert seit: 6. Mai 2006
71 Beiträge
 
#4

Re: Letztes JPEG in einem Ordner erkennen und kopieren

  Alt 6. Mai 2006, 23:33
hallo
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
Mirco Hallenga
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Letztes JPEG in einem Ordner erkennen und kopieren

  Alt 6. Mai 2006, 23:38
_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?
  Mit Zitat antworten Zitat
Hawkeye219

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

Re: Letztes JPEG in einem Ordner erkennen und kopieren

  Alt 6. Mai 2006, 23:46
Ja, das dachte ich auch gerade. Nur bei der zweiten Datei paßt es nicht:

Code:
_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
Die 67 Sekunden passen nicht ins Schema - vielleicht ein Schreibfehler?

@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
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Letztes JPEG in einem Ordner erkennen und kopieren

  Alt 6. Mai 2006, 23:51
Zitat von cruiser:
aus. Oder geht das nur mir so?
Ja, das habe ich auch erst gedacht, das wäre am Naheliegendsten.

Zu FindAllFiles, nur ein kleiner Tipp:

Angenommen, du nutzt diese Prozedur. Binde die Funktion 'GetFileDateTime' aus deinem Link mit ein, dann kannst du ganz leicht so die gewünschten Informationen ermitteln:

TDateDynArray = array of TDateTime; Dann noch diese Zeile

Files[FileCount - 1] := RootFolder + String(wfd.cFileName); durch diese ersetzen:

Files[FileCount - 1] := GetFileDateTime(RootFolder + String(wfd.cFileName)); 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.
  Mit Zitat antworten Zitat
Mirco

Registriert seit: 6. Mai 2006
71 Beiträge
 
#8

Re: Letztes JPEG in einem Ordner erkennen und kopieren

  Alt 7. Mai 2006, 00:14
@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
Mirco Hallenga
  Mit Zitat antworten Zitat
Mirco

Registriert seit: 6. Mai 2006
71 Beiträge
 
#9

Re: Letztes JPEG in einem Ordner erkennen und kopieren

  Alt 7. Mai 2006, 00:57
Zitat:
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.
@Hawkeye219 stimmt müßte so klappen
Mirco Hallenga
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Letztes JPEG in einem Ordner erkennen und kopieren

  Alt 7. Mai 2006, 08:02
@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;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz