Zobrazit plnou verzi příspěvku: Hromadne prepsani textu
Mikemamm
02.12.2009, 10:59
Dobry den, jde v autocadu 2009 hromadne prepsat text z napr 1009.10 na 1009100 nebo 9100 ?
Jedna o desitky textu vysek zamerenych bodu a potreboval bych je dostat z metrove hodnoty do milimetrove hodnoty a nejlepe jeste ubrat prvni dve mista - tozn ubrat 10, aby zustalo jen 09100.
Jak na to? dekuji
Jde to klasickým příkazem - najít, nahradit.
Pokud jsou ty hodnoty stejné, pak ano. Ale řekl bych, že Mikemamm měl na mysli přeformátovat spoustu různých textů. To by asi šlo nějak přes lisp.
Ale nějak mi uniká rozumný důvod, proč .....???
Ubrat první dvě číslice, to ještě chápu - úspora místa (a lepší čitelnost). Ale zase to zmást milimetry, zvláště když je zaměřeno s přesností na centimetry?
A ještě se může změnit úchopový bod a pak to může vypadat, že se text váže k jinému bodu ...Mantlík2009-12-02 11:17:37
Mikemamm
02.12.2009, 11:21
Ano mel jsem namysli rozdilne texty. Ubrat prvni dve cislice z duvodu prehlednosti.
Prevest na milimetry, protoze z toho potrebuji udelat teren a jelikoz jsou tyto hodnoty napr 1009.10m tak to bere jako milimetry, protoze rysuji v milimetrech a tim padem je teren skoro rovny.
Bud by slo nejak nastavit, aby si cad myslel, ze tato hodnota je v metrech a ne milimetrech nebo tyto hodnoty prevest na 1009100 a pak by to nebyl problem
TAkze ma otazka zni, jak ubrat prvni ddve cislice ?
Jak prevest metry na milimetry, nebo jak rict cadu, ze jsou to metry, aby to bylo ve spravnych vyskach ?
snad je mi rozumnet, nejak jsem se do toho zamotal
p.Mantlik to je pravda, v huste siti by to asi mohlo delat problem, takze pokud mozno bych text klidne nemenil, ale musim nak zadat, ze je to hodnota v metrech a ne v mm, ale nevim jakMikemamm2009-12-02 11:23:15
Vymazet desetinou čárku není opravdu problém, horší se jo to se zbytkem.
Kolik různých dvojic čísel je na prvních dvouch místech?
Mikemamm
02.12.2009, 11:29
vyborne, jak vymazu desetinou carku ?
prvni dve cisla jsou vzdy "10" takze jen jedna dvojice
Příkaz [cmd]NAJDI[/cmd] - do prvního řádku zadat desetinou čárku, do druhého nic - zaměnit vše.
U čísel - zadat raději první tři číslice, do druhého jen to třetí co je nutno ponechat.
Začít nejdříve se záměnou čísel - ponechat si zálohu čísel např. v jiné uzamčené hladině.
Trochu pracnější, ale jde to.
A co TIP 3228zdrk2009-12-02 11:39:21
Vladimír Michl
02.12.2009, 11:39
Určitě to půjde přes srxText a jeho regulární výrazy. Pokud popíšete přesně všechny varianty nahrazení, s požadovaným nahrazovacím výrazem vám pomůžeme.
Mikemamm
02.12.2009, 11:56
Jeste jedna vec, zkousim to podle p.zdrka a mam zajimalo by mne, zda mohu pridat ke vsem hodnotam na konec 0, protoze tam stale chybi jedno deset misto, jelikoz je to ted v centimetrech. lze to ?
srxtext se jeste podivam,dekuji
Mikemamm
02.12.2009, 11:59
Varianty nahrazeni jsou pouze tyto.
text 10xx.xx (v metrech) potrebuji nahradit na xxxx0 (milimetry bez prvniho dvojcisli)
Tozn xx.xx = xxxx bez desetinne tecky a pridat na konec 0
Pokud to delam pomoci najit a zmenit, tak napr text 1010.10 se mi smaze cely, jinak to fungujeMikemamm2009-12-02 12:00:43
Utilita srxText mne napadla později, moc ji nepoužívám.
Jen tak jsem ji zkusil - nepřišel jsem na to jak zadat, aby určená část textu jen vymazala (prázdným znakem).
Vladimír Michl
02.12.2009, 12:08
Tak jak jsem potřebu nahrazení zatím pochopil, by vyhledávací a nahrazovací řetězec pro regulární výraz srxTextu měl vypadat nějak takto:
[CODE]
^10\([0-9][0-9]\)\.\([0-9][0-9]\)$
\1\20
[/CODE]
Vyzkoušejte si to.
Mikemamm
02.12.2009, 12:21
nefunguje mi to
spustim srxtext
search-regular expression/exact string/[sbustring]:
Enter the searched text:
Enter the replace text:
search layer/all:
search selected/all:
zkousel jsem tam zadat prikazy, ktere jste vypsal, ale nejak mi to nefuguje, mohl byste mi prosim napsat do jake radky budu psat tyto prikazy ? Dekuji
Prikaz jsem napsal do serched text a druhy do replace text a nefunguje mi to:(Mikemamm2009-12-02 12:50:41
Vladimír Michl
02.12.2009, 13:05
Na první dotaz odpovíte R (musí být nainstalovány Express Tools) a na další dva dle výše uvedeného mustru. Pak už jen potvrzujete jednotlivá nahrazování. Mělo by to fungovat.
VlJanecek
02.12.2009, 13:16
Já srxText používám hodně ale přiznám se že s požadovaným tvarem toho výrazu mám vždycky potíže. Asi by to chtělo nějak lépe popsat.Tenhle příklad mi ale funguje.
Vladimír Michl
02.12.2009, 13:25
Regulární výrazy vypadají dost složitě. Je dobré si pár výrazů odzkoušet na nějaké online službě. Další komplikací jsou některá specifika interpretace textů v LISPu.
Každopádně pokud výraz rozebereme:
^10\([0-9][0-9]\)\.\([0-9][0-9]\)$
říká:
najdi texty začínající (^) desítkou (10), po níž následují dvě číslice (znaky 0-9, skupinu si zapamatuj jako č.1), pak následuje tečka (speciální znak tečka nutno escapovat pomocí \), po nichž jsou zase dvě číslice (ty si zapamatuj () jako druhou skupinu) a pak už musí být konec řetězce ($). Před speciálními znaky musí být zpětné lomítko jako escape znak.
A nahrazení (replace) říká:
\1\20
pokud takový řetězec najdeš, tak jej nahraď novým, v němž bude použita první zapamatovaná skupina (\1), po ní hned druhá zapamatovaná skupina (\2) a nakonec přidej nulu (0).
Ještě je tu jedna věc - ta hlavní - je použita pro oddělení desetiného čísla čárka nebo tečka?
Mikemamm
02.12.2009, 13:35
Ano, uz mi to funguje, chybelo zadani R na zacatku, dekuji
(Admin: téma importu přesunuto do samostatné diskuse)Vladimír Michl2009-12-02 13:57:18
Mikemamm
02.12.2009, 13:36
[QUOTE=zdrk] Ještě je tu jedna věc - ta hlavní - je použita pro oddělení desetiného čísla čárka nebo tečka?[/QUOTE]
Tecka
A ještě dotaz - je to funkční i pod trial verzí. V registrované to funguje.
Já když jsem to zkoušel, tak v číslech byla čárka a ve výrazu tečka – nešlo to. Proto se ptám, člověk je po obědě, plný nové síly a dělá blbosti.
Mikemamm
02.12.2009, 13:59
Na to se snazim davat pozor. Nicmene mam trial verzi a funguje to
Vladimír Michl
02.12.2009, 14:28
Nezaktivovaná verze srxText se liší pouze v podpoře CSV předpisu nahrazovacích dvojic textů.
Jsem rád, že to zafungovalo - případné úpravy vyhledávacího řetězce už asi zvládnete sám nebo se ozvěte.
Všiml jsem si ještě možného problému s úvodními nulami. Těch se když tak zbavíte nahrazením:
[CODE]
^0+\(.+\)$
\1
[/CODE]
Mikemamm
03.12.2009, 13:18
Parada, moc dekuji, hodne mi to usnadnilo praci, diky