abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 18:44 | Komunita

    Od soboty do úterý probíhá v Hamburku konference 39C3 (Chaos Communication Congress) věnovaná také počítačové bezpečnosti nebo hardwaru. Program (jiná verze) slibuje řadu zajímavých přednášek. Streamy a záznamy budou k dispozici na media.ccc.de.

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | Zajímavý software

    Byl představen nový Xserver Phoenix, kompletně od nuly vyvíjený v programovacím jazyce Zig. Projekt Phoenix si klade za cíl být moderní alternativou k X.Org serveru.

    🇨🇽 | Komentářů: 1
    včera 13:11 | Nová verze

    XLibre Xserver byl 21. prosince vydán ve verzi 25.1.0, 'winter solstice release'. Od založení tohoto forku X.Org serveru se jedná o vůbec první novou minor verzi (inkrementovalo se to druhé číslo v číselném kódu verze).

    🇨🇽 | Komentářů: 0
    včera 03:33 | Nová verze

    Wayback byl vydán ve verzi 0.3. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.

    Ladislav Hagara | Komentářů: 0
    25.12. 14:44 | Nová verze

    Byla vydána verze 4.0.0 programovacího jazyka Ruby (Wikipedie). S Ruby Box a ZJIT. Ruby lze vyzkoušet na webové stránce TryRuby. U příležitosti 30. narozenin, první veřejná verze Ruby 0.95 byla oznámena 21. prosince 1995, proběhl redesign webových stránek.

    Ladislav Hagara | Komentářů: 0
    24.12. 02:11 | Komunita

    Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.

    Ladislav Hagara | Komentářů: 27
    24.12. 02:00 | Nová verze

    Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    23.12. 18:33 | Nová verze

    Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.

    Ladislav Hagara | Komentářů: 0
    23.12. 13:55 | Nová verze

    Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.

    Ladislav Hagara | Komentářů: 0
    23.12. 12:44 | Nová verze

    Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.

    Ladislav Hagara | Komentářů: 0
    Kdo vám letos nadělí dárek?
     (34%)
     (2%)
     (14%)
     (2%)
     (2%)
     (2%)
     (16%)
     (17%)
     (11%)
    Celkem 106 hlasů
     Komentářů: 18, poslední 24.12. 15:29
    Rozcestník

    Dotaz: c++ hledani v textovem souboru

    7.11.2013 16:58 marek33
    c++ hledani v textovem souboru
    Přečteno: 971×
    jak overit zda je v textovem souboru ulozeno slovo, ktere uzivatel zadal?

    Odpovědi

    7.11.2013 17:32 Milan Roubal | skóre: 25
    Rozbalit Rozbalit vše Re: c++ hledani v textovem souboru
    #include <stdlib.h>
    
    int main(void)
    {
      system("grep -e slovo soubor.txt");
    }
    7.11.2013 22:44 bjarne
    Rozbalit Rozbalit vše Re: c++ hledani v textovem souboru
    To je lajdácké c++, za to zápočet v životě nedostane. Správně tam mělo být include cstdlib, void v závorkách do ++ taky nepatří a ještě by stálo za to vyhodnotit návratovou hodnotu, jestli se to teda našlo či nikoliv. Znovu a lépe!
    10.11.2013 20:37 Sten
    Rozbalit Rozbalit vše Re: c++ hledani v textovem souboru
    A když už se používá cstdlib, tak tam má být std::system ;-)
    7.11.2013 17:42 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: c++ hledani v textovem souboru
    Nejlepší bude otevřít soubor a pak běžným způsobem vyhledávat v textu. Pokud jde o jednoduché slovo a ne o regexp, celý graf se zredukuje na jednu cestu, tj. implementace bude poměrně snadná. Jen pozor na správné nastavení zpětné funkce; ta bude záviset na hledaném slově. Pokud jde o standardní text se slovy oddělenými mezerami, další možnost (snazší, méně efektivní (složitost závisí na délce hledaného slova), tupější, méně zábavná a méně poučná) je číst slovo od slova, ať už tak nebo tak, a porovnávat ho se vstupním slovem (i operátor == bude stačit).
    7.11.2013 19:41 potato
    Rozbalit Rozbalit vše Re: c++ hledani v textovem souboru
    Nastávají teď dlouhé zimní večery, takže implementace Aho–Corasick jistě přijde vhod, ale normálně bych soubor mmap()nul a použil memmem(), pokud se tedy má vyhledávat řetězec. Má-li se vyhledávat slovo v textu (tedy řešit kódování, normalizaci, rozpoznání hranic slov, etc.), tak si to rozhodně nepsat sám, ale použít knihovnu, metody jsou např. i v boostu.
    7.11.2013 20:46 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: c++ hledani v textovem souboru

    To je všechno pravda, ale měl jsem dojem, že otázka nápadně připomíná nějaký zápočťák. :-)

    8.11.2013 09:48 potato
    Rozbalit Rozbalit vše Re: c++ hledani v textovem souboru
    To je dost možné. Na druhé straně snad funkce standardní knihovny (tedy libc a libstdc++ pro C++) lze při řešení zápočťáků používat. Nebo musí otevírat soubory syscallem a napsat si kolem toho nějakou tu třídu či frameworčík? Možné je vše...
    9.11.2013 01:01 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: c++ hledani v textovem souboru

    Záleží na konkrétním zadání. Jestliže zadání říká například „implementujte insert a delete ve vyvážených stromech“, použití std::set asi nebude preferovaná metoda vypracování úkolu.

    Kromě toho je rozdíl mezi něčím, co je pouze technicky náročné bez jakéhokoliv přínosu pro pochopení algoritmů, a něčím, na čem se člověk učí. Jistě by šlo otevřít soubor klidně bez glibc, tedy nastudovat ABI, připravit data, vyvolat příslušný syscall a tak podobně. Přínos pro algoritmické myšlení tam ovšem nevidím ani v náznaku. Naopak (re)implementace něčeho jako std::set může programátora hodně obohatit. Pro vyhledávání v textu platí totéž.

    Jedním z dobrých rozlišovacích znaků mezi bezúčelnou duplikací knihoven a poučnou reimplementací zajímavého algoritmu může být portovatelnost. Otevření souboru nebude portovatelné ani z Linuxu na FreeBSD, zatímco my_great::set poběží všude možně, stejně jako Aho-Corasick.

    9.11.2013 10:05 potato
    Rozbalit Rozbalit vše Re: c++ hledani v textovem souboru
    S tím úplně souhlasím -- až na jednu věc. Viděl jsem dost vystudovaných informatiků ‚řešících‘ nějaký problém neuronovými sítěmi, genetickými algoritmy a pod., přičemž krachovali na neschopnosti otevřít soubor a přečíst z něj pole čísel. Takže ohledně důrazu čistě na techniky a algoritmy jsem trochu skeptický...
    9.11.2013 20:45 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: c++ hledani v textovem souboru

    Existují například vystudovaní informatici, pro které je dobrá znalost POSIXového API, zkušenost s kernelovým programováním, znalost několika jazyků od C a C++ přes Javu až po Python a pár běžných vývojových nástrojů (gcc/clang, gdb, valgrind, KDevelop, JDK, Eclipse/IntelliJ, Git, SVN, ...) samozřejmostí, bez které si neumějí informatiku představit.

    Existují ovšem také „ti druzí informatici“, kteří nejsou o nic horší nebo lepší, o nic hloupější či chytřejší, ale podle mého názoru by si měli říkat spíš „matematici“. Zabývají se pouze teoretickými záležitostmi, získat jednoduchý projekt z repository je pro ně nepřekonatelný problém, desktopy jim musí instalovat správce sítě a v mém oblíbeném testu (napsat, přeložit a spustit Hello World v libovolném kompilovaném jazyce) by někteří neuspěli.

    Vědecký přínos takových teoretických informatiků může být v konečném součtu větší než v případě těch praktických. Problém ovšem může nastat, když se teoretici rozhodnou pracovat v industry, protože z hlediska praktických dovedností dělají někteří z nich „vystudovaným informatikům“ ostudu. :-)

    Tvorba efektivního a udržovatelného software vyžaduje z každé oblasti něco. Znalost algoritmů a jejich vlastností je nutné skloubit s technickými dovednostmi a se schopností srozumitelně formulovat problém. V tom je věda, řemeslo i umění zároveň.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.