WritePro: Replace

Entweder ich finde es nicht oder es geht noch nicht: wie kann in in einem WritePro Dokument per Programmiersprache einen Text durch einen anderen ersetzen?

Hi,

über die st befehle

$multi:=ST Get text(Write_pro)

ersetzung für st etc. im zweifel replace string

ST SET TEXT(Write_pro;$multi)

Geht leider nicht bzw. hat Nebenwirkungen. Zum Test den Text aus dem Forenmail kopiert und in 4D Write eingesetzt:
[]19656573;“Vor Replace”[/]

Dann
<code 4D>
$text_t:=ST Get text(html_o)
$text_t:=Replace string($text_t;“st”;"")
ST SET TEXT(html_o;$text_t)

</code 4D>

ausgeführt und die Textgröße ist verändert:

[]19656576;“nach replace”[/]

Hi,

replace string war nur auf die schnelle.

st get text leifert den gesanten text als multistyle
wird nur st ersetzt dann werden auch die span-tags mit style verändert.

evtl kannst du deine platzhalter mittels st compute expr. ersetzen.

oder diese sind eindeutig von den stiltags trennbar.

Ok, scheint also ein generelles Problem zu sein. Offenbar hatte ich bisher Glück, dass styled Text durch Replace String nicht zerstört wurde. Muss ich einen Feature Request für eine Variante von Replace String, die styled Text berücksichtigt, eintragen oder ist so etwas eh schon geplant?

Ein Feature Request für Replace liegt nicht vor, nur für Find (plain text). Der soll alle Vorkommnisse (Array-Position) liefern. Idee ist dann mit anderen Befehlen diese zu manipulieren (Stil, Schrift, Farbe - oder eben ersetzen).

Aus dem Feature Request Forum http://forums.4d.fr/Post//19677607/1/
<code 4D>
$pos:=Position($oldText;ST Get plain text(;“styledText”);1;$len)
If($pos>0)
ST SET PLAIN TEXT(
;“styledText”;$newText;$pos;$pos+$len)
End if

</code 4D>