function FileToString(mFileName : TFileName) : string;
var vFileChar : file of Char; vChar : Char;begin Result := ''; {$I-} AssignFile(vFileChar , mFileName); Reset(vFileChar); while not Eof(vFileChar) do begin Read(vFileChar , vChar); Result := Result + vChar; end; CloseFile(vFileChar); {$I+}end;function StreamToString(mStream : TStream) : string;
var I : Integer;begin Result := ''; if not Assigned(mStream) then Exit; SetLength(Result , mStream.Size); for I := 0 to Pred(mStream.Size) do try mStream.Position := I; mStream.Read(Result[Succ(I)] , 1); except Result := ''; end;end;function StringToStream(mString : string; mStream : TStream) : Boolean;
var I : Integer;begin Result := True; try mStream.Size := 0; mStream.Position := 0; for I := 1 to Length(mString) do mStream.Write(mString[I] , 1); except Result := False; end;end;