Dotaz: silna funkce Search & Replace
Svoboda Josef, pomved KMAT
XSVOJ09 at vse.cz
Mon Nov 16 16:57:38 CET 1998
Prosim o radu.
Mam plan dokoncit program v C, jakysi ,univerzalni konvertor`.
Nazev je hodne prehnany, ale vystihuje, oc mi jde. Aby umel
transformovat dokumenty z jednoho strukturovaneho jazyka do
jineho, ale i vice. Proste hodne silna funkce ,search and
replace`.
Moje prvni verze umela nahradit libovolny pocet libovolne
dlouhych retezcu jinymi. Chci dale rozsirit i o moznosti negace,
alternativy, intervalu, nejprve jednotlivych znaku, pozdeji
retezcu, hledani s maskou atd...
Vim, ze na tohle tema existuje vice utilit:
sed, gsar, awk, perl, emacs, Word, joe.
sed: Zpracovava jen po jednotlivych radkach. Jeho notace je
pomerne slozita. Neumi substituovat vice retezcu.
gsar: (General Search and Replace) umi to, co muj soucasna verze
meho programu: tj. nahradu retezce za retezec bez ohledu na
hranice radek.
awk: Zpracovava jen po jednotlivych radkach. Je nutno umet
programovat a program otestovat.
perl: Tento jazyk vubec neznam, musim jej aspon castecne
zvladnout. Je nutno umet programovat a program otestovat.
emacs: Moc o nem nevim. Rozsah funkci je slusny. Myslim si ale
(mozna predsudek), ze tento editor je prilis slozity na rychle
ovladnuti. Nevim, jestli zpracovava jen po jednotlivych
radkach.
Word 6.0: Slusne spektrum vyhledavacich funkci. Kamenem urazu je
to, ze nelze kombinovat funkce pro tvoreni vyrazu a specialni
znaky (napr. konec odstavce). Casto se nechova presne tak, jak
bych cekal (napr. vyhledavani mezer najde i nezlomitelne
mezery).
joe: Dost blizky me predstave. Nevim, jestli zpracovava pouze po
radkach. Ma slusne spektrum vyhledavacich / nahrazovacich
funkci, ale chybi funkce ,jeden nebo zadny vyskyt`.
Ja ale chci, aby muj program
1. pracoval kontinualne, bez rozdeleni vstupu na radky
2. nevyzadoval zbehlost v programovani
3. mel (aspon pro jednoduche zadani) snadno pochopitelnou notaci
4. mel silne moznosti nahrazovani retezcu v ruznem kontextu
5. pracoval s konfiguracnim souborem, kde budou uchovany ruzne
konverzni tabulky (pristup pouzity uz predtim u meho
konvertoru kodovani)
Nejzajimavejsi problem je spojeni bodu 3. a 4. Znamena to
vytvorit snadno pochopitelny, ale silny zpusob zapisu.
Samozrejme, elementarni urovni programovani se uzivatel pri
narocnejsich pozadavcich nevyhne.
Mozne vyuziti
-- vyhledavani retezcu pres hranice radek
-- korekce nekterych beznych typografickych chyb (mezera za
carkou, teckou)
-- odstraneni mezer z koncu radku
-- konverze CRLF <-> LF
-- vyhledavani a nahrada slozitych vyrazu v TeXu -- potrebne pri
sjednocovani textu ruznych autoru
-- preklad z jednoho strukturovaneho zapisu do druheho (napr.
preprocesor pro HTML)
-- vkladani nezlomitelnych mezer
-- vyhledavani chyb typu l misto 1, O misto 0 v retezcich cifer
.
.
.
a cokoli, pro co se nevyplati napsat jednoucelovy program.
I kdyz jsem si tento program navrhl predevsim podle svych
zkusenosti se zpracovanim textu doma i na katedre matematiky,
snad by se hodil i nekomu jinemu. Snad by se mohly jeho funkce,
pokud se osvedci, integrovat do nejakeho editoru.
Sdelte mi, prosim, pripominky, opravy ci informace, zda byl tento
problem resen.
Dekuji za precteni a za radu.
* Josef Svoboda, student FIS VSE *
* mailto: xsvoj09 at vse.cz -
More information about the csTeX
mailing list