Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Textdatei, wie Erstellt am und Name der Datei auslesen (https://www.delphipraxis.net/34058-textdatei-wie-erstellt-am-und-name-der-datei-auslesen.html)

M4dl355 16. Nov 2004 20:30


Textdatei, wie Erstellt am und Name der Datei auslesen
 
So mein Problem ist das ich eine Textdatei habe und mein Programm soll die Daten wie Erstellt am und den namen der Datei auslesen. Und das soll möglichst einfach sein ohne viel schnick schanck einfach nur die functionen kennt die einer von euch???

alcaeus 16. Nov 2004 20:32

Re: Textdatei, wie Erstellt am und Name der Datei auslesen
 
Hi M4d1355,

Zitat:

Zitat von M4dl355
...mein Programm soll die Daten wie Erstellt am und den namen der Datei auslesen.

Hä? Willst du mir sagen wie du überhaupt an die Datei rankommen willst wenn du den Dateinamen nicht kennst? :gruebel: :wiejetzt:

Greetz
alcaeus

M4dl355 16. Nov 2004 20:33

Re: Textdatei, wie Erstellt am und Name der Datei auslesen
 
ne das weiss ich ja, aber ich will wenn ich den Dateinamen habe auslesen wann diese Datei erstelt wurde.

fkerber 16. Nov 2004 20:38

Re: Textdatei, wie Erstellt am und Name der Datei auslesen
 
Hi!

Wir haben auch ein Suchfunktion :wink: :roll:
http://www.delphipraxis.net/internal...ht=datei+datum


Ciao Frederic

M4dl355 16. Nov 2004 20:55

Re: Textdatei, wie Erstellt am und Name der Datei auslesen
 
damit komme ich nicht zurecht ich wollte ja nur eine einfache kurz Version haben habe versucht das für mich umzubauen hat abe rnicht geklappt

alcaeus 16. Nov 2004 21:02

Re: Textdatei, wie Erstellt am und Name der Datei auslesen
 
Hi M4d1355,

lies mal das hier. Falls du Probleme hast, den Code zu verwenden, poste eine Antwort in dem Thread.

Greetz
alcaeus

fkerber 16. Nov 2004 21:03

Re: Textdatei, wie Erstellt am und Name der Datei auslesen
 
Hi!

Wüsste nicht, was da allzu kompliziert ist:
http://www.delphipraxis.net/internal...ht=getfiletime

Aber poste doch dein konkretes Problem.


Ciao Frederic

Tommy111 16. Nov 2004 21:06

Re: Textdatei, wie Erstellt am und Name der Datei auslesen
 
Zunächst eine Funktion, die die drei Datumswerte (Erstellungsdatum, Datum der letzten Änderung und Datum des letzten Zugriffs) zurückgibt. Die Funktion gibt false zurück, wenn sie nicht erfolgreich war.
Delphi-Quellcode:
function GetFileDate(const FileName: string; out Creation, LastAccess,
  LastWrite: TDateTime): Boolean;
var
  hFile: THandle;
  ftCreationUTC, ftLastAccessUTC, ftLastWriteUTC: TFileTime;
  ftCreationLocal, ftLastAccessLocal, ftLastWriteLocal: TFileTime;
  stCreationLocal, stLastAccessLocal, stLastWriteLocal: TSystemTime;
begin
  result:=false;
  hFile := CreateFile(PChar(FileName), GENERIC_READ, 0, nil,
  OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0);
  if (hFile <> INVALID_HANDLE_VALUE) then begin
    try
      //Ermittlung des Dateidatums in UTC (Weltzeit)
      if GetFileTime(hFile, @ftCreationUTC, @ftLastAccessUTC, @ftLastWriteUTC) then begin
        //Umrechnung in Ortszeit
        if FileTimeToLocalFileTime(ftCreationUTC, ftCreationLocal)
        and FileTimeToLocalFileTime(ftLastAccessUTC, ftLastAccessLocal)
        and FileTimeToLocalFileTime(ftLastWriteUTC, ftLastWriteLocal) then begin
          //Umwandlung in Systemdatumformat
          if FileTimeToSystemTime(ftCreationLocal, stCreationLocal)
          and FileTimeToSystemTime(ftLastAccessLocal, stLastAccessLocal)
          and FileTimeToSystemTime(ftLastWriteLocal, stLastWriteLocal) then begin
            //Zuweisung der Rückgabewerte
            Creation := SystemTimeToDateTime(stCreationLocal);
            LastAccess := SystemTimeToDateTime(stLastAccessLocal);
            LastWrite := SystemTimeToDateTime(stLastWriteLocal);
            result:=true;
          end;
        end;
      end;
    finally
      CloseHandle(hFile);
    end;
  end;
end;
Aufrufbeispiel:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var erstellung, zugriff, schreibzugriff: TDateTime;
begin
  GetFileDate('c:\temp\test.bmp', erzeugung, zugriff, schreibzugriff);
  ShowMessage('Erstellung: '+DateTimeToStr(erstellung)+#13#10+'Letzter Zugriff: '+
  DateTimeToStr(zugriff)+#13#10+'Letzter Schreibzugriff: '+DateTimeToStr(schreibzugriff));
end;
In folgender Prozedur wird dargestellt, wie diese drei Daten eines Ordners oder einer Datei auch geändert werden können.
Delphi-Quellcode:
function ChangeFileDate(const path: string; const Creation, LastAccess,
  LastWrite: TDateTime): Boolean;
var
  hFile: THandle;
  ftCreationUTC, ftLastAccessUTC, ftLastWriteUTC: TFileTime;
  ftCreationLocal, ftLastAccessLocal, ftLastWriteLocal: TFileTime;
  stCreationLocal, stLastAccessLocal, stLastWriteLocal: TSystemTime;
begin
  result := false;
  hFile := CreateFile(PChar(path), GENERIC_READ or GENERIC_WRITE, 0, nil,
  OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0);
  if (hFile <> INVALID_HANDLE_VALUE) then
    try
      //Umwandlung von TDateTime in Systemzeitformat
      DateTimeToSystemTime(Creation, stCreationLocal);
      DateTimeToSystemTime(LastAccess, stLastAccessLocal);
      DateTimeToSystemTime(LastWrite, stLastWriteLocal);
      //Umwandlung von Systemzeitformat in lokales Dateizeitformat
      if (SystemTimeToFileTime(stCreationLocal, ftCreationLocal)) and
      (SystemTimeToFileTime(stLastAccessLocal, ftLastAccessLocal)) and
      (SystemTimeToFileTime(stLastWriteLocal, ftLastWriteLocal)) then begin
        //Umwandlung von lokalem Dateizeitformat in Weltzeit
        if (LocalFileTimeToFileTime(ftCreationLocal, ftCreationUTC)) and
        (LocalFileTimeToFileTime(ftLastAccessLocal, ftLastAccessUTC)) and
        (LocalFileTimeToFileTime(ftLastWriteLocal, ftLastWriteUTC)) then begin
          result:=SetFileTime(hFile, @ftCreationUTC, @ftLastAccessUTC, @ftLastWriteUTC);
        end;
      end;
    finally
      CloseHandle(hFile);
    end;
end;
Hoffe ich konnt dir en bißchen weiterhelfen!? :nerd:

Tommy111 16. Nov 2004 21:23

Re: Textdatei, wie Erstellt am und Name der Datei auslesen
 
Ach so, um den Dateinamen, die -endung und den -pfad einer Datei herausfinden stellt Delphi für die grundsätzlichen Informationen eigene Funktionen bereit:
Code:
var pfad, name, ext, neuerName: string;
...
  pfad := ExtractFilePath(Application.ExeName); // der Pfad
  name := ExtractFileName(Application.ExeName); // der Name
  ext := ExtractFileExt(Application.ExeName); // die Dateierweiterung

  // Um im String die Dateierweiterung zu ändern, benutzt man folgende Funktion:
  neuerName := ChangeFileExt(Application.ExeName, '.tmp');
Wenn man die Elemente Laufwerk, Verzeichnisse und Dateinamen benötigt, kann auch ProcessPath weiterhelfen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:56 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