AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi drei dimensionales dynamisches Array oder Record verwenden
Thema durchsuchen
Ansicht
Themen-Optionen

drei dimensionales dynamisches Array oder Record verwenden

Ein Thema von eassy · begonnen am 23. Mär 2005 · letzter Beitrag vom 24. Mär 2005
Antwort Antwort
eassy

Registriert seit: 7. Mai 2003
48 Beiträge
 
Delphi 5 Enterprise
 
#1

drei dimensionales dynamisches Array oder Record verwenden

  Alt 23. Mär 2005, 16:59
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
werte: array of array of array of string; Aufbau des array:
[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
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: drei dimensionales dynamisches Array oder Record verwend

  Alt 23. Mär 2005, 17:08
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;
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
eassy

Registriert seit: 7. Mai 2003
48 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: drei dimensionales dynamisches Array oder Record verwend

  Alt 23. Mär 2005, 17:13
hallo,

wenn ich dich richtig verstehe kann ich dann
auch folgendes machen:

Delphi-Quellcode:
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;
Welcher Vorteil hat ein Record bezüglich einem dynamischen Array?
Braucht ein Record weniger Speicherplatz?
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: drei dimensionales dynamisches Array oder Record verwend

  Alt 23. Mär 2005, 18:00
Zitat:
wenn ich dich richtig verstehe kann ich dann
auch folgendes machen:
Genau.

Zitat:
Welcher Vorteil hat ein Record bezüglich einem dynamischen Array?
"Falsche" Frage. Eine Array kann von irgend einem Datatyp sein, d.h., auch könnte es eine array of TMyRecord geben.

Zitat:
Braucht ein Record weniger Speicherplatz?
Noch eine "Falsche" Frage.
Eine Record braucht sowiel Platz wie die Summe von einzelner Felder in Record.
D.H.
Delphi-Quellcode:
TMYr = record
a:char;
i:integer;
end;
Sizeof(tmyr) = 5; --> SizeOf(Integer)+SizeOf(Char);

Eine Array braucht--> Typ * Length
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#5

Re: drei dimensionales dynamisches Array oder Record verwend

  Alt 24. Mär 2005, 13:04
Zitat:
Welcher Vorteil hat ein Record bezüglich einem dynamischen Array?
Und in 'nen Record kann man auch verschiedene Typen aufnehmen, außerdem ist der manchmal auch übersichtlicher

Delphi-Quellcode:
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...
Man kann also nicht sagen, dass eines der Beiden besser ist ... es kommt halt immer auf die Verwendung an.

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 ^^
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:49 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