Autor Beitrag
Karlson
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Do 27.09.07 01:20 
Moin!

Ich habe folgendes Array:

ausblenden Delphi-Quelltext
1:
Feld : Array[1..5] of Array[1..5] of Integer;					


Sagen wir mal jedes Array könnte die Formen 0 und 1 annehmen.
Würde man das dann nach einem bestimmten Schema füllen würde es so aussehen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
 Feld[1][1]:=0;
 Feld[1][2]:=0;
 Feld[1][3]:=1;
 usw.


Wenn man annimmt dass ich 10 verschiedene Formen habe, nimmt dieses Füllen ganze 250 Zeilen in Anspruch, macht den
Code unübersichtlich und aufgebläht.

Wenn man ein statisches Array hat kann man das ja so füllen:

ausblenden Delphi-Quelltext
1:
 Feld : Array[1..5] of String = ('1','0','2','Bsp','3');					


Gibt es diese oder eine ähnliche Möglichkeit in meinem Beispiel?

Merci!
Jerk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 251

Vista Ultimate, Ubuntu
Turbo Delphi 2006
BeitragVerfasst: Do 27.09.07 02:12 
Na dann füll doch die Werte immer erst in ein DynArray und mittels Zählerschleife dann in das eigentliche Array, oder verstehe ich dein rpoblem nicht -.- ?
Tilo
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1098
Erhaltene Danke: 13

Win7 geg. WInXP oder sogar Win98
Rad2007
BeitragVerfasst: Do 27.09.07 06:39 
Falls die Felder unregelmäßig gefüllt sind kannst Du die Werte auch in eine Datei auslagern und dann laden.
Das hat dann 2 Effekte:
- Werte stehen nicht im Code -> Bei großen Feldern Platzersparnis und
- Falls sich die Werte ändern brauchst Du nicht neucompilieren
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Do 27.09.07 07:06 
kürzer wäre
ausblenden Delphi-Quelltext
1:
Feld : array[1..5,1..5] of Integer;					


auch
ausblenden Delphi-Quelltext
1:
2:
3:
 Feld[1,1]:=0;
 Feld[1,2]:=0;
 Feld[1,3]:=1;


Tipp lege doch die Vorgaben linear in einer konstanten ab und fülle dein Array:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
coDef: array[0..24] of Integer
     = (0,0, ...);
var
  X,Y: Integer;
begin
  for Y := 1 to 5 do
    for X := 1 to 5 do
      Feld[X,Y] := coDef[(Y-1)*5+(X-1)];

PS: Wenn dein Index bei 0 anfangen würde, wäre die Formel einfacher, es wäre koform zu dynamischen Arrays usw usf

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Do 27.09.07 07:38 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
Const
  MyConstArray : Array [1..5, 1..5] of integer = (
    (0,0,1,0,1),
    (1,0,1,0,1),
    (0,1,1,0,1),
    (0,0,1,1,1),
    (0,0,1,0,1)
  );

Kurz und knapp. Aber wenn die sich ändern können, dann -wie Tilo sagt- in eine Datei auslagern.

_________________
Na denn, dann. Bis dann, denn.
Karlson Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Fr 28.09.07 12:57 
Okay danke für die Antworten! Sowas wie Alzaimar geschrieben hat habe ich gesucht.