AGB  ·  Datenschutz  ·  Impressum  







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

StringListe

Ein Thema von Tim Henford · begonnen am 21. Sep 2007 · letzter Beitrag vom 4. Okt 2007
Antwort Antwort
Seite 1 von 2  1 2      
Tim Henford

Registriert seit: 14. Sep 2006
169 Beiträge
 
#1

StringListe

  Alt 21. Sep 2007, 11:22
Hallo,

irgendwie hab ich gerad ein Brett vorm Kopf und zwar wollt ich eine konstante Liste mit z.Bsp. 6 Einträgen erstellen.
Wobei ich diese Einträge dann in einer for i:=0 to liste.eof-1 do abarbeiten wollte und dann ShowMessage (liste[i]).

Geht das irgendwie eine Liste konstant zu definieren ohne TStringlist.create und ..add?
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: StringListe

  Alt 21. Sep 2007, 11:27
Meinst du das?
const liste:array[1..10] of string=('A','B','C','D','E','F','G','H','I','K');
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Tim Henford

Registriert seit: 14. Sep 2006
169 Beiträge
 
#3

Re: StringListe

  Alt 21. Sep 2007, 12:30
genau danke
  Mit Zitat antworten Zitat
Tim Henford

Registriert seit: 14. Sep 2006
169 Beiträge
 
#4

Re: StringListe

  Alt 21. Sep 2007, 14:37
wie ist das, wenn ich 2 listen habe und mich in einer funktion für eine entscheide, also:
Delphi-Quellcode:
const listA:array[1..10] of string=('A','B','C','D','E','F','G','H','I','K');
const listB:array[1..7] of string=('H','G','D','R','E','F','G');

procedure test;
var
 list : array of string;
begin
  if ... then list:= listA else list:= listB
  ShowMessage(list[4]);
end;

geht das irgendwie?
  Mit Zitat antworten Zitat
Chaosente

Registriert seit: 20. Aug 2006
80 Beiträge
 
#5

Re: StringListe

  Alt 21. Sep 2007, 16:22
Delphi-Quellcode:
const listA:array[1..10] of string=('A','B','C','D','E','F','G','H','I','K');
const listB:array[1..7] of string=('H','G','D','R','E','F','G');

procedure test;
var
 list : array of string;
begin
  if ... then
    Showmessage(listA[i])
  else
    showmessage(listB[i])
end;
So vllt? Ungetestet, aber erscheint mir logisch, nur muss du aufpassen, das der index i bei dem jeweiligen Array überhaupt existiert!
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: StringListe

  Alt 21. Sep 2007, 16:34
Delphi-Quellcode:
const listA:array[1..4] of string=('A','B','C','D');
const listB:array[1..3] of string=('1','2','3');

procedure test;
var
  list : array of string;
  i: Byte;
begin
  if ... then
    begin
      setLength(list,length(listA));
      for i:=0 to length(ListA)-1 do
        list[i]:=listA[i+1];
    end
  else
    begin
      setLength(list,length(listB));
      for i:=0 to length(ListB)-1 do
        list[i]:=listB[i+1];
    end;

  ShowMessage(list[2]);
  setLength(List,0);
end;
Vielleicht etwas zu umständlich, vielleicht gibt es auch noch
eine Möglichkeit den Speicher direkt zu kopieren (move)?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: StringListe

  Alt 21. Sep 2007, 16:39
Delphi-Quellcode:
const listA:array[1..3] of string=('A','B','C');
const listB:array[1..2] of string=('Z','X');

procedure TForm1.Button1Click(Sender: TObject);
var list:array of string;
    i:integer;
begin
  list:=@listB;
  for i:=0 to 1 do memo1.lines.add(list[i]); //Achtung Index jetzt ab 0 egal womit die ursprüngliche Liste anfing
end;
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Tim Henford

Registriert seit: 14. Sep 2006
169 Beiträge
 
#8

Re: StringListe

  Alt 26. Sep 2007, 14:33
Super. Danke funktioniert prima.

Ist es auch möglich folgendes Problem zu lösen:

Eine Liste mit Strings und Variablen:
Delphi-Quellcode:
 list: array[1..3] of string=('Abc','Beta','Ce');

var
  viAbc,viBeta,viCe : integer;


if edit.text=list[1] then
  inc(viAbc);
if edit.text=list[2] then
  inc(viBeta);
if edit.text=list[3] then
  inc(viCe)
einfach irgendwie zu sagen inc (vi[edit.text] ) Danke Tim
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: StringListe

  Alt 4. Okt 2007, 13:40
Nee, das dürfte nicht gehen. für die Interpretation von Code ist Delphi nicht ausgelegt. Da müsstest du einen Weg über Objekte wählen.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Tim Henford

Registriert seit: 14. Sep 2006
169 Beiträge
 
#10

Re: StringListe

  Alt 4. Okt 2007, 13:47
Danke. Gibt es ein kurzes Exempel dazu mit Objekten?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 06:11 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