» Poradna » Programy

Program na prohledávání v odstavcích

Odpovědět  |  Zobrazit bez stromu  |  Upozornit redakci  |  nových odpovědí: 27/27
 |   |  Microsoft Windows 7 Chrome 27.0.1453.94

Dobrý den, potřeboval bych pomoct, dokázal by někdo vytvořit program, který by prohledal textový soubor plný odstavců (oddělených prázdnými řádky), vybral z něho odstavce ve kterých se nachází určité slovo, a uložil je v novém textovém souboru?Známý mi říkal, že pro někoho kdo umí programovat je to hračka, ale já bohužel nikoho takového neznám. Děkuji každému, kdo se alespoň pokusí.

Odpovědi na otázku

 |   |  Microsoft Windows 7 Opera 9.80

Ahoj. Ano, někdo by to určitě dokázal. Možná bych to zkusil i já sám, když mi za to potom třeba koupíš nějakou hru na Steamu. Tak či onak, chtělo by to nejdříve upřesňující informace:1) O jak asi velkém souboru se bavíme? Nebude se jich zpracovávat více a často? Stačil by na to nějaký vysokoúrovňový skript, nebo je důležité, aby program dokázal zpracovávat i obrovské soubory a nebyl příliš náročný na systémové prostředky? Na jakém má vůbec běžet operačním systému?2) Jde o prostý text (*.txt), nebo formátovaný dokument (*.rtf, *.doc...)? V jaké znakové sadě je uložen?3) Musí mít program grafické rozhraní? Vyžaduješ v budoucnu znovupoužitelnost (tzn. např. možnost /snadno/ si nastavit hledání jiných slov, v jiných souborech...)?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 27.0.1453.110

Ano, přesně tak, bude se jednat o větší soubory a těch odstavců tam bude i desetitisíce. Mělo by to umět nejen jeden soubor, ale i větší množství najednou, a představoval bych si to tak jak fungují ostatní programy, tlačítko "Otevřít", tam bych si označil textové soubory, nebo celou složku s textovými soubory a kliknul na start. Bude to samozřejmě nejen na jedno použití To klíčové slovo, podle kterého se budou ty odstavce prohledávat, se bude také měnit, takže by tam měl být nějaký prázdný řádek, kam by se napsalo třeba "Komárek", a ono by to automaticky přesunulo všechny odstavce obsahující klíčové slovo do textového souboru s názvem stejným, jako je klíčové slovo, v našem případě komarek.txt a v tomto novém textovém souboru by pak byly přesunuté odstavce opět odděleny prázdnými řádky. Jinak se opravdu jedná o běžný text, žádné formátování písma, nic takového. Běžet by to mělo minimálně na Win7.A koupil bych ti za to třeba Univerzálního vojáka, kdyby to opravdu fungovalo > http://www.martinus.cz/

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 27.0.1453.94

pro spoustu velkych souboru by slo pouzit vlastnosti OS Windowstype *.txt | find "hledane" > soubor_obsahujici_hledane.txtNa *nixovych OS pouzij GREPAle soude podle nabidky Univerzalniho vojaka se spis nudis, nez bys potreboval reseni

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows XP Firefox 21.0  |  [89.103.213.---]

Zatím sice nepadla zmínka o jazyce prohledávaných souborů a zda tedy bude nutné ošetřit vyhledávání ohebných slovních druhů, ale máš pravdu: kdo by odolal nabídce Univerzálního vojáka v ceně 2 Kč! Asi se do toho hned pustím...

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Opera 9.80

Tohle asi nebude fungovat jak je požadováno. On chce aby to zkopírovalo celý "odstavec" kde je to slovo. Ale tohle co jsi sem napsal by zkopírovalo jen jediný řádek, kde se to slovo bude nacházet.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 27.0.1453.94

Je to otázka pojmů, co je řádek a co odstavec.V textovém souboru (vytvořeném například v notepadu) IHMO řádek = odstavec.Obé je zakončeno klávesou enter.I když jsem viděl dokument psaný ve Wordu, kde tvůrce zakončoval každý řádek klávesou enter a odstavec ukončoval prázdným řádkem Možná by to šlo zvládnout v editoru Vim, který dokáže spoustu věcí, ale pro toho, kdo s ním pracuje poprvé (podruhé, po ....) je jeho ovládání docela šílené Případně zkusit použít AWK nebo SED.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 27.0.1453.110

