ich habe die Lösung hier nicht gefunden, sorry, falls es doppelt wäre.
In einem Feld ist ein sehr langer Text, den die Benutzer unterteilen in
Abschnitt1**%3%**
Abschnitt2Zeile1
Abschnitt2Zeile2**%4%**
Abschnitt3
Ich muss nun die verschiedenen Abschnitte in verschiedene Felder drucken lassen, also ich brauche:
den Inhalt des Textfeldes von Links und muss diesen abschneiden bei ’%3%’
den Inhalt des Textfeldes zwischen ’%3%’ und ’%4%’
den Inhalt nach ‘%4%’ nehmen.
ich kenne nur TextWidth (Gibt die Breite des Texts mit dem entsprechenden Font zurück) oder Left$() (Kürzt eine Zeichenkette rechts oder Right$() (Kürzt eine Zeichenkette links.
Leider ist mein Text nicht fix mit Zeichenkette sondern variabel, darum diese %3% - Lösung.
den Vorschlag vom @Simon_Rosner können wir so unterstreichen. Das wäre nämlich auch unser Ansatz gewesen und sollte die gewünschte Umsetzung ermöglichen.
Hey danke für die Hilfe
also 1. und 3 stimmen soweit aber für
2. = mid$(Textfeld,strpos(Textfeld, ‘%3%’)+2, strpos(Textfeld, ‘%4%’)-x)
stimmt es nicht ganz, … ich muss mit dem hinteren -x alles nach dem ‘%4%’ “wegschneiden” und damit ist es nicht mehr variabel …
ich finde den Fehler nicht
Die Formel mit Mid$(…) soll ja zwei Zeichen nach dem “%3%” und wie von Simon bspw. beschrieben ein Zeichen vor dem “%4%” den entsprechenden Text dazwischen ausgeben.
Das entspricht deiner ursprünglichen Frage aus 2. oder verstehe ich deine neue Frage falsch / die Formel funktioniert nicht ganz richtig? Es wird ja erst “abgeschnitten”, wenn “%4%” zutreffend ist und sollte somit entsprechend variabel in der Länge sein.
Mein Test:
Benutzervariable: Textfeld = “Abschnitt1%3%Abschnitt2%4%Abschnitt3”
Textfeld mit drei Absätzen für die drei Abschnitte zum Anzeigen:
Absatz1: Token$(@Textfeld,0,“%3%”)
Absatz2: Token$(Token$(@Textfeld,1,“%3%”),0,“%4%”)
Absatz3: Token$(Token$(@Textfeld,1,“%3%”),1,“%4%”)
Meine Lösung funktioniert, wenn man den 2. Parameter von mid$ richtigerweise als Länge und nicht als Endposition interpretiert. Es müsste also so aussehen: