Переписать процедуру на не случайную генерацию 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 шт):
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