Переписать процедуру на не случайную генерацию HEX 64

Как можно изменить код на PureBasic так, чтобы результат не был случайным, а можно было указать вручную в код, с какого диапазона начать последовательность. Значение должно быть в шестнадцатеричном формате hex, длина 64 символа

Например начинаем с a6707f09d6050dfdd368292b6c734a24fa22cef56b7b8fb08c262d6831e89fa5 и прибавляем по 1 бесконечно

получится

a6707f09d6050dfdd368292b6c734a24fa22cef56b7b8fb08c262d6831e89fa6 a6707f09d6050dfdd368292b6c734a24fa22cef56b7b8fb08c262d6831e89fa7 a6707f09d6050dfdd368292b6c734a24fa22cef56b7b8fb08c262d6831e89fa8 a6707f09d6050dfdd368292b6c734a24fa22cef56b7b8fb08c262d6831e89fa9 a6707f09d6050dfdd368292b6c734a24fa22cef56b7b8fb08c262d6831e89faa a6707f09d6050dfdd368292b6c734a24fa22cef56b7b8fb08c262d6831e89fab a6707f09d6050dfdd368292b6c734a24fa22cef56b7b8fb08c262d6831e89fac a6707f09d6050dfdd368292b6c734a24fa22cef56b7b8fb08c262d6831e89fad a6707f09d6050dfdd368292b6c734a24fa22cef56b7b8fb08c262d6831e89fae a6707f09d6050dfdd368292b6c734a24fa22cef56b7b8fb08c262d6831e89faf a6707f09d6050dfdd368292b6c734a24fa22cef56b7b8fb08c262d6831e89fb0 a6707f09d6050dfdd368292b6c734a24fa22cef56b7b8fb08c262d6831e89fb1

В этой процедуре всё выбирается случайно, но мне это не подходит. Как её переписать, помогите кто знает.

Procedure.s NameGen()
  Protected Chars.s,Pos.a,Result.s,n.a
  Chars="abcdef"
  OpenCryptRandom()
  For n=1 To 64
    Select CryptRandom(1)
      Case 1
        Result+Str(CryptRandom(9))
      Case 0
        Pos=CryptRandom(Len(Chars))
        Result+Mid(Chars,Pos,1)
    EndSelect
  Next
  CloseCryptRandom()
  ProcedureReturn Result
EndProcedure

Ответы (1 шт):

Автор решения: Anton Shchyrov
Procedure IncChar(Array arr, pos)
  If pos < 0
    pos = ArraySize(arr) - 1
  EndIf
  ch = arr(pos)
  Select ch
    case "9" ch = "a"
    case "f"
      ch = "0"
      IncChar(arr, pos - 1)
    Default
      ch = Chr(Asc(ch) + 1)
  EndSelect
  arr(pos) = ch
EndProcedure

s = "a6707f09d6050dfdd368292b6c734a24fa22cef56b7b8fb08c262d6831e89fa5"
Dim arr.c(Len(s))

for i = 1 to Len(s)
  arr(i - 1) = Mid(s, i, 1)
Next

While True
  IncChar(arr, -1)
  Debug Join(arr, "")
Wend
→ Ссылка