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

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

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

Re[10]: 文字列変換


(過去ログ 60 を表示中)

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

■34743 / inTopicNo.1)  文字列変換
  
□投稿者/ z (1回)-(2009/04/08(Wed) 10:12:27)

分類:[VB6 以前] 

VB6で以下のコードを入力した際にエラーが出てきてしまいます。
解決方法を教えていただけたら幸いです。


Private Sub Command1_Click()
Dim a As Integer

If Text1.Text.nothing Then
MsgBox ("正しい数字を入力")
End If
  
 str(text1.text)


'Label1.Caption = a
End Sub
引用返信 編集キー/
■34744 / inTopicNo.2)  Re[1]: 文字列変換
□投稿者/ επιστημη (1869回)-(2009/04/08(Wed) 10:33:30)
επιστημη さんの Web サイト
> VB6で以下のコードを入力した際にエラーが出てきてしまいます。

"具合が悪い"の一言で薬をくれる医者はいません。いたらヤブ医者。

診断に必要な症状を説明してください。
どの行でエラー? どんなエラー?

引用返信 編集キー/
■34746 / inTopicNo.3)  Re[2]: 文字列変換
□投稿者/ z (2回)-(2009/04/08(Wed) 11:02:23)

すみません。


Private Sub Command1_Click()
Dim a As Integer

If Text1.Text = empty Then
MsgBox ("正しい数字を入力して下さい")
End If
  
 a = str(text1.text) ←ここの部分です。

'textboxに入力される値を、数字だけにしたいのです。
漢字やひらがなど入力された場合は、msgboxでエラーメッセージを返したいのですが上記のコードではうまくいきません。



'Label1.Caption = a
End Sub


引用返信 編集キー/
■34748 / inTopicNo.4)  Re[3]: 文字列変換
□投稿者/ επιστημη (1871回)-(2009/04/08(Wed) 11:12:41)
επιστημη さんの Web サイト
2009/04/08(Wed) 11:30:19 編集(投稿者)

> 'textboxに入力される値を、数字だけにしたいのです。
> 漢字やひらがなど入力された場合は、msgboxでエラーメッセージを
> 返したいのですが上記のコードではうまくいきません。

うまくいきませんもなにも...

「入力文字列中に漢字/ひらがななどが含まれているかを調べる部分」
がありません。うまくいかなくてアタリマエです。

...あれ? 質問では「エラーが出てきてしまいます」とありますが、
どこのなにがエラーなんですか? どんなエラーが出ますか?
そのエラーの発生はコンパイル時ですか? 実行時ですか?
診断と治療に必要な症状を正しく説明していますか?

あなたが真に知りたいことは
「入力文字列が 0〜9 のみで構成されているかを判断する方法」ですか?
「数値に変換可能な文字列かを判断する方法」ですか?
なんにせよ、そんなこと基スレには一言も触れられていませんが。

あなたが知りたいことは一体なんですか?
なぜエラーになるか、ですか?
エラーの回避法、ですか?
〜するにはどうすればいいか、ですか?

引用返信 編集キー/
■34749 / inTopicNo.5)  Re[4]: 文字列変換
□投稿者/ z (3回)-(2009/04/08(Wed) 11:41:53)
i = CInt(Text1.Text)の部分です。
エラーは”型が一致しません”と出てきてしまいます。

私が真に知りたいのは、TextBoxに数字以外の文字が入ってきたらエラーメッセージを返したいのです。
引用返信 編集キー/
■34750 / inTopicNo.6)  Re[4]: 文字列変換
□投稿者/ HiJun (124回)-(2009/04/08(Wed) 11:44:57)
1.TextBoxの値が数値変換できるかどうかは、IsNumericで判定して下さい。
2.TextBoxの入力を制限したいのであれば、TextBoxのKeyDownイベントなどで
入力されたキーがOKかどうかを判定して下さい。

という回答でいいですか?

引用返信 編集キー/
■34751 / inTopicNo.7)  Re[5]: 文字列変換
□投稿者/ επιστημη (1872回)-(2009/04/08(Wed) 11:54:31)
επιστημη さんの Web サイト
> 私が真に知りたいのは、TextBoxに数字以外の文字が入ってきたらエラーメッセージを返したいのです。

「文字列が数字のみで構成されているか」を判断したいのですか?
マイナスや小数点はどう扱いますか? "3.00"や"-1.25"はエラーですか?
とてつもなく大きな数"354465883245647712993844"はどうしますか?

それとも「文字列が数値に変換可能か」を判断したいのですか?
あるいは「文字列が整数値に変換可能か」ですか?
あるいは「文字列が正(0以上)の整数値に変換可能か」ですか?

引用返信 編集キー/
■34752 / inTopicNo.8)  Re[5]: 文字列変換
□投稿者/ biac (80回)-(2009/04/08(Wed) 11:54:50)
biac さんの Web サイト
> i = CInt(Text1.Text)の部分です。

いままでの書き込みのどこに "CInt(Text1.Text)" が出てきましたか?
書かれていないことに対する答を求められても、 答えられる人はそうめったにいないですよ? f(^^;
引用返信 編集キー/
■34756 / inTopicNo.9)  Re[5]: 文字列変換
□投稿者/ やじゅ (969回)-(2009/04/08(Wed) 12:23:36)
やじゅ さんの Web サイト
No34749 (z さん) に返信
> i = CInt(Text1.Text)の部分です。
> エラーは”型が一致しません”と出てきてしまいます。
>
> 私が真に知りたいのは、TextBoxに数字以外の文字が入ってきたらエラーメッセージを返したいのです。

VB6以前なら、Val関数を使えばいいかもね。

i = Val(Text1.Text)

引用返信 編集キー/
■34757 / inTopicNo.10)  Re[6]: 文字列変換
□投稿者/ επιστημη (1874回)-(2009/04/08(Wed) 12:35:02)
επιστημη さんの Web サイト
> VB6以前なら、Val関数を使えばいいかもね。
>
> i = Val(Text1.Text)

Val(" -10 24 これは要らん文字 512 ") が -1024512 を返してしまうんじゃないっけ。
不正な文字があるかの判断に使える?
-1024512を再度文字列に戻した"-1024512"と入力文字列が一致するか調べる? なんかダサくね?

引用返信 編集キー/
■34761 / inTopicNo.11)  Re[7]: 文字列変換
□投稿者/ HiJun (125回)-(2009/04/08(Wed) 13:56:47)
No34749 (z さん) に返信
> i = CInt(Text1.Text)の部分です。
> エラーは”型が一致しません”と出てきてしまいます。

変換できないから、そりゃ出ますわね。

If false = IsNumeric(TextBox.text) Then
MsgBox("だめー")
End If

じゃいけないの?
引用返信 編集キー/
■34766 / inTopicNo.12)  Re[8]: 文字列変換
□投稿者/ まさる (82回)-(2009/04/08(Wed) 14:48:23)
まさる さんの Web サイト
No34761 (HiJun さん) に返信
> If false = IsNumeric(TextBox.text) Then

VBのIsNumeric関数って、いわゆる全角文字の数字(例:123)もTrueになるので、
本当にそれでよいかはzさんが判断してくださいね。
引用返信 編集キー/
■34767 / inTopicNo.13)  Re[9]: 文字列変換
□投稿者/ HiJun (127回)-(2009/04/08(Wed) 15:18:46)
No34766 (まさる さん) に返信
> ■No34761 (HiJun さん) に返信
>>If false = IsNumeric(TextBox.text) Then
>
> VBのIsNumeric関数って、いわゆる全角文字の数字(例:123)もTrueになるので、
> 本当にそれでよいかはzさんが判断してくださいね。

確かに、
2.61876E+13 といった値もTrueになりますね。
ということは、επιστημηさんがダサくね?といったやり方で
FAなのか...


引用返信 編集キー/
■34768 / inTopicNo.14)  Re[10]: 文字列変換
□投稿者/ 774RR (340回)-(2009/04/08(Wed) 16:45:36)
再度戻して一致だと 012 が 12 になって不一致、受け付けない!ってなりそうな希ガス

って外野が勝手に盛り上がってるんだけど、
要するにスレ主さんのほうで「仕様」がまとまってないからこういう羽目に陥っているわけだ。
最初の発言で挙げられているのは「案件(要件)」であって仕様ではない。

・案件(お客様や上司の要望)=すぐプログラムにならないレベルの要求
この例では、「数値以外の入力があったら受け付けない」という日本語レベルの要求なされた。

・仕様=案件を元にどういう動きをすればいいかを決める
「数値」とは整数値のことか?浮動小数値のことか?
「いわゆる半角」のみ受け付けるのか?
「いわゆる全角」でも受け付けてよいのか?
負数は受け付けてよいのか?
これは我々外野が決める話ではなくて、お客様や上司と相談して決める話。

・実装=具体的にプログラムの形にする

案件のあと仕様分析なしにいきなり実装の話をしているからまとまるものもまとまらない。
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -