英数字からなる文字列をもれなく生成する(続き)

Pocket

「数字」と「大文字」と「小文字」からなる文字列をもれなく生成する方法は次の通りです。

0番目「0」
1番目「1」

9番目「9」
10番目「A」

61番目「z」
62番目「10」

71番目「19」
72番目「1A」

3843番目「zz」
3844番目「100」

9999番目「2bH」

この場合のユーザー定義関数は次の通りです。

Function 文字列生成大文字(kazu)
    Const teisu = 62
    If kazu = 0 Then
        文字列生成大文字 = "0"
        Exit Function
    End If
    nokori = kazu
    For kurai = Int(Log(nokori) / Log(teisu)) To 0 Step -1
        keisu = Int(nokori / teisu ^ kurai)
        nokori = nokori – keisu * teisu ^ kurai
        If keisu < 10 Then
            moji = keisu
        ElseIf keisu < 36 Then
            moji = Chr(65 + keisu – 10) 'Chr(65)="A"
        Else
            moji = Chr(97 + keisu – 36) 'Chr(97)="a"
        End If
        ret = ret & moji
    Next kurai
    文字列生成大文字 = ret
End Function

[ 2009年4月18日 | カテゴリー: デジタル | タグ: ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報