Dotaz: silna funkce Search & Replace

Jiri Rybicka rybicka at mendelu.cz
Mon Nov 16 17:17:28 CET 1998



On Mon, 16 Nov 1998, Svoboda Josef, pomved KMAT wrote:

> 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...
To by bylo velmi zasluzne.

>
> 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)

Se vsemi body lze souhlasit. Co se tyce zpusobu zapisu (at uz na
prikazovem radku nebo v konfiguracnim souboru), asi se nelze vyhnout
regularnim vyrazum. Zdrojovy regularni vyraz popisuje, co se bude
vyhledavat, cilovy regularni vyraz popisuje, cim se to bude nahrazovat.
Jakasi vzdalena inspirace existuje napr. ve wordu, kdyby to fungovalo, jak
ma a nebyl k tomu ten cely word, pak by to bylo asi ono.

V tomto vyraze je potrebne vyresit zapis specialnich znaku - inspirace
napr. u programu grep (global regular expression processor - unix nebo v
instalaci Turbo Pascalu pod DOSem). Analyza a zpracovani regularnich
vyrazu je teoreticky dobre propracovana, melo by se tedy spise jednat o
"implementaci teorie" nez o znovuobjevovani kola.

Konfiguracni soubor (obycejny text) by mohl pouze obsahovat dvojice
regularnich vyrazu (zdroj-cil), totez pro jednu dvojici doporucuji primo z
prikazoveho radku.

Navic doporucuji, aby tyto upravy bylo mozne provadet ne v jednom souboru,
ale v cele mnozine (specifikovane maskou nebo vyctem masek).

(Vim, ze se mi to dobre keca, kdyz to nebudu programovat.)

>
> 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)
Na tento problem je potreba asi nastroj ponekud jine kategorie...

> -- vkladani nezlomitelnych mezer
> -- vyhledavani chyb typu l misto 1, O misto 0 v retezcich cifer

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

Takovy program se hodi uplne kazdemu (TeXistovi).

> Dekuji za precteni a za radu.
>
Preji hodne tvurcich uspechu!

J. Rybicka.




More information about the csTeX mailing list