Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Hilfe!!! Programm um Dateinamen zu überprüfen.. nur wie ? (https://www.delphipraxis.net/110641-hilfe-programm-um-dateinamen-zu-ueberpruefen-nur-wie.html)

Tina86 21. Mär 2008 13:17


Hilfe!!! Programm um Dateinamen zu überprüfen.. nur wie ?
 
Hilfe!!! :-( :wall:

Kann mir einer von Euch bei folgendem Problem helfen...
Bin blutige Anfängerin in Delphi (Delphi6) und soll folgendes Programm schreiben. Ich hab einen Ordner mit tausenden Dateien in der Form:
world_2008010100.zip
world_2008010106.zip
world_2008010112.zip
world_2008010118.zip
world_2008010200.zip
world_2008010206.zip
world_2008010212.zip
world_2008010218.zip
world_2008010300.zip
usw....
Also pro Tag 4 Dateien zu den festen Uhrzeiten.
Ab und zu fehlt zu einer Uhrzeit die entsprechende Datei. Genau deswegen soll das Programm geschrieben werden, damit es die fehlenden Dateien findet und rausschreibt.
Für einen erfahrenen Programmierer dürfte das doch sicherlich ein Witz sein, oder Jungs ?
Ich weiß nicht , ob es an meiner Haarfarbe liegt oder ... ;-) Hab nach einem Tag Intensivstudium jedenfalls nichts gefunden :-(
Hiiiiilfe

Fussball-Robby 21. Mär 2008 13:47

Re: Hilfe!!! Programm um Dateinamen zu überprüfen.. nur wie
 
Hey und herzlich willkommen in der DP :dp:
Guck mal in der Hilfe oder hier im Forum nach copy(), um den String zu parsen und geh dann einfach alle Einträge mit einer Schleife durch

Mfg

mkinzler 21. Mär 2008 13:53

Re: Hilfe!!! Programm um Dateinamen zu überprüfen.. nur wie
 
Und auch FindFirst()/FindNext()

DeddyH 21. Mär 2008 14:41

Re: Hilfe!!! Programm um Dateinamen zu überprüfen.. nur wie
 
Hallo, evtl. hab ich wieder zu umständlich gedacht, aber versuch es mal hiermit:
Delphi-Quellcode:
uses DateUtils;

procedure ListMissingFiles(sPath: string;            //zu durchsuchender Pfad
                           const CountDays: integer; //Anzahl der Tage
                           const FileList: TStrings); //Ergebnisliste
var sFile: string;
    i, j: integer;
    ActualTime: TDateTime;
    StartTime: TSystemTime;
begin
  if not Assigned(FileList) then
    raise Exception.Create('Es wurde keine Ergebnisliste übergeben.');
  sPath := IncludeTrailingPathDelimiter(sPath);
  FileList.BeginUpdate;
  try
    FileList.Clear;
    DateTimeToSystemTime(now,StartTime);
    StartTime.wHour := (StartTime.wHour div 6) * 6;
    ActualTime := SystemTimeToDateTime(StartTime);
    for I := 1 to CountDays do
      for j := 0 to 3 do
        begin
          sFile := Format('%sworld_%s%s',
                          [sPath,
                           FormatDateTime('yyyymmddhh',ActualTime),
                           '.zip']);
          if not FileExists(sFile) then
            FileList.Add(sFile);
          ActualTime := IncHour(ActualTime, -6);
        end;
  finally
    FileList.EndUpdate;
  end;
end;
Beispielaufruf:
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
  ListMissingFiles('C:\Drivers',  //Pfad
                   1,             //1 Tag
                   ListBox1.Items);//in ListBox anzeigen
end;

Tina86 21. Mär 2008 21:51

Re: Hilfe!!! Programm um Dateinamen zu überprüfen.. nur wie
 
WOW
Danke schonmal für die schnellen Antworten... da ich wie gesagt fast garkeine Ahnung habe (Vor 3 Jahren hab ich mal etwas Pascal gelernt), muss ich erstmal Eure Hilfeanweisungen übersetzen... Wörter wie "parsen" usw. schlag ich erstmal nach und schau dann mal ob ich das hinbekomme.. drückt mir die Daumen ;-)

Zacherl 22. Mär 2008 01:21

Re: Hilfe!!! Programm um Dateinamen zu überprüfen.. nur wie
 
Parsen ist einfach das Untersuchen eines Strings nach bestimmten Mustern. Du zerlegst den String beispielsweise in einzelne Teile wobei du ein Trennzeichen verwendest, nach dem du scanst.


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