@rantanplan sagte in [Vorlage] Blockly - Beliebiges Zeichen im Text tauschen :
Hallo
Manchmal ist es notwendig unliebsame Zeichen aus einem Text zu entfernen um diese z.B. in VIS vernünftig darstellen zu können.
Mit dem folgenden Blockly kann man jedes Zeichen, ganze Wörter oder eine Folge von Steuerzeichen gegen etwas anderes tauschen.
Hier der Export:
Spoiler
<xml xmlns="http://www.w3.org/1999/xhtml">
<block type="comment" id="?t^|J^}%io+OnqAwVT4A" x="-237" y="-87">
<field name="COMMENT">Beliebige Zeichen tauschen</field>
<next>
<block type="variables_set" id="-P{_[1=caHEAoB9cP4Qx">
<field name="VAR">MeinText</field>
<value name="VALUE">
<block type="text" id="]-v|)OoSpw-K*Z-|~Z|L">
<field name="TEXT">Dieser Text müßte geändert werden</field>
</block>
</value>
<next>
<block type="controls_if" id="eO-Yu;zv=:r~yJNHR:iS">
<value name="IF0">
<block type="logic_negate" id="u@28{:]xG=4a9HU}|/v)">
<value name="BOOL">
<block type="text_isEmpty" id="W-_T.2)lUsLG/Z(5zIQN">
<value name="VALUE">
<shadow type="text" id="9LrDM?0xYv?MX-(}2OrI">
<field name="TEXT"></field>
</shadow>
<block type="variables_get" id="B?L(8|(8?-Z7Ao*[F/VM">
<field name="VAR">MeinText</field>
</block>
</value>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="variables_set" id="ziw)~y|7*7le5/J*8HC#">
<field name="VAR">neuerText</field>
<value name="VALUE">
<block type="procedures_callreturn" id="ECH/%?YEFylSUOK._8/K">
<mutation name="changeText">
<arg name="originalText"></arg>
<arg name="suchText"></arg>
<arg name="tauschText"></arg>
</mutation>
<value name="ARG0">
<block type="variables_get" id="Y(bM=~D[D5v)7a#1{`}`">
<field name="VAR">MeinText</field>
</block>
</value>
<value name="ARG1">
<block type="text" id="(iqf|@QE;6:tP0}rbaEj">
<field name="TEXT">ü</field>
</block>
</value>
<value name="ARG2">
<block type="text" id="_{HiLh|2|F3|a#[4lCvX">
<field name="TEXT">ue</field>
</block>
</value>
</block>
</value>
<next>
<block type="variables_set" id="`vGUP!R!*|3sjY~dZXxZ">
<field name="VAR">neuerText</field>
<value name="VALUE">
<block type="procedures_callreturn" id="rvKR.cz9FhImw~YT8:YY">
<mutation name="changeText">
<arg name="originalText"></arg>
<arg name="suchText"></arg>
<arg name="tauschText"></arg>
</mutation>
<value name="ARG0">
<block type="variables_get" id="4r-=T6yu%Y[}Zn!QhpR/">
<field name="VAR">neuerText</field>
</block>
</value>
<value name="ARG1">
<block type="text" id="mbk@+N`6F_eG)N%Jw|2J">
<field name="TEXT">ä</field>
</block>
</value>
<value name="ARG2">
<block type="text" id="OtGH;LSHf;*t,59fJ)5i">
<field name="TEXT">ae</field>
</block>
</value>
</block>
</value>
<next>
<block type="variables_set" id="3+|QU5[xS;U@Qijfuu@7">
<field name="VAR">neuerText</field>
<value name="VALUE">
<block type="procedures_callreturn" id="~C~TrH*=xX3Xl-l@tg#V">
<mutation name="changeText">
<arg name="originalText"></arg>
<arg name="suchText"></arg>
<arg name="tauschText"></arg>
</mutation>
<value name="ARG0">
<block type="variables_get" id=",eH?bND1?H}TimRX_wnz">
<field name="VAR">neuerText</field>
</block>
</value>
<value name="ARG1">
<block type="text" id="6AWuk;A#5~8;jXas31)I">
<field name="TEXT">ß</field>
</block>
</value>
<value name="ARG2">
<block type="text" id="[M[ZL8Y,u8fNWw|eR|g)">
<field name="TEXT">ss</field>
</block>
</value>
</block>
</value>
<next>
<block type="debug" id="g8IUrYe_.rei!S6]Mc?a">
<field name="Severity">log</field>
<value name="TEXT">
<shadow type="text" id="d7HPm]yEeu9+?9HT0u|l">
<field name="TEXT"></field>
</shadow>
<block type="variables_get" id="^/WzSct]9kWQNOvtqOg/">
<field name="VAR">MeinText</field>
</block>
</value>
<next>
<block type="debug" id="Hme!w3Ag?_DUH%uRzR)U">
<field name="Severity">log</field>
<value name="TEXT">
<shadow type="text" id="d7HPm]yEeu9+?9HT0u|l">
<field name="TEXT"></field>
</shadow>
<block type="variables_get" id="`v3q2Xw=qC`r6)o/kUEY">
<field name="VAR">neuerText</field>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
<block type="procedures_defreturn" id="*?%n[KG5e1!^tNun#Hj5" x="288" y="-87">
<mutation>
<arg name="originalText"></arg>
<arg name="suchText"></arg>
<arg name="tauschText"></arg>
</mutation>
<field name="NAME">changeText</field>
<comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
<statement name="STACK">
<block type="variables_set" id="LyZ2%lYW+kfm,4)yV8UN">
<field name="VAR">Text</field>
<value name="VALUE">
<block type="variables_get" id="da5*p]}sO:{{|ZE!nhDe">
<field name="VAR">originalText</field>
</block>
</value>
<next>
<block type="variables_set" id="yx;qp1@1fC(oiG4c5gZt">
<field name="VAR">AnzZeichenSuchtext</field>
<value name="VALUE">
<block type="text_length" id="Jwz33ARDLc!=8:eDagDD">
<value name="VALUE">
<shadow type="text" id="RZWm!~Yo4w5)66Gu|Gs_">
<field name="TEXT">abc</field>
</shadow>
<block type="variables_get" id="G2I+np)5qee]q{4)BlN2">
<field name="VAR">suchText</field>
</block>
</value>
</block>
</value>
<next>
<block type="variables_set" id="eAGK[85W)DRaIaN!oMiH">
<field name="VAR">Stelle</field>
<value name="VALUE">
<block type="text_indexOf" id="/@rj}{;VUCJ8O|28^(Hf">
<field name="END">FIRST</field>
<value name="VALUE">
<block type="variables_get" id="}de%ffO*rIt%j6)99pf3">
<field name="VAR">Text</field>
</block>
</value>
<value name="FIND">
<shadow type="text" id="7MprEQxoWq}#3~Xz:32k">
<field name="TEXT">%0D%0A</field>
</shadow>
<block type="variables_get" id="7)r.X1a~Tee1!dAwZy`!">
<field name="VAR">suchText</field>
</block>
</value>
</block>
</value>
<next>
<block type="controls_whileUntil" id="4lR}{f])DWKyjt}.(6cc">
<field name="MODE">WHILE</field>
<value name="BOOL">
<block type="logic_compare" id="e`eUWK6kyOU=[/x]M({`">
<field name="OP">GT</field>
<value name="A">
<block type="variables_get" id="}7HLWRwI(SDg1^@=czoV">
<field name="VAR">Stelle</field>
</block>
</value>
<value name="B">
<block type="math_number" id="#y,za{r#@s7Ri.U!9v)A">
<field name="NUM">0</field>
</block>
</value>
</block>
</value>
<statement name="DO">
<block type="controls_if" id="PM@Su)b1YOhTZo2qPxB]">
<mutation else="1"></mutation>
<value name="IF0">
<block type="logic_compare" id="l,u?h{)Z-u/OozI,.79G">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get" id="B/K~z.ANK2);I3(uk4Bh">
<field name="VAR">Stelle</field>
</block>
</value>
<value name="B">
<block type="math_number" id="|3~K:6jrHq7oxz=fL:Yz">
<field name="NUM">1</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="comment" id="uN{|N4-0EabDJqYE0]@#">
<field name="COMMENT">steht am Textanfang</field>
<next>
<block type="variables_set" id="9?Gy,w.t#1pdl^AOxc#Y">
<field name="VAR">Teil_1</field>
<value name="VALUE">
<block type="variables_get" id="h(#=bJ`DU%y/Jd9%HR9I">
<field name="VAR">tauschText</field>
</block>
</value>
</block>
</next>
</block>
</statement>
<statement name="ELSE">
<block type="variables_set" id="{R*X,7K)DA^dq/.~KK7{">
<field name="VAR">Teil_1</field>
<value name="VALUE">
<block type="text_getSubstring" id="Img0opt.EB#)RM-bp~hw">
<mutation at1="false" at2="true"></mutation>
<field name="WHERE1">FIRST</field>
<field name="WHERE2">FROM_START</field>
<value name="STRING">
<block type="variables_get" id="A9h*F{tgJR0y[Q0uv7,=">
<field name="VAR">Text</field>
</block>
</value>
<value name="AT2">
<block type="math_arithmetic" id="([5R[:8Ywn-thKN@r:~}">
<field name="OP">MINUS</field>
<value name="A">
<shadow type="math_number" id="u@:!j5WimCjV%fG9hPGs">
<field name="NUM">1</field>
</shadow>
<block type="variables_get" id="U0qw,~,2KoaAc37UO{l#">
<field name="VAR">Stelle</field>
</block>
</value>
<value name="B">
<shadow type="math_number" id="DT#zRSRu1.y^|5Z#G37W">
<field name="NUM">1</field>
</shadow>
</value>
</block>
</value>
</block>
</value>
</block>
</statement>
<next>
<block type="variables_set" id="Else^,?QE9TTS.Y%K]W=">
<field name="VAR">Teil_2</field>
<value name="VALUE">
<block type="text_getSubstring" id="e8A7NqY7O!@K(aFlMpV#" inline="false">
<mutation at1="true" at2="false"></mutation>
<field name="WHERE1">FROM_START</field>
<field name="WHERE2">LAST</field>
<value name="STRING">
<block type="variables_get" id="|jU0g8+eIgwn_|IB56)@">
<field name="VAR">Text</field>
</block>
</value>
<value name="AT1">
<block type="math_arithmetic" id="F#*%;R9ugmwaaas?WBwG">
<field name="OP">ADD</field>
<value name="A">
<shadow type="math_number" id="8/I%=/~YReHV]Iwo{}(J">
<field name="NUM">1</field>
</shadow>
<block type="variables_get" id="R0|a}kx2M~SYjPKS5Cc{">
<field name="VAR">Stelle</field>
</block>
</value>
<value name="B">
<shadow type="math_number" id=";Q(aJ::90?0?H;-45cgS">
<field name="NUM">0</field>
</shadow>
<block type="variables_get" id="dY33=1IVxkrSH1k1#X6A">
<field name="VAR">AnzZeichenSuchtext</field>
</block>
</value>
</block>
</value>
</block>
</value>
<next>
<block type="variables_set" id="OcJS!-Ku1vQY4)I+r,gc">
<field name="VAR">Text</field>
<value name="VALUE">
<block type="text_join" id="%%D@nUqB1tt^`?qrUahx">
<mutation items="3"></mutation>
<value name="ADD0">
<block type="variables_get" id="q]l%0Dpb89BZy1-m[TjM">
<field name="VAR">Teil_1</field>
</block>
</value>
<value name="ADD1">
<block type="variables_get" id="f~POFU0}K4-w]xVc1?,`">
<field name="VAR">tauschText</field>
</block>
</value>
<value name="ADD2">
<block type="variables_get" id="U77~u,Qfmb2g[O19eHoh">
<field name="VAR">Teil_2</field>
</block>
</value>
</block>
</value>
<next>
<block type="variables_set" id="lao?KUxF77Si~Xc2j%^{">
<field name="VAR">Stelle</field>
<value name="VALUE">
<block type="text_indexOf" id="[),PN,ZrAW,C/~:K[x[:">
<field name="END">FIRST</field>
<value name="VALUE">
<block type="variables_get" id="6{t:BeVh6=bsQF(zUhYG">
<field name="VAR">Text</field>
</block>
</value>
<value name="FIND">
<shadow type="text" id="{Vd/Su8uk@lo|:3KMi1L">
<field name="TEXT">%0D%0A</field>
</shadow>
<block type="variables_get" id="r|~fKkGR#@1@G6_GX`-g">
<field name="VAR">suchText</field>
</block>
</value>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
<value name="RETURN">
<block type="variables_get" id=".*DA-:q/GzURSEPH2ZiQ">
<field name="VAR">Text</field>
</block>
</value>
</block>
</xml>
Bei Fragen, fragen.
Grüße
Hi @rantanplan ,
danke für deine Vorlage.
Ich hatte bei Nutzung nun aber das Problem, dass das erste Zeichen im String dupliziert getauscht wird.
Bsp: Im String "Wurst" soll das "W" durch ein "D" getauscht werden. Anstatt "Durst" gibt mir das Skript "DDurst" aus.
Das liegt mMn an folgender Funktion:
Da "Teil_1" und "tauschText" identisch sind, werden diese hintereinander geschrieben.
Ich habe dies mit einer einfachen Prüfung behoben.
Falls "Teil_1" und "tauschtext" identisch sind, dann erstelle Text aus "Teil_1" und Teil_2".
Falls sie nicht identisch sind, dann erstelle Text aus "Teil_1", "tauschtext" und "Teil_2".
Ich hoffe, dass hilft dem ein oder anderen.