トップページ⇒tech
1001コメント361KB

VB.NET質問スレ (Part24)

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2007/12/13(木) 10:03:48
前スレ

VB.NET質問スレ
http://pc11.2ch.net/test/read.cgi/tech/1189038267/
(Partがありませんが、23です。)
テンプレは2〜5くらいまでの間にある予定
0075デフォルトの名無しさん2007/12/20(木) 09:28:41
>>66
VB6あがりなのはソースの書き方から解かる。
がんばって7以降のVBにも慣れてね!
そして教える側としてこの板に帰ってくるのだ。
0076デフォルトの名無しさん2007/12/20(木) 09:30:51
>>72
DataGridView1.DataSource = DataGridView2.DataSource
ただこれだと片方の内容変えたら、もう片方も変わっちゃうかな?
それが望むカタチではない場合は、適当にCloneでも作ればok
0077552007/12/20(木) 10:05:20
>>75
ありがとうございます!!

このスレで他の方にレス付けれるよう勉強してきます!
0078デフォルトの名無しさん2007/12/20(木) 11:54:10
>>74
世間一般にはVB=ウィルスバスターなのかね。
たまに検索しててVB2007とか出てきてビックリすることがあるw
そんなのいつ出てたの!?みたいなw
0079デフォルトの名無しさん2007/12/20(木) 14:48:33
SDカード固有の識別番号ってどうやったら取得できますか?
ググったんだけど見つからなかったんで・・・

固定ディスクやCD−ROM、USBメモリは
Scripting.FileSystemObjectを使って取得できたんだけど
SDカードは取得できなかったので
0080デフォルトの名無しさん2007/12/20(木) 17:16:24
>>78
あああ
今の今までマジでVisualBasic2008が出てたのかふーんと思ってたよ・・・orz
なんでmixiにそんなニュースが載ってるのかちょっと違和感があったが・・・
0081デフォルトの名無しさん2007/12/20(木) 18:08:00
質問です。

If sender.Equals(Me.textbox1) Then
  Call MessageBox.Show("textbox1")
ElseIf sender.Equals(Me.textbox2) Then
  Call MessageBox.Show("textbox2")
Else
  Call MessageBox.Show("textbox3")
End If

このコードを

Select Case sender

End Select

の表現で書きたいときはどう書けば良いですか?
よろしくおねがいします。
0082デフォルトの名無しさん2007/12/20(木) 18:32:24
>>81
ベタには出来ないし、そんなくだらないことに下手な工夫を凝らして
Select...Caseつかって分岐しても読みにくい糞コードになるだけ。
素直にIf....ElseIf使うべし。

というか、参照型の変数が参照しているものが同一かどうかを検査するのは
Is演算子を使うんだよ。つまり、

If sender Is Textbox1 Then....のように書く。
0083デフォルトの名無しさん2007/12/20(木) 20:04:43
みんなもう2008に切り替えたんですか?
0084デフォルトの名無しさん2007/12/20(木) 20:05:26
VB2008はアップデート中に不具合が出るそうだしなぁ
0085デフォルトの名無しさん2007/12/20(木) 20:53:38
VBのラムダ式はAction型が使えないの?
Dim Lambda As Action(Of Integer) = Function(i) Console.WriteLine(i)
0086デフォルトの名無しさん2007/12/21(金) 01:04:46
>>80
釣りか?
VB2008ならもう出てるぞ。

ttp://www.microsoft.com/japan/msdn/vstudio/express/
0087デフォルトの名無しさん2007/12/21(金) 01:21:49
>>86
thx
知らなかった
0088デフォルトの名無しさん2007/12/21(金) 01:25:28
オフラインインスコイメージをDVDに焼いてインスコすると
MSDNのインスコ中に10分ぐらい引っかかった
放置して様子見てたらまた動き出したけどなんだったんだ?
アレが不具合か?
0089デフォルトの名無しさん2007/12/21(金) 01:56:28
改訂版 プロフェッショナルVB.NETプログラミング
http://www.atmarkit.co.jp/fdotnet/vb6tonet2/index/index.html

