Hledání - logické operátory pro vyhledávaná slova

Vítáme všechny návrhy na nové funkce a vylepšení programu Altap Salamander. Pro každý návrh prosím vytvořte samostatný příspěvek.
User avatar
zarevak
Plugin Developer
Plugin Developer
Posts: 789
Joined: 04 Feb 2006, 16:49
Location: Prague, Czech Republic

Hledání - logické operátory pro vyhledávaná slova

Post by zarevak »

Dobrý den,
v anglické části fóra uživatel timmy2 přichází s nápadem umožnit hledat složky neobsahující určité soubory. Toto mne insirovalo k tomuto příspěvku, když jsem nedávno řešil několik úloh:
1) Najít všechny soubory, které neobsahují daný text
2) Najít všechny soubory, které obsahují text "A" a text "B"
3) Najít všechny soubory, které obsahují "A" nebo "B"
4) Najít všechny soubory, které obsahují "A" ale ne "B"
(body 1 a 4 se týkaly vyhledání souborů, které je potřeba aktualizovat a tudíž neobsahují nejnovější řetězce)

Body 2 a 3 lze obejít použitím regulárních výrazů (u 2 třeba myslet na obě možná pořadí slov v souboru) a pravděpodobne by šel pomocí regulárních výrazů vyřešit i bod 4. Na bod 1 si pomocí regulárních výrazů již netroufnu a tak si troufám navrhnout do Hledání implementovat základní výrazovou logiku: AND, OR a NOT (případně ještě se závorkami).
BTW: hledání lze opakovat a skládat (AND/OR/AND NOT) dohromady, čímž pravděpodobně ve dvojnásobném čase a s několikanásobným usílím dosáhneme stejného výsledku. Pokud ve výrazové logice povolíme závorky, opakovaným hledáním již nebude možné úlohu řešit.

Zadáním: kočka OR pes AND NOT morče by byly nalezeny všechny soubory, které obsahují zmínku o kočce nebo psu, ale bez zmínky o morčeti.
Pro vyhledání souborů bez určitého textu by se zadalo: NOT text
Pokud je třeba zadat text s mezerou, je možné použít uvozovky: kočka AND NOT "siamská kočka" - všechny soubory o kočkách, ale ne siamských kočkách

Možné rozšíření:
- kombinace regulárních výrazů a logických operátorů ("(19|20)[0-9]{2}" AND NOT 2008 - hledá roky od 1900 do 2099 bez 2008)
- operátor NEAR, který by hledal text "A" blízko slova "B". Blízko = jen několik slov okolo slova B (případně žádné slovo, ale jen bílé znaky a interpunkční znaménka). Výrazu siamská NEAR kočka by tedy odpovídalo spojení siamská modrá kočka ale ne spojení: Siamská vláda odsouhlasila důležitý zákon. Kočka se tak stala národním zvířetem.
Možné problémy:
- "siamská kočka" AND NOT kočka by nevyhledalo žádné soubory
User avatar
Ether
Posts: 1471
Joined: 10 May 2007, 16:08
Location: Czech Republic
Contact:

Post by Ether »

Regular expression obsahují takzvané look-aheads, kterými se dají zařídit i ostatní zmiňované body. Problém je v tom, že implementace, která je v AS, toto pravděpodobně nepodporuje (hází chybu o neplatné syntax).
Ελληνικά rulez.
cincura.net
Posts: 593
Joined: 09 Dec 2005, 17:30
Location: a step further
Contact:

Re: Hledání - logické operátory pro vyhledávaná slova

Post by cincura.net »

Toto je velmi dobry napad. +1 za me.
zarevak wrote: - operátor NEAR, který by hledal text "A" blízko slova "B". Blízko = jen několik slov okolo slova B (případně žádné slovo, ale jen bílé znaky a interpunkční znaménka). Výrazu siamská NEAR kočka by tedy odpovídalo spojení siamská modrá kočka ale ne spojení: Siamská vláda odsouhlasila důležitý zákon. Kočka se tak stala národním zvířetem.
Operator NEAR je pekny, ale vetsinou jej kazdy chce jinak (pripadne nikdo nevi jak funguje). Takze ten bych klidne vypustil. Jeho simulace pomoci RE neni tezka.
Jiri {x2} Cincura
cincura.net
Posts: 593
Joined: 09 Dec 2005, 17:30
Location: a step further
Contact:

Post by cincura.net »

ether wrote:Regular expression obsahují takzvané look-aheads, kterými se dají zařídit i ostatní zmiňované body. Problém je v tom, že implementace, která je v AS, toto pravděpodobně nepodporuje (hází chybu o neplatné syntax).
OT: Je zajimave, ze se tomu porad rika RE, i kdyz uz pak regularni vlastne nejsou. :roll:
Jiri {x2} Cincura
fraktik
Posts: 209
Joined: 27 Apr 2007, 12:13
Location: cz
Contact:

podpora prohledavani

Post by fraktik »

Okno find pouzivam velice casto (mam odpor vuci google desktop, Nero scout i tem vista hledacum) - a ocenil bych krom vyse uvedeneho i nejakou rychlou napovedu (neco jako je v "Regular Expressions Syntax" v helpu - jen strucnejsi a vice poruce - napriklad jen nekolik zakladnich ukazek + odkaz do help okna)...
User avatar
AD7
Posts: 588
Joined: 28 Jan 2006, 16:21

Re: Hledání - logické operátory pro vyhledávaná slova

Post by AD7 »

XYplorer je v tomto celkom ďaleko.
therube
Posts: 678
Joined: 14 Dec 2006, 06:22

Re: Hledání - logické operátory pro vyhledávaná slova

Post by therube »

You're looking for file names (rather then contents within the files) that meet your criteria?
(Everything [1.5] can also search contents.)

There is nothing better then, Everything for finding files.
(Even better is, Everything 1.5 Alpha.)

Code: Select all

foo bar   -> find foo AND bar
foo bar   -> find foo AND bar
foo | bar -> find foo OR bar
foo !bar  -> find foo, but NOT bar

cat dog !"guinea pig", find cat AND dog, but NOT "guinea pig"
& it does regex & everything else under the sun.


---


Hledáte názvy souborů (spíše než obsah souborů), které splňují vaše kritéria?
(Vše [1.5] může také prohledávat obsah.)

Není pak nic lepšího, Vše pro hledání souborů.
(Ještě lepší je, Everything 1.5 Alpha.)


& dělá regulární výraz a všechno ostatní pod sluncem.
WinXP Pro SP3 or Win7 x86 | SS 2.54
Post Reply