Seite durchsuchen nach:
(powered by
FreeFind)
Bemerkung: Manche Browser haben offensichlich Probleme mit CSS. Für die richtige Darstellung dieser Seiten verwenden Sie am besten
Firefox oder
Opera.
Syntax
found = BiSearchWord( searchArg[, wPos]> ) [;]
Beschreibung
Diese interne REXX-Funktion sucht eine sortierte Liste nach dem als Aufrufparameter
angegebenen Wort ab der angegebenen Wort-Position durch.
Aufrufparameter
searchArg
Des im Listensatz gesuchte Wort.
wPos
Wort-Position im Satz, in der gesucht wird.
Rückgabewerte
found
Index der ersten gefundenen Stemvariablen, in der das gesuchte Wort in
der angegebenen Position vorhanden ist.
0
Eine Null, wenn kein Wort gefunden wurde.
Bemerkungen
Eine Liste ist eine durchnumerierte Stem-Variable mit der Anzahl der
Sätze in der Stem-Variablen mit dem Index 0.
Gesucht wird ein Wort (im REXX-Sinne) in den Sätzen der Stemvariablen ab der angegebenen Wort-Position.
Die Liste muss nach gleichen Kriterien sortit sein.
In dieser Beispielimplementierung ist die Liste in der Stem-Variablen mit dem Stamm-Namen
stem. abgespeichert. Dieser Name wurde durch die Anweisung
Expose an die Prozedur Übergeben.
Sourcecode
/*==========( Binary search word )==========*/
BiSearchWord: Procedure Expose stem.
Arg search, wPos
If DataType( wPos ) <> 'NUM' Then wPos = 1
found = 0 /* Index of the found Item */
bottom = 1
top = stem.0
Do While found = 0 & top >= bottom
mean = (bottom + top) % 2
srchVal = Word( stem.mean, wPos )
If search = srchVal Then found = mean
Else If search < srchVal Then top = mean - 1
Else bottom = mean + 1
End
Return found
/*** End BiSearchWord ***/
Beispiel 1
stem. = "Z"
stem.0 = 20
stem.1 = "/* REXX */"
BiSearchWord( "REXX" )
Say found
Ergebnis 1
0
Beispiel 2
stem. = "Z"
stem.0 = 20
stem.1 = "/* REXX */"
found = BiSearchWord( "REXX", 2 )
Say found
Ergebnis 2
1
Your privacy: This web site has no cookies, no advertising and does not provide access data to anyone for any reason.
Copyright © Janosch R. Kowalczyk 1999, 2010. All rights reserved.
Most recent revision on 25 Feb 2010 (56) - 13:21:47.