BASE64の変換処理に挑戦してみたBASE64の変換処理に挑戦してみた本文(発行内容)BASE64の変換処理に挑戦してみたこんにちは、三流プログラマーのKen3です。今回は、VBA系でも発行したけど、BASE64の変換処理にチャレンジしてみました。1.今回のキッカケ*/自作した16進数から2進文字列の作成ルーチンhttp://www.ken3.org/cgi-bin/test/test094-1.aspを使わないとなぁ・・・なんて思ってたら、VBA系でBASE64の変換をやってみたので、こっちでもほぼコピー発行です。2.BASE64って何?*/BASE64って何?私の知識でこの単語が引っかかるのは、メールで添付フアイルを送る時、BASE64って単語を見たことがある程度です。Googleで探してみるか。...http://e-words.jp/w/BASE64.htmlが一番上に出てきます。ついてhttp://www.sea-bird.org/doc/Cygwin/BASE64enc.htmlとサイトがあり、>1.エンコードすべきデータから、3バイト取得する。>2.取得した3バイトを24ビットのデータ領域に設定する。>3.上位から6ビットを取り出し、その数値を下記の変換テーブルに従い>キャラクター文字に変換する。>4.次の6ビット以降も同じ変換を行い、24ビットすべて変換する。>5.エンコードすべきデータが無くなるまで、1〜4の作業を繰り返す。※エンコードすべきデータが、2バイトしか無い場合は、それまでBASE64>エンコード変換した文字列の最終位置に'='を付加する。※エンコードすべきデータが、1バイトしか無い場合は、それまでBASE64>エンコード変換した文字列の最終位置に'=='を付加する。>>変換テーブル:6ビットデータの「0〜63」を以下の文字列に変換する。丁寧に変換方法が載ってました。YahooでBASE64を検索しても、いろいろなページがヒットします。http://search.yahoo.co.jp/bin/query?p=BASE64&hc=0&hs=0読んでいくと、6ビット単位にデータを取り出し、それを指定された文字に当てはめる。下記のように作ってみました。※なんか無駄に長いんだけど、気にしないでね。'6ビットデータの「0〜63」を以下の文字列に変換する。そこから、6ビット単位でデータを取り出し、再び数値に変換。ここまでで、6ビット単位の4つの数値が完成する。その数値を、対応表にしたがって、文字に直します。'6ビットデータの「0〜63」を以下の文字列に変換する。↑オイオイって感じのIf文の羅列ですがご勘弁を。↓変換文字が余っていたら=をプラスしてます。こんな感じで、3文字単位で変換しました。※漢字には非対応なので、2バイト文字を使う人は、一工夫してくださいね。BASE64の変換をやってみた、そんなお話でした。※強引に2進数と16進数文字列の関数を使ってみました。テストできます、何かの時、使ってみてください。何かの参考となれば幸いです。ASP、VBScript勉強中の三流プログラマーのKen3でした。ページフッターここまで、読んでいただきどうもです。三流君へメッセージを送る。下記のフォームからメッセージを送ることができます。気軽に書いてください(感想や質問・要望・苦情はHPで記事に載せることがあります。↓を選択してください。基本はデータの受け取りかなぁ。・[Form等を使用したデータのやり取り]・・・ASPと言っても、HTMLの入力フォームからデータを受け取ります。POSTやGETでやりとりを押さえますか。・[ADOでMdbファイルを使う]・・・MDBと接続して、簡単な追加・更新・削除を行った。・[ADOでExcelと接続してみた]・・・.xlsと接続してSQLを使ってみた。テキストを読み出した。・[テキストファイル処理]・・・ファイルを開いて、書き込む。1行読み込みなどを軽くVBScriptでFormat関数が無いなど、微妙にVBAと違うけど[VBScript関数関係の説明]・・・少し、処理を書いてみた。[その他処理サンプル]・・・あまり良いサンプル作れなかったけど。何かの参考となれば幸いです。バックナンバー目次]広告:。