Autor |
Beitrag |
Niko S.
      
Beiträge: 566
Erhaltene Danke: 10
Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
|
Verfasst: Sa 11.10.08 12:56
Okay Folgendes Problem:
Ich Compile das Programm
-> Es werden alle Files in einem Bestimmten Ordner Aufgelistet (Vorrausgesetzt da sind welche) mittels einer FileListBox
-> Ich Klicke auf meinen Button der eine ausgewählte Datei löschen soll
-> Er Löscht...
-> Ich erstelle eine Neue datei mit (FileCreate()
-> FileListBox wird geupdated mittels FLB.Update;
-> Ich wähle wieder eine Datei aus & klick auf löschen
-> Er löscht NICHT...
Weiß einer Rat?
FLB.FileName zeigt den Korrekten Pfad an...
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 11.10.08 13:08
Was soll ich dazu ohne Quelltext sagen?
Wie soll man an dem was du schreibst einen Fehler erkennen? 
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Sa 11.10.08 13:19
Leere Dateien kann man nicht so einfach löschen. Vielleicht liegts daran.
_________________ Na denn, dann. Bis dann, denn.
|
|
Niko S. 
      
Beiträge: 566
Erhaltene Danke: 10
Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
|
Verfasst: Sa 11.10.08 13:27
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TForm2.Button4Click(Sender: TObject); begin Form3.requestmode := 3; Form3.ShowModal; if (Form3.answermode = 1) then FileCreate(FileListBox1.Directory+'\'+Form3.labeledEdit1.Text+'.txt'); FileListBox1.Update; end;
procedure TForm2.Button3Click(Sender: TObject); begin if (FileListBox1.FileName <> '') then DeleteFile(FileListBox1.FileName); FileListBox1.Update; end; |
Aber warum löscht er dann die lehre daten nachdem man das programm noch einmal aufruft?
Also er löscht die immer wenn sie vorhanden waren bevordem aufrufen
wenn sie wärend der laufzeit erstellt werden
löscht er sie nicht ...
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 11.10.08 16:04
Hausaufgaben wieder nur halb gemacht.  Hast du das ganze mal debuggt? Was gibt DeleteFile für einen Wert zutück? Was gibt GetLastError für einen Wert zurück? Wenn du uns die Fragen beantwortet hast, können wir weiter helfen.
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Sa 11.10.08 16:09
Liefert FileListBox1.FileName denn überhaupt einen Wert zurück? Verläuft die if-Abfrage positiv? Ein Haltepunkt oder ShowMessage(FileListBox1.FileName); könnte weiterhelfen.
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 11.10.08 16:11
Vergleichbarer Thread hier: http://www.delphipraxis.net/topic143874_datei+kopieren+datei+wird+verwendet.html
Wenn man schon Funktionen verwendet, sollte man den Rückgabewert auch mal auswerten.
|
|
Niko S. 
      
Beiträge: 566
Erhaltene Danke: 10
Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
|
Verfasst: Sa 11.10.08 18:34
@ Luckie
Natürlich habe ich es debugged .. GetLastError kannt ich nicht
DeleteFile gibt False zurück ... Aber wie gesagt nur wenn die datei erstellt wurde wärend das programm läuft
bzw vom programm erstellt wurde... (und sie existiert)
@Yogu
Ebenfalls gemacht ... Gibt Alles das aus was es ausgeben soll...
@DeddyH
Was soll ich mit nem Fehler beim Kopieren .. ich kann nicht löschen nachdem ich erstellt habe x_x
Oder liegt das wirklich nur daran dass es leere .txt dateien sind?
Aber dann dürfte er die doch nicht löschen wenn ich das programm neu gestartet habe?!
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 11.10.08 18:41
Niko S. hat folgendes geschrieben : | GetLastError kannt ich nicht |
Ja, und was gibt es denn nun für einen Fehlercode zurück?
Niko S. hat folgendes geschrieben : | Oder liegt das wirklich nur daran dass es leere .txt dateien sind?
Aber dann dürfte er die doch nicht löschen wenn ich das programm neu gestartet habe?! |
Die einzige Erklärung, die mir so einfällt, ist, dass die Datei noch verwendet wird (wie im von DeddyH verlinkten Thread), du also noch ein Handle auf die Datei offen hast.
Was genau der Fehler ist, kann man nur mit dem Fehlercode sagen, aber was dir GetLastError sagt, hast du ja bisher nicht geschrieben...
|
|
Niko S. 
      
Beiträge: 566
Erhaltene Danke: 10
Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
|
Verfasst: Sa 11.10.08 18:44
Sorry total verbummelt
GetLastError gibt 0 zurück
...
also Ich benutz Delphi 7
Und was ich mich frage ist, wie ich ein Handle auf die Datei haben wenn ich sie doch nur Erstelle mittels FileCreate ?
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 11.10.08 18:48
...
Schau dir doch einfach mal die Dokumentation zu Funktionen an, die du benutzt...
docs.codegear.com/do...leCreate@string.html
Zitat: | Bei Erfolg gibt FileCreate einen positiven Integer-Wert zurück, der als Handle für die neue Datei verwendet werden kann. |
// EDIT:
Niko S. hat folgendes geschrieben : | GetLastError gibt 0 zurück |
Bist du sicher, dass du diesen Wert direkt nach der erfolglosen Löschung erhälst? Denn 0 hieße, dass die Operation erfolgreich durchgeführt wurde.
|
|
Niko S. 
      
Beiträge: 566
Erhaltene Danke: 10
Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
|
Verfasst: Sa 11.10.08 18:53
Ach man ... Ich hab wirklich noch ne menge zu lernen <_<
Das war also der Fehler, der war doch noch im Handle drin & ich wusste es nicht...
Dankeschön, ich speicher mir erst einmal die Seite ab weil meine Delphi Hilfe nicht mehr bei Vista funktioniert ;x
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 11.10.08 18:54
Damit funktioniert die Hilfe wieder unter Vista...
www.microsoft.com/do...b&displaylang=de
|
|