Autor Téma: Návrh typu pro regex - problém s vnořením do sebe sama  (Přečteno 1651 krát)

Offline vangog

  • Hrdina
  • ****
  • Příspěvků: 372
  • Karma: 0
    • Verze Delphi: 7
Re:Návrh typu pro regex - problém s vnořením do sebe sama
« Odpověď #60 kdy: 17-06-2019, 20:20:56 »
Veď si urob nový projekt. V ňom si iba vytvor objekt a neuvoľň ho. Pri zatvorení projektu Ti vypíše memory leak.
Hneď budeš vedieť na čom si.

No já to zkusím až budu programovat. Teď jsem měl pauzu a nevím kdy zas začnu. Snad zítra. Neměl by ten memory leak vypsat spíš při ukončování programu (ne projektu)?

Online Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4546
  • Karma: 40
    • Verze Delphi: XE7 professional
Re:Návrh typu pro regex - problém s vnořením do sebe sama
« Odpověď #61 kdy: 17-06-2019, 20:24:17 »
Ja pod tým projektom myslím program :)
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline vangog

  • Hrdina
  • ****
  • Příspěvků: 372
  • Karma: 0
    • Verze Delphi: 7
Re:Návrh typu pro regex - problém s vnořením do sebe sama
« Odpověď #62 kdy: 18-06-2019, 12:12:22 »
Zatím mi to funguje, kromě te chyby při ukončování programu.

Offline vangog

  • Hrdina
  • ****
  • Příspěvků: 372
  • Karma: 0
    • Verze Delphi: 7
Re:Návrh typu pro regex - problém s vnořením do sebe sama
« Odpověď #63 kdy: 18-06-2019, 22:18:55 »
Dají se v Delphi provádět bitwise AND/OR operace na byte?

Chtěl bych udělat pole
options: Array of byte;

S tím, že každý znak v řetězci s předlouhou má vlastní options.

Příklad takového řetězce:
'(?i)Hello(?I) Andy'
Odpovídá deseti znakům. Options by pak bylo pole bajtů o délce 10, kde každé písmeno má své nastavení.

  char binary options:
  decimal value:
  0 - no options
  1 - '.' any character
  2 - '^' begin of the string
  4 - '$' end of the string or carriage return
  8 - '?' the character may be skipped e.g. dady?
  16 - (?i) insensitive search on
  32 - (?m) multiline search on
  64 - \K  can be used instead of lookbehind: h\Kd matches only the second d in adhd

Co jsem se zatím díval do nápovědy tak jsem našel použití jen s integery, což mi ale přijde hodně neefektivní, protože když používám rozsah jen 8 bitů, tak by musel porovnávat 32 bitů na 32 bitovém systému, 64 bitů na 64 bitovém systému, což mi nedává smysl.

Na pokus jsem zkoušel:
Kód: Delphi [Vybrat]
  1. setLength(options,1);
  2. options[0] := 0 or 8;
  3. if ( 4 and options[0] ) then
  4.    begin
  5.    end;
  6.  

Vrací chybu "Type of expression must be BOOLEAN"

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 811
  • Karma: 45
    • Verze Delphi: 10.3
Re:Návrh typu pro regex - problém s vnořením do sebe sama
« Odpověď #64 kdy: 18-06-2019, 22:38:08 »
Funguje i s byte.
Kód: Delphi [Vybrat]
  1. if (options[0] and 4)<>0 then

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2611
  • Karma: 133
    • Verze Delphi: D2007, XE3, DX10
Re:Návrh typu pro regex - problém s vnořením do sebe sama
« Odpověď #65 kdy: 18-06-2019, 23:01:29 »
Co jsem se zatím díval do nápovědy tak jsem našel použití jen s integery, což mi ale přijde hodně neefektivní, protože když používám rozsah jen 8 bitů, tak by musel porovnávat 32 bitů na 32 bitovém systému, 64 bitů na 64 bitovém systému, což mi nedává smysl.
Au to boli... za tu dobu, co nam tady vylizujes mozky a prudis uz sis taky mohl poridit nejakou ucebnici programovani :-(

Offline vangog

  • Hrdina
  • ****
  • Příspěvků: 372
  • Karma: 0
    • Verze Delphi: 7
Re:Návrh typu pro regex - problém s vnořením do sebe sama
« Odpověď #66 kdy: 18-06-2019, 23:04:38 »
Mohl bys to napsat ještě jednou a česky prosím? Tvou ajťáckou komunikaci nezvládám.

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 811
  • Karma: 45
    • Verze Delphi: 10.3
Re:Návrh typu pro regex - problém s vnořením do sebe sama
« Odpověď #67 kdy: 18-06-2019, 23:04:54 »
Premature optimization je IMHO o co tu jde.

Já jsem zvědav, jestli nakonec neobjeví kouzlo assembleru :-)

Offline vangog

  • Hrdina
  • ****
  • Příspěvků: 372
  • Karma: 0
    • Verze Delphi: 7
Re:Návrh typu pro regex - problém s vnořením do sebe sama
« Odpověď #68 kdy: 18-06-2019, 23:14:32 »
Funguje i s byte.
Kód: Delphi [Vybrat]
  1. if (options[0] and 4)<>0 then

Dík. S touto syntaxí jsem se ještě nesetkal.