AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Daten von 2D Array speichern

Ein Thema von Yheeky · begonnen am 19. Jul 2005 · letzter Beitrag vom 29. Jul 2005
 
barf00s
(Gast)

n/a Beiträge
 
#4

Re: Daten von 2D Array speichern

  Alt 19. Jul 2005, 15:11
es gäbe da 2 möglichkeiten

type
T2DArray = array of array of whatever;

oder

type
T2DArray = array of whatever; // ooh wunder

procedure Init2DArray(aArray: T2DArray; Width, Height: integer);
begin
SetLength(aArray, Width * Height);
end;

// gäbe natürlich auch noch ne 3te variante über pointer

type
P2DArray = ^T2DArray;
T2DArray = array of whatever;

procedure Init2DArray(var aArray: P2DArray; Width, Height: integer);
begin
GetMem(aArray, Width * Height * sizeof(whatever);
end;


um jetz aber nen 2d feld aus dem 1d feld zu machen behilft man sich einer einfachen rechnung
da die "zeilen" des "2d" feldes aneinandergereit im 1d feld untergebracht sind

function PositionToIndex(X, Y: integer): integer;
begin
Result := Y * Height + X;
end;

Index wäre die position im 1d feld

ich denke IndexToPosition(Index: integer): TPoint; kannst dir selber herleiten...


so und dann is das speichern auch kein problem mehr

var
xFS: TFileStream;

begin
xFS := TFileStream('2ddaten.bin', fmCreate);
xFS.Write(Width * Height, 4);
for i := 0 to (Width * Height) - 1 do
xFS.Write(aArray[i], sizeof(whatever));
FreeAndNil(xFS);
end;

"whatever" wäre dann integer, oder byte, oder wieder nen anderes record - da müsste man dann die schreib routine anpassen
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:16 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