Crockford's Base32 generowanie wszystkich możliwych znaków

0

Cześć

Mam pytanko, chciałbym wygenerować sobie wszystkie możliwe znaki alfabetu Crockford's w Base 32.

Mam na myśli coś takiego:

000
001
.
.
009
00A
00B
.
.00V
010
011

itd

Czy znajde w JS jakąś funkcje która takie znaki mi zwróci? Chodzi o to aby zachowana była kolejność generowania od początku do końca.

Z góry dzięki

0

W JS raczej nie ma do tego funkcji, ale widzę, że są jakieś gotowce, to obsługi tego kodowania.

1

Napisałem to sobie w VBS tak na szybko, potem przepisze to na JS

Dim finalResults, formattedResult, TotalAmountOfPages, pathToResultFiles

'Base32 encoding functions for shorter, less confusing verification numbers'
Const kBase32Digits = "0123456789ABCDFGHIJKMNPQRSTVWXYZ"

TotalAmountOfPages = 32767
pathToResultFiles = "C:\Users\Admin\Desktop\crockfords base32\results.txt"

' ZZZ - 32767 last

finalResults = GenerateAllCrocfordsBase32Combinations(TotalAmountOfPages)

Call WriteToFile(finalResults, pathToResultFiles)

'To Base32'
Function ToBase32(ByVal lInput)

    Do Until lInput = 0
        lModulo = lInput Mod 32
        sTemp = Mid(kBase32Digits, lModulo + 1, 1) & sTemp
        lInput = lInput \ 32
    Loop
	
    ToBase32 = KeepFormat(sTemp)
End Function

Function GenerateAllCrocfordsBase32Combinations(TotalAmountOfPages)
	Dim allResults, i, encodedResult
	
	For i=0 To TotalAmountOfPages
		encodedResult = ToBase32(i)
		allResults = allResults & encodedResult & vbCRLF
	Next
	
	GenerateAllCrocfordsBase32Combinations = allResults
End Function

Function KeepFormat(result)
	If (Len(result) = 1) Then
		KeepFormat = Trim("00" & result)
	ElseIf (Len(result) = 2) Then
		KeepFormat = Trim("0" & result)
	Else
		KeepFormat = Trim(result)
	End IF
End Function

Function WriteToFile(allResults, path)
	    Dim fso, f
		
		Set fso = CreateObject("Scripting.FileSystemObject")
		Set f = fso.CreateTextFile(path, True)
		
		f.Write allResults
		f.Close
End Function

Zastanawiam się tylko, czemu nie generuje dla 0. I musze dorobić tak aby gdy dojdzie do "32767" zaczynał od nowa.

1 użytkowników online, w tym zalogowanych: 0, gości: 1