これって.net 1.1ですか?
VB2005の文法を勉強したいんですけど。
0090デフォルトの名無しさん2007/12/21(金) 01:59:19
.NETのバージョンもIDEのバージョンも言語とは直接関係ないな

VB7/8はそんなに変わらんから気にしないでいいよ
もう9が来てるんだし
0091デフォルトの名無しさん2007/12/21(金) 02:02:48
>>90
どうもです。
0092602007/12/21(金) 05:01:05
>>61
Public Sub hoge()
Dim regex as New Regex(〜省略〜)
Do Until reader.EndOfStream
〜省略〜
field = regex.Replace(reader.ReadLine, New MatchEvaluator(AddressOf RegexMatchEvaluator)).Split(",")
〜かなり省略〜
Loop
End Sub

Private Function RegexMatchEvaluator(ByVal m As Match)
Return StrConv(m.Value, VbStrConv.Narrow)
End Function

一応やりたい処理はできたんですが、こんなコードで良いんですかね?
なにしろ門外漢なもんで・・・
それにしても2008ってデバッグがやたら重くないですか?
0093デフォルトの名無しさん2007/12/21(金) 09:59:56
>>84>>88
釣りだと思うが、不具合がでるっていうソースはどこだ?
本当にでるなら、検討せねばならん
0094デフォルトの名無しさん2007/12/21(金) 11:04:01
釣りだと思ってる人に教える気にはなれん。
調べろ。
0095デフォルトの名無しさん2007/12/21(金) 11:18:51
調べてソースがないから釣りなのか?って聞いてるんだろ。
まさかソースは>>74だとかいわないよな
0096デフォルトの名無しさん2007/12/21(金) 11:24:03
>>95
ソースはこの辺だよ〜
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=2574512&SiteID=7

>>94
ココロ狭いな
0097デフォルトの名無しさん2007/12/21(金) 11:25:51
>>93>>95
朝っぱらから釣りだよね?
0098デフォルトの名無しさん2007/12/21(金) 11:27:44
>>93-97
自演に見えてわろた
0099デフォルトの名無しさん2007/12/21(金) 11:38:00
>>1-98
全部自演
0100デフォルトの名無しさん2007/12/21(金) 13:31:48
じゃあ、俺が100ゲット
0101デフォルトの名無しさん2007/12/21(金) 14:55:19
別のウィンドウを開いていてもキーダウンのイベントを拾えるようにしたいんですが
どうしたらよいですか?
0102デフォルトの名無しさん2007/12/21(金) 15:14:03
↑訂正

別のウィンドウにフォーカスしていても
0103デフォルトの名無しさん2007/12/21(金) 15:45:05
どのウィンドウにもキーダウンのイベントハンドラを書く。


そうじゃないよね、聞きたいことは。
GetKeyStateを監視する、とか。
0104702007/12/21(金) 17:22:12
>>71さん
ありがとうございました
こんな便利な物があったなんて…
勉強します
0105デフォルトの名無しさん2007/12/22(土) 23:40:03
age?
0106デフォルトの名無しさん2007/12/23(日) 21:41:05
すげぇ・・・こっちはまともに攻めてくんか
0107デフォルトの名無しさん2007/12/23(日) 21:42:26
誤爆失礼orz
0108デフォルトの名無しさん2007/12/23(日) 22:35:03
VBの人に質問です。
VBやってみて、C++/C#とどちらがいいですか?
VBでdirectXなどを使えますか?
0109デフォルトの名無しさん2007/12/23(日) 22:59:25
VBの人ですがC#のがすきです
0110デフォルトの名無しさん2007/12/23(日) 23:33:44
質問を。

MSNメッセンジャーをアクティブ状態にしておき、メッセージを受信した際それを読み込み、
メッセージ内にある特定のコマンドを別のアプリケーションへ送るというものを作ろうとしています。

この場合、どのように作ればいいか、どなたかサンプルコードもしくは作り方等、教えていただけませんか?

どなたかよろしくお願いいたします。



自分で作ってみているのですが、そのアプリケーションを起動した後、
メッセンジャーをアクティブにしてメッセージを受け取った時に受信したメッセージを取り込む・・・のあたりがうまくいきません。

クリップボードを利用してみようかと思ってるんですが・・・。
0111デフォルトの名無しさん2007/12/24(月) 00:49:31
初心者ですが質問です

