Entwickler-Ecke

Dateizugriff - Problem mit FileStream


matze - Di 08.04.03 17:44
Titel: Problem mit FileStream
Ich habe ein Problem mit folgendem Code:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
var FileFromScript:PChar;
    buffer:tfilestream;
begin
  try
        SetFileAttributes (PCHAR (pathToINI) , FILE_ATTRIBUTE_NORMAL );
        buffer := tfilestream.create(pathToINI,fmcreate);
        try
           FileFromScript := Pchar ('http://localhost/index.htm');
           idhttp1.Get(FileFromScript,buffer);       
        except         
        end;
   finally
     buffer.free;
   end;
end;


der Fehler ist folgender:

machmal wird eine Exception ausgelöst, dass die Datei nicht erstellt werden kann. ich habe das mal in der einzelschrittfunktion aufgeführt. der fehler tritt immer in der zeile auf: buffer := tfilestream.create(pathToINI,fmcreate);
das problem ist, dass der fehler immer nur sporadisch auftritt. ich wiess nicht was der fehler ist.

Moderiert von user profile iconKlabautermann: Topic geändert.


foxy - Di 08.04.03 17:50

vielleicht wird dein buffer nimma freigegben ab und zu ... also im code an sich kann ich keinen fehler sehen :?

du hast zwar buffer.free ... aber schau mal ob er das wirklich immer ausführt


wulfskin - Di 08.04.03 18:07

Vielleicht fehlt einfach nur das Share-Argument:  Buffer := tfilestream.create(fmCreate or fmShareDenyWrite);Dazu kommt, dass man die Create anweisung for den Try-Finally Block schreibt.

Gruß wulfskin!


matze - Mi 09.04.03 13:34

also ich werde mal das nit dem Share testen.

aber was meinst du damit, dass ich die create anwiesung for try schreiben soll ??


Luncustaf - Mi 09.04.03 14:10

na das du die variable buffer vor dem try createn sollst und nicht inner halb :D das mein er vllt damit :D


gr€€tz


matze - Fr 11.04.03 13:49

wieso soll man das denn vor dem TRY createn ??? dann hab ich ja gar keine fehlerbehandlung falls da was schief läuft !