半角英数判別するには?

解決


初心者  2005-06-03 14:53:38  No: 122215  IP: [192.*.*.*]

VBSのほうでも質問よいのでしょうか?
教えてもらえないでしょうか
小文字半角英数と大文字半角英数と半角数字の判別をするのを作っているのですが
Select Case Mid(val,1,1)
  Case "a" To "z"
    kazu="半角英小文字"
  Case "A" To "Z"
    kazu="半角英大文字"
  Case "0" To "9"
    kazu="半角数字"
  Case Else
    kazu="それ以外"
End Select

大体こんな感じにしたいのですがToのせいなのかエラーが出ます
これってA,B,C,D,E・・・という風に並べるしかないんでしょうか?
だれかお願いいたします

編集 削除
ぶぶ  2005-06-03 15:33:52  No: 122216  IP: [192.*.*.*]

初心者さんのコードを貼り付けて実行してみましたが、ちゃんと出ましたよ。
ちょっと変えたのは、mid(val,1,1)のvalの定義と、valに内容を設定する
行を追加したのとkazu変数の定義くらいです。

ちなみにちょっと気になったのが、エラーはどんなエラーがでるんですか?

to で 並べずにいけますよ(^-^)

編集 削除
初心者  2005-06-03 15:45:25  No: 122217  IP: [192.*.*.*]

エラー タイプ
Microsoft VBScript コンパイル エラー (0x800A0408)
文字が正しくありません。
/Scripts/a.asp, line 6
  Case "a" To "z"

というエラーです
いまだにこっちは出てます。
何が悪いんだろう・・・
TOが使えないのかと思ったりもしたんですけど違うみたいですし

編集 削除
初心者  2005-06-03 16:00:05  No: 122218  IP: [192.*.*.*]

すいません、エラー間違えてます

エラー タイプ
Microsoft VBScript コンパイル エラー (0x800A0400)
ステートメントがありません。
/Scripts/a.asp, line 13, column 9
Case "a" To "z"
--------^


こちらでした

ちなみに、全文短縮して見たらこんな感じ
<html>
<%
Dim vol
vol="a"
Dim kazu

Select Case Mid(vol,1,1)
 Case "a" To "z"
  kazu="半角英小文字"
 Case Else
  kazu="それ以外"
End Select

Response.Write kazu

%>
</html>

なんかきっとお馬鹿なことをしてるよう泣きがするんですが
わからない・・・

編集 削除
ぶぶ  2005-06-03 16:13:11  No: 122219  IP: [192.*.*.*]

ごめんなさい。
VBS をVBAと見間違えて試していました。
ちょっと見直します。

編集 削除
初心者  2005-06-03 17:03:28  No: 122220  IP: [192.*.*.*]

もし、TOがつかえないのだとしたら
それにかわるものってあるんでしょうか?

編集 削除
通ってみた  2005-06-03 17:21:09  No: 122221  IP: [192.*.*.*]

惜しいですね。Mid(val,1,1)をAsc(Mid(val,1,1))にしてみましょう。

編集 削除
初心者  2005-06-03 17:33:59  No: 122222  IP: [192.*.*.*]

ASC・・・文字コードですか?
その場合はどうすればいいのだろう・・・??
単純にAsc(Mid(val,1,1))にすればいいというわけじゃないですよね?
エラーでますし。
詳しく教えてください

編集 削除
通ってみた  2005-06-03 18:03:18  No: 122223  IP: [192.*.*.*]

AscってVBSにないの?(汗)


ていうか、よく考えたら変数に「val」はいただけないですなぁ
よく考えなくても気付くべきだったが

編集 削除
通ってみた  2005-06-03 18:05:43  No: 122224  IP: [192.*.*.*]

Asc命令部分がエラー出ずに通ったならば、
Case部分を変えるべし

  Case "a" To "z"
    kazu="半角英小文字"
  Case "A" To "Z"
    kazu="半角英大文字"
  Case "0" To "9"
    kazu="半角数字"
  Case Else
    kazu="それ以外"

としている文字のところを

  Case Asc("a") To Asc("z")

などとしてみましょう
できたらいいのだが

編集 削除
魔界の仮面弁士  2005-06-03 18:08:52  No: 122225  IP: [192.*.*.*]

> ていうか、よく考えたら変数に「val」はいただけないですなぁ
まぁ、VBScriptに Val関数はありませんけどね。


で。VBS の Case では、To や Is が使えませんので、
  AscCode = Asc(…)
  If AscCode <= ○ And AscCode >= △ Then
          :
  ElseIf AscCode <= □ And AscCode >= ▽ Then
          :
  End If
のように処理してみるとか。
もしくは、RegExpオブジェクトを利用するという手もありますね。

編集 削除
初心者  2005-06-06 09:57:36  No: 122226  IP: [192.*.*.*]

いろいろありがとうございます
>通ってみたさん
ASCはありますが、文字コードなるものをどうやって扱えばいいのかわかってなかったです。
(プログラムというもの自体一週間前に始めたばかりの初心者ですので)
valは使わないほうがいいのですね。次からは使わないようにします

>魔界の仮面弁士さん
TOはやはり使えないのですね。どおりで・・・
(ISってなんだろ・・・?)
魔界の仮面弁士さんのやり方の意味がわかりましたので、
以下のように作り直しました。
(RegExpは調べるとIEのみのようなのでパスしました)

漢字と記号以外はこれで大丈夫なのかなと思ってます
抜けてるようなとこがあれば教えていただけると幸いです

AscCode = Asc("○")
If AscCode >= Asc("a") And AscCode <= Asc("z") Then
  rc="半角小文字英数"
ElseIf AscCode >= Asc("A") And AscCode <= Asc("Z") Then
  rc="半角大文字英数"
ElseIf AscCode >= Asc("0") And AscCode <= Asc("9") Then
  rc="半角数字"
ElseIf AscCode >= Asc("ぁ") And AscCode <= Asc("ん") Then
  rc="全角ひらがな"
ElseIf AscCode >= Asc("ァ") And AscCode <= Asc("ヶ") Then
  rc="全角カタカナ"
ElseIf AscCode >= Asc("A") And AscCode <= Asc("Z") Then
  rc="全角大文字英数"
ElseIf AscCode >= Asc("a") And AscCode <= Asc("z") Then
  rc="全角小文字英数"
Else
  rc=rc"漢字か、記号のなにか"
End If

編集 削除
初心者  2005-06-06 11:44:34  No: 122227  IP: [192.*.*.*]

問題はなさそうなので解決にチェックします
皆様いろいろありがとうございました

編集 削除