![]() |
Re: IniFile zu langsam
Zitat:
Kriegste später, ich bin grad unterwegs. |
Re: IniFile zu langsam
Delphi-Quellcode:
Ich würde das ja eher so machen:
procedure TEditWorld.New(Width:Integer; Height:Integer);
var x, y, iTmp : Integer; begin World.Width := Width; World.Height:= Height; if FLevel <> nil then FLevel.Free; FLevel := TFileStream.Create(ExtractFilePath(Application.Exename) + 'Default.dat', fmCreate); iTmp := Width * Height; FLevel.Write(iTmp, SizeOf(iTmp)); for y := 0 to Height - 1 do begin // reinschreiben for x := 0 to Width - 1 do begin // FLevel.WriteString('Tex' + IntToStr(i),'Tex','Wasser'); das sollte man // eventuell via Enum lösen, damit auch ein integer geschrieben werden kann, // vorteil: partielles laden einfach möglich // muss es unbedingt ein String sein, gib bescheid FLevel.Write(x, SizeOf(x)); FLevel.Write(y, SizeOf(x)); end; end; // FLevel.Free; end;
Delphi-Quellcode:
type
TLevelHeader = record dwSg : Cardinal; iHeight, iWidth : Integer: end; TAreaType = (atWater, atLand); procedure TEditWorld.New(Width:Integer; Height:Integer); var x, y : Integer; fTmp : TAreaType; rHead : TLevelHeader; begin World.Width := Width; World.Height:= Height; if FLevel <> nil then FLevel.Free; FLevel := TFileStream.Create(ExtractFilePath(Application.Exename) + 'Default.dat', fmCreate); rHead.dwSg := 1234567; rHead.iHeight := Height; rHead.iWidth := Width; iTmp := Width * Height; FLevel.Write(iTmp, SizeOf(iTmp)); for y := 0 to Height - 1 do for x := 0 to Width - 1 do begin fTmp := atWater; FLevel.Write(fTmp, 1); end; end; |
Re: IniFile zu langsam
Ja hab das Problem jetzt eingermaßen mit Filestreams in den Griff bekommen.
Siehe meinen ![]() Danke nochmal an alle :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz