T O P I C R E V I E W |
NihilBaxter |
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
|
5 L A T E S T R E P L I E S (Newest First) |
NihilBaxter |
Posted - 18 Sep 2011 : 23:11:43 Ebenfalls Danke für die Erklärung, Prinz!
|
JDommi |
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.
|
Prinz |
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. |
NihilBaxter |
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 |
JDommi |
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. |