Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Array of Boolean verarbeiten (https://www.delphipraxis.net/176422-array-boolean-verarbeiten.html)

Back2Code 4. Sep 2013 10:47

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:
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;
Ich habs bisher damit versucht aber er meckert rum, dass Boolean und array of Boolean inkompatibel sind :evil:

Delphi-Quellcode:
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;
Habt ihr eine Idee wie ich das Array[x /y] trotzdem umwandeln kann in einen String? :thumb:

Union 4. Sep 2013 10:53

AW: Array of Boolean verarbeiten
 
Delphi-Quellcode:
StrList.Add(BoolToStr(UniversumsMatrix[x,y]));

Sherlock 4. Sep 2013 10:59

AW: Array of Boolean verarbeiten
 
Ob jetzt einer verschämt den Kopf gegen die Wand schlägt? :D

Sherlock

Back2Code 4. Sep 2013 12:02

AW: Array of Boolean verarbeiten
 
Zitat:

Zitat von Sherlock (Beitrag 1227128)
Ob jetzt einer verschämt den Kopf gegen die Wand schlägt? :D

Sherlock

:pale: Im Endeffekt hab ich mir meine Frage mit meiner Fragestellung ja fast selber beantwortet. Danke für den Anstoß

Back2Code 4. Sep 2013 13:59

AW: Array of Boolean verarbeiten
 
Steh jetzt leider vorm nächsten Problem nämlich dem Laden... :roll:

Delphi-Quellcode:
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;
Das war jetzt so mein Ansatz aber das will vorne und hinten nicht :?::pale:

Uwe Raabe 4. Sep 2013 14:03

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;

DeddyH 4. Sep 2013 14:06

AW: Array of Boolean verarbeiten
 
Nur so ein Gedanke:
Delphi-Quellcode:
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;
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 ;)

[edit] Kein roter Kasten? [/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:24 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz