Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Mehrere Array Zellen mit einer Anweisung zuweisen?

83 views
Skip to first unread message

Kai Schreiber

unread,
Apr 7, 2000, 3:00:00 AM4/7/00
to
Hallo,

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

Tassilo Kirsch

unread,
Apr 8, 2000, 3:00:00 AM4/8/00
to
Kai Schreiber <schr...@genista.de> schrieb:

> 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.

0 new messages