Zobrazit plnou verzi příspěvku: Nahraď první znak, zbytek nechej/přidej znak před

Firestone
13.01.2014, 11:24
Zdravíčko,trošku si tady lámeme hlavu, zdali ACAD LT zvládá nahrazení jednoho znaku znakem jiným, libovolným, tak, aby zbytek řetězce byl zachován.Tj. mám např. " 25 43" a " 26 12" a rád bych, aby se první znak (mezera) nahradila třeba číslem 4 a zbytek se nechal tak, jak je. Pak by to bylo jako 425 43 a 426 12.Anebo zdali ACAD LT nezvládá při najít/nahradit přidat cokoli před nalezený text s tím, aby se zbytek textu zachoval tak, jak je. Anebo univerzálně zdali nezvládá nahradit pouze jeden znak uprostřed např. textového pole s tím, aby se zbytek zachoval -- např. najdi 45?68 tak, aby se jen na místo otazníku dosadil mnou zvolený znak.Dííky za vaše případné zkušenosti.Firestone2014-01-13 11:31:02

Machacek
13.01.2014, 11:34
Ano funguje to takto...

Machacek
13.01.2014, 11:37

NajítUrčuje řetězec znaků, který chcete najít. Zadejte textový řetězec obsahující libovolné zástupné znaky nebo vyberte ze seznamu jeden ze šesti naposledy použitých řetězců.Nahradit zaNahradí vybraný text daným řetězcem znaků. Zadejte řetězec nebo vyberte ze seznamu jeden z naposled použitých řetězců.

Firestone
13.01.2014, 11:47
No mně se to právě takto nedaří.Když chci tedy např. nahradit jen první znak a dám najít "?", tak mně to nahradí všechny znaky za požadovaný znak.Nevím, jak ACAD LT donutit, aby nahradil pouze jen ten první znak, anebo přidal něco před stávající řetězec.

Vladimír Michl
13.01.2014, 11:49

V této kombinace se obávám že to v AutoCADu LT nepůjde - pomocí srxText by to šlo.

Machacek
13.01.2014, 11:53

Jako první znak byste musel mít mezeru. Pokud tam ta mezera není, tak to nic nenajde...

Machacek
13.01.2014, 12:02

teoreticky by podle nápovědy molo fungovat toto...V příkazu NAJÍT můžete použít k vyhledání zástupné znaky.ZnakDefinice# (plot)Odpovídá libovolné číslici.@ (Zavináč)Odpovídá libovolnému znaku abecedy.. (Tečka)Odpovídá libovolnému nealfanumerickému znaku.* (Hvězdička)Odpovídá libovolnému řetězci a lze ji použít kdekoli ve vyhledávaném textu.? (Otazník)Odpovídá libovolnému jednomu znaku; například ?BC odpovídá ABC, 3BC apod.~ (Vlnovka)Odpovídá všemu kromě vzoru; například ~*AB* odpovídá všem řetězcům, které neobsahují AB.[ ]Odpovídá libovolnému jednomu ze znaků uzavřených v závorkách; například [AB]C odpovídá AC a BC.[~]Odpovídá libovolnému znaku, který není uzavřený; například [~AB]C odpovídá XC, ale ne AC.[-]Udává rozsah pro jeden znak; například [A-G]C odpovídá AC, BC apod. až do GC, ale ne HC.` (obrácený apostrof)Přečte následující znak tak, jak je uveden v zadání; například `~AB odpovídá ~AB.

Firestone
13.01.2014, 12:30
Podle mně to nejde ani když je první znak ten, který chci nahradit s tím, aby se zbytek zachoval. Resp. mně se to teda v ACAD LT nepodařilo.

Machacek
13.01.2014, 12:47

To funguje v pohodě. Akorát se nesmí dát automatické nahrazení všech výskytů najednou, protože pak by to při vyhledávání např. >2< nahradilo všechny tyto dvojky nahrazujícím znakem... v čísle 232 tedy 2x záměna...

Machacek
13.01.2014, 12:54

Máte nastaveny dobře parametry prohledávání? Já jsem teď zjistil, že tam nemám zaškrtnuté ty zástupné znaky a teď fungují i ty... 

