Zobrazit plnou verzi příspěvku: Nahrazení textu pomocí SRXTEXT

VladaMar
04.03.2011, 14:14
Dobrý den, potřeboval bych ve výkresu nahradit text výšky bodů z původních např. "100 00" na "100.00" Rád bych k tomu využil příkaz SRXTEXT, ale z readme nejsem moc chytrý a tak nevím jakou mám použít syntaxy. Uměl by mi někdo poradit? Předem děkuji

PepaR
04.03.2011, 14:27

Najít a nahradit text



Příkaz:           SRXTEXT



Popis:
 Najde a nahradí hledaný řetězec v textech,
kótách a atributech bloků. Funkce zahrnuje pokročilé funkce pro vyhledávání a
nahrazení jako využití regulárních výrazů, přidání řetězců na začátek nebo
konec textů, jednotlivých slov, nahrazení pouze jednoho/prvního výskyt podřetězce,
apod. srxTEXT lze využít i pro dávkové nahrazení textů ve více výkresech
(pomocí skriptů). 

Více informací o regulárních výrazech naleznete na webu www.regularnivyrazy.info.

Legenda pro instrukce funkce:

Search - Regular
expression/Exact string/<Substring>:

Hledat – Regulární výrazy/Přesný řetězec/<Podřetězec>:

Enter the searched
text:

Zadejte hledaný text:

Enter the replace
text:

(no replacements will
be done)

Zadejte text pro nahrazení:

(pokud nic nezadáte, bude funkce pouze vyhledávat)

Search
Layer/<All>:

Hledat v hladině/<Ve všech hladinách>:

Search
Selected/<All>:

Hledat ve výběru/<V celém výkresu>:

Number of searched
entities: ??

Počet nalezených objektů: ??

Najít
a nahradit text pomocí CSV



Příkaz:           SRXTEXTCSV



Popis:
 Najde a nahradí hledaný řetězec v textech,
kótách a atributech bloků podle definicí v souboru CSV. Funkce zahrnuje
pokročilé funkce pro vyhledávání a nahrazení jako využití regulárních výrazů,
přidání řetězců na začátek nebo konec textů, jednotlivých slov, nahrazení pouze
jednoho/prvního výskyt podřetězce, apod. Text bude nahrazen podle tabulky v souboru
srxtext.csv, který naleznete ve
složce POYRYmenu\Menu\Fce. Soubor CSV lze upravovat např. pomocí programu
Microsoft Excel. srxTEXT lze využít i pro dávkové nahrazení textů ve více
výkresech (pomocí skriptů).

Formát zápisu v souboru CSV:

bolt,"nut"         …
řetězec bolt bude nahrazen řetězcem nut

male,"female" … řetězec male bude
nahrazen řetězcem female


PepaR2011-03-04 14:37:31

Vladimír Michl
04.03.2011, 14:42
Regulární výrazy jsou mocné, ale trochu zamotané a zápis některých řídících znaků pro LISP také, ale toto by mělo fungovat:
 
vyhledat: ^\([0-9]+\) \([0-9]+\)$
nahradit: \1.\2
 
Přeloženo do "lidštiny": od začátku textu hledej libovolně dlouhou skupinu složenou jen z číslic (zapamatuj si ji), následovanou mezerou a další takovou skupinou (zapamatuj si ji), která je na konci řádku. Místo nich zapiš první zapamatovaný řetězec, tečku a druhý zapamatovaný...
 

VladaMar
04.03.2011, 14:52

Děkuji za bleskovou odpověď, nicméně daný postup bohužel nefunguje.  Již po zadání první části (co hledat) mi Autocad 2011 píše "Neplatné klíčové slovo"VladaMar2011-03-04 15:05:09

Vladimír Michl
04.03.2011, 15:31
A zvolil jste v prvním dotazu příkazu SRXTEXT volbu "Regular expression"?

VladaMar
04.03.2011, 15:47

Máte pravdu, nezvolil. Nyní jsem jsem provedl vše správně, avšak výsledek žádný. Zasílám pro kontrolu záznamPříkaz: SRXTEXTSearch - Regular expression/Exact string/<Substring>: rEnter the searched text [Enter to select a text object]: ^\([0-9]+\) \([0-9]+\)$Enter the replace text: \1.\2Search Layer/<All>:Search Selected/<All>:Number of searched entities: 1172Number of found/replaced entities: 0/0
VladaMar2011-03-04 15:47:49

Vladimír Michl
04.03.2011, 16:45
Tohle vypadá dobře. Zřejmě tedy ty texty neodpovídají hledané masce. Je například mezi oběma skupinami čísel opravdu jen jedna mezera? Není mezera na začátku nebo na konci řetězce?

VladaMar
05.03.2011, 09:22
Máte pravdu, ještě byla v textu mezera na konci řetězce. Tedy např. "100 00 ". Nakonec se mi to tedy přejmenovat vše povedlo, děkuji za rady

Vladimír Michl
05.03.2011, 09:36


OK. Pokud je začátek a konec řetězce nejistý, stačí vynechat ty znaky ^ a $.