トップページ⇒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くらいまでの間にある予定
0175デフォルトの名無しさん2007/12/24(月) 20:06:53
>>174
sendkeys使えばいいじゃん。
それで満足できないならWin32APIで。
0176デフォルトの名無しさん2007/12/24(月) 20:10:55
なんか最近他人をさんざん馬鹿扱いしてだんだん馬鹿としか書かなくなって
そのまま消えてしまう奴をよく見るようになった気がする…
0177デフォルトの名無しさん2007/12/24(月) 20:16:01
>>175
それでいけるんですか・・・キー単体しか認識しないものだと思ってましたorz
0178デフォルトの名無しさん2007/12/24(月) 20:34:59
結局何だったんですか?
0179デフォルトの名無しさん2007/12/24(月) 20:47:17
クリスマスだというのにお前らはこんなスレに齧りついて、と言う涙なしでは語れない話
0180デフォルトの名無しさん2007/12/24(月) 21:51:21
このあと秋葉原から生中継
0181デフォルトの名無しさん2007/12/24(月) 23:44:37
>>149
そのトップに出てくる本、糞だったなぁ。
2002のコードを2005にアップグレードしただけだったし。
0182デフォルトの名無しさん2007/12/24(月) 23:46:28
前前スレのTry-Catch論争と同じ臭いがするぞ、ここはw
0183デフォルトの名無しさん2007/12/25(火) 00:10:54
最近、最初に、

こんな奴がプログラム云々
頭悪いみたいだね云々
知能が低い云々
鶏頭云々
病的云々
馬鹿云々

こういうこと書く奴がアホだったっつう
マンガみたいな展開大杉
0184デフォルトの名無しさん2007/12/25(火) 00:38:53
>>183
自分の言葉を自分に適用できない。
これ馬鹿の顕著な特徴だから徹底的に頭に叩き込んだ方がいいよ。
まあそれができないから「馬鹿」なんだろうけどさw
0185デフォルトの名無しさん2007/12/25(火) 00:48:37
というか、馬鹿と呼ばれて頭にくるのはまあいいとして、
しかし、じゃあそう呼ばれた人間は実際馬鹿なこと言ってないのかよ。
それも繰り返し注意を促された後で
0186デフォルトの名無しさん2007/12/25(火) 02:27:30
だれ?
0187デフォルトの名無しさん2007/12/25(火) 02:36:06
>>126
>>129
>>132
>>138
>>143
>>152
>>155
>>156
0188デフォルトの名無しさん2007/12/25(火) 02:36:33
>>159
>>164
>>165
>>167
>>184
>>185
ってことでおk?
0189デフォルトの名無しさん2007/12/25(火) 02:40:31
いわれたやつがどうこうとか関係なく
言ってるやつがアホだったっことには変わりないな。
0190デフォルトの名無しさん2007/12/25(火) 02:46:28
結局>>126は正しいの?間違ってるの?
0191デフォルトの名無しさん2007/12/25(火) 08:37:06
基本的にスレッドはソフトウェアレベルの話で,コア数はハードウェアレベルの(上層の)話.
リソースの競合とかデッドロックとかマルチタスク処理によるコンテキストの切り替えとかアトミック操作とか,
実行時には様々な障害が発生するので,その辺をOSが色々やってくれる.

そんなわけで単純に「2つ処理するハードウェアつけたら2倍になるぉ(^ω^」なんて誰にもいえなくて,
そんなこと言ってたらそれはバカ丸出し.

OSを解さないで,自力でソフトウェアをチューニングしてやっとかそこそこハードウェアの性能を引き出せるわけだから,
安っちぃコンパイラで(しかも仮想マシン)吐き出したコードを実行して,シングルコアとマルチコアでユーザが体感できるような性能差が出たらラッキーくらい.

それよかハードディスクの性能をよくするとか,マウスの精度を上げるとか,描画を早くするとかに専念した方がいいじゃろな.
アプリケーションプログラマからすると.
0192デフォルトの名無しさん2007/12/25(火) 08:43:46
>>190
間違ってるよ
0193デフォルトの名無しさん2007/12/25(火) 08:58:07
>>191
こいつ恣意的に話しずらしてるよな明らかに。
笑わすなっつの。
無条件に2倍になるとか、だれもそんなこと言ってないし。
0194デフォルトの名無しさん2007/12/25(火) 08:58:43
>OSを解さないで,自力でソフトウェアをチューニングしてやっとかそこそこハードウェアの性能を引き出せるわけだから,
>安っちぃコンパイラで(しかも仮想マシン)吐き出したコードを実行して,シングルコアとマルチコアでユーザが体感できるような性能差が出たらラッキーくらい.

あふぉか。
0195デフォルトの名無しさん2007/12/25(火) 09:01:26
>>191お前ほんとは何もわかってないだろ。
文章の節々から怪しさがにじみ出てるぞ。

0196デフォルトの名無しさん2007/12/25(火) 09:05:01
これ以上議論するならコテかトリップつけてくれw
わかりにくいったらありゃしない。
0197デフォルトの名無しさん2007/12/25(火) 09:13:32
>>158
これからプログラミングやるならVB.NETからやるのはやめとけ
.NETならVC#、ネイティブならVC++を勧める
0198デフォルトの名無しさん2007/12/25(火) 09:23:45
>>191なので、
マルチコアマシンでも、マルチスレッド化してもパフォーマンスはアップしません。
アップする理由がありません。
アップしてる記事とかあるけど、何にも理解してないやつがでたらめ書いてるんだよ。

って言いたかったってことでおk?
0199デフォルトの名無しさん2007/12/25(火) 09:37:33
違うでしょ
0200デフォルトの名無しさん2007/12/25(火) 09:43:26
>>159
>>164
0201デフォルトの名無しさん2007/12/25(火) 10:55:02
結局マルチスレッドでもマルチコアの性能を引き出すことはできないって言ってるの?
それとも話をずらして誤魔化してるだけなの?
0202デフォルトの名無しさん2007/12/25(火) 11:01:01
いいえ
いいえ
0203デフォルトの名無しさん2007/12/25(火) 11:07:36
結局何だったの?

ところでパラレルライブラリっていつ出るの?
0204デフォルトの名無しさん2007/12/25(火) 12:44:22
DataGridViewで変更のあった行はRowStateを見ればわかるけど
変更のあった列はどうやって取得するのでしょうか
0205デフォルトの名無しさん2007/12/25(火) 13:20:22
こんな日になんですが、よろしければお付き合いください。

現在、Office2007のアドインをVB2008で開発しようとしています。
実装したい機能としては、従来のメニュバーと、削除されてしまった「スキャナまたはカメラから」の図の挿入です。
メニューバーのほうは方法がわかり、めどが立ったのですが、「スキャナまたはカメラから」のほうが難航しています。

この機能自体はクリップオーガナイザ(MSTORE.exe)に実装されているので、
・そのダイアログをWord、PowerPointなどのOfficeアプリケーションから一発で呼び出す
・実行結果をオーガナイザのコレクションに追加して、そのファイルをOffice側に張り付ける
ということができれば理想的です。
このようなことは可能でしょうか?
VSTOのドキュメントとは格闘したのですが、Officeアプリケーション自体からこの機能がなくなっているせいか、2007では実装方法がわかりませんでした。
0206デフォルトの名無しさん2007/12/25(火) 13:27:01
XMLの要素や属性を読みに行く際、LINQ to XMLで読み込んでから型変換するのと、XmlReaderで型指定して読み込むのとではどちらのパフォーマンスが良いでしょうか。
0207デフォルトの名無しさん2007/12/25(火) 15:09:15
>>203
Win32API使って自分でやった方が早くね?
0208デフォルトの名無しさん2007/12/25(火) 15:25:05

 可愛そうなPG諸君 君たちに未来はないのだよ 職種変えなさい (マジ
0209デフォルトの名無しさん2007/12/25(火) 15:31:39
質問させてください。
現在、Labelコントロールを継承したコントロールを作成しています。
その継承コントロールにて、AutoSizeプロパティをインスタンス生成時にFalseにするようにしているのですが、
フォームに貼り付けた時点でAutoSize=trueがフォームのInitializeComponentメソッドに自動的に書かれてしまい、意味がありませんでした。
デフォルトでAutoSize=falseにしたい場合は、どのようにすればよろしいでしょうか?
どなたかご教示宜しくお願いします。
02102092007/12/25(火) 15:56:35
調べてみたところ、LabelはデフォルトでAutoSize=Falseなんですね。
要はInitializeComponentでAutoSize=Trueが自動で書かれてしまわないようにできれば…
無理でしょうか(´・ω・`)
0211デフォルトの名無しさん2007/12/25(火) 16:30:34

可愛そうなPG諸君 君たちに未来はないのだよ 職種変えなさい (マジ
0212デフォルトの名無しさん2007/12/25(火) 16:30:43

可愛そうなPG諸君 君たちに未来はないのだよ 職種変えなさい (マジ
0213デフォルトの名無しさん2007/12/25(火) 17:51:33
>>209
フォームデザイナで「継承したクラスのAutoSizeプロパティ」がTrueになっているんでないかな?
0214デフォルトの名無しさん2007/12/25(火) 19:05:32
>>209
あるあるw
とりあえずこれで解決できるみたいだよ。
完全に問題がないかどうかは確認してないが

Public Class LabelEx
  Inherits Label

  <DefaultValue(False)> _
  Public Overrides Property AutoSize() As Boolean
    Get
      Return MyBase.AutoSize
    End Get
    Set(ByVal value As Boolean)
      Static is1st As Boolean = True

      If DesignMode AndAlso is1st Then
        MyBase.AutoSize = False
        is1st = False
      Else
        MyBase.AutoSize = value
      End If
    End Set
  End Property
End Class

0215デフォルトの名無しさん2007/12/25(火) 22:57:53
>>204
それを知ってどうしたいんだ?
0216デフォルトの名無しさん2007/12/25(火) 23:04:20
>>215
お前こそそれ知ってどうしたいんだよ。
しかし、なんで馬鹿ってえのはこう自分を棚上げして平気なんざんしょうかw
0217デフォルトの名無しさん2007/12/25(火) 23:13:25
*Data*Gridで行に対しての処理は当たり前だけど、
列、ってのは想像が付かないからなー。
 なんつーか、特異な要求の理由が知りたいってところ?
0218デフォルトの名無しさん2007/12/25(火) 23:16:30
>>216
自分のことをよくぞ言ったもんだ
215じゃねーけど知ったところで意味ねーからだろーが
その変更された値を取得するには結局変更された行(=レコード)を取得しなきゃならんのだし
02192092007/12/26(水) 10:17:17
>>214
できました(`・ω・´)!
強引な感はありますが、強引な方法でしか解決できそうにないですしねw
今のところ問題はないです。
0220デフォルトの名無しさん2007/12/26(水) 13:04:04
すいません、わからないことができてしまったので質問です。
使用ソフトVB2005です。

わからないことは
テキストボックスで入力した文字をボタン1を押すとtxtファイルに保存して、
ボタン2を押すとテキストボックスに呼び出すこと。(テキストボックスは複数)

StremReder、StremWriterを使うことはわかって、保存まではたどり着きました。
ですが、呼び出しがわかりません。
どなたか、教えてもらえませんか?
0221デフォルトの名無しさん2007/12/26(水) 13:11:52
呼び出すってのは、テキストファイルの内容をテキストボックスに表示するってことかな?
http://dobon.net/vb/dotnet/file/readfile.html
この辺読んだらわかるかと。
上記URLのVBサンプルの
Console.WriteLine(s)
てなっているところを例えば
TextBox1.text = s
ってすればTextBox1にファイルの内容が表示されるよ。
0222デフォルトの名無しさん2007/12/26(水) 13:43:34
>>221
どうもありがとうございます。
確かにできました。
ですが、1行で保存しているものを分割して表示しなければ
いけないので、すべてまとまって出てしまいます。
これは、どうすればいいかわかる方いましたら教えてください。
0223デフォルトの名無しさん2007/12/26(水) 13:52:14
>>222
それは一行に全てまとめて保存していて,そのまま表示したってことでおk?

適当に分割すれば
0224デフォルトの名無しさん2007/12/26(水) 13:58:18
>>223
分割・・・それもアリですが
こんな感じになって保存されてるのをtextboxに分けて入れたいんですよ。
a,s,df(textbox1.text,textbox2.text,textbox3.textという感じに保存)

分割可能でしょうか?  ,は表示されません
0225デフォルトの名無しさん2007/12/26(水) 14:08:11
>>224
「感じ」だけ言われてもなぁ

じゃあ
a,s,df(textbox1.txt, textbox2.txt, textbox3.txt という感じに分割)
すればいい
0226デフォルトの名無しさん2007/12/26(水) 14:10:45
クリンゴン語でおk
0227デフォルトの名無しさん2007/12/26(水) 14:20:01
>>225
わかりにくく書いて御免
訂正する

保存ボタンを押すとTextBox(複数)の内容を保存する
Dim abc As String
abc &= TextBox1.Text
abc &= ","
abc &= TextBox2.Text
abc &= ","
abc &= Textbox3.Text

保存すると
日本,中国,ロシア

これをTextBoxに戻すことをしたい
どうもすいません
0228デフォルトの名無しさん2007/12/26(水) 14:22:46
splitで分割しろ
0229デフォルトの名無しさん2007/12/26(水) 14:32:29
お!でけた。
ありがとう!
0230デフォルトの名無しさん2007/12/26(水) 14:42:35
解決したから良かったけど、なんでこう目標だけを質問するのかねw

こういう<前提>で処理をしており、次にこういう<手段>で<目標>したいです。
どうやったら<手段>はできますか?

とか聞いてくれれば答えやすいのに。
0231デフォルトの名無しさん2007/12/26(水) 15:04:15
おお!できた
おまいらありがとう
0232デフォルトの名無しさん2007/12/26(水) 15:46:13
そこまで説明できたら自分で解決出来そうだけどな。
0233デフォルトの名無しさん2007/12/26(水) 16:02:26
ちょっと教えて
ストリングビルダってどういう時に使うのがいいん?
SQL組み立てる時にはいいんだろうけど、それ以外の用途ってあまり思い浮かばない
何よりindexofが無いのが致命的
結局ストリングの代わりに使えるようなもんじゃ無いってこと?
0234デフォルトの名無しさん2007/12/26(水) 16:06:39
>>232
自分で解決できるのが一番だ。
>>230みたいに考えて、それでも解からないなら質問すればいい。
思考ゼロで質問丸投げしてくるやつは成長しないぞ。
0235デフォルトの名無しさん2007/12/26(水) 16:13:28
>>233
どぼんより引用
Stringクラスではなく、System.Text.StringBuilderクラスを使うことにより、文字列の置換や追加などの
処理をより高速に行うことができます。
例えば、Stringクラスで文字列の連結を行うと、文字列を連結するたびに新しいインスタンスを
作成するため、パフォーマンスが落ちますが、StringBuilderクラスでは、そのようなことがありません。
文字列の置換や追加などの処理を頻繁に行う時は、StringBuilderクラスを使うとよいでしょう。

逆に言えば文字列の置換や追加などの処理を頻繁に行わない時は、意識して使うこともないってこった。
0236デフォルトの名無しさん2007/12/26(水) 16:16:06
>>233
100万回くらい文字列の連結をするループ作って
StringとStringBuilderを比較してみるといい
0237デフォルトの名無しさん2007/12/26(水) 16:19:25
100万回てwww
メモリたらんわwwww
0238デフォルトの名無しさん2007/12/26(水) 16:39:03
>>235
その程度のもんなんだね
THX
いやまあそんなに違うもんなら、今までに書いたの全部書き直さなきゃいかんかと思て
0239デフォルトの名無しさん2007/12/26(水) 17:09:39
何を読んでそんなに違うものだと思ったの?
いや素朴な疑問。
0240デフォルトの名無しさん2007/12/26(水) 17:26:27
100回程度で違いが出たら根本的なところで問題あるだろ絶対。
0241デフォルトの名無しさん2007/12/26(水) 18:41:22
>>237
100万=1M

10文字くらいの連結なら最近のPCならなんら問題ない
0242デフォルトの名無しさん2007/12/26(水) 20:31:57
UTF16だから×2
コピー時に両方いるから×1.5
最悪必要量の2倍確保されるから最悪の場合は×2
よって最悪6倍
ああもちろんこれは1文字ずつ足した場合だから
さらに足していく文字数倍なw
0243デフォルトの名無しさん2007/12/26(水) 20:35:40
ああそれでも最悪60M位だな。
過渡的に使うメモリはトータルでさらに倍か、それでもまあ120Mくらいか。
0244デフォルトの名無しさん2007/12/26(水) 20:37:03
違うわ、トータルはそれ×100万だたw
0245デフォルトの名無しさん2007/12/26(水) 20:38:10
違うw半分の100万ばいだから
30M×100万だ
0246デフォルトの名無しさん2007/12/26(水) 20:40:08
最悪の場合は2倍じゃなくて1.5倍かな?俺ってあほだ
0247デフォルトの名無しさん2007/12/26(水) 20:42:36
チラシの裏にでも書いてろ
0248デフォルトの名無しさん2007/12/26(水) 21:09:27
ガベコレのことを忘れてはいけませんよ
0249デフォルトの名無しさん2007/12/26(水) 21:14:03
誰も忘れてないと思うよ
0250デフォルトの名無しさん2007/12/26(水) 21:19:12
単なる連結なんだから
100万回×1000万文字×2バイト÷2で
1000万Mだな、過渡的なものを含めたトータルで。
10Tか。
メモリ帯域ってどんくらいだっけ?
0251デフォルトの名無しさん2007/12/26(水) 21:20:55
まあ1時間もあれば終わるんじゃない?知らんけどw
0252デフォルトの名無しさん2007/12/26(水) 21:22:04
やってみるわ
aを100万回連結してみる
02532522007/12/26(水) 21:35:44
予想外に長いな…w
とめたくなって来たぜ…w
0254デフォルトの名無しさん2007/12/26(水) 21:42:02
すまん(´・ω・`)あまりにも長くてとめちまった。
代わりに20万回でやったわ
String: 98297ミリ秒
StringBuilder: 16ミリ秒
0255デフォルトの名無しさん2007/12/26(水) 21:48:43
上から順に 1万、2万、5万、10万回
String: 157ミリ秒
String: 562ミリ秒
String: 3875ミリ秒
String: 20766ミリ秒

StringBuilder: 0ミリ秒
StringBuilder: 0ミリ秒
StringBuilder: 0ミリ秒
StringBuilder: 0ミリ秒

StringBuilderのほう、10万回以下じゃ0ミリだぜ、、、
0256デフォルトの名無しさん2007/12/26(水) 22:12:01
そういや .net か java か忘れたけど,
コンパイラが文字列連結をコンパイルするとき,
3つまではString()のコンストラクタ使われて,それ以外だとゴニョゴニョするって記事をどこかで見たな
0257デフォルトの名無しさん2007/12/26(水) 22:13:48
>ゴニョゴニョ
そこが重要だろww
0258デフォルトの名無しさん2007/12/26(水) 22:25:27
実際に試すとはチャレンジャーなw
純粋なメモリ転送よりは圧倒的に効率悪いだろうから、
10分の1の1文字ずつでも1時間はかからないかどうかってとこかな?
0259デフォルトの名無しさん2007/12/27(木) 13:07:46
試した方が早いってことで試してみた
文字→数字
val>parse>>>>>>>>cint (valとparseはほとんど変わらないけどcintは10倍以上遅い)
数字→文字
tostring>cstr>format (formatがtostringの2倍程度)
もっとも複雑な書式になってきたらどうか分からんけど
0260デフォルトの名無しさん2007/12/27(木) 14:02:08
WindowsMobileのコード書くときもあるけど、

そういうのってStringBuilder積極的に使ったほうがいいんかなぁ・・・

文字列連結なんかも、a = a & "a" みたいな感じでやってたりするし。
Strcat とか使いづらいしなぁ
0261デフォルトの名無しさん2007/12/27(木) 14:48:01
MSのガイドラインをどっかで見たが、
5回以上連結する場合はStringBuilderの方が平均的にパフォーマンスが良くなるそうだ
がまあボトルネックになってないなら気にすることもない
0262デフォルトの名無しさん2007/12/27(木) 15:22:52
ループなど、連結数が予測できない場合や、
連結による追加を何度も繰り返す場合は使った方がいい。
単文での連結だけなら不要、例え数が多くても。
0263デフォルトの名無しさん2007/12/27(木) 17:05:40
>>261
試してみた
4回まではストリングの方が早い
5-7回まではイーブン
8回以上はストリングビルダが早い
0264デフォルトの名無しさん2007/12/27(木) 17:24:23
WebBrowserコントロールで表示中のソース取得するのはどういう方法がいいんだろう?
今は Me.WebBrowser1.DocumentText でやってるんだけど、これってサーバに
再読み込みに行くのではなくて現在表示してる内容のソースなんでしょうか?
0265デフォルトの名無しさん2007/12/27(木) 17:30:14
>>264
そのくらい自分で試せるだろw
0266デフォルトの名無しさん2007/12/27(木) 17:32:14
冷たいんだなw
0267デフォルトの名無しさん2007/12/27(木) 18:04:52
>>264
http://dobon.net/vb/dotnet/internet/webclientopenread.html
なら、自分でダウンロードすればいいんじゃね?IEコンポなんか使わずに。
いや、まあ、文字コードとか面倒だけどね。
0268デフォルトの名無しさん2007/12/27(木) 18:34:46
VB2005で質問です。
メモリ領域が確保されるのは(1)と(2)のどちらでしょうか?

Dim int As Integer ・・・(1)
int = 100 ・・・(2)
0269デフォルトの名無しさん2007/12/27(木) 18:46:52
>>268
Sub Hohe ・・・ ここ
  Dim int As Integer 
  int = 100
0270デフォルトの名無しさん2007/12/27(木) 18:48:09
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdnbcsharp/htm/csharp2-3.asp
02712682007/12/27(木) 19:47:00
ありがとうございます。よく分かりました。

宣言する位置、代入する位置は関係ないのですね。
見易い位置で宣言するようにしたいと思います。
0272デフォルトの名無しさん2007/12/28(金) 00:37:19
Dim myObj As New MyObject はVB6とは意味が変わったから注意な。
02732682007/12/28(金) 09:46:35
はい。察しの通りVB6から移行したばかりです。

.Net以降の場合、オブジェクトのインスタンスは宣言される位置で生成されるんですね。
ご丁寧にどうも。
0274デフォルトの名無しさん2007/12/28(金) 11:47:40
ほぇ?
■ このスレッドは過去ログ倉庫に格納されています