Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - arraynamen ändern


delphiUSER5 - Mi 01.02.12 21:18
Titel: arraynamen ändern
hi,
bin neu hier und hab nach INTENSIVER suche nix gefunden was mir hilft.
mein problem:

ich habe 3 arrays

Delphi-Quelltext
1:
2:
3:
zahl1 : array of INTEGER;
zahl2 : array of INTEGER;
zahl3 : array of INTEGER;

und

Delphi-Quelltext
1:
2:
feld : TARRAYFIELD;
t : STRING;

ich möchte nun dass ich "feld" einen namen geben kann z.B.: " feld.Name := 'zahl1'; " sodass ich mit "feld" auf die arrays zugreifen kann. ich weiß nicht weiter, weil ich nicht " t := feld.Name " setzen kann! ich weiß nicht wieso ich den array-namen nicht in einen string schreiben kann

bitte um HILFE, dringend :D
DANKE

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt


jaenicke - Mi 01.02.12 21:22

Hallo und :welcome:

Was haben denn deine Integer-Arrays mit dem Datenbankfeld feld zu tun? :gruebel:
Ist dir denn klar was TArrayField eigentlich macht? Dass es für die Verwendung in Datenbankzugriffen ist?

Es wäre hilfreich, wenn du schreibst was du eigentlich erreichen willst...


delphiUSER5 - Mi 01.02.12 21:29

danke ;p
ja ich dachte dass ich mit Tarrayfield auf die arrays zugreifen kann und habe auch nichts anderes bei google etc. gefunden.
ich möchte eine variable haben, der ich einen string wert zuweisen kann und dann damit auf den array mit dem namen zugreifen;
vllt was kompliziert aber quasi so (nur als beispiel, funktioniert ggf ja garnicht bei delphi):


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
Var name1 : STRING;
    zahl1 : Array of Integer;
    variable_fuer_zugriff : Tiwas;

begin

  setlength(zahl1,5);
  name1 := 'zahl1';
  variable_fuer_zugriff.name := name1;
  variable_fuer_zugriff[1] := 16;

end;


"variable_fuer_zugriff" ist also nur eine variable für "zahl1"

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt


jaenicke - Mi 01.02.12 21:43

Ich glaube ich weiß was dein eigentliches Problem ist. ;-) Meinst du vielleicht das?

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
type
  TIntegerArray = array of Integer;
var
  zahl1: TIntegerArray;
  zahl2: TIntegerArray;
  zahl3: TIntegerArray;
  MeineZahl: TIntegerArray;
begin
  ...
  MeineZahl := zahl1;
  MeineZahl[0]...
  ...
  MeineZahl := zahl2;
  ...
Hintergrund:
Wenn du jede Zeile einzeln mit "array of integer" als Typ deklarierst, sind das für Delphi jeweils eigene Typen. Wenn du allen den selben Typen gibst wie hier, kannst du die auch untereinander zuweisen.

Einfache Alternative (das oben war vor allem zur Demonstration gedacht): ;-)

Delphi-Quelltext
1:
2:
3:
4:
var
  zahl1, zahl2, zahl3, MeineZahl: array of Integer;
begin
  MeineZahl := zahl1;


delphiUSER5 - Mi 01.02.12 21:51

genau das, DANKE vielmals;
aber das hier läuft nich?!

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
 type  TFIELD1 = ARRAY OF INTEGER;

  TYPE Tvokabel = RECORD
                   s : STRING;
                   feld : TFIELD1;
                   ort : TListBox;
                   stelle, vocRank : INTEGER;
                 end;

var
  FoVoc_ask: TFoVoc_ask;
  i, lines: Integer;
  pfad : STRING;
  Mgs: TMsg;
  zahl1 : ARRAY OF INTEGER;
  zahl2 : ARRAY OF INTEGER;
  zahl3 : ARRAY OF INTEGER;
  voc : ARRAY OF Tvokabel;



implementation


{$R *.DFM}

procedure TFoVoc_ask.setvoc;
VAR j : INTEGER;
begin
  SetLength(zahl1, LBoxSort1.Items.Count);
  SetLength(zahl2, LBoxSort1.Items.Count);
  SetLength(zahl3, LBoxSort1.Items.Count);
  SetLength(voc, LBoxSort1.Items.Count);

  FOR j := 0 TO LBoxSort1.Items.Count-1 DO
  begin
    With voc[j] DO
    begin
      s := LBoxSort1.Items.Strings[j];
      ort := LBoxSort1;
      feld := zahl1;
      {stelle := j;
      vocRank := 0;
      zahl1[j] := 0; }

    end;
  end;
end;

beim rot markierten kommt: Inkompatible Typen

Moderiert von user profile iconNarses: Beiträge zusammengefasst

sry fehler gefunden : zahl1 : TFIELD1 !!!

DANKEE nochmals :D
Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt