![]() |
Delphi-Version: XE2
Array of Boolean verarbeiten
Hallo Leute, ich habe ein zweidimensionales Array of Boolean und würde gerne ab und an den Zustand abspeichern um ihn später wieder laden zu können.
Delphi-Quellcode:
Ich habs bisher damit versucht aber er meckert rum, dass Boolean und array of Boolean inkompatibel sind :evil:
const
MinX = 0; // Index der linken Spalte im Array TMatrix MaxX = 70; // Index der rechten Spalte im Array TMatrix MinY = 0; // Index der obersten Zeile im Array TMatrix MaxY = 46; // Index der untersten Zeile im Array TMatrix type TMatrix = array[MinX..MaxX, MinY..MaxY] of Boolean;
Delphi-Quellcode:
Habt ihr eine Idee wie ich das Array[x /y] trotzdem umwandeln kann in einen String? :thumb:
procedure TForm2.S1Click(Sender: TObject);
var StrList: TStrings; x,y: integer; begin if SaveDialog1.Execute then begin StrList := NIL; try StrList := TStringList.Create; for x := MinX to MaxX do for y := MinY to MaxY do begin StrList.Add(BoolToStr(UniversumsMatrix[x])); StrList.Add(BoolToStr(UniversumsMatrix[y])); end; StrList.SaveToFile(SaveDialog1.FileName); finally StrList.Free; end; end; end; |
AW: Array of Boolean verarbeiten
Delphi-Quellcode:
StrList.Add(BoolToStr(UniversumsMatrix[x,y]));
|
AW: Array of Boolean verarbeiten
Ob jetzt einer verschämt den Kopf gegen die Wand schlägt? :D
Sherlock |
AW: Array of Boolean verarbeiten
Zitat:
|
AW: Array of Boolean verarbeiten
Steh jetzt leider vorm nächsten Problem nämlich dem Laden... :roll:
Delphi-Quellcode:
Das war jetzt so mein Ansatz aber das will vorne und hinten nicht :?::pale:
procedure TForm2.S2Click(Sender: TObject);
var StrList: TStrings; x, y, i, j: integer; begin if OpenDialog1.Execute then begin StrList := NIL; StrList := TStringList.Create; StrList.LoadFromFile(OpenDialog1.FileName); try for x := MaxX downto 0 do for y := MaxY downto 0 do begin UniversumsMatrix[x,y] := StrToBool(StrList.Strings. ?? end; finally StrList.Free; RasterDrawGrid.Repaint; end; end; end; |
AW: Array of Boolean verarbeiten
Delphi-Quellcode:
i := 0;
for x := MaxX downto 0 do for y := MaxY downto 0 do begin UniversumsMatrix[x,y] := StrToBool(StrList[I]); Inc(i); end; |
AW: Array of Boolean verarbeiten
Nur so ein Gedanke:
Delphi-Quellcode:
Allerdings liest Du in umgekehrter Reihenfolge wieder ein, als in der, in der im obigen Code gespeichert wurde. Außerdem würde ich nach dem Laden erst einmal prüfen, ob die Stringliste auch genügend Elemente enthält. Aber Du wirst das schon machen ;)
procedure TForm2.S2Click(Sender: TObject);
var StrList: TStrings; x, y, i, j: integer; begin if OpenDialog1.Execute then begin StrList := NIL; StrList := TStringList.Create; try StrList.LoadFromFile(OpenDialog1.FileName); i := 0; for x := MaxX downto 0 do for y := MaxY downto 0 do begin UniversumsMatrix[x,y] := StrToBool(StrList[i]); inc(i); end; finally StrList.Free; RasterDrawGrid.Repaint; end; end; end; [edit] Kein roter Kasten? [/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 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