Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wie mache ich eine 3D record Array? (https://www.delphipraxis.net/68602-wie-mache-ich-eine-3d-record-array.html)

Hallo_Thomas 2. Mai 2006 13:22


Wie mache ich eine 3D record Array?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Irgendwie komme ich mit den records noch nicht recht klar, bis jetzt konnte ich alles mit ner Array machen, doch die ist ein bissl zu gross dafür, find ich.

Delphi-Quellcode:
type
TIntArray3=Array of Array of Array of Word;

public
Check     : TIntArray3;


....
SetLength(ProzentCheck,27,12,65535);///////[Tabellenindex,Werteentnahmepunkt,ySpalte]

Die Array soll soll ein paar daten abspeichern, wie eine Tabelle. Wobei der tritte Wert mein hauptproblem ist, er funktioniert ähnlich einem Counter, also wird in der ersten Runde nur ein Ert beötigt, in der 2 Zwei....... (Siehe Tabelle, wie macht ich son einen Record, wie lese ich den gespeicherten Wert aus so einem 3D record?

s.h.a.r.k 2. Mai 2006 13:32

Re: Wie mache ich eine 3D record Array?
 
Ich versteh irgendwie nicht ganz dein Problem?! Wenn ich auf der Leitung steh musst mich da mal runterholen und mir ein paar nähere Details geben!

Hab hier mal ein kleinen Code, aber ich denke, sowas weißt du schon:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  test : TIntArray3;
  i, n, z : Integer;
begin
  // Länge des Arrays festlegen
  setlength(test, 10, 10, 10);

  // Array mit Werten füllen
  for i := 0 to 9 do
    for n := 0 to 9 do
      for z := 0 to 9 do
        test[i][n][z] := i+n+z;

  // Testausgabe
  ShowMessage(IntToStr(test[0][9][8]));
end;

H4ndy 2. Mai 2006 13:33

Re: Wie mache ich eine 3D record Array?
 
Irgendwie versteh' ich dein Problem auch nicht so recht :gruebel:

Zu allererst solltest du aber mal die Begriffe "Record" und "Array" trennen.
Was du deklariert hast, ist ein dreidimensionales Array welches Words halten kann.
Ein Record ist ein struktierter Daten-Typ.

Irgendwie weiss ich auch nicht, wie du die Tabelle in ein 3D-Array stecken willst...
Für deine Zwecke könnte dieses Record brauchbar sein:
Delphi-Quellcode:
TMyTableData = record
  Year: Word;
  Expenditure: Extended;
end;
Dann könntest du ein Array deklarieren, welches eine Menge von Tabellen-Daten halten kann:
Delphi-Quellcode:
TMyTable = array of TMyTableData
Somit kannst du deine Tabelle dann füllen:
Delphi-Quellcode:
var MyTable: TMyTable;
...
SetLength(MyTable,1);
MyTable[0].Year := 2005;
MyTable[0].Expenditure := 5.7;
Den Rest kannst du dir ja denken ;)

s.h.a.r.k 2. Mai 2006 13:49

Re: Wie mache ich eine 3D record Array?
 
Die von H4ndy vorgeschlagene Variante ist wohl die sinnvollere Lösung für dein Problem! Warum bin ich da nicht drauf gekommen :wall:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:28 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