ich hoffe, daß ist keine Idiotenfrage, aber ich finde nirgendwo eine
Antwort. Vielleicht gehts ja auch gar nicht.
Ich möchte einem Array, mehrere Werte auf einmal zuweisen, ohne jede
Zelle einzeln anzusprechen. Also zB.:
Array:=(1,3,1,2,5);
für ein Array mit fünf Zellen. Geht das oder muß ich da fünf Zeilen
hinschreiben?
Danke und auf Wiederhören,
Kai
> Ich möchte einem Array, mehrere Werte auf einmal zuweisen, ohne jede
> Zelle einzeln anzusprechen. Also zB.:
>
> Array:=(1,3,1,2,5);
>
> für ein Array mit fünf Zellen. Geht das oder muß ich da fünf Zeilen
> hinschreiben?
[alles Folgende bezieht sich auf Delphi 3, falls in späteren
Versionen Syntaxerweiterungen vorgenommen wurden, sind
diese hier nicht berücksichtigt (Unkenntnis des Autors)]
Die typische Antwort: Jein.
Nein, Delphi kennt keinen Array-Konstruktor, mit dem man
die von Dir gewünschte Zuweisung vornehmen kann.
Ja, es gibt (mindestens) zwei Lösungen dafür:
1) Array-Konstanten:
type
TMyArray = array [1..5] of Integer;
const
VorgabeArray: TMyArray = (1,3,1,2,5);
var
MyArray: TMyArray;
begin
MyArray := VorgabeArray;
2) offene Array-Konstruktoren:
procedure SetzeArray( var AnyArray: array of integer;
const Values: array of integer );
begin
while (i <= High(Values)) and (i + Low(AnyArray) <= High(AnyArray)) do
AnyArray[i+Low(AnyArray)] := Values[i];
end;
(* Aufruf *)
SetzeArray( MyArray, [1,3,1,2,5] );
btw: Die Stichworte 1) und 2) gibts auch im Index der OLH
// sorry, untested //
hth
Kirsch.