Dim btn As button = sender

というコードを書いたのですが、
senderはオブジェクト型で、渡すには良くない型だとうかがいました。
senderを他の型にして受け渡す方法はあるのでしょうか?

教えてくださると幸いです。
0112デフォルトの名無しさん2007/12/24(月) 01:34:54
>>111
directcast
0113デフォルトの名無しさん2007/12/24(月) 08:40:40
.NETなんてモジュール単位で言語変えられるんじゃないの?
0114デフォルトの名無しさん2007/12/24(月) 09:03:23
それが何か?
0115デフォルトの名無しさん2007/12/24(月) 11:00:34
超初心者ですが質問します。(使用してるのはVB2005)
1メモ帳をForm起動時に読み込む
2ボタンを押すとtextbox&redioboxの内容をメモ帳に保存する

この二つをできるようにしたいのですがわかりません
ネットで探しても、近いものがなかったので教えてもらえないでしょうか?
0116デフォルトの名無しさん2007/12/24(月) 11:18:05
>>115
>1メモ帳をForm起動時に読み込む
どゆ意味?
メモ帳起動させるの?それとも、保存してあるテキストファイルを読み込むの?
0117デフォルトの名無しさん2007/12/24(月) 12:11:29
>>115

ひとまずはスニペットをお勧めする
ファイルストリームとか使うのはその後だ
てっとり早く読みこみたいんだろ?
0118デフォルトの名無しさん2007/12/24(月) 13:56:50
>>108
directXつかうならC++のがいいかもな。
0119デフォルトの名無しさん2007/12/24(月) 14:19:21
>>115
何を焦ってるのか知らんがマルチは良くないぜ

http://pc11.2ch.net/test/read.cgi/tech/1099112351/
の707
0120デフォルトの名無しさん2007/12/24(月) 14:26:56
>>119
何を焦ってるのか知らんがマルチは良くないぜ

http://pc11.2ch.net/test/read.cgi/tech/1099112351/
の709
0121デフォルトの名無しさん2007/12/24(月) 17:07:37
当たり前だが、VB.net2003ってデュアルコアに対応してるよな。
0122デフォルトの名無しさん2007/12/24(月) 17:14:21
>>121
OSが対応してるからその上の層はほぼ無関係
0123デフォルトの名無しさん2007/12/24(月) 17:15:06
>>121
どういう意味だよそれ。
意味がわからん。

VB2003って何のこと?
開発ツールのこと言ってるの?それともそれを使って作られたアプリのこと?
デュアルコアに対応したアプリなんて存在するの?w
0124デフォルトの名無しさん2007/12/24(月) 17:21:47
わざとアホっぽいキャラ演じてるの?
0125デフォルトの名無しさん2007/12/24(月) 17:30:50
>>123
>デュアルコアに対応したアプリなんて存在するの?w
まあ、シングルスレッドのプログラムもデュアルコアCPUでは当然動くけど…、
デュアルコアの性能を引き出すって意味で言えばマルチスレッドのプログラムってことになるのかな…。
0126デフォルトの名無しさん2007/12/24(月) 17:40:59
よくその手の話を聞くけど、マルチスレッドとマルチコアってあまり(いや本当は全然)関係がないと思うよ。
0127デフォルトの名無しさん2007/12/24(月) 17:45:27
>>126
具体的にkwsk
0128デフォルトの名無しさん2007/12/24(月) 18:00:34
負荷をかけても1コアしか使わないってことは無いよね。
0129デフォルトの名無しさん2007/12/24(月) 18:00:43
詳しくって言われてもOSの構造とか俺も素人だしw
でも普通に考えれば、コアが2つや4つになったところで
コンテクストの切り替え無しにスレッドやプロセスが動くわけじゃないんだから。

CPUのMIPS以上の性能向上が期待できるとしたら、コンテクストの切り替えによる
ロスが減った場合だけじゃないの?
0130デフォルトの名無しさん2007/12/24(月) 18:09:03
お前は何を言ってる?
何のためのマルチコアだよw
0131デフォルトの名無しさん2007/12/24(月) 18:10:12
マルチ演算ユニットみたいなのと勘違いしてるんか?
0132デフォルトの名無しさん2007/12/24(月) 18:13:37
>>130
なんか複数のコアで同時にコード(スレッド?)が実行されるから早くなるんだ、
みたいな素朴な考えで物を言ってないか?

当たり前だがWindowsのようなマルチタスクOSはそんな素朴な構造になってないよ。
0133デフォルトの名無しさん2007/12/24(月) 18:17:14
何が言いたいかというと、フリースレッド使ってるからって
同じMIPSならシングルコアでもマルチコアでもパフォーマンスは大差ないはずでしょってこと。
0134デフォルトの名無しさん2007/12/24(月) 18:19:27
全体でみて大枠でそうだからパフォーマンスが向上するといって
それほど差し支えがあるとは思わんがな。

少なくともマルチコアの性能発揮とスレッドは関係ない
よりは正しいと思うが。
0135デフォルトの名無しさん2007/12/24(月) 18:21:13
>>133悪いが具体的に何が言いたいのか分からない。
MIPS値って具体的にどういう意味で言ってる?
0136デフォルトの名無しさん2007/12/24(月) 18:21:15
俺個人がやったことじゃないんだけど、
素数を求めるプログラムをマルチスレッドで書いて、
それをシングルコアのPCとデュアルコアのPCで走らせてかかった時間を比べたら
デュアルコアのPCの方はシングルコアのPCでの結果に比べてかかった時間が1/2になったそうな。

ソースは理系のためのVisual Basic2005実践入門

デュアルコア積んだPC持ってねえし、自分で確かめてないからなんともいえないけど。
0137デフォルトの名無しさん2007/12/24(月) 18:23:44
OSのスケジューラがどの程度賢いのか知らんが、
そりゃそれなりにそういう結果になるだろ。
ってかなるようにコーディングする。
0138デフォルトの名無しさん2007/12/24(月) 18:25:15
>>136
それはさあ、まず同じ処理をフリースレッドを使うコードと使わないコードで書いて、
その二つの処理時間の比がシングルコアの環境とマルチコアの環境で変わるかを
見ないと意味ないんじゃねえの?
0139デフォルトの名無しさん2007/12/24(月) 18:26:53
>>138
そうですね…。
今度暇な時に個人的に比べてみようと思います。
0140デフォルトの名無しさん2007/12/24(月) 18:27:30
>>132何が言いたいのか分からんな。
そんな単純な構造じゃないのは分かるが
だからマルチコアだからってパフォーマンスは向上しない
とでも言ってるの?
一切向上しないならOSのスケジューラが馬鹿すぎるとしか言いようがないが。
0141デフォルトの名無しさん2007/12/24(月) 18:30:38
>>138マルチスレッド活用できるコードになってなかったら
シングルコアの性能しか出ないに決まっとろうが。
少なくとも現状のOSの実行方式じゃ。
0142デフォルトの名無しさん2007/12/24(月) 18:32:34
そこを自動化出来るようになるのはいつだろうな。
少なくとも現状のPCレベルじゃコード側の助けが必須だな。
0143デフォルトの名無しさん2007/12/24(月) 18:35:46
>>141
何を突っかかってるのか意味がわかりませんが。。
人の言ってることと理解してレスしてる?
0144デフォルトの名無しさん2007/12/24(月) 18:38:54
>>138フリースレッドのコード書いたら
シングルコアでもマルチコアレベルで性能向上するって
あり得ると思うのか?
もちろんここではCPU負荷メインの処理って前提だが。

ああひょっとしてそういう事を言おうとしてたのか?
そうは読みとれなかったが…
0145デフォルトの名無しさん2007/12/24(月) 18:41:23
だれも教えてくれないのでもう一度質問します。
VB2005以上ででdirectXでゲームは作れるのでしょうか?
遅いとか早いとかは抜きで。
0146デフォルトの名無しさん2007/12/24(月) 18:42:27
最近ようやくVB6からVB.NETに移ってきたけどこりゃ便利だね。
コードからメニューを自由にデザインできる様になってるのが特に良い!!
0147デフォルトの名無しさん2007/12/24(月) 18:42:45
性能評価では正しく比較する必要があるが、
>>138はそれ以前にマルチコアでのパフォーマンス向上を
はなから否定してるように見えるからな。
0148デフォルトの名無しさん2007/12/24(月) 18:43:05
>>145
作れる。DirectXのSDKインスコしないと無理なのはもちろんだけど。
(他言語の場合でも必要)
0149デフォルトの名無しさん2007/12/24(月) 18:43:19
検索すらもできない人間には無理
http://www.google.com/search?num=100&hl=ja&as_qdr=all&q=vb2005+directx+game&lr=
0150デフォルトの名無しさん2007/12/24(月) 18:44:42
だれか>>133がどういう意味か説明してたもれ
0151デフォルトの名無しさん2007/12/24(月) 18:47:25
勝手に全コア合計の処理能力が同じ場合という
あり得ない前提を持ち出してるように見える。
それ以外じゃ意味分からんから。
0152デフォルトの名無しさん2007/12/24(月) 18:47:28
>>144も>>147もすぐに話の文脈を忘れる鶏頭だろ
>>121あたりから順を追って読み返してみろよ。
まあ鶏頭クンは読んでるはなから忘れるかもしれんがw

あのねえ、マルチコア環境はシングルコア環境比でマルチスレッドのコードの
実行効率が向上するのかを問題にしてるんだよ。
だからそれを確かめるには>>138のような実証実験をする必要があるだろうよ。
0153デフォルトの名無しさん2007/12/24(月) 18:52:22
確認するには必要だがな。
しかし、素数計算なんて明らかにCPUオンリーとしか思えない処理では
そんなことを持ち出すまでもなく
シングルコアのマルチスレッドで性能が向上する訳がない。
少なくともマルチコアと比較になるレベルではあり得ない。
そんなの書くまでもなく明らかだと思うが。
0154デフォルトの名無しさん2007/12/24(月) 18:54:23
鶏頭とかどうでもいいが、なんでそんなにマルチコアでの性能向上を否定してるの?
ああ、否定してたやつと別人ならすまんな。
0155デフォルトの名無しさん2007/12/24(月) 18:56:39
>>153
なんかもう病的に馬鹿だなw
だれもそんなこと言ってないってw
0156デフォルトの名無しさん2007/12/24(月) 19:00:39
>>154
あんたはあんたで馬鹿だなw
決して難しくない日本語で簡潔に書いてるんだからちゃんと理解しろよ。
今問題にしてるのは、

・マルチコア環境においては、
・シングルコア環境比で、
・マルチスレッドのコードの実行効率が高いのか

だよ。
そりゃ一般的には最新のマルチコアのCPUは旧世代のCPUより処理能力が高いに決まってるジャンw
誰もそんな話はしてないんだよ。
0157デフォルトの名無しさん2007/12/24(月) 19:04:35
で、それが高くならないと主張してるのか?
0158デフォルトの名無しさん2007/12/24(月) 19:05:52
>>148
ありがとう、これでおいらもVBユーザーに仲間入りする気になったよ。
0159デフォルトの名無しさん2007/12/24(月) 19:07:12
そう、そういうこと。
きっちり実証したわけじゃないけど、高くなるとしたらそのメカニズムがよくわからないよ。
0160デフォルトの名無しさん2007/12/24(月) 19:10:04
>>156
後ろの文が意味分からん。
マルチコアでマルチスレッドでの処理能力が向上するのは
なんていうか、当たり前すぎるっていうか、最初からそれも目的にした技術なんだから。
改めて実験するまでもなく、実証例はいくらでもあるだろ?
0161デフォルトの名無しさん2007/12/24(月) 19:10:50
>>159本気?
0162デフォルトの名無しさん2007/12/24(月) 19:11:51
ひょっとしてほんとに>>151で考えてるの?
0163デフォルトの名無しさん2007/12/24(月) 19:15:24
よく分からんな、マルチスレッドの処理なら
マルチコア上では複数スレッドが本当に同時に処理できるんだから
トータルの処理能力が向上するのは当たり前としか。

どこに疑問を感じてるんだ??
0164デフォルトの名無しさん2007/12/24(月) 19:17:13
>>160
解説記事はたことあるけど実証例は見たことないな。
その解説とやらも、>>132式の、書いてる奴がマルチタスクのしくみを
根本的にわかってないとしか思えないようなのばっかり
0165デフォルトの名無しさん2007/12/24(月) 19:18:53
>>163
だからそれが素朴すぎるって言うんだよw
コアがスレッドに専属するようなモデルを無意識で想定してるんだろうけど
そんなモデルは全然間違ってるよ。
0166デフォルトの名無しさん2007/12/24(月) 19:27:58
だからさ、コアがスレッドに直結してないにしても、
ある瞬間ではおおよそそうなってるだろうがよ。
だから大枠ではそうなってるってわざわざ書いたのに。

お前はスレッドとコアが直結してないからって、
いきなりマルチコアでも性能は向上しないって結論付けてるのか?

直結してないからって複数スレッドが同時に実行されないってことにはならんだろ?
0167デフォルトの名無しさん2007/12/24(月) 19:32:38
>>166
物事をゼロから考える訓練が出来てない人なのかなあ。。
なにか「同時」ということに意味があるように思ってるようだが、
物理的に同時だったら効率が上がるの?何故?

結論から言えばそんなことはないんだよ。
最初から言ってるように、コンテクストの切り替えによるロスを減らせるかどうか、
それだけが問題なの。

そんなの大して(もちろんゼロではない)減るわけないじゃん。
コアが二倍や四倍になった程度で。
0168デフォルトの名無しさん2007/12/24(月) 19:33:54
HyperThreadingと混同しているように見える
0169デフォルトの名無しさん2007/12/24(月) 19:35:34
OS上でCPUを必要としてるスレッドがあれば、
OSは優先度に従ってスレッドにCPUを割り当てる。
複数スレッドがあれば基本的にはそれぞれに空いてるCPUを割り当てる。
マルチコアでは割り当てられるプロセッサが複数あるから
複数スレッドがあれば基本的には複数スレッドがそれぞれのコアで
同時に実行される。
スレッドへのCPUの割り当ては短時間で何度も切り替えられるが、
全体の時間で見たら、ほぼコア数のスレッドが同時処理される。
そういうコードになってたら、だが。

これ以上何が気に入らん?
0170デフォルトの名無しさん2007/12/24(月) 19:43:19
なんかひとつのスレッドの処理速度が上がるわけないって意味で書いてるみたいだな。
んなのは当たり前だが、マルチコアとマルチスレッドの話で
そんな話をしだすとは予想外すぎて分からんよ。
っていうか、そんなことは分かってる前提で、全体の処理能力を向上させりために
マルチスレッドを使うって話なのは、もう最初から大前提だろ。

まあそういう話だと受け取っても、マルチスレッド化で処理時間が半分ってのが
納得いかないってはっきり言ってるから、そもそもなにも分かってない気がするが。
0171デフォルトの名無しさん2007/12/24(月) 19:54:42
8コアぐらいあれば、ThreadAffinityを設定すれば専属コアにならね?w
0172デフォルトの名無しさん2007/12/24(月) 19:55:26
>>167は何が言いたいのかな…
なんでコンテキスト切り替えだけが問題って話になってんだ?
コンテキスト切り替えの効率が重要なのは分かるが、
複数スレッドが同時に処理できるってことが最重要じゃないのどう考えても。

シングルコアじゃひとつのスレッドしか物理的に同時実行できない。
マルチコアならコア数分同時実行できる。
複数スレッドのコードならコア数分のスレッドはコンテキスト切り替えなしで実行出来るし
同時実行してるんだからこなしてる処理量もコア数倍になってる。
まあこれは理想的な場合だが、大枠ではこうだ。
一体これ以上何が疑問なんだ。
0173デフォルトの名無しさん2007/12/24(月) 19:57:03
専属コアじゃなくて、コア専属かなあどっちかっていうとw
0174デフォルトの名無しさん2007/12/24(月) 20:02:19
どなたか>>110の質問、よろしくお願いいたします。

ちょっと上のでは曖昧すぎるかもしれませんので細かく言うと、
VB上でWindowsのショートカットコマンド、CTRL+AやCTRL+Cを使うにはどうすればいいのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています