Looping und Stringfunktionen in WINST

Antworten
mocza
Beiträge: 55
Registriert: 24 Okt 2012, 12:18

Looping und Stringfunktionen in WINST

Beitrag von mocza »

Sorry, falls ich die Möglichkeit im WINST-scripten noch nicht entdeckt habe:
voll Freude entdeckte ich die (bescheidenen) Möglichkeiten im WINST, eine Schleife zu erstellen und damit evtl. Stringlistenmanipulationen durchzuführen.
Nachdem ich da evtl. von vbs etwas verwöhnt war, war die Enttäuschung doch gross, dass die Möglichkeiten im WINST etwas limitiert sind.
Ich wollte mittels einer Schleife (also mit for %s% in §liste$ do ...) Pfadangaben mit einem Zähler versehen.
Dabei gelang es mir zwar, die Länge der StringListe mittels count zu erheben, der Wert ist dann allerdings wieder ein String, der dann für einen Index (für z.B. eines Substrings) nicht herangezogen werden kann.
Jedenfalls: was mir fehlte, ist eine Operation wie z.B. Int("5"), wo ein String in eine Ziffer umgewandelt werden kann oder einfach ein Indexzähler, um die Anzahl der Elemente der Stringliste (oder eines Arrays) zu eruieren.
Vielen Dank
Gerhard
Benutzeravatar
ueluekmen
uib-Team
Beiträge: 1939
Registriert: 28 Mai 2008, 10:53

Re: Looping und Stringfunktionen in WINST

Beitrag von ueluekmen »

Hallo Gerhard,

vielleicht stehe ich hier auf dem Schlauch, aber ich verstehe nicht ganz, was du vorhast. Warum willst du in einer for-Schleife über eine Stringliste auf einzelne Elemente der Stringliste zugreifen? Du kriegst den aktuellen Wert doch sowieso durch %s%.

Der Winst kennt nur Strings und Stringlisten. Das heißt aber nicht, dass der Winst mit "5" als Integer im String nichts anfangen kann. Guck mal ins Winst-Manual im Kapitel 8.5 Umgang mit Zahlen. Wenn dir da was fehlt, nehmen wir gerne Wünsche entgegen.
opsi support - uib gmbh
For productive opsi installations we recommend support contracts.
http://www.uib.de
dkoch
Beiträge: 309
Registriert: 25 Nov 2011, 14:03

Re: Looping und Stringfunktionen in WINST

Beitrag von dkoch »

Ich glaub sein Problem ist das die Methode "count" einen String und keinen Integer zurück gibt. Deswegen das Int("5")
Die pseudo-integer Funktion * count (<list>) [W/L]
ist eine pseudo Integer Funktion. Sie zählt die Elemente einer String-Liste <list>; das Resultat wird in einen String gewandelt. Ist $list1$ z.B.
a, b, c, d, e
so hat count ($list1$) den Wert "5".
Eventuell hilft dir calculate
calculate(<str>) [W/L]
Stringfunktion welch den arithmetischen Ausdruck im String <str> berechnet und als gerundeten integer string zurückgibt.
Intern werden die Berechnungen mit reellen Zahlen durchgeführt. Die Funktion kennt derzeit die Operatoren +, -, *, / sowie Klammern (,).
Im Fehlerfall wird ein leerer String zurückgegeben und der Errorcounter um eins erhöht Enthält der übergebene String Zeichen die keine Zahlen oder gültige Operatoren sind, so ist dies ein Fehler.
Fehlt der zweite Operator, so wird hierfür der erste verwendet: 5+ = 10 ; 5* = 25. Daher sollte beim Zusammensetzen des übergebenen strings verwendete Variablen z.B. mit der Funktion isNumber auf Gültigkeit geprüft werden.
Seit 4.11.3.5
Wenn du vbs lieber magst kannst du ja auch Exec_With verwenden.
mocza
Beiträge: 55
Registriert: 24 Okt 2012, 12:18

Re: Looping und Stringfunktionen in WINST

Beitrag von mocza »

Danke für die replys.
Werde mir das nochmals anschauen - vielleicht habe ich ja was übersehen, wie eine Variable als Schleifengrösse verwendet werden kann.
Viele Grüße
Gerhard
Antworten