Danke, jetzt klappt's!
Zitat von
SirThornberry:
Delphi-Quellcode:
SetLength(TmpStr, StrLength);
MazeStream.Read(TmpStr[1], StrLength);
So kam allerdings nur die Hälfte des Strings an, aber dank
dieser seite habe ich es jetzt so hinbekommen (vielleicht hilft es noch irgendwem...):
Delphi-Quellcode:
procedure TMazeEditor.SaveBinClick(Sender: TObject);
var
MazeStream: TStream;
StrLength: Integer;
ValidationString: String;
begin
if SaveDialog1.Execute then
begin
try
MazeStream := TFileStream.Create(SaveDialog1.FileName,fmCreate);
ValidationString := 'der String';
StrLength := Length(ValidationString);
MazeStream.Write(StrLength, SizeOf(StrLength));
MazeStream.Write(ValidationString[1], StrLength*SizeOf(ValidationString[1]));
//...
finally
MazeStream.Free
end;
end;
end;
procedure TMazeEditor.LoadBinClick(Sender: TObject); //im Spiel ist es fast genau so
var
MazeStream: TStream;
StrLength: Integer;
TmpStr: String;
begin
if OpenDialog1.Execute then
begin
try
MazeStream := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
MazeStream.Read(StrLength, SizeOf(StrLength));
SetLength(TmpStr,StrLength);
MazeStream.Read(TmpStr[1], StrLength*SizeOf(TmpStr[1]));
if TmpStr = 'www.lumpiluk.de.ms - Maze v0.5' then
begin
//...
end;
finally
MazeStream.Free;
end;
end;
end;
Vielen Dank nochmal!