Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   verschachtelte dynamische arrays initialisieren (https://www.delphipraxis.net/216419-verschachtelte-dynamische-arrays-initialisieren.html)

Kolonius 25. Dez 2024 14:05

verschachtelte dynamische arrays initialisieren
 
Hallo Community,
ich stolpere über die Initialisierung von folgender Struktur:

Delphi-Quellcode:
Type
      korbinhalt = record
         daten: array of 0..1;
         diff: integer;
      end;
      Korbmenge = Array of korbinhalt;

var km: korbmenge;
    mdaten: integer;

procedure TForm1.Button1Click(Sender: TObject);
// init
var n,k,sum0, anzahl, sda:integer;
    s1,s2:string;
begin
  anzahl:=strtoint(edit1.Text);
  mdaten:=strtoint(edit2.Text);
  setlength(???,mdaten); // bezieht sich auf "daten" oben im Record
  setlength(km,anzahl);
Alle Kombinationen, die ich probiert habe, bringen Compilerfehler. Die Variable kann ich aber mit:
Delphi-Quellcode:
km[n].daten[k]:=random(2);
fehlerfrei adressieren.
Ich bitte um Hilfe.

Gruß Kolonius

dummzeuch 25. Dez 2024 14:18

AW: verschachtelte dynamische arrays initialisieren
 
Delphi-Quellcode:
Type
  korbinhalt = record
    daten: array of 0..1;
    diff: integer;
  end;
  Korbmenge = Array of korbinhalt;

var
  km: korbmenge;
  mdaten: integer;

procedure TForm1.Button1Click(Sender: TObject);
var
  n,k,sum0, anzahl, sda:integer;
  s1,s2:string;
  i: integer;
begin
  anzahl:=strtoint(edit1.Text);
  mdaten:=strtoint(edit2.Text);
  // Länge des km-Array setzen
  setlength(km,anzahl);
  // für jeden Record im km-Array
  for i := Low(km) to High(km) do begin
    // die Länge des Daten-Arrays setzen
    setlength(km[i].Daten, mdaten);
  end;

Kolonius 25. Dez 2024 17:27

AW: verschachtelte dynamische arrays initialisieren
 
@dummzeuch

Danke, das war's. Ich wär nicht drauf gekommen, dass man es mit ner Schleife machen muss.

Dir noch schöne Weihnachten, bye bye.

Kolonius

himitsu 14. Jan 2025 07:01

AW: verschachtelte dynamische arrays initialisieren
 
Man mag es vielleicht nicht glauben, aber "DAS" SetLength gibt es garnicht,
und Dank ein bissl Compilermagic ....

Delphi-Quellcode:
SetLength(km, anzahl, mdaten);


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