Sub Process_Globals
Type sequencePair(value as int, numTimes as int)
End Sub
Sub Activity_Create(FirstTime as Boolean)
'...
Dim l As List
l.Initialize
l.AddAll(Array As Int(2,2,2,3,4,4,1,1,1,1,1,3,3,7,7,7,7,2,2,8,2))
Dim l2 As List=FindSequences(l)
For k=0 To l2.Size-1
Dim pSeq As sequencePair = l2.Get(k)
Log(pSeq.value&"-"&pSeq.numTimes)
Next
Ens Sub
Sub FindSequences(srcList as List) as List
Dim dstList as List
dstList.initialize
Dim currentSequencePair as sequencePair
currentSequencePair.initialize
currentSequencePair.value=srcList.Get(0)
currentSequencePair.numTimes=1
For k=1 to srcList.size-1 '<-- edited!! (originally was 0)
Dim newVal as int=srcList.Get(k)
If newVal=currentSequencePair.value Then
currentSequencePair.numTimes=currentSequencePair.numTimes+1
Else
dstList.Add(currentSequencePair)
Dim currentSequencePair as sequencePair
currentSequencePair.initialize
currentSequencePair.value = newVal
currentSequencePair.numTimes=1
End If
Next
If currentSequencePair.numTimes>0 Then dstList.add(currentSequencePair)
Return dstList
End Sub