No i kdybych zkusil ty tebou uváděné editory, tak bych stejně potřeboval vědět jak to mám nastavit :)Odstavce je myšleno tak, že je tam vždycky několik řádků a pak je tam 1 nebo víc prázdných řádků. Pak zase text a pak zase prázdné řádky (prohlíženo v notepadu). Ještě je tam jedna taková věc co jsem nezmínil, každý odstavec začíná stejnou sekvencí znaků., čímž je vlastně definován začátek i konec odstavce. Teď už jen vytvořit onen program :)

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Opera 9.80

A taky jde o to co ti umožní ten formát souboru. Ve wordu není problém udělat "nový řádek", který je ve stejném odstavci. Ale do TXT souboru tohle nenapíšešeš. A jsou situace, kdy je ten nový řádek nutný. Například filmový scénář, kde každý řádek začíná jménem osoby, která tu větu říká. A tohle "cpát" do jednoho řádku prostě nejde. Ten nový odstavec (tj prázdný řádek) se hodí třeba pro změnu scény nebo nějaké oddělení dialogů, které spolu nesouvisí.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Opera 9.80

Ohledně té velikosti. Můžeš to trochu specifikovat. Ideálně číslem. Co je velké pro jednoho je pro druhého malé. Bude ten jeden soubor mít cca 100KB, 10MB, stovky MB? desítky GB, nebo třeba 1TB?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 27.0.1453.110

Desítky, možná stovky MB ale je možné že pokud ta data budou rozloženy na větší množství souborů, tak můžou mít klidně i jen několik desítek kilobajt. Je to důležité?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Opera 9.80

Právě že je. Jde o to, "jak s tím souborem pracovat" tj jestli si můžu dovolit ho celý načíst do paměti a tam ho prohledat. Nebo zda ho musím načítat po částech a nějak se vypořádat s tím že začátek odstavce bude v části 1, hledané slovo v části 2, a konec odstavce v části 3.Pokud ten jeden soubor bude mít do cca 1GB tak není problém, protože dnešní PC mají dost paměti (4GB a více) a ten 1GB se vždy najde. Vzhledem k tomu že ti to tam asi nepoběží nonstop, ale jen nárazově, tak není nutné šetřit každým MB.Ale právě už jsem viděl i logy, které měli 10GB a takový soubor se prostě do 4GB ramky nevejde a nutné s ním pracovat jinak a většinou složitěji.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 27.0.1453.110

Mám tomu rozumět tak že se chystáš do toho pustit?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Opera 9.80

Měl jsem zrovna chvilku, tak jsem se do toho pustil:https://www.dropbox.com/s/0m0fxmrk4stlnr5/Odstavc... rozbalit a spustit. Je vyžadován .NET 3.5 a to by na win 7 mělo být automaticky instalováno s aktualizacemi.Do horního řádku napiš to slovo. A pak klikni na tlačítko vpravo dole, a vyber soubory.Vyhledávání je CaseSensitive, tj rozlišuje velikost písmen a slovo "Zadek" není to samé jako "zadek".

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 27.0.1453.110

Paráda, na první pohled to vypadá slibně Ještě jdu testovat.Myslíš že by bylo možný tam časem přidat ještě jednu kolonku na druhý klíčový slovo a přidat tam možnost "A" a "NEBO"?Mám namysli, že by tam byla možnost zvolit 2 klíčová slova a v případě že by bylo zaškrtnuté "A", by se překopírovaly jen odstavce které obsahují obě tato slova a v případě "NEBO" by se překopírovaly odstavce, které obsahují buď jedno nebo druhé klíčové slovo, případně obě zároveň. Jinak ještě jednou díky za pomoc, už tohle mi docela dost pomůže.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 27.0.1453.110

Jo, a ještě jedna taková drobnost, za některými klíčovými slovy je dvojtečka, a někdy je to nutné vyhledávat včetně té dvojtečky, nicméně v případě že se ten soubor ukládá na disk, tak program vyhodí kvůli té dvojtečce v názvu chybu. Bylo by možné to nějak ošetřit? Aby se v případě že klíčové slovo bude obsahovat dvojtečku nebo jiný nepovolený znak, takový znak při vytváření názvu souboru vynechal?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Opera 9.80

Obě úpravy zapracovány, ale víc tam toho už dělat nebudu. Na požádání dodám i zdroják.Link stále stejný.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 27.0.1453.110

Ok, díky moc. Ten zdroják mi tam teda šoupni taky, to je předpokládám k tomu, kdybych tam ještě někdy něco potřeboval přidat, a našel si nějakého dalšího profíka přes programování, tak aby se v tom nějak zorientoval jo, nebo jak to funguje?Můžu se ještě zeptat kolik ti to zabralo času, jenom abych tak orientačně věděl?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Opera 9.80

Link stejný, a je tam i zdroják.Jo ten důvod jsi částečně uhodl. Je to pro dalšího programátora, aby mohl pokračovat v práci. A třeba to nějak rozšířit. Jestli se v tom bude orientovat nevím :) moc jsem se nezabýval optimalizací zápisu, nebo třeba komentář tam nemám ani jeden.A času? ta první verze asi hodinu, a to nejvíc času jsem strávil na GUI, testování a odstraňování chybných stavů, aby to nepadalo když zadáš blbost.A tu úpravu jsem měl tak za půl hodiny. Takže dohromady nějakou hodinu a půl.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 27.0.1453.110

Ok, dík za info Jo hele, tenhle program byl teda čistě pro moje potřeby, ale ukazoval jsem to i kamarádovi a on říkal že v práci dělaj s databázema a že by se mu hodilo něco podobného, akorát že o dost složitější, a včetně grafiky, myslíš že bys něco takového dokázal? Bylo by to asi až příští rok, pokud se teda něco nezmění a bylo by to určitě za honorář, ale jak vysokej to nevím, to byste se pak museli dohodnout. Teda nevím jestli se tím živíš a nebo to děláš čistě jen pro zábavu, ale v případě že bys o tom alespoň uvažoval mi dej vědět, nech mi tu e-mail nebo jiný kontakt, jestli to není problém a já mu řeknu aby se ti ozval.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Linux Mozilla 18.0

To snad umí každý slušný textový editor. Určitě by to měl umět i vi, který je součástí OS a nemusíte jej tedy ani instalovat.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 27.0.1453.94

PSPadctrl+f vyhledatmisto tlacitka OK pouzij tlacitko seznamdole se objevi okno s odstavci obsahujicimi text a vlevo je ikona prenest vysledky do noveho souboru

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 7 Opera 9.80

Staci pouzit tlacitko Kopirovat, ktere to primo vysype do noveho souboru

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 27.0.1453.110

Jak jsem psal, potřebuju aby mi to zkopírovalo celý odstavec a mezi jednotlivými odstavci byl prázdný řádek. Žádný takový soubor mi PSPad nevytvořil.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 27.0.1453.94

Pod pojmem "odstavec" si predstavim shluk znaku a mezer ukoncenych klavesou enter.Mas pravdu mezery mezi odstavci PSPad neudela, ale sly by doplnit nejakym makrem coz by zpracovani komplikovalo Neskodilo by vystavit vzorovy soubor, ktery se ma zpracovavat (klidne s nejakymi fiktivnimi udaji), aby si resitele mohli udelat predstavu.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 7 Opera 9.80

Na to nepotrebujes zadny program. Staci prohledavani za pomoci regularnich vyrazu.V podstate to umi i Word...

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 27.0.1453.110

A jaký reg. výraz na tohle přesně použít?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 7 Opera 9.80

syntaxe zalezi od programuhledat: od zacatku odstavce cokoliv hledane_slovo(slova) cokoliv konec odstavceTohle oznaci cely odstavec, ktery dane slovo/slova obsahuje

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Hračka, Textový soubor



Určitě si přečtěte