--- Revision None +++ Revision 393236386535 @@ -0,0 +1,49 @@ +Sub StringShuffle() + ThisComponent.CurrentSelection.FormulaArray = ArrayShuffle(ThisComponent.CurrentSelection.FormulaArray) +End Sub + +Function ArrayRange(ByVal min, ByVal max) + Dim len + len = max - min + Dim res(len - 1) + Dim n + n = min + Dim i + For i = 0 To UBound(res) + res(i) = n + n = n + 1 + Next + ArrayRange = res +End Function + +Function NumberRandom(ByVal min, ByVal max) + Dim len + len = max - min + Dim res + res = Int(Rnd() * len) + min + NumberRandom = res +End Function + +Function ArrayShuffle(ByVal src()) + Dim res + res = ArrayCopy(src) + Dim t + Dim j + Dim u + u = UBound(res) + For i = u To 1 Step -1 + j = NumberRandom(0, i + 1) + t = res(j) + res(j) = res(i) + res(i) = t + Next + ArrayShuffle = res +End Function + +Function ArrayCopy(ByVal src()) + Dim res(UBound(src)) + For i = 0 To UBound(res) + res(i) = src(i) + Next + ArrayCopy = res +End Function