Firestone
13.01.2014, 13:26
Nóó teda to je ale zajímavý "trik".Opravdu pokud se to nedá nahradit hromadně, tak to funguje!Sice pak to háže daleko více nalezených hodnot, protože to ten otazník na začátku bere pro každý znak v daném textovém poli, ale pokud se označí najednou jen vždy první výsledky z dané množiny, tak to nahradí jen ten první znak :)Hodně originální řešení, jen co je pravda! Škoda, že by to nešlo použít např. k tomu nahrazení nějakého znaku uvnitř textu (např. vždy jen třetí znak v daném textovém poli).Každopádně děkuji za radu!Firestone2014-01-13 13:33:29

Kotlaba
14.01.2014, 09:25
Nevím, co umějí nové verze AutoCADu. Kdysi jsem se s něčím podobným setkal, když jsem potřeboval převést staré výkresy, dělané ještě ve verzích R10 a 11, kde se české znaky zadávaly jako "procento procento číslo" do novějších. Tak jsem si vygeneroval soubor DXF a napsal jsem si prográmek v BASICu který takové sekvence vyhledal a vytvořil nový soubor DXF kde ty sekvence byly nahrazené příslušným jednobytovým kódem.

Firestone
23.02.2014, 11:15
Zdravím a rád bych oživil toto téma...Zkoušel jsem využít možnosti SRXTEXT na plném CADu, ale něco zřejmě dělám špatně.Tentokráte mám případ textů s mezerou uprostřed a potřeboval bych tuto mezeru nahradit tečkou. Ideální případ pro SRXTEXT... Jenže nějak se mně nedaří.Mám například "255 02" a na toto jsem aplikoval následující:[code]Příkaz: srxtextSearch - Regular expression/Exact string/<Substring>: REnter the searched text [Enter to select a text object]: \(\d+\)\ \(\d+\)Enter the replace text: \1.\2Search Layer/<All>:ASearch Selected/<All>:ANumber of searched entities: 1Number of found/replaced entities: 0/0[/code]SRXTEXT evidentně ví co chci nalézt, ale nenahrazuje.Zkoušel jsem ještě z návodu:[code]Another example of complex replacements:KWD-5-3, KW-4-2, KWP-1-5toKCD-5-1, KC-4-1, KCP-1-1search: \(.\)W\(.*\)\-\(.\)\-\(.\)replace: \1C\2-\3-1[/code]ale tady mně to nahradí vždy jen první W, další už ne, tj.[code]Příkaz: srxtextSearch - Regular expression/Exact string/<Substring>: REnter the searched text [Enter to select a text object]: \(.\)W\(.*\)\-\(.\)\-\(.\)Enter the replace text: \1C\2-\3-1Search Layer/<All>:ASearch Selected/<All>:ANumber of searched entities: 1KWD-5-3, KW-4-2, KWP-1-5-->KCD-5-3, KW-4-2, KWP-1-1Replace/Dont ask - yes/<Exit>: DNumber of found/replaced entities: 1/1[/code]Neporadil by někdo v čem je chyba?Díky za případný help.
Firestone2014-02-23 11:18:39

Vladimír Michl
23.02.2014, 11:54

S tím "\d" jsou potíže (dvojité escape znaky). Funguje třeba:[CODE]\([0-9]+\) \([0-9]+\)[/CODE]ale pro tento typ nahrazení by stačil i obyčejný Replace, mezera na tečku. 

Firestone
23.02.2014, 12:04
Nj safra, máte pravdu. Proč zkouším vytahovat kanón na vrabce? Každopádně děkuji za radu i ohledně alternativní syntaxe!Ale nejde mně do hlavy, proč nejde ten ukázkový případ :( Při prvním oťukávání SRXTEXT mně to šlo a nahrazovalo mně to všechna W. Ale teď prostě ne...EDITED: Tak nakonec se to přeci jen hodilo, protože některé hodnoty měly mezeru i na konci! Tj. např. "225 02 ". Sice postupným hledáním/přepisováním by to šlo obejít, ale nešlo by to v jednom kroku (si myslím).

Firestone2014-02-23 15:23:56