C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: 文字以外は


(過去ログ 12 を表示中)

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■3656 / inTopicNo.1)  文字以外は
  
□投稿者/ いか天 (1回)-(2007/05/18(Fri) 10:18:02)

分類:[VB.NET (Windows)] 

お世話になります。
最近から.netに関して勉強を始めたばかりの初心者です。

今TextBoxの中に数字を入れると、何文字目に入ってますというプログラミングを作っていまして、
求めていたサンプルを発見し、文字以外を入れると、、という風に修正したいのですが、どこを直せばいいのか
わかりません。


Dim s As String
For i As Integer = 0 To MyTextBox.TextLength - 1
s = MyTextBox.Text.Chars(i)
If s >= Chr(Keys.Space) And s < "-"c Or _
s > "9"c Or s = "/"c Then
Dim ret As DialogResult
ret = MessageBox.Show(i + 1 & "番目に数字以外が見つかりました、" & _
"修正しますか?", "", MessageBoxButtons.YesNo)


このサンプルを、数字以外ではなくて文字以外に変えたいのですがわかりません。。。
どなたかご教授ください。

引用返信 編集キー/
■3657 / inTopicNo.2)  Re[1]: 文字以外は
□投稿者/ Blue (307回)-(2007/05/18(Fri) 10:21:59)
2007/05/18(Fri) 10:23:18 編集(投稿者)

なにをもって文字以外とするのでしょうか?

アルファベットは文字?
記号は文字ではない?
ひらがなは、カタカナは、数字は、、
引用返信 編集キー/
■3658 / inTopicNo.3)  Re[2]: 文字以外は
□投稿者/ ぽぴ王子 (201回)-(2007/05/18(Fri) 10:35:16)
ぽぴ王子 さんの Web サイト
No3656 (いか天 さん) に返信

とりあえず、他人に説明するための努力が必要だと思います。

> 今TextBoxの中に数字を入れると、何文字目に入ってますというプログラミングを作っていまして、
> 求めていたサンプルを発見し、文字以外を入れると、、という風に修正したいのですが、どこを直せばいいのか
> わかりません。

サンプルはこれでしょうか。というかそのままのようですが。
http://hanatyan.sakura.ne.jp/dotnet/txtbox05.htm

[初めにお読み下さい]
http://hanatyan.sakura.ne.jp/hazimeni.htm
> 当ホームページに掲載のサンプル等の内容を無断で転載、掲載、配布する事は
> お断りします。上記に触れない範囲の個人でのご使用はご自由にどうぞ、但し、
> 私(VBレスキュー(花ちゃん))以外の投稿者の作品等は作者の指示によるものと
> します。又、事前に許可を得た場合は例外とします。この事は掲示板に投稿され
> たコードにも適用されます。

だそうですが、事前に許可を得られたのでしょうか。


> 文字以外を入れると、、という風に修正

文字以外を入れると…その続きがありませんが、文字以外を入れるとどういう風に
動作してほしいのですか。具体的に書かなければ伝わりません。

> このサンプルを、数字以外ではなくて文字以外に変えたいのですがわかりません。。。
> どなたかご教授ください。

これでもまだ説明不足ですね。
このサンプルは「数字以外の文字が入力されたらNG」というサンプルのようですが、
それを「文字以外の文字が入力されたらNG」という風に読み替えると…文字以外の
文字ってなんやねん!!と発狂してしまいそうです。
「アルファベット(大文字/小文字)以外」とか「アスキー文字(数字&英字&一部記
号)以外」など、具体的に書いていただかないとやはり伝わりません。
…というか、いか天さんご自身でやりたいことを把握されていますでしょうか。
それが曖昧なままだと質問内容も曖昧になってしまうので、答える側も何を答えて
良いかわからないです。
# と書いていたら Blue さんがツッコミ入れてた…

> プログラミングを作っていまして

「プログラミング=プログラム作成」の意味ですから
「プログラミングを作っていまして」だと「プログラム作成を作成していまして」になって
しまい、意味が正確に伝わりません。
掲示板は文字と言葉だけのコミュニケーションなので、上にも書きましたが相手に正
確に自分の持っているイメージが伝わらなければ意味がありません。
なので、なるべく正確に、正しくイメージが伝達できるように丁寧に書くことが大事で
す。

以上の点を踏まえて「どうしたいのか」をまとめてみてください。
その上でわからない部分があれば皆で答えてあげられると思います。

あ、あとまだであれば花ちゃんさんにサンプル転載の許可をもらってくださいね。
引用返信 編集キー/
■3659 / inTopicNo.4)  Re[2]: 文字以外は
□投稿者/ いか天 (2回)-(2007/05/18(Fri) 10:38:07)
No3657 (Blue さん) に返信
> 2007/05/18(Fri) 10:23:18 編集(投稿者)
>
> なにをもって文字以外とするのでしょうか?
>
> アルファベットは文字?
> 記号は文字ではない?
> ひらがなは、カタカナは、数字は、、

申し訳ございません。。
文字足らずでした。。。。。
全角のひらがな、アルファベット、数字、記号をいれたいです。
逆に半角とカタカナは入れたくないようにしたいのですが。。
引用返信 編集キー/
■3661 / inTopicNo.5)  Re[3]: 文字以外は
□投稿者/ 片桐 (6回)-(2007/05/18(Fri) 11:16:34)
参考記事……というか、よく似た質問はこちらなんじゃないかと

つ http://bbs.wankuma.com/index.cgi?mode=al2&namber=3447


引用返信 編集キー/
■3665 / inTopicNo.6)  Re[3]: 文字以外は
□投稿者/ Mr.T (48回)-(2007/05/18(Fri) 11:51:16)
Mr.Tです、こんにちは。

#細かいですが、気になったので。
> 文字足らずでした。。。。。

それは「言葉足らず」でしょう。「文字足らず」というのは、
「みなさん、こんにち!」
で、「は」が抜けているようなことが文字足らず、でしょう。



引用返信 編集キー/
■3666 / inTopicNo.7)  Re[4]: 文字以外は
□投稿者/ Blue (308回)-(2007/05/18(Fri) 11:56:32)
2007/05/18(Fri) 11:56:48 編集(投稿者)
正規表現で
・半角→ASCII文字
・全角カタカナ
・半角カタカナ
を含むものは NG というようにするのがいいかなぁ。

If System.Text.RegularExpressions.Regex.IsMatch(s, "[\u0000-\u007f|ァ-ヶ|ヲ-゚]") Then
    ' NG
Else
    ' OK
End If

ASCIIコードは \p{IsBasicLatin}が
全角カタカナは \p{IsKatakana} が使えるのわかったのですが、
半角カタカナ(\uff66-\uff9f)はどう書くのかわからなかった。

参考
http://www.f3.dion.ne.jp/~element/msaccess/AcResTipsWarehouse4.html
の
正規表現でよく使うパターン

http://www.atmarkit.co.jp/fdotnet/dotnettips/054iskana/iskana.html

引用返信 編集キー/
■3668 / inTopicNo.8)  Re[5]: 文字以外は
□投稿者/ Blue (309回)-(2007/05/18(Fri) 13:20:33)
2007/05/18(Fri) 13:21:28 編集(投稿者)
正規表現を使わないで一文字ずつチェックする方法にしてみた。
文字コードを直に書いてあるのであまり好ましくなさそう。
(Char.IsXXXXってのに最適なものがないようだったし)


Private Shared Function IsXXXXString(ByVal s As String) As Boolean
    For Each c As Char In s.ToCharArray
        Select Case System.Convert.ToUInt16(c)
        ' U+0000〜U+007F Basic Latin
        ' U+30A0〜U+30FF Katakana
        ' U+FF66〜U+FF9F Halfwidth Katakana
        Case &H0000 To &H007F, _ 
             &H30A0 To &H30FF, _
             &HFF66 To &HFF9F
            Return False    
        End Select
    Next
    Return True
End Function


' 使用時

If IsXXXXString(Me.TextBox1.Text) Then
    MessageBox.Show("○")
Else
    MessageBox.Show("×")
End If

※適当な名前をつけるの面倒だったのでIsXXXXStringになっています。


引用返信 編集キー/
■3673 / inTopicNo.9)  Re[6]: 文字以外は
□投稿者/ いか天 (3回)-(2007/05/18(Fri) 17:57:22)
Blue さんへ
どうもご親切にありがとうございました。
何とか解決しそうです。
今後ともなにかありましたら是非またお願いします。


他の方もどうも
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -