Nejste přihlášen/a.
Dobrý den, jak se prosím tento program předělá, aby se nahrazovaly vlnkou i mezery před a, i, o, u?
ftp.linux.cz/...
V souboru README je napsané, že zdrojový kód je v jazyce CWEB a jmenuje se makevlna.w, ale takový soubor tam není. Je tam jeden .w soubor, ale to mi jako zdrojový kód nepřijde. Děkuji
V README (z vlna.tar.gz) čtu, že zdrojový kód je v souboru "vlna.w" a ten tam je. A možná to je opravdu zdrojový kód jakéhosi pro mne nesrozumitelného CWEBu. Je to bohatě komentované, ten program řeší kde co. Tím nejdůležitějším jsou jakési patterny (vzory? - budu to tak dál nazývat) a ty se patrně předpokládají jako "předložka-bíléznaky-slovo". Zda by šel program snadno upravit pro přidání vzorů "bíléznaky-a/i/o/u-bíléznaky" s náhradou těch úvodních bílých znaků, vůbec netuším. Ale zdá se, že program umožňuje uvést spoustu parametrů při spuštění, a možná jsou definovatelné vzory a úpravy i tímto způsobem; takže by se pustil program dvakrát - jednou standardně a podruhé s jinými vzory. Ale jak píšu - ta nově požadované logika mi připadá jiná, než jakou program řeší.
Kdybych měl konverzi řešit já, možná bych ten TEXový soubor nejdřív uvedl do definovaného stavu (kódování a tak) a potom zkusil sestavit nějaký regulární výraz třeba v Perlu a ten na něj poslal. Ale naznám TeX, tak nevím, zda se to tak dá udělat.
Na vlna.w jsem se díval v PSPAdu. Je tam i automatické zalomování ctrl+w.
Používám Code::Blocks, žádný perl.
Pokud chcete poděkovat, stačí ohodnotit odpověď.
Do zdrojáku jsem se díval internetovým prohlížečem (přidal jsem souboru koncovku TXT a normálně ho otevřel). Mám Linux, takže jsem nenarazil na komplikace s odřádkováním, ve WIN to možná dopadne špatně.
V tom zdrojáku se mj. píše:
Program čte z~příkazového řádku postupně (nepovinné) parametry, které začínají znakem uv{.{-}}. Pak následují jména vstupních a výstupních souborů.
egitems
* .{-f} dots program pracuje jako filtr (viz sekce |@|). Není-li tento parametr použit, program pracuje v tzv. standardním režimu, kdy jednotlivé soubory jsou vstupní i výstupní.
* .{-s} dots program nevypíše |BANNER|, ani sumarizaci, ani varování, při nichž není program předčasně ukončen. Všechny tyto výpisy směřují do |stderr|, takže pokud program pracuje v režimu uv{filtr}, není nutné tento parametr použít.
* .{-r} dots program maže pracovní soubor (soubory), které vytváří ve standardním režimu (tj. není použit .{-f}). V reřimu filter nemá tento parametr vliv.
* .{-v} dots parametr definuje skupinu písmen, které budou interpretovány jako neslabičné předložky. Např. .{-v KkSsVvZzOoUuAI}. Pokud není parametr uveden, je použita skupina uvedená v tomto příkladě.
* .{-x} dots parametr vymezuje pomocí hexadecimálního zápisu string, který program vkládá na vyhledaná místa. Implicitně vkládá vlnku. Například .{-x C2A0} způsobí, že program bude vkládat místo vlnky dva byty, první s kódem .{C2} a druhý s kódem .{A0}.
* .{-m} dots program neprovádí kontrolu math/text módů, tj. vlnkuje i uvnitř matematického módu TeX{}u. (Implicite tam nevlnkuje).
* .{-n} dots prorgram neprovádí kontrolu verbatim módu, tj. vlnkuje i uvnitř verbatim módu definovaném běžnými prostředími. Imlicite ve verbatim prostředí nevlnkuje.
* .{-l} dots LaTeX{} režim. Při kontrole text-math-verbatim módů jsou brány v úvahu další sekvence, obvyklé v LaTeX{}ových dokumentech.
* .{-w} dots WEB režim. Ohraničení verbatim módu je doplněno znaky používanými v dokumentech WEB (např. tento dokument). Důsledek: program vlnkuje dokumentační část každé sekce, ale nikoli kód.
enditems
Ta verze EXE, kerá je na webu ke stažení, je možná stará a všechny parametry neumí.
Předpokládal jsem, že když stahuješ z linux.cz, že máš Linux, a na test regulárních výrazů jsem chtěl navrhnout i program "sed", Perl byl jen první nápad, že by zvládnul víc. Ale zřejmě tedy Linux nemáš.
Existuje i "sed"pro Win
gnuwin32.sourceforge.net/...
Je to konzolový program, z čehož uživatelé WIN dostávají kopřivku, a k jeho použití je potřeba aspoň trochu znát regulární výrazy.
Ale pak umí zajímavé věci. Jen stručný příklad. Tohle
sed -ri s/ ([aiku]) /~1 /g text.txt
napsáno naprosto přesně takhle (nevím, jestli tu všechny ty znaky projdou; neprošly, před s/ a za /g má být apostrof) například v souboru text.txt nahradí mezeru před osamoceným písmenem a-i-k-u vlnkou (všechny výskyty). Regulární výraz je to
s/co_se_hledá/čím_se_nahrazuje/g
(před s/ a za /g má být apostrof).
No, asi je to napoprvé zmatek a navíc nevím, jestli by to na TeXový zdroják šlo dobře použít. Možná ano.
No, jednak nevím, jestli tenhle parametr tvoje verze EXE umí (ten výpis je z poslední verze zdrojáku), a jednak ten program nahrazuje vlnkou (tím se fakt myslí normální vlnka?) mezery mezi neslabičnými předložkami a slovem, jenže ty chceš vlnkou nahradit mezeru před samotným aiou (alespoň tak jsi to napsala).
Ale za zkoušku nic nedáš, přidej tam parametr "-v AaIiOoUu" (bez uvozovek). Jestli ten příklad ve výpisu zdrojáku je defaultové chování, tak "AIOoUu" už tam je i bez přidaného parametru -v. Můžeš ten program pustit jednou bez -v a pak znovu s "-v AaIiOoUu" a uvidíš. Třeba to udělá to, co vlastně chceš.
Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz.
Používáním poradny vyjadřujete souhlas s personifikovanou reklamou, která pomáhá financovat tento server, děkujeme.