Autor Beitrag
markus\win32
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18



BeitragVerfasst: Do 01.05.03 18:23 
Ich habe ein commandline programm, das eine eingabe nach befehlen durchsucht also:
ausblenden Quelltext
1:
2:
3:
if input = 'exit' then continue = 0
else if input = 'info' then displayinfo()
else if ...


gibt es da noch was effektiveres ?
oder vieleicht sogar was einfacheres ?

Moderiert von user profile iconUGrohne: Code-Tags eingefügt
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Do 01.05.03 18:32 
Hi,

Zitat:
ausblenden Quelltext
1:
continue = 0					


Zumal das keinen Sinn ergibt... (vielleicht ":= 0"), haben wir außerdem schon irgendwo so einen Topic (wenn ich mich nicht irre).
Zu deiner Frage: nein, gibt es nicht. Denn was ist dir an einem if-else-Konstrukt zu langsam?

AXMD
markus\win32 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18



BeitragVerfasst: Do 01.05.03 18:37 
ok :=

aber ich meine eine eingabe danach abzufragen ob der text einem befehl entspricht mit if/else - ich dachte nur das geht irgendwie noch besser oder professioneller
denn wenn da mal anstatt nach 10 verschiedenen nach 50 abgesucht wird ...
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: Do 01.05.03 18:48 
Hallo Markus!

Wenn du einen Arrayvordefinierst, der für jeden Befehl einen Index hat, kannst du die Case Of Konstruktion benutzen. Damit ist es zum Einen übersichtlicher, zum Anderen sieht es auch professioneller aus, so wie du es willst ;)!

Gruß wulfskin!

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
markus\win32 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18



BeitragVerfasst: Do 01.05.03 18:52 
naja also
ausblenden Quelltext
1:
2:
3:
4:
case input of:
 command[0] : continue := false;
 command[1] : ShowHelp();
 command[2] : ...


aber so weit ich weiss kann man ja bei case variable of für variable keine strings hernehmen oder ?
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: Do 01.05.03 19:08 
Nein, kannst du nicht. Deshalb ein Array benutzen!
Beispiel:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
const
  Befehle: Array [1..3] of String = ('TEST', 'TEST2', 'TEST3');
begin
  case FindBefehl(Befehl) of
    1: //Mach was;
  else
    writeln('Ungültiger Befehl!');
  end;
Gruß wulfskin!

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.