
Leider habe ich keine Ahnung wie ich das ganze so abändern kann das nicht immer die ganze Befehlsliste durchgearbeitet werden muss. Wenn ich in meiner Wortliste so 10000 Worte habe und innerhalb der Befehlsliste so ca. 400 dann kommen so einige Schleifendurchläufe zusammen und die Ausführungszeit wir sehr lang.

Edit: Die Befehlsliste ist nicht alphabetisch sortiert und die Zeichenkette (aus MeineTextListe()) die der Prozedur übergeben wird enthält nicht zwingend nur exakt einen Befehl aus der Befehlsliste sondern kann auch länger sein.
Codebeispiel:
Code: Alles auswählen
EnableExplicit
Procedure.l GetInstuctions(Value.S, List InstructionList.s())
Protected Instruction.s, TmpStr.s, NextChar.c
Protected I_Length.l, S_Length.l
S_Length = Len(Value)
ForEach InstructionList()
Instruction = InstructionList
I_Length = InstructionList
If S_Length >= I_Length
; |
; | Hier passiert noch irgendwas.
; |
ProcedureReturn I_Length
EndIf
Next
EndProcedure
NewList Befehlsliste.s() ;Diese Liste wird mit ca. 400 Schlüsselwörten befüllt
NewList MeineTextListe.s() ; Diese Liste wird mit Wörtern aus einer Datei befüllt.
ForEach MeineTextListe()
GetInstuctions(MeineTextListe(), Befehlsliste())
Next