Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Dateiformat und Dateigröße auslesen.. (https://www.delphipraxis.net/4336-dateiformat-und-dateigroesse-auslesen.html)

NeoDeluxe 25. Apr 2003 07:49


Dateiformat und Dateigröße auslesen..
 
Servus.
ich möchte den Dateiformat und Dateigröße einer Datei auslesen. Wie kann ich das machen, mit den OpenDialog, oda wie??? :wiejetzt:

Grüße, NeoDeluxe 8)

Daniel 25. Apr 2003 08:00

Hallo neoDeluxe,

wenn man mal davon ausgeht, dass Du über den OpenDialog schon mal den vollständigen Pfad und Namen der Datei hast, könntest Du beispielsweise die folgende Funktion nutzen, um die Dateigröße zu ermitteln:

Delphi-Quellcode:
Function DPGetFileSize( aFilename : String ) : Cardinal;
var aFile : File;
 oldFMode : Integer;
Begin
  If FileExists( aFilename ) Then
  Begin
    oldFMode:= FileMode;
    FileMode:= fmOpenRead;

    AssignFile( aFile, 1 );
    Result:= FileSize( aFile );
    CloseFile( aFile );

    FileMode:= oldFMode;
  End
  Else
    Result:= -1;
End;
Ungetestet, sollte aber gehen. Ich bin jedoch der Meinung, irgendwo in meiner Delphi6-Hilfe schon eine von Borland vorgefertigte Funktion gesehen zu haben, die die einem gegebenen Dateinamen die Größe liefert.

Was Du allerdings genau mit Dateiformat meinst, weiss ich nicht so recht. Wenn es Dir nur um das Suffix geht (".PAS" / ".BMP" etc.), dann kannst Du hierzu die Funktion "ExtractFileExt" nutzen.

NeoDeluxe 25. Apr 2003 08:06

Zitat:

Zitat von Daniel
wenn man mal davon ausgeht, dass Du über den OpenDialog schon mal den vollständigen Pfad und Namen der Datei hast...

Ne leider nicht, ich weis net wie ich die Informationen mit einem OpenDialog bekomme :oops:
Delphi-Quellcode:
  if OpenDialog.Execute then
    label1.Caption."hier muss was sein womit ich die Infos auslese oder?";
Zitat:

Zitat von Daniel
Was Du allerdings genau mit Dateiformat meinst, weiss ich nicht so recht. Wenn es Dir nur um das Suffix geht (".PAS" / ".BMP" etc.), dann kannst Du hierzu die Funktion "ExtractFileExt" nutzen.

Also ich möchte ferne schon den Kompletten Namen der Datei haben.

Grüße, NeoDeluxe 8)

Daniel 25. Apr 2003 08:15

Hallo NeoDeluxe,

also mit dem Open-Dialog geht das wie folgt:

Code:
[b]If [color=#ff0055]OpenDialog1.Execute[/color] Then[/b]
[b]Begin[/b]
  myFileSize:= DPGetFileSize( [color=#ff0055][b]OpenDialog1.FileName[/b][/color] );
[b]End;[/b]
Das funktioniert zumindest so lange, wie Du in Deinem Dialog nur eine Datei zur Auswahl zulässt.

Der Name einer Datei steht nicht zwingend in einer festen Verbindung zum Format dieser Datei. Hieraus Rückschlüsse ziehen zu wollen kann in einigen Situationen gefährlich in die Hose gehen. Vielleicht magst Du uns zu Deiner Frage nach dem Dateiformat nähere Infos gehen...?

NeoDeluxe 25. Apr 2003 08:20

Zitat:

Zitat von Daniel
Vielleicht magst Du uns zu Deiner Frage nach dem Dateiformat nähere Infos gehen...?

Also es soll eine Datei gelesen werde, die dann später ausgeführt wird...die Datei kann jeder Art sein, darum Brauche ich die Dateiformat infos, aber wenn du sagts das es net so gut sei, dann mach ich nur die Endung davon...

Grüße, NeoDeluxe 8)

oki 25. Apr 2003 08:23

Hi NeoDeluxe,

versuch es mal mit der:
Delphi-Quellcode:
Function FileGetAttr(const FileName: string): Integer;
Gruß oki

Edit: Ups, hab zwischendurch was anderes gemacht und alle vorherigen Beiträge nicht mitbekommen.

Meine Variante gibt dir alle nötigen Dateiinfos (Größe, Atribute etc.). Für das Dateiformat sehe ich nur die Lösung über die File-Extention. Was besseres fällt mir jetzt auch nicht ein.

sharkx 25. Apr 2003 08:49

Ich persöhnlich bevorzuge folgenden source für die dateigrösse zu ermitteln:

Code:
function GetFileSize(Filename: string): integer;
var
  SR: TSearchRec;
begin
  if FindFirst(Filename, faAnyFile, SR) = 0 then
  begin
    Result := SR.Size;
  end
  else
  begin
    Result := -1;
  end;
  FindClose(SR);
end;
Warum ich den nehm? kA .. :>

Das ganze noch in einem Label anzeigen lassen:

Code:
Label1.Caption := 'Die Datei' + Dateiname + 'hat ' + (GetFileSize(dateiname) / 1024) + 'kb';
Der letzte Source habsch nu einfach ausm Kopf geschrieben, ohne zu testen, sollte aber kein fehler drinnen sein.

NeoDeluxe 25. Apr 2003 09:12

Zitat:

Zitat von sharkx

Das ganze noch in einem Label anzeigen lassen:

Code:
Label1.Caption := 'Die Datei' + Dateiname + 'hat ' + (GetFileSize(dateiname) / 1024) + 'kb';
Der letzte Source habsch nu einfach ausm Kopf geschrieben, ohne zu testen, sollte aber kein fehler drinnen sein.

Was soll ich statt Dateiname schreiben??? :wiejetzt:
Bekomme fehler, dass es unbekannt ist...

Grüße, NeoDeluxe 8)

sharkx 25. Apr 2003 09:25

hrhr Dateiname ist die Variable :>

Wenn du es mit einem Opendialog machst musst du anstelle von dateiname folgendes verwenden:

Code:
OpenDialog1.FileName

NeoDeluxe 25. Apr 2003 09:28

Zitat:

Zitat von sharkx
hrhr Dateiname ist die Variable :>

Wenn du es mit einem Opendialog machst musst du anstelle von dateiname folgendes verwenden:

Code:
OpenDialog1.FileName

Hab ich versucht: "Inkopatibele Typen "String und Integer". das wurde aber schon geklärt. ich habe erst eine Vaiable(Integer) dazwischen gemacht... aber jetzt bekomme ich ganz andere werte als es so ist, z.B. eine textdatei, 4KB und der zweigt 874 warum???

Grüße, NeoDeluxe 8)


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 Uhr.
Seite 1 von 2  1 2      

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