Author |
Topic |
|
NihilBaxter
Starting Member
15 Posts |
Posted - 14 Sep 2011 : 20:13:04
|
Hallo zusammen,
ich versuche MagicScript zu lernen (mit bescheidenem C++ Vorwissen)und bin auf folgendes Problem gestoßen:
Ich möchte den "Suchtitel" am Anfang eines Skripts verändern, d.h. der Inhalt von #MOVIE# soll in eine Variable geschrieben und im nächsten Schritt verändert werden.
Schritt 1 sollte mit #GETMOVIEVAR#=#20#=%MOVIE% klappen. (oder #GETTITLE#=#20# der Unterschied ist mir nicht ganz klar.
Damit steht ein String mit folgendem Aufbau in Variable #20#: #20#=Film xy Szene ab
Ich möchte den Teil " Szene ab" aus dem String löschen, so dass "Film xy" stehen bleibt.Wie kann ich soetwas umsetzen?
Ich habe es mit #SEARCHREPLACEVAR#= Szene ab#20##21# versucht. In diesem Fall sind die Variablen #20# und#21# nach Ausführung der Zeile beide leer. #DELETEWORD# (in Kombination mit #CHECKVARIABLE# und #DELETETAGS#)klappt auch nicht. Was ist eigentlich der Unterschied zwischen beiden Befehlen?
Ich würde mich über Hilfe oder einen funktionierenden Schnipsel Code sehr freuen. Danke vorab!
NB
|
|
JDommi
Administrator
Germany
4657 Posts |
Posted - 14 Sep 2011 : 22:15:34
|
Versuchs mal mit #SUBSTITUTEWEBQUERYWORD#... #SEARCHREPLACE# - hast du vorher mit #CHECKVAR# die korrekte Variable zugewiesen? #GETMOVIEVAR# und #GETTITLE# sind abgesehen von der Syntax scheinbar gleich. #DELETETAGS# ist nur ein Block (Subroutine) in der die Befehle mit #DELETEWORD# stehen.
Ich hoffe, daß dir das schon weiterhilft. |
In order to achieve what is possible, you have to try the impossible over and over again. Hermann Hesse |
|
|
NihilBaxter
Starting Member
15 Posts |
Posted - 15 Sep 2011 : 22:23:40
|
Danke für deine Tipps, JDommi. Ich bin was #SEARCHREPLACEVAR# angeht einen Schritt weitergekommen. Der bei den Instructions angegeben Syntax zum Befehl ist meiner Meinung nach nicht ganz korrekt. Richtig wäre:
#SEARCHREPLACEVAR#=text1|text2#?1##?2#
Parameters:
text1 Required. The text that shall be replaced. | required. text 2 not required. The text used to replace text 1. #?1# Required. The variable that contains the data that shall be checked. #?2# Required. The variable that contains the result after the replacement.
Das ganze funktioniert nur mit Verwendung von |. Leider kann text1 nicht durch eine Variable #?x# ersetzt werden, was den Befehl für meinen Anwendungsfall nutzlos macht. Ich hätte den zu ersetzenden Text Szene 1 bis Scene n gerne in einer Schleife durchgezählt. Für #SEARCHREPLACEVAR# ist eine Definition der Variable mit #CHECKVARIABLE# übrigens nicht erforderlich. Ich werde mal weiter testen, ob ich eine Lösung finde. Hinweise werden natürlich weiterhin gerne genommen...
NB |
Edited by - NihilBaxter on 15 Sep 2011 22:47:46 |
|
|
Prinz
Senior Member
Germany
1522 Posts |
Posted - 16 Sep 2011 : 20:58:00
|
Die Ersatztexte sind aber RegEx nur als Hinweis ;)
#SEARCHREPLACEVAR#=text1|text2#?1##?2#
Parameters:
text1 Required. The text that shall be replaced. | required. text 2 not required. The text used to replace text 1. #?1# Required. The variable that contains the data that shall be checked. #?2# Required. The variable that contains the result after the replacement.
#?2# ist eine Variable die 0 oder 1 enthalten muss und angibt ob die RegEx Suche Groß-/Kleinschreibung ignorieren soll. Variable #?1# wird verändert, es gibt keine Ergebnisvariable. Wenn du das Original noch brauchst vorher in eine andere Variable kopieren mit #STRING#=#?1#=#?2#
PS.: Die Funktion wurde nur für ein spezielles Problem eingebaut mit den imdb.com Skript nach deren Seitenumstellung. |
|
|
JDommi
Administrator
Germany
4657 Posts |
Posted - 17 Sep 2011 : 10:11:28
|
Danke für die Erklärung Prinz! Ich habe Ale gerade eine korrigierte Version der MagicScript-Hilfe gemailt.
|
In order to achieve what is possible, you have to try the impossible over and over again. Hermann Hesse |
|
|
NihilBaxter
Starting Member
15 Posts |
Posted - 18 Sep 2011 : 23:11:43
|
Ebenfalls Danke für die Erklärung, Prinz!
|
|
|
|
Topic |
|