AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

dynamisches Array in einem Record?

Ein Thema von em-sigma · begonnen am 3. Feb 2006 · letzter Beitrag vom 8. Feb 2006
Antwort Antwort
em-sigma

Registriert seit: 8. Jul 2004
38 Beiträge
 
Delphi 2005 Personal
 
#1

dynamisches Array in einem Record?

  Alt 3. Feb 2006, 13:35
Hallo zusammen,

ich habe ein kleines Problem mit variablen Arraygrößen.

Zunächst einmal habe ich ein statisches Array mit 100 Elementen.

Z.B.
      MyTable:array[1..100] of MyElement; Jetzt kommt das Problem:
MyElement ist ein Record, der ein Array enthalten soll, bei dem ich nicht vorher weiß, wie groß es werden soll, also etwa

Delphi-Quellcode:
      
MyElement = record
    n:Integer; // Größe des folgenden Arrays
    MyArray:array[1..n] of Extended;
end;
Das Array im Record enthält mindestens 2 Werte und maximal 256 Werte. Der Wert n soll während der Laufzeit geändert werden können, also größer oder kleiner werden (Minimum=2; Maximum=256).

Geht das? Ich habe dazu leider gar keine Idee. Kann mir bitte jemand helfen. Ich bin auch für andere Lösungen dankbar, sie müssen nur die beschriebenen Anforderungen erfüllen.

Vielen Dank,

em-sigma
Allen ist das Denken erlaubt. Vielen bleibt es erspart. (Curt Goetz)
  Mit Zitat antworten Zitat
Benutzerbild von Grishnak
Grishnak

Registriert seit: 15. Sep 2005
Ort: Neu-Ulm
111 Beiträge
 
RAD-Studio 2009 Arc
 
#2

Re: dynamisches Array in einem Record?

  Alt 3. Feb 2006, 13:59
Welche Delphi-Version benutzt du? Klappen bei dir schon Dynamische Arrays:
Delphi-Quellcode:
var
  MyTable: array of MyElement;
[...]
  SetLength(MyTable, 32); /* --> MyTable[0] bis MyTable[31]
Ansonsten das Ganze über Listen realisieren.
Mach' etwas idiotensicher und irgendjemand erfindet einen besseren Idioten!
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: dynamisches Array in einem Record?

  Alt 3. Feb 2006, 14:01
Delphi-Quellcode:
MyElement = record
    n:Integer; // Größe des folgenden Arrays
    MyArray:array of Extended;
end;



var
 x : MyElement;
begin

SetLength(x.MyArray, x.n);

end;
Das müsste funktionieren
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
em-sigma

Registriert seit: 8. Jul 2004
38 Beiträge
 
Delphi 2005 Personal
 
#4

Re: dynamisches Array in einem Record?

  Alt 3. Feb 2006, 14:28
@Grishnak:
das übergeordnete Array war nicht das Problem, sondern das Array innerhalb des Records.

@SubData:
Deine Lösung sieht interessant aus.
Aber kann ich damit jedem Element (also jedem Record) des übergeordneten Arrays ein Array geben, das eine andere Größe hat?
Also z. B. so:

Delphi-Quellcode:
type
   MyElement = record
       n:Integer;
       MyArray:array[1..n] of Extended;
   end;

var
   MyTable:array[1..1000] of MyElement;

[...]
SetLength(MyTable[78].MyArray,MyTable[78].n); // Das funktioniert???
SetLength(MyTable[79].MyArray,MyTable[79].n); // Hab ich dadurch zwei verschieden große Arrays?
Ich werde das mal ausprobieren.

Vielen Dank,

em-sigma
Allen ist das Denken erlaubt. Vielen bleibt es erspart. (Curt Goetz)
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: dynamisches Array in einem Record?

  Alt 3. Feb 2006, 14:29
Jap kannst du ^^
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
em-sigma

Registriert seit: 8. Jul 2004
38 Beiträge
 
Delphi 2005 Personal
 
#6

Re: dynamisches Array in einem Record?

  Alt 8. Feb 2006, 10:58
Danke für die tolle Hilfe.

Es hat wunderbar geklappt.

Vielen Dank, em-sigma
Allen ist das Denken erlaubt. Vielen bleibt es erspart. (Curt Goetz)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 04:04 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