AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dynamische Mehrdimensionalige Arrays

Offene Frage von "smash"
Ein Thema von smash · begonnen am 25. Aug 2004 · letzter Beitrag vom 26. Aug 2004
Antwort Antwort
smash

Registriert seit: 28. Jul 2004
23 Beiträge
 
#1

Dynamische Mehrdimensionalige Arrays

  Alt 25. Aug 2004, 13:06
Hallo,

ich komme aus der PHP- Branche, und würde gerne wissen wie man folgendes in Delphi realisiert.
Bitte mit Deklaration der Variablen:

Delphi-Quellcode:
<?php
   $arr = array(
   "abc" => "def",
   "123" => "jkl",
   "anotherOne" => "lol"
   );
   
   foreach($arr AS $key => $val)
   {
      showMessage($key);
      showMessage($val);
   }

?>
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Dynamische Mehrdimensionalige Arrays

  Alt 25. Aug 2004, 13:15
Könntest du vielleicht kurz sagen, was der Code bewirkt?
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
smash

Registriert seit: 28. Jul 2004
23 Beiträge
 
#3

Re: Dynamische Mehrdimensionalige Arrays

  Alt 25. Aug 2004, 13:54
Es wird ein Array in dieser Form erstellt:

Array:
Schlüssel|Wert
abc|def
123|jkl
anotherOne|lol

Anschließend wird das Array Stück für Stück durchlaufen, wobei jeweils der Schlüssel und der Wert in einer Variable zur Verfügung stehen.
  Mit Zitat antworten Zitat
xineohp

Registriert seit: 29. Jan 2004
Ort: Heusenstamm
420 Beiträge
 
Delphi 2005 Professional
 
#4

Re: Dynamische Mehrdimensionalige Arrays

  Alt 25. Aug 2004, 14:18
moin,

würde ich wie folgt machen:

Delphi-Quellcode:
type
  Eintrag = record
    key,
    val: string;
  end;
var
  arr: array of Eintrag;
  i: integer;
begin
  setlength(arr, 4);

  arr[0].key := 'aa';
  arr[0].val := '11';
  // ...

  For i:=0 to high(arr) do
    showmessage( arr[0].key +' --> '+ arr[0].val );
end;
alternativ ginge auch:

Delphi-Quellcode:
var
  arr: array of array[1..2] of string;
  i: integer;
begin
begin
  setlength(arr, 4);

  arr[0,1] := 'aa';
  arr[0,2] := '11';
  // ...

  For i:=0 to high(arr) do
    showmessage( arr[0,1]+' --> '+ arr[0,2] );
end;
Die direkte Zuweisung funktioniert afaik nur bei statischen arrays:

Delphi-Quellcode:
var
  arr: array[0..3,1..2] of string = (('aa','11'),('bb','22'),('cc','33'),('dd','44'));
  i: integer;
begin
  For i:=0 to high(arr) do
    showmessage( arr[0,1]+' --> '+ arr[0,2] );
end;
Peter Enenkel
  Mit Zitat antworten Zitat
Benutzerbild von Noinini
Noinini

Registriert seit: 12. Aug 2003
Ort: Kempen
38 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Dynamische Mehrdimensionalige Arrays

  Alt 26. Aug 2004, 07:36
Hallöchen,

wenns nicht unbedingt ein Array sein muss, würde sich auch eine Stringliste anbieten.
Du kannst zwei Strings miteinander verknüpfen und bist deutlich flexibler. Müsstest mal in der Hilfe schaun.

Hier ein Beispiel:

Delphi-Quellcode:
var
  strList: TStringlist;
  i: Integer;
begin
  strList := TStringlist.Create;
  strList.Add('abc=def');
  strList.Add('123=456');
  for i := 0 to strList.Count - 1do
  begin
    showmessage(strList.Names[i]);
    showmessage(strList.ValueFromIndex[i]);
  end;
  strList.Free;
end;
Gruß

Iris
Iris
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#6

Re: Dynamische Mehrdimensionalige Arrays

  Alt 26. Aug 2004, 15:18
das ist ein typischer hash. gibt in delphi von hause aus nicht (anders als bei php, c#...). aber du kannst mal auf diversen komponenten-sammlungs-seiten (torry, delphi super page...) schauen, das hat bestimmt schon mal wer gemacht.
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz