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 Eigenen Explorer: Datum von Datei und keine Ordner zeigen (https://www.delphipraxis.net/38260-eigenen-explorer-datum-von-datei-und-keine-ordner-zeigen.html)

Äfan 16. Jan 2005 20:32


Eigenen Explorer: Datum von Datei und keine Ordner zeigen
 
Servus,

Der folgende code fügt ListView Dateien aus einem Pfad zu:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
sr: tsearchrec;
found: integer;
begin

found:= findfirst(Edit1.Text+'\*',faanyfile,sr);
while found=0 do
begin
with ListView1.Items.Add do
 begin
 found:=findnext(sr);
 Caption := (sr.Name);
 Subitems.Add(formatfloat('0.00',sr.Size / 1024)+' KB');
>>>>>>>>>> Subitems.Add(); <<<<<<<<<<
 end;
end;
 findclose(sr)
end;
1. Ich will, dass zwischen den Pfeilen (bei Subitems.add();) Das Datum der Datei drinsteht (so wie im explorer) wie mache ich, dass immer das Datum der angezeigt wird ?

2. Was muss ich ändern, damit nur dateien und keine Ordner angezeigt wer den ?

PS: Habe beide fragen in ein Thema gemacht, da sie ja verwand sind.

MFG

GuenterS 16. Jan 2005 20:39

Re: Eigenen Explorer: Datum von Datei und keine Ordner zeige
 
1) sr.date sollte datum liefern


2) sr.Attr liefert die attribut kombination, wenn du überprüfst ob das FaDirectory Bit nicht gesetzt ist, weißt Du dass es kein directory ist if (sr.attr and faDirectoy) = 0 oder so

Äfan 16. Jan 2005 20:52

Re: Eigenen Explorer: Datum von Datei und keine Ordner zeige
 
1. sr.date gibts nicht

2. Wenn ich vor der aktion if not (sr.attr and faDirectory) = 0 then einsetze, hängt sich das prog auf. Kannste vielleicht meinen code mal so posten, wie du meinst ?

GuenterS 16. Jan 2005 20:59

Re: Eigenen Explorer: Datum von Datei und keine Ordner zeige
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  sr: tsearchrec;
  found: integer;
begin
   found:= findfirst(Edit1.Text+'\*',faanyfile,sr);
   while found=0 do
   begin
      if ((sr.attr and faDirectory)=0) then
         with ListView1.Items.Add do
         begin
            found:=findnext(sr);
            Caption := (sr.Name);
            Subitems.Add(formatfloat('0.00',sr.Size / 1024)+' KB');
            Subitems.Add(DateTimeToStr(sr.time));
         end;
      found := findnext(sr); //<--- haste auch vergessen
   end;
   findclose(sr)
end;
Sorry hab mich verschrieben date gibts nicht dafür time. Steht alles in der Hilfe in Delphi.

Mögliche Suchbegriffe FindFirst, FindClose, FindNext, TSearchRec

Äfan 16. Jan 2005 21:08

Re: Eigenen Explorer: Datum von Datei und keine Ordner zeige
 
Ok. Also es werden immer noch ordner gezeigt und wie heißt z.B. das datum 19.09.14298 in deutsch ? :gruebel: :-D

mfg

GuenterS 16. Jan 2005 21:13

Re: Eigenen Explorer: Datum von Datei und keine Ordner zeige
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  sr: tsearchrec;
  found: integer;
begin
   found := findfirst(IncludeTrailingPathDelimiter(Edit1.Text)+'*.*',faanyfile,sr);
   while found=0 do
   begin
      if ((sr.attr and faDirectory) <> faDirectory) then
         with ListView1.Items.Add do
         begin
            found:=findnext(sr);
            Caption := (sr.Name);
            Subitems.Add(formatfloat('0.00',sr.Size / 1024)+' KB');
            Subitems.Add(DateTimeToStr(FileDateToDateTime(sr.time)));
         end;
      found := findnext(sr); //<--- haste auch vergessen
   end;
   findclose(sr)
end;
Mein Fehler, hab nicht bedacht, dass auch Verzeichnisse andere Attribute haben können. :duck:

Äfan 16. Jan 2005 21:30

Re: Eigenen Explorer: Datum von Datei und keine Ordner zeige
 
Geht immer noch nicht, es werden immer noch ordner gezeigt.

PS: Kann man das mit datum auch ohne uhrzeit ?

GuenterS 16. Jan 2005 21:42

Re: Eigenen Explorer: Datum von Datei und keine Ordner zeige
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  sr: tsearchrec;
  found: integer;
begin
   found := findfirst(IncludeTrailingPathDelimiter(Edit1.Text)+'*.*',faanyfile,sr);
   while found=0 do
   begin
      if ((sr.attr and faDirectory) <> faDirectory) then
         with ListView1.Items.Add do
         begin
            // found:=findnext(sr); //<-- das darf net rein an der stelle
            Caption := (sr.Name);
            Subitems.Add(formatfloat('0.00',sr.Size / 1024)+' KB');
            Subitems.Add(DateTimeToStr(FileDateToDateTime(sr.time)));
         end;
      found := findnext(sr);
   end;
   findclose(sr)
end;
Zusätzlich solltest Du Dir Gedanken darüber machen wie du die Größe der Datei ausgeben willst, denn sr.size liefert nun mal _keinen_ float sondern integer.

Äfan 16. Jan 2005 21:59

Re: Eigenen Explorer: Datum von Datei und keine Ordner zeige
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zusätzlich solltest Du Dir Gedanken darüber machen wie du die Größe der Datei ausgeben willst, denn sr.size liefert nun mal _keinen_ float sondern integer.
Ich will sie in KB. Da der Rückgabewert von sr.Size aber Byte ist (Integer is mir klar) muss ich ja durch 1024 teilen und da kommt kein Integer wert mehr raus, also float.


Naja, und das mit den ordnern wird immer lustiger. Mit deinem script kommt das raus, was unter auf dem bild zu sehen ist.

Luckie 16. Jan 2005 22:52

Re: Eigenen Explorer: Datum von Datei und keine Ordner zeige
 
Keine Ahnung, was du da gemacht hast, aber bei mir funktioniert er tadellos. Nur die Dateien keine Ordner und mit Größe und Datum.


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