Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi arraynamen in array - auflösen ? (https://www.delphipraxis.net/66033-arraynamen-array-aufloesen.html)

th_bone 23. Mär 2006 18:25


arraynamen in array - auflösen ?
 
Hi,

ich will verschiedene arraynamen in einem array zusammenfassen, damit ich
sie in einer funktion leichter universell ansprechen kann

sprich

arrayname[1]:=arrayY // (array of record)
arrayname[2]:=arrayY // (array of record)

ich habe folgendes versucht weiß aber nicht so recht wie ich dann wieder auf die
daten des einzelnen arrays zugreifen kann

ich möchte eignetlich wenn es geht kein mehrdiemensionales array verwenden da die
length-größen der inhalte sehr unterschiedlich sind

Delphi-Quellcode:

type
  Tdaten = record
              test1   : single;
              test2   : single;
           end;
//...
var

  Rohdaten: array of TDaten;
  Datenarray: array[1..3] of ^Tdaten;
//...

  Datenarray[1]:=@Rohdaten;

//...
 
  // hier kann ich nicht mehr auf test1 auflösen
  for i:=0 to 10 do showmessage(floattostr(datenarray[1]^[i].test1));
ist mein weg überhaupt machbar ?

Danke für die Hilfe

Ralf

Ratte 23. Mär 2006 18:32

Re: arraynamen in array - auflösen ?
 
warum willst du kein array of array of ...? Dann kannst du für jedes unterarray die Länge getrennt festlegen.
Ratte

ChrisE 23. Mär 2006 18:49

Re: arraynamen in array - auflösen ?
 
Hallo,

das ist auch Klar. Du behauptest ungefähr das hier:
Delphi-Quellcode:
type
  PDaten = ^TDaten;
  Tdaten = record
              test1   : single;
              test2   : single;
           end;
//...
var
  Rohdaten: array of TDaten;
  Datenarray: array[1..3] of PDaten; // A

//wegen A geht nur Zugriff der Form
Datenarray[i]^.test1
Was du willst sollte eher so aussehen:
Delphi-Quellcode:
type

  Tdaten = record
              test1   : single;
              test2   : single;
           end;
  PRohdaten = ^TRohdaten;
  TRohdaten = Array of TDaten;
  Datenarray: array[1..3] of PRohdaten;
//...
var
  Rohdaten1: TRohdaten;
  Rohdaten2: TRohdaten;
  Rohdaten3: TRohdaten;
  Datenarray: array[1..3] of PRohdaten;
//...
  Datenarray[1]:=@Rohdaten1;
  Datenarray[2]:=@Rohdaten2;
  Datenarray[3]:=@Rohdaten3;
  for i:=0 to 10 do showmessage(floattostr(datenarray[1]^[i].test1));
Gruß, Chris

wobei i Hier NICHT bis 10 laufen darf ;-)

th_bone 23. Mär 2006 19:17

Re: arraynamen in array - auflösen ?
 
Hi,

danke für die schnellen antworten - für meinen fall ist wohl am einfachsten
array of array zu nehmen

manchmal sieht man den Wald vor Bäumen nicht... :roll:

Tschüss

Ralf


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