Autor Téma: if 123 in ???VytvoreneDynamicky then  (Přečteno 617 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2870
  • Karma: 27
    • Verze Delphi: XE7 professional
if 123 in ???VytvoreneDynamicky then
« kdy: 21-03-2017, 13:07:59 »
Mám zoznam primárnych kľúčov a chcem ich porovnať s nejakým dynamicky vytvoreným zoznamom. Neviem to realizovať pomocou if. Dá sa to?
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline František

  • Hrdina
  • ****
  • Příspěvků: 260
  • Karma: 2
    • Verze Delphi: XE5, 10.1 starter (BDS2006, XE)
Re:if 123 in ???VytvoreneDynamicky then
« Odpověď #1 kdy: 21-03-2017, 13:27:58 »
sql či delfi

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2870
  • Karma: 27
    • Verze Delphi: XE7 professional
Re:if 123 in ???VytvoreneDynamicky then
« Odpověď #2 kdy: 21-03-2017, 13:29:41 »
Samozrejme delphi. Ináč by som hodil do DB sekcie.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline František

  • Hrdina
  • ****
  • Příspěvků: 260
  • Karma: 2
    • Verze Delphi: XE5, 10.1 starter (BDS2006, XE)
Re:if 123 in ???VytvoreneDynamicky then
« Odpověď #3 kdy: 21-03-2017, 13:49:41 »
a zoznam je akého typu?

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2870
  • Karma: 27
    • Verze Delphi: XE7 professional
Re:if 123 in ???VytvoreneDynamicky then
« Odpověď #4 kdy: 21-03-2017, 14:04:38 »
Citace
Mám zoznam primárnych kľúčov
Asi to bude Integer :)
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline František

  • Hrdina
  • ****
  • Příspěvků: 260
  • Karma: 2
    • Verze Delphi: XE5, 10.1 starter (BDS2006, XE)
Re:if 123 in ???VytvoreneDynamicky then
« Odpověď #5 kdy: 21-03-2017, 14:12:09 »
a nie je to record of integer?

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2870
  • Karma: 27
    • Verze Delphi: XE7 professional
Re:if 123 in ???VytvoreneDynamicky then
« Odpověď #6 kdy: 21-03-2017, 14:23:04 »
Typ zoznamu nie je nijako určený. Samotné položky načítavam jednotlivo. Problém je v tom, že if - in vyžaduje vymenovaný typ. Ten neviem vytvoriť.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 1795
  • Karma: 77
    • Verze Delphi: D2007, XE3, DX10
Re:if 123 in ???VytvoreneDynamicky then
« Odpověď #7 kdy: 21-03-2017, 16:33:30 »
Mám zoznam primárnych kľúčov a chcem ich porovnať s nejakým dynamicky vytvoreným zoznamom. Neviem to realizovať pomocou if. Dá sa to?
A co ma byt vysledkem?

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2870
  • Karma: 27
    • Verze Delphi: XE7 professional
Re:if 123 in ???VytvoreneDynamicky then
« Odpověď #8 kdy: 21-03-2017, 20:40:49 »

Tento týždeň mi to ide ako v lete na saniach :(  Výsledok už mám.
Je to vlastne časť úlohy
http://forum.delphi.cz/index.php/topic,15635.0.html - Zoznam položiek zo Z1, ktoré nie sú v Z2
Vytvoriť zoznam ako string pre SQL nie je problém.
Ale pre if - in, ktorý vyžaduje "set" je už iné kafe. Zaujíma ma to už z princípu, keďže to neviem urobiť.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline oxo

  • Guru
  • *****
  • Příspěvků: 694
  • Karma: 40
    • Verze Delphi: Primárně Lazarus, jinak D7 až aktuální
    • Kluug.net
Re:if 123 in ???VytvoreneDynamicky then
« Odpověď #9 kdy: 21-03-2017, 21:36:01 »
Nejdřív vyzkoušej, jestli je stejný počet elementů a pak pomocí for-cyklu projdi všechny elementy, jestli jsou stejné. Dost pomůže, když je budeš mít seřazené. Co je na tom tak složité ;)

+ Udělej si na to funkci a máš to hned k použití do if-podmínky.
Embarcadero Technology Partner, juj. Člen Lazarus týmu, oj.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2870
  • Karma: 27
    • Verze Delphi: XE7 professional
Re:if 123 in ???VytvoreneDynamicky then
« Odpověď #10 kdy: 21-03-2017, 22:03:32 »
Citace
Nejdřív vyzkoušej, jestli je stejný počet elementů a pak pomocí for-cyklu projdi všechny elementy, jestli jsou stejné. Dost pomůže, když je budeš mít seřazené. Co je na tom tak složité
Riešim miestnosti bytu (názov a plocha). Užívateľ si môže vytvoriť šablóny bytov a tie použiť.
Kontrola na počet prvkov je nezmyselná. Jednu miestnosť vymaže (mám 5 typov) a pridá inú. Počet bude rovnaký, ale obsah už nie.
Pomocou for-cyklu mám vytvorený zoznam PK, ktoré treba vymazať. Ten teraz použijem v SQL. To je tých 30 riadkov kódu.
Citace
+ Udělej si na to funkci a máš to hned k použití do if-podmínky.
Totálne sa nechytám. Kvôli tomu som založil tému. Dokážem vytvoriť rôzne zoznamy a string, ale ten "set" neviem dynamicky urobiť. A if-in zožerie len enumerate. Nikde som nič nenašiel.

Na ten problém som narazil, keď som vytváral rôzne variácie na riešenie problému.
« Poslední změna: 21-03-2017, 22:06:10 od Stanislav Hruška »
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline paja666

  • Nováček
  • *
  • Příspěvků: 10
  • Karma: 0
    • Verze Delphi: 10.1.2 Berlin

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2870
  • Karma: 27
    • Verze Delphi: XE7 professional
Re:if 123 in ???VytvoreneDynamicky then
« Odpověď #12 kdy: 22-03-2017, 08:27:21 »
Výborne. Ďakujem. Odkaz som si odložil.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 1795
  • Karma: 77
    • Verze Delphi: D2007, XE3, DX10
Re:if 123 in ???VytvoreneDynamicky then
« Odpověď #13 kdy: 22-03-2017, 08:48:23 »
A if-in zožerie len enumerate.
No ono to neni presne, in ma dva operandy: jeden je ordinal a druhy set. Prvky do mnoziny se pridavaji/ubiraji pomoci include/exclude. Ale je v tom hacek: v Delphi set muze mit jen 256 prvku, takze pro ucel, ke kteremu to chces pouzit tj. na celociselne PK, to nejde.


 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Upozornění: do tohoto tématu bylo naposledy přispěno před 120 dny.
Zvažte prosím založení nového tématu.

Jméno: E-mail:
Ověření:
Křestní jméno zpěváka Gotta: