Hallo,
gibt es eine schnelle Möglichkeit einen String oder ein Zeichen in einem String rückwärts zu suchen? Und damit meine ich keine absteigende Whileloop-Schleife oder so, die wäre zu langsam. Ich dachte eher an ein API.
Danke im Voraus,
Jac
Hallo,
gibt es eine schnelle Möglichkeit einen String oder ein Zeichen in einem String rückwärts zu suchen? Und damit meine ich keine absteigende Whileloop-Schleife oder so, die wäre zu langsam. Ich dachte eher an ein API.
Danke im Voraus,
Jac
Meinst Du sowas? Finde das letzte Auftreten eines Teilstrings in einem String = StrRStrIA zu finden in Shlwapi.dll
Gruß Volkmar
Das könnte helfen, danke.
Da könnte man doch auch InStr() nehmen und den String
spiegeln.
CLS
Proc ReverseStr
Parameters RS_ES$
Declare RS_AS$
WhileLoop Len(RS_ES$),1,-1
RS_AS$ = (RS_AS$ + Mid$(RS_ES$,&Loop,1))
EndWhile
Return RS_AS$
EndProc
Proc InstrR
Parameters String s1, s2
Return (Instr(ReverseStr(s1), ReverseStr(s2)) + Len(s1))
EndProc
Print InStrR("wie", "Hallo, wie geht es dir ?")
Waitkey
Alles anzeigen
Wenn zu langsam, frag mal Volkmar. Vielleicht kann er dir
was in ASM für den Inline Assembler basteln.
Es ging ja darum, das möglichst schnell zu machen. Den String zu spiegeln dauert dann ja schon je nach Länge. Die API-Funktion hingegen dürfte schon in C-irgendwas geschrieben sein, ist also vom Tempo kaum zu toppen.
Gruß Volkmar
ist also vom Tempo kaum zu toppen.
Doch, mit Inline - ASM
Ansonsten wäre es dann noch eine Anregung für Roland, falls es noch eine weitere Version gibt.
Daß InStr() mit dem optionalen Parameter mit Minus (-) auch von rechts arbeitet, genauso, wie
SubStr$().
Was zum Henker gebe ich als zweiten Parameter in StrSStrIA an? Ich verstehe es so, dass es die Position sein soll, von der aus rückwärts gesucht wird. Aber das haut nicht hin.
Das wäre sinnvoll, um ab der gefundenen Position weiter suchen zu können. Aber DeepL übersetzt das so:
Zitat von DeepLEin Zeiger auf die Quellzeichenkette, der den Bereich der Suche definiert. Setzen Sie pszLast so, dass es auf ein Zeichen in der Quellzeichenkette zeigt, und die Suche wird mit dem vorherigen Zeichen abgebrochen. Setzen Sie pszLast auf NULL, um den gesamten Quelltext zu durchsuchen.
Da wäre also Null einzusetzen. Alles Andere wäre eine Position, vor der abgebrochen wird. Wundert mich jetzt auch etwas und probiert habe ich es noch nicht.
Gruß Volkmar
Das ergibt keinen Sinn, weil ich ja rückwärts suche.
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!