wenn ich definiere Für K = "ABC": 1: 3 jetzt was ist der Wert von "ABC", wie die Schleife zu "ABC" oder anstelle von ABC, wenn ich eine "Zeichenfolge ", wie wird die Zeichenfolge" ABC "erhöht.Mumps LANAGUAGE FOR Schleife bezogen
Bhas
wenn ich definiere Für K = "ABC": 1: 3 jetzt was ist der Wert von "ABC", wie die Schleife zu "ABC" oder anstelle von ABC, wenn ich eine "Zeichenfolge ", wie wird die Zeichenfolge" ABC "erhöht.Mumps LANAGUAGE FOR Schleife bezogen
Bhas
MUMPS wandelt Strings in numerische Werte, indem sie durch den String Lesen von links nach rechts. Es verwendet alle Zahlen und die erste Periode, in der es in der resultierenden Zahl auftritt, und es wird bei dem ersten nicht numerischen Zeichen anhalten.
Beispiele für String Anzahl Konvertierungen:
String -> Anzahl
"1234" -> 1234
"1234A" -> 1234
"1234A4321" -> 1234
"" -> 0
"A" -> 0
"ABC" -> 0
Wenn Sie Zugang zu einem MUMPS System haben, ist es trivial ist, um herauszufinden. Führen Sie einfach die folgende Routine aus, die z. in einer Datei für3.m:
for3
; routine to test FOR command
FOR K="ABC":1:3 WRITE "K=",K,! QUIT
Auf meiner Linux-Box habe ich GT.M installiert. Sie können ihn unter http://sourceforge.net/projects/fis-gtm/
bekommen Hier ist die Ausgabe:
$ gtm -run for3
K=0
K=1
K=2
K=3
HTH Nathan
Sehr leid für die munged Formatierung. Mea Schuld!
Die Programmliste sein sollte:
for3
; routine to test FOR command
FOR K="ABC":1:3 WRITE "K=",K,! QUIT
Und sollte die Ausgabe gewesen sein:
$ gtm -run for3
K=0
K=1
K=2
K=3
Wenn Sie über den String iterieren wollen "ABC" Sie können dies tun:
S STR="ABC"
F I=1:1:$L(STR) W $E(STR,I,I),!
Die $ L ($ Length) -Funktion gibt die Länge von STR zurück. In diesem Fall 3 wird die for-Schleife nur dreimal durchlaufen.
Die Funktion $ E ($ Extract) extrahiert eine Teilzeichenfolge von STR. Der erste Parameter für $ E ist die Zeichenfolge, aus der extrahiert werden soll. Der zweite Parameter ist die Startposition und der dritte Parameter ist die Endposition des Teilstrings. In diesem Fall gebe ich die gleiche Start- und Endposition an, so dass jedes Zeichen einzeln extrahiert wird.
Sie können auch ein Feldtrennzeichen als zweiten Parameter für die $ L-Funktion angeben. Also, wenn die STR = „Name | Alter | Sex“ Sie jedes Feld schreiben könnte durch:
S STR="NAME|AGE|SEX"
F I=1:1:$L(STR,"|") W $P(STR,"|",1),!
$ Hier L 3 zurückkehren würde und die for-Schleife 3-mal wiederholen würde.
Die $ P-Funktion ($ Stück) wird jedes Feld aus STR mit dem Pipe-Zeichen (|) als Feldtrennzeichen herausziehen, und ich bestimmt, welches Feld zurückgegeben werden soll.
Hope this helps ...
igotmumps
wie für deine Info, was ich erhielt jedes Zeichen/String umgewandelt wird auf 0 – user520057