Autor Beitrag
Niko S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 11.10.08 13:08 
Was soll ich dazu ohne Quelltext sagen? :nixweiss:

Wie soll man an dem was du schreibst einen Fehler erkennen? :roll:
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: 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. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: Sa 11.10.08 13:27 
ausblenden 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 = 1then
    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



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: 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



BeitragVerfasst: 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. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 11.10.08 18:41 
user profile iconNiko S. hat folgendes geschrieben Zum zitierten Posting springen:
GetLastError kannt ich nicht
Ja, und was gibt es denn nun für einen Fehlercode zurück?

user profile iconNiko S. hat folgendes geschrieben Zum zitierten Posting springen:
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 user profile iconDeddyH 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. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 11.10.08 18:48 
...
Schau dir doch einfach mal die Dokumentation zu Funktionen an, die du benutzt... :roll:
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:
user profile iconNiko S. hat folgendes geschrieben Zum zitierten Posting springen:
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. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 11.10.08 18:54 
Damit funktioniert die Hilfe wieder unter Vista...
www.microsoft.com/do...b&displaylang=de