Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi String und array (https://www.delphipraxis.net/106146-string-und-array.html)

delphinia 6. Jan 2008 04:31


String und array
 
Hallo,,,

habe folgende COnstante

Delphi-Quellcode:
ar_1 : array[0..2] of string = ('ar_1', 'info_1', 'info_2');
ar_2 : array[0..2] of string = ('ar_2', 'info_a1', 'info_a2');
so weit so gut nun ist es so, dass ich per String den Namen des Arrays erhalte
und mit diesem String würde ich dann gerne auf das Array zugreifen


also

erhalte den String ar_1 und möchte dann damit

weiter so vorgehen ar_1[2] um halt 'info_2' zu erhalten... nur funktioniert das nicht :-(
Gibt es einen Weg?!

Dani 6. Jan 2008 04:44

Re: String und array
 
Nein, so einfach geht das nicht. Du müsstest an passender Stelle im Programm eine Map anlegen, wo den Variablennamen die entsprechende Variablen zugeordnet werden. Das ist aber recht umständlich. Vielleicht können wir dir einen einfacheren Weg vorschlagen, wenn du uns dein "Gesamtproblem" mal näher erläuterst (tldr: Was willsch denn machä?)

delphinia 6. Jan 2008 04:51

Re: String und array
 
Also was ich machen will ich versuch es zu erklären

Ich habe in einer Liste infos zu Video Titel... und zwar den namen des Videos

Delphi-Quellcode:
ar_1 : array[0..2] of string = ('ar_1', 'info_1', 'info_2');
ar_2 : array[0..2] of string = ('ar_2', 'info_a1', 'info_a2');
In dem Array ist nun folgendes gespeichert.

[0] der Array name
[1] Fiminfo 1
[2] Filminfo 2

der Array name steht dadrinn da ich den mit in die ListView übergebe damit ich dann anhand dieses Substring herausfinden wollte welches Array nun zu welchem Film gehört!

Das kann/soll fest/constant sein da sich dieses nicht so ohne weiteres ändert ok ok werden wohl 3 - 8 Array mehr aber na ja :-)

Dani 6. Jan 2008 05:36

Re: String und array
 
Ui, das klingt aber kompliziert! Warum baust du dir nicht einfach eine TVideo-Klasse, die ein einzelnes Video repräsentiert., zum Bleistift so
Delphi-Quellcode:
type
  TVideo = class(TPersistent)
  private
    FAbspielDauerMs: Int64;
    FTitel: String;
  public
  published
    property Titel: String read FTitel write FTitel;
    property AbspielDauerMs: Int64 read FAbspielDauerMs write FAbspielDauerMs;
    {etc.}
  end;
... und packst dann alle deine TVideos in eine TObjectList. Wenn du mal eine Liste der Videos hast, z.B.
Delphi-Quellcode:
type
  TVideoMgrForm = class(TForm)
  {...}
  private
    MeineVideos: TObjectList;
  public
    { Public-Deklarationen }
  end;
dann dürfte es ja kein Problem mehr sein, daraus neue TListItems zu bauen. Das hätte den Vorteil, dass du die Videos auch in einer Text oder Ini-Datei speichern könntest, falls sich doch mal was ändert ;)

mschaefer 6. Jan 2008 07:57

Re: String und array
 
Delphi-Quellcode:
function GetValue (ArrayName : string, ArrayIndex, Integer) : String;
begin
  Result := '';
  if Array_Name = 'ar_1' then
  begin
      Result := ar_1[ArrayIndex];
  end else
  if Array_Name = 'ar_2' then
  begin
      Result := ar_2[ArrayIndex];
  end;
end;
Grüße // Martin

PS: Horror ist für jeden Projektplaner, wenn für eine Winzlingsaufgabe gleich der Grundlagenordner aus dem Regal geholt wird. Die Lösung von Sirius ist allerdings eleganter!

Dani 6. Jan 2008 16:07

Re: String und array
 
Zitat:

Zitat von mschaefer
Delphi-Quellcode:
The horror
Grüße // Martin

Das hat nur den Nachteil, dass sie dann später nochmal lernen muss, wie man's richtig macht :(

sirius 6. Jan 2008 16:16

Re: String und array
 
Oder vielleicht so:
Delphi-Quellcode:
const
  ar : array[1..2,0..2] of string = (('ar_1', 'info_1', 'info_2'),
                                     ('ar_2', 'info_a1', 'info_a2'));


function getvalue(aName:string;aIndex:integer):string;
var i:integer;
begin
  result:='';
  for i:=1 to 2 do
    if ar[i,0]=aName then result:=ar[i,aIndex];
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:27 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 by Thomas Breitkreuz