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