![]() |
drei dimensionales dynamisches Array oder Record verwenden
hallo zusammen,
ich stehe mal wieder vor einem problem: zur zeit habe ich mein programm mit einem drei dimensionalen dynamischen array aufgebaut. diese möchte ich aber abändern, da das sehr unübersichtlich ist und dauernd messwerte dazu kommen. mein array sieht folgendermaßen aus
Delphi-Quellcode:
Aufbau des array:
werte: array of array of array of string;
[0,0,0] = wertname1 [0,0,1] = wertname1 [0,1,0] = Datum + Uhrzeit (z.b. 23.03.2005 16:55:39) [0,1,1] = wert (z.b 2) [0,2,0] = Datum + Uhrzeit (z.b. 23.03.2005 16:56:39) [0,1,1] = wert (z.b 2,5) usw. [1,0,0] = wertname2 [1,0,1] = wertname2 [1,1,0] = Datum + Uhrzeit (z.b. 23.03.2005 16:55:39) [1,1,1] = wert (z.b. 44,58) [1,2,0] = Datum + Uhrzeit (z.b. 23.03.2005 16:56:39) [1,2,1] = wert (z.b. 40,99) jetzt meine frage, kann man das auch irgendwie als record aufbauen? wäre das sinnvoll oder hat vielleicht jemand eine anderen idee? ich bin über jede hilfe dankbar. gruß eassy |
Re: drei dimensionales dynamisches Array oder Record verwend
Ganz einfach:
Delphi-Quellcode:
type
TMyRecord = record // alles was du brauchst, z.b Name : string; alter : integer; HatKinder : Boolean; // alles was du brauchst end; TMyArray = array of TMyRecord; var MyArray : TMyArray; .. begin SetLength(MyArray, 10); // von 0 bis 9 MyArray[1].Name := 'smith'; MyArray[1].Alter := 33; MyArray[1].HatKinter := False; end; |
Re: drei dimensionales dynamisches Array oder Record verwend
hallo,
wenn ich dich richtig verstehe kann ich dann auch folgendes machen:
Delphi-Quellcode:
Welcher Vorteil hat ein Record bezüglich einem dynamischen Array?
TWerte = record
DatumUhrzeit: TDateTime; Wert: Double; end; TDaten = record Name: String; Zeitpunkt: array of TWerte; end; TMyArray = array of TDaten; var MyArray : TMyArray; .. begin SetLength(MyArray, 10); // von 0 bis 9 end; Braucht ein Record weniger Speicherplatz? |
Re: drei dimensionales dynamisches Array oder Record verwend
Zitat:
Zitat:
Zitat:
Eine Record braucht sowiel Platz wie die Summe von einzelner Felder in Record. D.H.
Delphi-Quellcode:
Sizeof(tmyr) = 5; --> SizeOf(Integer)+SizeOf(Char);
TMYr = record
a:char; i:integer; end; Eine Array braucht--> Typ * Length |
Re: drei dimensionales dynamisches Array oder Record verwend
Zitat:
Delphi-Quellcode:
Man kann also nicht sagen, dass eines der Beiden besser ist ... es kommt halt immer auf die Verwendung an.
Var A: Array[0..1] of Integer;
Var B: Record Anzahl, Position: Integer; End; // Also, bei A[0] := 10; A[1] := 3; // weiß keiner was [0] und [1] ist, aber wenn man dagegen B.Anzahl := 10; B.Position := 3; // sieht... Es wird ja wohl(hoffentlich) Keiner, in dem folgendem Beispiel, den Record verwenden?
Delphi-Quellcode:
Var A: Array[1..1000] of Integer;
Var B: Record Wert1: Integer; Wert2: Integer; Wert3: Integer; ... Wert999: Integer; Wert1000: Integer; End; PS: Eine Array braucht--> SizeOf(Typ) * Length + 4 der Zeiger auf den Speicherplatz der Arraydaten ^^ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:09 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