Einzelnen Beitrag anzeigen

Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#16

Re: FileToString: Wie String zu "StringToFile?"

  Alt 1. Okt 2006, 09:19
Guten Morgen DP!
Das Problem besteht noch:
Zitat:
Der Code Filetostring und Stringtofile scheint die gelesen Daten auf der Festplatte noch offen zu haben; das Löschen geht nur, wenn mein Programm, das die Daten eingelesen hat, geschlossen wird. Gibt es ein Close dazu? Ich habe bei den Streams nachgesehen, konnte aber nichts finden.
Ich habe in der Hilfe nochmals nachgesehen: Ein FileClose soll helfen. Ich habe daher, wie "beschrieben" (ohne weiteren Hinweis oder ein Beispiel), nach dem fs.free in der StringtoFile ein Fileclose(fs.handle); eingefügt:
Delphi-Quellcode:

Procedure StringToFile(const FileName, Str: string);//Inline;
var
  fs: TFileStream;
  Len: Integer;
begin
  fs := TFileStream.Create(FileName, fmcreate);
  try
    Len := Length(Str);
    fs.Write(Str[1], Len);
  finally
    fs.Free;
    Fileclose(fs.handle); //Das funzt net!
end;
end;
Das bringt mir eine Exception.
Kann es sein, dass ich beim Lesen z. B. von 900 Files hintereinander mit "FileToString" auch alle Handles holen muss und daher nur ein, nämlich das letzte Handle, schließe?
Oder kann es sein, dass ich das Handle beim Lesen noch offen habe? Wie gesagt: Streams sind für mich Neuland.

Hat da jemand einen Ansatz zur Lösung?
Vielen Dank für Eure Mühe (Mit der Lösung kommt dann auch Delphi Clean 1.2 Beta ohne dem Beta für Euch raus!
Beste Grüße
Go2EITS
  Mit Zitat antworten Zitat