Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2906 / 9994 ←次へ | 前へ→

【10352】Re:36進数の文字列を10進数へ変換するには
回答  YU-TANG  - 08/5/6(火) 2:45 -

引用なし
パスワード
   ▼Access_Face さん:
>文字列   変換値:fncTemp([文字列],8)
>ABCDEFGH  24309841 ・・・・>36進数ABCDEFGHからの10進数結果ではない

えーと、コードをちゃんと読まれましたか?
第二引数の BaseNum (基数) に 8 を渡しているので、8 進数
からの変換になっているだけのように見えますが。
リンク先にも書いてあったように、エラー処理をしていないので
この場合は何が返ってきても不思議ではありません。
エラー処理は利用する側で実装する必要があります。

また、この関数を使って「36進数ABCDEFGHからの10進数」を
求めようとするなら、おそらく Long 型の範囲を超えますから、
オーバーフローを起こすと思いますよ。
どのみち、そのままは使えないでしょう。

あと、まさかとは思いますが、

>Let strList = "0123456789ABCDEFG...Z"

これは実コードのほうでは修正されてますよね??
念押しするほうが失礼かもしれないので書きにくいですが、
リンク先で上のように書いてあるのは、Z まで書くのが(おそらく)
面倒だったから「...」と省略しただけで、実際のコードでは(リンク
先のスレ先頭の質問文を見れば分かるとおり)省略なしできちんと
アルファベットを網羅しないと、まともな結果は返ってきません。
それは承知の上で、掲示板上だけ修正前のコードを貼ったという
ことでしたら(そうする意味はよく分かりませんが…)、流して
ください。


もしくは、処理速度を求めないなら、下の関数(手抜きですが)を
使ってください。

Function Base36ToDec(ByRef sNum As String)
  With CreateObject("ScriptControl")
    .Language = "JScript"
    Base36ToDec = .Eval("parseInt('" & sNum & "',36)")
  End With
End Sub

それでは。

641 hits

【10348】36進数の文字列を10進数へ変換するには Access_Face 08/5/5(月) 10:45 質問[未読]
【10350】Re:36進数の文字列を10進数へ変換するには YU-TANG 08/5/5(月) 15:12 回答[未読]
【10351】Re:36進数の文字列を10進数へ変換するには Access_Face 08/5/5(月) 22:36 質問[未読]
【10352】Re:36進数の文字列を10進数へ変換するには YU-TANG 08/5/6(火) 2:45 回答[未読]
【10353】Re:36進数の文字列を10進数へ変換するには Access_Face 08/5/6(火) 21:41 お礼[未読]

2906 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078200
(SS)C-BOARD v3.8 is Free