Einzelnen Beitrag anzeigen

Go2EITS

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

Re: FileToString: Wie String zu "StringToFile?"

  Alt 26. Sep 2006, 19:02
@Marabu
Mit den Streams scheitere ich leider schon bei den Übergabeparametern. Dein Code sieht aber interessant aus. Da benötige ich mehr LernZeit um ein Stream zu erstellen, damit ich den als Parameter Deinen Proceduren übergeben kann. Dies ist aber nicht allein das Problem. Es stellt sich ja die Frage der Weiterverarbeitung bzw. Zugriff der Daten.

Aber das Problem ist ja gelöst: Hier nochmals der vollständige richtige Code, den ich verwendet habe, weil viele Threads oft die richtige Lösungen leider offen lassen, dass neue Thread notwendig werden. Daher der funktionierende und vollständige Code nachfolgend:

FileToString:

Delphi-Quellcode:
function FileToString(const FileName: string): AnsiString;// inline;
var
  fs: TFileStream;
  Len: Integer;
begin
  fs := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
  try
    Len := fs.Size;
    SetLength(Result, Len);
    if Len > 0 then
      fs.ReadBuffer(Result[1], Len);
  finally
    fs.Free;
  end;
end;
Und wieder zurück mit StringToFile

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(Len, SizeOf(Integer));
    fs.Write(Str[1], Len);
  finally
    fs.Free;
  end;
end;
EDIT: Nachträglich var in Const geändert, lt. marabu
Betraf ursprünglichen Code: Procedure StringToFile(VAR FileName, Str: string);//Inline;

Inline verwende ich unter Turbo2006.
Viel Vergnügen und beste Grüße.
Go2EITS
  Mit Zitat antworten Zitat