Nejste přihlášen/a.

Přihlásit se do poradny

 

Modifikace programu

Od: elisa24® odpovědí: 10 změna:
avatar elisa24

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

 

 

10 odpovědí na otázku
Řazeno dle hodnocení

 

 

hodnocení

2x

Zdrojový kód pro jazyk C je v souboru vlna.c . Projděte si taky soubor vlna.w

 

hm*
hodnocení

2x

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.

 

hodnocení

avatar elisa24

Děkuji a v čem prosím otevřít ten soubor vlna.w, aby byl přehlednější - odentrovaný. Funguje to jen tímto příklazem vlna32.exe -l -m -n nazev_souboru.tex

h4ever neuměl byste to prosím upravit? hm šlo by to v tom Perlu, když se program takhle pouští?

Moc děkuji

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ěď.

hodnocení

A uměl byste to prosím vylepšit?

hm*

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.

hm*

... a před 1 v tom regulárním výrazu má být zpětné lomítko

hodnocení

Moc děkuji, takže tam mám ještě k parametrům přidat v příkazovém řádku {-v KkSsVvZzOoUuAI}?
hm*

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š.

hodnocení

Děkuju moc, už to funguje :). Spletla jsem se, myslela jsem za, ~ je nedělitelná mezera.

 

 


 

 

 

Přihlásit se k odběru odpovědí z této otázky:

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.

Copyright © 2004-2025 Poradna Poradte.cz. Všechna práva vyhrazena. Prohlášení o ochraně osobních údajů. | [tmavý motiv]