Code: Alles auswählen
; Ermittelt wie oft sich Byte-Folgen nacheinander wiederholen.
; Dabei kann die Anzahl der Bytes die auf wiederholungen überprüft
; werden sollen, frei gewählt werden. Z.B. "2" wenn man die
; anzahl gleichwertiger 16-Bit (2-Bytes) werte zählen möchte.
Procedure.l CountByteRepeats(MemAdr,ByteAnz,EndAdr)
Anz=0:Adr=MemAdr
Repeat
If Adr=<EndAdr-ByteAnz+1
Test=CompareMemory(MemAdr,Adr,ByteAnz)
If Test=#True
Anz+1
Else
Break
EndIf
EndIf
Adr+ByteAnz
Until Adr>EndAdr-ByteAnz+1
ProcedureReturn Anz
EndProcedure
langword=$AABBAABB
Debug CountByteRepeats(@langword,2,@langword+3)
langword=$FFFFFFFF
Debug CountByteRepeats(@langword,1,@langword+3)
string$="12341234123412341234"
Debug CountByteRepeats(@string$,4,@string$+Len(string$)-1)