[Delphi] Case dla stringów

0

Tego niestety mi brakuje w case :(
chcĘ wykorzystać instrukcję case do wartości string. Nie chce mi się pisać w nieskończoność:
if Wartosc = 'Jakas Wartosc' then
BlaBla
else
if Wartosc = 'Jakas inna wartosc' then
Bla
else
if ....

Może ma ktoś jakiś pomysł jak to zrobić tak by to zrobić w jak najwygodniejszy sposób. Mam kilkaset różnych wartości do porównania ;( Dla każdej wywołuję inną procedurę.--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

0

Jeżeli chodzi o wywoływanie pewnych procedur to możesz zrobić tak:

  1. stworzyć tablicę shaszowanych stringów, najlepiej w proporcji 1:1
  2. stworzyć tablicę wskaźników to procedur, tak że dana procedura znajduje się pod indeksem taliby równej haszowi ze stringa, który ma ją wywołać--Vogel [Delphi 6 PE]

Life is just a dream, you know...
[Cowboy Bebop]

0

Vogel napisał:
Jeżeli chodzi o wywoływanie pewnych procedur to możesz zrobić tak:

  1. stworzyć tablicę shaszowanych stringów, najlepiej w proporcji 1:1
  2. stworzyć tablicę wskaźników to procedur, tak że dana procedura znajduje się pod indeksem taliby równej haszowi ze stringa, który ma ją wywołać

Chyba jednak użyję ifów. Nie do każdego jest wywoływana procedura. Czasem to tylko kilka zwykłych instrukcji.
No cóż Ctrl+V się kłania...--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

0

Dryobates napisał:
Chyba jednak użyję ifów. Nie do każdego jest wywoływana procedura. Czasem to tylko kilka zwykłych instrukcji.

To napisz osobne procedury dla tych instrukcji,--Vogel [Delphi 6 PE]

Life is just a dream, you know...
[Cowboy Bebop]

0

Jesli stringi sa krotkie (&lt=8 znakow), mozesz zrzutowac je na int64 (przez Move)

procedure TForm1.Button1Click(Sender: TObject);
var
x:Int64;
s:string[8];
begin
s:=Edit1.Text;
x:=0;
Move(s[1],x,Length(s));
Label1.Caption:=IntToHex(X,16)
end;

Ale jak znam zycie to sa dluzsze:(((--Pawel {Delphi 6 Personal}

Po pierwsze: naciśnij F1

0

pq napisał:
Jesli stringi sa krotkie (&lt=8 znakow), mozesz zrzutowac je na int64 (przez Move)
Ale jak znam zycie to sa dluzsze:(((

Jesteś genialny!!!. Co prawda stringi są dłuższe (najdłuższy 10 znaków), ale pierwszych 8 nigdzie nie powtarza się, czyli są wyjątkowe. Wystarczą do wyboru.--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

1 użytkowników online, w tym zalogowanych: 0, gości: 1