| Autor |
Beitrag |
Holg_i
      
Beiträge: 79
|
Verfasst: Sa 14.08.10 11:51
Delphi-Quelltext 1: 2: 3:
| var MyArray: array of array of integer; setlength(MyArray,10,10); |
Soweit ist ja alles klar...
Kann ich aber auch folgendes machen:
Ich brauche ein Array welchen ungefähr so aus sieht
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| var MyArray: array of array of integer; setlength(MyArray,1,10); setlength(MyArray,2,5); setlength(MyArray,24,50); |
So das ich ein Array habe von
MyArray[1,0..10]
MyArray[2,0..5]
...
...
MyArray[24,0..50]
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Sa 14.08.10 12:00
Holg_i hat folgendes geschrieben : | Delphi-Quelltext 1: 2: 3:
| var MyArray: array of array of integer; setlength(MyArray,10,10); | |
Falsch. Mittels SetLength() wird nicht die Obergrenze des Arrays, sondern die tatsächliche Anzahl der Elemente festgelegt. Das erste entsprechend indiziert mit 0. Demzufolge entspräche das dynamische Array in diesem Beispiel var MyArray[0..9,0..9] of Integer;.
Beste Grüße,
Marc
|
|
Holg_i 
      
Beiträge: 79
|
Verfasst: Sa 14.08.10 12:39
Ok Ok
aber das war und ist ja nicht meine Fragestellung.
Ich Brauche ein Array das sich in der zweiten Dimension unterschiedliche längen hat...
wie getippt
MyArray[1,0..9]
MyArray[2,0..50]
MyArray[3,0..1]
...
..
..
MyArray[23,0..12]
Die erste Dimension ist mir beim Start nicht bekannt... und die zweite ergibt sich auch erst.
Nehmen wir an die erste Dimension gibt die Benutzernummer an von 1 bis Max Benutzer
und die zweite Dimension gibt einen Eintag an.
So möchte ich mit MyArray[1,5] den fünften eintrag des Benutzers 1 haben...
Benutzer 1 hat in dem fall mal 10 Einträge
Benutzer 2 hat in dem fall mal 51 Einträge
Benutzer 3 hat in dem fall mal 2 Einträge
u.s.w.
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 481
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Sa 14.08.10 12:46
Du kannst in einem 2D-Array jedem Array eine eigene Größe geben:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| MeinArray = Array of Array of Integer;
Setlength(MeinArray, 100); Setlength(MeinArray[0], 10); Setlength(MeinArray[1], 42); |
_________________ We are, we were and will not be.
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Sa 14.08.10 12:47
|
|
delfiphan
      
Beiträge: 2684
Erhaltene Danke: 32
|
Verfasst: Sa 14.08.10 13:02
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Sa 14.08.10 13:54
|
|
Holg_i 
      
Beiträge: 79
|
Verfasst: Mo 16.08.10 14:01
Danke euch alle.
Genau so wie Gausi es aufgezeigt hatt so geht es wunderbar.
|
|