Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem mit TFileStream (und DeleteFile) (https://www.delphipraxis.net/34181-problem-mit-tfilestream-und-deletefile.html)

DerDan 19. Nov 2004 12:15

Re: Problem mit TFileStream (und DeleteFile)
 
wie heist denn deine exe und wie die exe die du löschen willst?

Helmi 19. Nov 2004 12:22

Re: Problem mit TFileStream (und DeleteFile)
 
irgendwie hängt die Platte :-)

die exe heisst genau so wie die die ich löschen will!!

realisiert durch die Variable SaveFile - die einmal beschrieben wird!!

DerDan 19. Nov 2004 12:31

Re: Problem mit TFileStream (und DeleteFile)
 
Das dacht ich mir,

denn genau das geht nicht, eine exe kann sich nicht selber löschen

Helmi 19. Nov 2004 12:35

Re: Problem mit TFileStream (und DeleteFile)
 
falsch!!

denn die Exe (wie gesagt es können auch andere dateien sein) ist nicht die Exe des Programmes - sondern eine andere Exe die zu diesem Zeitpunkt nicht läuft!

DerDan 19. Nov 2004 12:39

Re: Problem mit TFileStream (und DeleteFile)
 
Jetzt mal langsam,

es geht garantiert nicht eine exe zu löschen die gerade läuft!

ich find es seltsam anzunehmen, das das geht, nur weil DU es nicht hinbekommst überhaupt eine Exe oder andere Datei zu löschen.

Helmi 19. Nov 2004 12:49

Re: Problem mit TFileStream (und DeleteFile)
 
ich glaub ich schreib chinesisch :-)

ich lösche nicht die Exe des Programmes das gerade läuft also von der application von der aus ich lösche!!

sondern eine Datei bzw eine Exe von der ich weiss dass sie nicht läuft ( weil ich sie ja selber starte oder beende)

jim_raynor 19. Nov 2004 12:52

Re: Problem mit TFileStream (und DeleteFile)
 
Das Problem ist doch so wie ich beschrieben habe. Du öffnest die Datei mit einem FileStream und liest dann Daten ein. Solange der FileStream existiert ist die Datei gesperrt und kann weder gelöscht, noch ein weiterer FileStream zu dieser Datei geöffnet werden. Setze einfach mal zwei Haltepunkte in der Procedure. einmal beim "TFileStream.Create" und einmal in beim FreeAndNil .

Wenn du jetzt das Prog startest, wird ja irgendwann am ersten Haltepunkt angehalten. Das Ereigniss wurde also ausgelöst. Wenn du jetzt mit F9 fortfährst sollte er als nächstes am Ende halten. Wenn das passiert ist alles korrekt.

Es kann aber auch passieren, dass er wieder in der ersten Zeile anhält und genau dann wird das DeleteFile und TFileStream.Create krachen. Die Prozedur wurde ja noch nicht beendet und der Filestream dementsprechend noch nicht freigegeben.
[edit]oh shitt, warum kann ich den Beitrag nicht mehr löschen :wall: :wall: [/edit]

Nightshade 19. Nov 2004 13:22

Re: Problem mit TFileStream (und DeleteFile)
 
Zitat:

Zitat von Helmi
Delphi-Quellcode:
procedure TForm1.ClientSocketRead(Sender: TObject;
  Socket: TCustomWinSocket);
{...}
begin

      if not Working then
        begin
          //Variable setzen
          Working := True;

Versuch doch mal mit

Delphi-Quellcode:
procedure TForm1.ClientSocketRead(Sender: TObject;
  Socket: TCustomWinSocket);
{...}
begin

      if not Working then
        begin
          //Variable setzen
          Working := True;
          ShowMessage(SaveFile); //<-  hier anzeigen lassen
Den Dateinamen anzeigen zu lassen...

Helmi 19. Nov 2004 14:12

Re: Problem mit TFileStream (und DeleteFile)
 
ich weiss mir keinen Rat mehr

ich hab euch mal mein projekt als anhang angehängt

Aled und LabelTimer dienen nur zur anzeige - sind also unwichtig

mfg
helmi

jim_raynor 19. Nov 2004 17:29

Re: Problem mit TFileStream (und DeleteFile)
 
Vielleicht solltest du bei csIdle nicht Working auf false zurücksetzen. Nur so ne spontane Idee.


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

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