If..then z wyrażeniem w formie listy wyrażeń

0

Witam,
mam zmienną typu String, która zawiera kilka przypadkowych liczb oddzielonych przecinkiem.
Chciałbym w Pascalscript użyć tej listy do warunku
if wartosc in [lista wartosci] then.
W podobny sposób jak w SQL jest
WHERE wartosc IN (warunek1, warunek2)
Jak mogę to zrobić?

0

Może chodzi ci o coś w stylu:

case string of
'hello', 'world', 'test': foo()

Nie wiem, jak działa Pascalscript, ale w FPC powinno to działać.

0

W podobny sposób jak w SQL jest

Pascal to nie SQL. To inne rodziny języków. Ogarnij podstawy, to będziesz wiedzieć jak.

case string of
'hello', 'world', 'test': foo()

Nie wiem, jak działa Pascalscript, ale w FPC powinno to działać.

Skompiluj i sprawdź że nie działa.

0

Kompiluje się i działa w FPC 2.6.0.

Rzeczywiście (zdziwiony).
Również w userchanges nie widzę zmiany, a wydaje mi się że FPC (2.4.0?) nie akceptował stringów w case. Pewnie coś innego sknociłem i zapamiętałem że stringi nie działają... Hmhm, dzięki za uświadomienie o_O :P

0

może dlatego, że tak jest w c?

Nie używam C ani C++. Więc nie. Zresztą co to ma do FPC.
Po prostu miałem takie przeświadczenie bo kiedyś chciałem zrobić case of string i FPC mi się na tym wywaliło. Więc albo było to kiedyś i to zmienili albo był to mój błąd i tak mi pamięci tak zostało. Ale cóż, uczymy się na błędach :P .

0
-123oho napisał(a):

W podobny sposób jak w SQL jest

Pascal to nie SQL. To inne rodziny języków. Ogarnij podstawy, to będziesz wiedzieć jak.

  1. To jest forum Newbie
  2. Twój post bardziej pasuje tutaj Off-Topic

Skompiluj i sprawdź że nie działa.

Działa.
Jednak gdy wstawię zmienną zamiast tej listy, to nie działa. Tak wygląda mój kod:

case nazwa of lista : Visible:=True; else Visible:=False; end;

Zdaję sobie sprawę, że nie znam pewnych podstaw, ale proszę o jakieś wskazówki.

0
case nazwa of
 lista : Visible:=True;
 else
  Visible:=False;
 end;

Można by uprościć do:

Visible := (nazwa = lista);

bądź:

Visible := lista.indexOf(nazwa) > -1;

(przyjmując, że lista jest typu TStringList)

0
  1. To jest forum Newbie
  2. Twój post bardziej pasuje tutaj Off-Topic
  1. I czy to ciebie usprawiedliwia z nieznajomości podstaw tego języka?
  2. Nie.

Zdaję sobie sprawę, że nie znam pewnych podstaw, ale proszę o jakieś wskazówki

Wskazówka: Idź się naucz podstaw.

case nazwa of
 lista : Visible:=True;
 else
  Visible:=False;
 end;

Kolejny co o instrukcje IF pyta. No co to cholera jest.

Nie, podstawy nie są potrzebne. Dopiero gdy trzeba z nich skorzystać (czyli zawsze) to się przydają. Genialne!!!

String w case działa dopiero od FPC 2.6.0, tak na marginesie.

Tak właśnie myślałem ale nie mogłem znaleźć na to info na FPC wiki.

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