![]() |
Schleife
Delphi-Quellcode:
Morgen, der Code löscht bestimmte Dateien, überprüft dann ob sie noch vorhanden sind und schreibt die dazugehörige Zeile. Mein Problem ist das er das nur bei der ersten Datei die Zeile schreibt weil das "SearchForFile" nicht ein eine Schleife eingebunden ist.
begin
for HDD:='C' to 'Z' do if SearchForFile(HDD + ':\', Filename, APathFound) then begin repeat DeleteFile(ApathFound+Filename); until SearchForFile(HDD + ':\', Filename, APathFound)=false; end; if SearchForFile(HDD + ':\', Filename, APathFound) then WriteLn(myFile, Filename + ' available on: ' + APathFound) else WriteLn(myFile, Filename + ' is not available'); CloseFile(myFile); end; Ich hab es auch nich hinbekommen und brauche jetz eure Hilfe =) Danke |
Re: Schleife
ich hätte das so geschrieben,
hast dus so schon ausprobiert ?
Delphi-Quellcode:
begin
for HDD:='C' to 'Z' do if SearchForFile(HDD + ':\', Filename, APathFound) then begin repeat DeleteFile(ApathFound+Filename); if SearchForFile(HDD + ':\', Filename, APathFound) then WriteLn(myFile, Filename + ' available on: ' + APathFound) else WriteLn(myFile, Filename + ' is not available'); until SearchForFile(HDD + ':\', Filename, APathFound)=false; end; CloseFile(myFile); end; |
Re: Schleife
Hi,
wirklich besser ist das auch nicht :-)
Delphi-Quellcode:
Gruss
begin
for HDD:='C' to 'Z' do if SearchForFile(HDD + ':\', Filename, APathFound) then begin repeat DeleteFile(ApathFound+Filename); until not SearchForFile(HDD + ':\', Filename, APathFound); end else WriteLn(myFile, Filename + ' is not available on ', HDD); CloseFile(myFile); end; |
Re: Schleife
thkerkmann in deinem code hast du "is available" nich berücksichtigt, also mein code soll schon bestehen bleiben, nur umgeschrieben..
// funktioniet doch nicht,findet garkeine dateien mehr D: |
Re: Schleife
Das ist mein Code nun, die erste Datei wird prima auf allen Laufwerken aufgelistet, ob sie da is oder nicht.. Aber dann bleibt er wieder hängen, die Schleife ist noch nich ganz richtig was mach ich falsch ?! :/
Delphi-Quellcode:
Procedure DeletingFiles(Filename:String);
begin for HDD:='C' to 'Z' do if SearchForFile(HDD + ':\', Filename, APathFound) then begin repeat DeleteFile(ApathFound+Filename); WriteLn(myFile, ':: '+ Filename + ' available on: ' + APathFound) until not SearchForFile(HDD + ':\', Filename, APathFound); end else WriteLn(myFile, Filename + ' is not available on ', HDD); CloseFile(myFile); end; |
Re: Schleife
Hi,
also dann musst du uns mal sagen, welchen Eingangswert denn "Filename" bei Dir hat. Und woher kommt SearchForFile, kenn ich gar nicht. Und was heist "bleibt hängen" ? Die Schleife läuft doch über alle Laufwerke und ist dann zu Ende. Und du sagst die erste Datei zeigt er auch an auf allen Laufwerken. Wie ruftst Du die Prozedur denn auf ? Auch wieder in einer Schleife über irgendwas ? Gruss |
Re: Schleife
das sind meine prozeduren , ja hätt ich mit posten sollen. habs jetz gefixxt , das closefile musste raus weil er ja so nach der ersten file closed hat obwohl noch eine kam ..und neu geöffnet hat er es ja auch nich..naja problem behoben , danke
|
Re: Schleife
Ein weiteres Problem besteht dadrin das ich den Exit nich hinkriege wenn eine File nicht vorhanden ist.
Delphi-Quellcode:
Also sowas wie
Procedure DeletingFiles(Filename:String);
begin for HDD:='C' to 'Z' do if SearchForFile(HDD + ':\', Filename, APathFound) then begin repeat DeleteFile(ApathFound+Filename); WriteLn(myFile, ':: '+ Filename + ' available on: ' + APathFound) until not SearchForFile(HDD + ':\', Filename, APathFound); end else WriteLn(myFile, Filename + ' is not available on ', HDD); end; else WriteLn(myFile, Filename + ' is not available on ', HDD) + Exit; |
Re: Schleife
Delphi-Quellcode:
Warum willst Du denn hier die Schleife verlassen.
else
WriteLn(myFile, Filename + ' is not available on ', HDD) + Exit; Wenn Du da die for Schleife mit break verlaesst kannst Du nicht sicher sein das alle Laufwerke durchsucht wurden. Gruesse Klaus |
Re: Schleife
Naja klar , ich will nich die Schleife verlassen sondern was ich will ist:
Wenn eine Datei nicht vorhanden ist soll mein Programm die Zeile "not available" schreiben und sich danach schließen. Wenn aber alles vorhanden ist dann solls ganz normal weiter gehen .. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz