Byte-Wiederholungen Ermitteln!

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
al90
Beiträge: 1103
Registriert: 06.01.2005 23:15
Kontaktdaten:

Byte-Wiederholungen Ermitteln!

Beitrag von al90 »

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)