Delphi-PRAXiS
Seite 2 von 2     12

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Schleife (https://www.delphipraxis.net/87476-schleife.html)

Klaus01 1. Mär 2007 13:08

Re: Schleife
 
Delphi-Quellcode:
function DeletingFiles(Filename:String):Boolean;
  begin
  result:=true;
  for HDD:='C' to 'Z' do
    if SearchForFile(HDD + ':\', Filename, APathFound) then
    begin
       repeat
          DeleteFile(ApathFound+Filename);
          WriteLn(myFile, ':: '+ Filename + ' available on: ' + APathFound);
          result:=true;
       until not SearchForFile(HDD + ':\', Filename, APathFound);
      end
    else
      begin
        WriteLn(myFile, Filename + ' is not available on ', HDD);
        result:=false;
      end;
end;
vielleicht geht es so?

Gruesse
KLaus

-187- 1. Mär 2007 13:14

Re: Schleife
 
Danke für deine schnelle Antwort aber so funktioniert es auch nicht. Vielleicht sollte ich es nochmal besser erklären:

Die Prozedur löscht Dateien. Danach durchsucht sie Die Festplatten nach den Dateien und schreibt mir in eine .txt Datei ob die jeweilige Datei vorhanden ist oder nicht.

Ich möchte das dass Programm nachdem es rausgefunden hat das die Datei nicht vorhanden ist keine weiteren Befehle ausführt und schließt. Also das Programm schreibt das eine Datei nicht vorhanden ist und schließt danach.

Wenn die Dateien aber doch vorhanden sind dann soll das Programm normal weiter laufen und weiter Befehle ausführen.

MFG

Klaus01 1. Mär 2007 14:23

Re: Schleife
 
Delphi-Quellcode:
function DeletingFiles(Filename:String):Boolean;
  begin
  result:=false;                                                 // Datei nicht gefunden
  for HDD:='C' to 'Z' do
    if SearchForFile(HDD + ':\', Filename, APathFound) then
      begin
       repeat
          DeleteFile(ApathFound+Filename);                       // Datei gefunden
          WriteLn(myFile, ':: '+ Filename + ' available on: ' + APathFound);  // wird geloescht
          result:=true;                                          // Ergebnis -> true
          break;                                                  // Schleife wird abgebrochen
       until not SearchForFile(HDD + ':\', Filename, APathFound);
      end
    else
      begin
        WriteLn(myFile, Filename + ' is not available on ', HDD); // Datei wurde nicht gefunden, Schleife laeuft weiter
        result:=false;
      end;
end;
Delphi-Quellcode:
if not DeletingFile('test.dat') then // Es wurden alle Laufwerke durchsucht, die Datei wurde nicht gefunden
  close;
else                                 // die Datei wurde gefunden
  ...
mein letzter Versuch

Gruesse
Klaus

-187- 1. Mär 2007 14:49

Re: Schleife
 
Danke das du dir soviel Mühe gemacht hast aber das ist nicht leider nicht was ich möchte. Ich bräuchte wohl ein end. aber das soll nur funktionieren wenn eine Datei nicht da ist =)

shmia 1. Mär 2007 16:27

Re: Schleife
 
Was macht denn eigentlich
Delphi-Quellcode:
SearchForFile(HDD + ':\', Filename, APathFound)
genau ?
Die Funktion sucht unterhalb eines bestimmten Verzeichnisses (HDD + ':\') rekursiv nach Filename
und liefert den 1. Treffer in APathFound, oder ??

Ist es denn nicht ziemlich ungeschickt, nur den 1. Treffer zu liefern?
Wäre es nicht viel besser ALLE gefundenen Dateien mit komplettem Pfad in einer StringListe zu sammeln.

Wenn man eine Datei löschen möchte, braucht man auch nicht nochmals nachsehen, ob sie wirklich gelöscht ist, sondern man wertet einfach das Result von DeleteFile aus!

DP-Maintenance 2. Mär 2007 14:16

DP-Maintenance
 
Dieses Thema wurde von "r_kerber" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Ist eindeutig ein Delphi-Problem


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:44 Uhr.
Seite 2 von 2     12

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