TKRoth hat geschrieben:Vielleicht könnt ihr es noch optimieren
If QStr ist nicht nötig, denn wenn
QStr="" ist, dann ist
Len(QStr) = 0, und die Schleife wird ohnehin nie durchlaufen (Start >= 1 vorausgesetzt. Vielleicht sollte man dies sowieso sicherheitshalber besser prüfen, ich weiß nicht was Mid() zurückliefert, wenn Pos < 1 ist). Und
Len(QStr) besser nur 1x aufrufen, weil es sonst unnötige Zeit kostet.
Code: Alles auswählen
EnableExplicit
Procedure.i FindAny(QStr.s, FStr.s, Start=1)
Protected Pos, Length = Len(QStr)
For Pos = Start To Length
If FindString(FStr, Mid(QStr, Pos, 1))
ProcedureReturn Pos
EndIf
Next
ProcedureReturn 0
EndProcedure
Debug FindAny("10 PRINT WERT:GOSUB 1000", ":(.+-*/")
Debug FindAny("10 PRINT WERT+5:GOSUB 1000", ":(.+-*/")
Duch Verwendung von Pointern lässt sich der Code wahrscheinlich noch beschleunigen.
Grüße, Nino