Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Array mit Zahlen füllen (https://www.delphipraxis.net/112760-array-mit-zahlen-fuellen.html)

Tazidus 26. Apr 2008 16:22


Array mit Zahlen füllen
 
Hallo,

ich habe mal eine "dumme" Frage.

Ich habe ein Array
Delphi-Quellcode:
Gewichtung : Array [1..9] of Integer;
jetzt möchte ich gerne diesem Array Werte zuweisen.

Mit Gewichtung[1] := 1;
Gewichtung [2] := 2;
usw.

klappt ja auch gut.

Aber gibt es nicht eine einfachere Möglichkeit wie z.B.

Gewichtung := (1,2,3,4,5,6,7,8,9); <= dies geht nicht!

Über eine Antwort freue ich mich riesig.

Die Muhkuh 26. Apr 2008 16:27

Re: Array mit Zahlen füllen
 
Delphi-Quellcode:
Gewichtung : Array [1..9] of Integer = (1, 2, 3, 4, 5, 6, 7, 8, 9);

Stefan92 26. Apr 2008 16:33

Re: Array mit Zahlen füllen
 
Bei MuhKuh's Tipp darst du meines Wissens nicht mit lokalen Prozeduren arbeiten, es sei denn du benutzt das Schlüsselwort "const" statt "var", um eine typisierte Konstante zu erzeugen.
Und globale Variablen kann man auch nur ab Delphi 2.0 so initialisieren.

Gruß

Stefan

Tazidus 26. Apr 2008 16:37

Re: Array mit Zahlen füllen
 
Hallo,
danke für diesen Tipp.

Im Prinzip geht das schon, aber ich habe das Problem, dass ich eine Drei-Fall-Unterscheidung machen muß und hierbei ist lediglich die Gewichtung eine andere. Und ich wollte gerne eine Variable benutzen, die ich jeweils dann anpasse.

also sowas in der Art:

Delphi-Quellcode:
...
var
  Gewichtung : Array[1..9] of Integer;
Begin
  ...
  case xyz of
  1: Begin
       Gewichtung := ...
       ...
     end;
  2: Begin
       Gewichtung := ...
       ...
     end;
  3: Begin
       Gewichtung := ...
       ...
     end;
  end;
...

end;

Die Muhkuh 26. Apr 2008 16:39

Re: Array mit Zahlen füllen
 
Kann man diese Gewichtungen berechnen?
Dann könntest Du eine For-Schleife nehmen und damit das Array füllen.

Dax 26. Apr 2008 16:42

Re: Array mit Zahlen füllen
 
Delphi-Quellcode:
type
  TGewichtung = array[1..9] of Integer;

Procedure SetArray(var arr: TGewichtung; values: array of Integer);
var i: Integer;
begin
  for i := Low(arr) to High(arr) do
    if i >= Length(values) then
      arr[i] := 0
    else
      arr[i] := values[i-1];
end;

SetArray(Gewichtung, [1,2,3,4,5,6,7,8,9]);

Tazidus 26. Apr 2008 16:51

Re: Array mit Zahlen füllen
 
Im Prinzip wäre all dies möglich, aber die Gewichtung dient der Ermittlung einer Prüfziffer.

Und da ist die Gewichtung einmal [1,2,1,2,1,2,1,2,1] oder [1,3,5,7,9,11,2,4,6] oder aber auch [1,2,3,3,2,1,1,1]

Diese Gewichtung ist leider vorgegeben und kann nicht berechnet werden.

Stefan92 26. Apr 2008 19:00

Re: Array mit Zahlen füllen
 
Hast du den Vorschlag von Dax überhaupt gelesen? Damit klappt das doch wunderbar, du rufst seine Prozedur einfach je nach Bedarf mit den entsprechenden Werten auf.

Gruß

Stefan

Namenloser 26. Apr 2008 20:09

Re: Array mit Zahlen füllen
 
Andere Möglichkeit: Lege eine Konstante mit den Initialisierungswerten an und weise diese zu Beginn deiner Variable zu.

Tazidus 28. Apr 2008 13:24

Re: Array mit Zahlen füllen
 
Hallo,
ich habe mir die Sache noch einmal angesehen.
Anfangs war ich ja nicht so angetan, von der Möglichkeit mit der function/procedure

Aber jetzt werde ich das wohl so machen. Ist die beste Lösung finde ich.

Danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz