VB.NET質問スレ (Part20 ..
[2ch|▼Menu]
2:デフォルトの名無しさん
07/03/05 11:23:22
ここは、質問者に説教するスレではありません。
ここは、質問者のプログラミングセンスを測るスレではありません。
ここは、質問者のプログラマ適性を診断するスレではありません。
ここは、質問者の精神病・神経症を診断するスレではありません。

3:デフォルトの名無しさん
07/03/05 11:24:50
MSDN
URLリンク(msdn2.microsoft.com)
どぼん!のVB道のトップページとTipsページ
URLリンク(dobon.net)
URLリンク(dobon.net)
Microsoftクイック スタート チュートリアル
URLリンク(ja.gotdotnet.com)
Insider.NET
URLリンク(www.atmarkit.co.jp)
宇宙仮面の C# プログラミング
URLリンク(ukamen.hp.infoseek.co.jp)
.NET のつぼ
URLリンク(park16.wakwak.com)
.NET TIPS
URLリンク(www.atmarkit.co.jp)
緑のバイク ★ 初めてのC# プログラム全般
URLリンク(homepage3.nifty.com)
VB.NETとC#でデザインパターン
URLリンク(hccweb1.bai.ne.jp)
匣の向こう側
URLリンク(www.ne.jp)
WisdomSoft
URLリンク(wisdom.sakura.ne.jp)
じゃんぬねっと
URLリンク(jeanne.wankuma.com)
どっとねっとふぁん - C# Tips And Samples -
URLリンク(homepage3.nifty.com)
C#プログラミングTips
URLリンク(www.atmarkit.co.jp)


4:デフォルトの名無しさん
07/03/05 11:25:39
ここは、質問者が質問をするスレです
ここは、質問者が質問をROM者に見せるためだけのスレです
ここは、VB.NETプログラミング言語のためのスレです









                         ここにはVB.NETの質問以外載せてはなりません
                        (回答や誘導、その他質問ではないものも禁止です)

5:デフォルトの名無しさん
07/03/05 11:25:59
CodeProject
URLリンク(www.codeproject.com)
the GotDotNet Home Page
URLリンク(www.gotdotnet.com)
KEN's .NET
URLリンク(www5b.biglobe.ne.jp)
Cetus Links: 19,498 Links on Objects and Components / .NET
URLリンク(www.cetus-links.org)
HIRO's.NET
URLリンク(vbdotnet.fc2web.com)
@IT:特集 .NET開発者のためのオンライン・リソース・ガイド
URLリンク(www.atmarkit.co.jp)
.NETでいきまっしょい!
URLリンク(santamartadotnet.hp.infoseek.co.jp)
これがほしかった!厳選サンプルツール集
URLリンク(anetm.com)
ぬーやんのdotNET講座
URLリンク(www.geocities.jp)
PINVOKE.NET
URLリンク(www.pinvoke.net)
WinAPI Database for VB Programmer
URLリンク(www.geocities.co.jp)

6:デフォルトの名無しさん
07/03/05 11:26:29
Windows Api programming in C# , VB.NET, and VB6. Examples of P/Invoke and DllImport with Source code
URLリンク(custom.programming-in.net)
CodeZine
URLリンク(codezine.jp)
ConvertCSharp2VB
URLリンク(www.kamalpatel.net)
@IT:.NET Tools
URLリンク(www.atmarkit.co.jp)
SharpLibrary Redirector
URLリンク(www.sharplibrary.com)
MSDN アカデミック アライアンス 技術資料
URLリンク(www.microsoft.com)
「300 秒でズバリ !!」&「10 行でズバリ !!」シリーズ
URLリンク(www.microsoft.com)
PAPA'n VB
URLリンク(www.mitene.or.jp)
VB レスキュー花ちゃん
URLリンク(www.bcap.co.jp)
(Java覚え書き)デザインパターンあれこれ
URLリンク(www.dmz.hitachi-sk.co.jp)
algorithm
URLリンク(www.mnet.ne.jp)
ラムダ計算入門
URLリンク(www.kb.ecei.tohoku.ac.jp)
数値計算の基礎
URLリンク(www7.ocn.ne.jp)


7:デフォルトの名無しさん
07/03/05 12:48:01
テンプレ乙

質問だがKeyDuplication(キー重複)エラーの時
ある程度ピンポイントでキャッチできる奴ない?

例えば同時実行エラーならDBConcurrencyException
って感じで

8:デフォルトの名無しさん
07/03/05 13:46:21
残りのテンプレ
                            ,===,====、
                           _.||___|_____||_
..                       ∧_∧  /||___|^ ∧_∧      
..                       (・ω・`)//||   |口| |ω・` )
.                     ./(^(^ .//||...||   |口| |c  )
.....                    ∧_∧/  //  ||...||   |口| ||し      
.......                (・ω・`) //....  ||...||   |口| ||        楽しく使ってね
                 /(^(^ //  ....  .||...||   |口| ||        仲良く使ってね
         ""    :::'' |/   |/ '' "  :::  ⌒  :: ⌒⌒⌒ :: ""  `
         :: ,, ::::: ,, ; ̄ ̄ ̄  "、 :::: " ,, , :::   " :: " :::: 

9:デフォルトの名無しさん
07/03/05 19:17:10
むしろこういうスレは殺伐としているべきだと思うんだ

10:デフォルトの名無しさん
07/03/05 19:24:54
ボコボコボコボコボコボコボコボコボコボコボコボコボコボコ
コボコボコボコボコボコボコボコボコボコボコボコボコボコボコ
ボコボコボコボコ∧_∧ ∧_∧∧_∧ボコボコボコボコ
ボコボコ∧_∧´・ω・)(´・ω・`)・ω・`∧_∧ボコボコ
ホコボコ(´・ω・)∧_,∧lll ∪)∧_∧・ω・`)ボコボコ
ボコボコ∧_∧ ´・ω∧∪∧(・ω・∧_∧⊂)ボコボコ
コボコ(´・ω・)≡つ);;)ω(;;(⊂≡(・ω・`)___\ボコボコ
ボコボ(っ  つ=つ(っ  ⊂)⊂=⊂≡ ⊂) \ )ボコボコ
ボコボコ/∧_∧∧ ↑質問者 ∧∧_∧\ボコボコ
ボコボ( ( ´・ω)(  ´・)(    )`  )(ω・` ) )ボコボコ
コボコ(っ  つ/    )(    )   \ ⊂)ボコボコ
ボコボ/   )`u-u'. バ∪ ̄∪バ`u-u'   \ボコボコ  楽しく使ってね
ボコ( / ̄∪ボコボコボコボコボコボコボコ∪ ̄\ )ボコボコ  仲良く使ってね
ボコボコボコボコボコボコボコボコボコボコボコボコボコボコ
コボコボコボコボコボコボコボコボコボコボコボコボコボコボコ

こうか?

11:デフォルトの名無しさん
07/03/05 20:13:34
そうそう、そんな感じで

12:デフォルトの名無しさん
07/03/05 20:36:30
なるほど。ずれたらいいわけですね

13:デフォルトの名無しさん
07/03/05 20:41:49
マイクロソフトが出してるVB.NET本(黄色いやつで上級とか初級とか中級とかとにかくたくさんあるやつ)で、
ウラにかかれてる項目の中の「ネットワーク」の項がアクティブになってる本がほしいんだけど
一度もみたことありません。持ってる人、タイトルおしえてくださいませ

>>8
某さいたまなところで滑り降りるところだけが盗まれまくったらしいね
盗んだ奴の顔がみてみたい

14:デフォルトの名無しさん
07/03/05 22:23:31
str.replace("a","b")
とするとすべてのaがbに置き換わりますが
最初のaだけがbに置き換わるreplaceはないでしょうか?

15:デフォルトの名無しさん
07/03/05 22:30:26
Regex で "^a" を "b"に置換

16:デフォルトの名無しさん
07/03/05 22:31:18
>>14
ないので作れ

17:デフォルトの名無しさん
07/03/05 22:31:58
Regex.Replace なら最大回数を指定できるオーバーロードがあるな

18:デフォルトの名無しさん
07/03/05 22:35:30
そういやregexってのがあったな

19:デフォルトの名無しさん
07/03/05 22:51:33
VB.NET から C#.NET への移行はさほど難しい話ではないようですが、
前スレではちらほら、「C# は Java に近い ・ むしろ C++ にも見える」という書き込みを見かけました
これは C#.NET から Java もしくは C++ をあくまでも文法的に習得するのが容易だという意味でとらえてもよろしいでしょうか
よっちゃんいか

20:デフォルトの名無しさん
07/03/05 22:59:11
文法なんて習得する程も無いよ(C++はともかく)
一番の違いはライブラリで、そして C# と VB.NET/VB2005 はそれが共通。

21:デフォルトの名無しさん
07/03/05 23:06:33
よっちゃんいかに釣られていいか?

22:デフォルトの名無しさん
07/03/06 06:54:32
XMLDataSourceを使ってGridViewにバインドしたいと考えており
以下の単純なXMLファイルを作成したところ問題なくGridViewにバインドされます。
<ファイル管理>
<ファイル ID="A" ファイル名="AAAファイル" />
<ファイル ID="B" ファイル名="BBBファイル" />
<ファイル ID="C" ファイル名="CCCファイル" />
</ファイル管理>
このXMLファイルには他の定義も必要になるため、もう1階層要素を追加しました。
<どっとねっと>
<ファイル管理>
<ファイル ID="A" ファイル名="AAAファイル" />
<ファイル ID="B" ファイル名="BBBファイル" />
<ファイル ID="C" ファイル名="CCCファイル" />
</ファイル管理>
<別の階層>
<システム ID="AAA" />
<システム ID="BBB" />
<システム ID="CCC" />
</別の階層>
今回必要なのはファイル管理以下の一覧なのでXPath式を
/どっとねっと/ファイル管理
としたところ画面には何も表示されなくなりました。
どのようにしてファイル管理以下の一覧を取得するのでしょうか?
プログラムでDataGridにバインドする前にXMLデータの加工をしてしまえば
できると思うのですが、デザイナ画面で実装イメージが確認したいので
そのようにしたくはありません。


23:デフォルトの名無しさん
07/03/06 14:12:25
tga扱えるようになるライブラリありませんか?
ネット探しても有料のしか見つかりませんでした。

24:デフォルトの名無しさん
07/03/06 21:31:47
ちょっと質問!

プライマリディスプレイのデスクトップに置かれたショートカットからプログラムを起動させる時
サブディスプレイを検出したらサブディスプレイのほうに最大化させてプログラムを表示させたいのですが・・・・
ディスプレイの数や、サイズは取得可能なようですが、そこから2代目のモニタに表示させて最大化
という部分が今一歩思いつかない状態です。

なにかいい案とかないですか?
あくまでサブディスプレイはミラーリングのタイプは使用しない という縛りは可能です。

もう、メインディスプレイの右側の領域にくっつくという考え方でいいんでしょうか?
例えば800X600のメインディスプレイに1024X768のサブディスプレイがくっついてたとして
800より大きい値であればサブディスプレイという考え方です。

なんとなくスマートじゃねぇ・・・・orz

25:デフォルトの名無しさん
07/03/06 22:22:48
>>24 かなり冗長でテストもしてないけどこんなのは?

Private Sub VewSubDisplay()
Dim monitor() As System.Windows.Forms.Screen
monitor = System.Windows.Forms.Screen.AllScreens()

Dim length As Integer = monitor.Length

If length > 0 Then

For i As Integer = 0 To monitor.Length
If monitor(i).Equals(System.Windows.Forms.Screen.PrimaryScreen) = False Then

Dim rect As Rectangle = monitor(i).WorkingArea
Me.Bounds = rect

End If
Next

End If
End Sub



26:25
07/03/06 22:24:23
とりあえずコメントぐらいつけろよな俺・・・

27:デフォルトの名無しさん
07/03/06 22:42:59
>>25
レストンクス!
コメントなくても無問題
みっけたモニタの中で最大の添え字のディスプレイの作業領域で表示させるって事ですね

最大化は必須なのでこれちょこっといじって、まんま使わせてもらうことにしました。

PS.
For i As Integer = 0 To monitor.Length - 1
じゃないと範囲超えちゃいます。

28:デフォルトの名無しさん
07/03/06 22:49:05
最後にはちゃんと御礼書けよ 俺orz

>>25-26
すません、ちょっと色々テンパってたので助かりました。

29:デフォルトの名無しさん
07/03/06 22:51:40
>>28
しかもしっかり間違いも指摘している
これは間違いなく…感じ悪い
( ゚д゚ )

30:デフォルトの名無しさん
07/03/06 22:55:06
> Dim rect As Rectangle = monitor(i).WorkingArea
> Me.Bounds = rect
これでさぶスクリーンに表示できるんだ。
外野だけど勉強になったよ。

31:デフォルトの名無しさん
07/03/06 22:58:10
>>29
orz
ごめんよ・・・ごめんよ
>>25

でも、マジでいいアイデアだとオモタ

32:デフォルトの名無しさん
07/03/06 23:02:13
>>10 がテンプレAAを乗っ取る日も近そうだ

33:デフォルトの名無しさん
07/03/06 23:03:25
.Net Framework 1.1、VB2003で
VisibleがfalseのControlを画像にキャプチャする方法ってありませんか?
知ってるかたいましたらお願いします。

34:25
07/03/06 23:03:29
>>27-29

> 最大の添え字のディスプレイ
というかメインディスプレイかどうかチェックかけて
メインディスプレイじゃない場合、そこに書けという処理。

というわけでモニタが二つ以上のときは
上のだと条件追加してやらいないといけない予感。


あと指摘のミス
実務のほうで・・やべ・・変な汗出てきた


35:デフォルトの名無しさん
07/03/06 23:05:05
撮影直前に表示じゃダメなん?

36:デフォルトの名無しさん
07/03/06 23:11:05
>>35
キャプチャするためだけに一瞬表示するのはダメっすね

37:デフォルトの名無しさん
07/03/06 23:14:49
そのコントロールのコードいじれるならいくらでも
じゃなきゃVista以外はむりぽ

38:デフォルトの名無しさん
07/03/06 23:23:09
>>37
コードはいじれます
.Net2.0のControl.DrawToBitmapの動きを.NET1.1でさせたいんです。

39:デフォルトの名無しさん
07/03/06 23:43:24
んじゃ、
GraphicsオブジェクトつくってOnPaintに食わせれば描いてくれるよ

40:デフォルトの名無しさん
07/03/06 23:52:01
>>39
マジすか、やってみます。ありがとう

41:デフォルトの名無しさん
07/03/07 10:30:49
DrawToBitmapの実装を真似すればいいと思うんだが

42:デフォルトの名無しさん
07/03/07 16:41:50
.net2.0なんですが
Webbrowserでページを読み込んで
その中のHtmlElementをInvokeMember("Click")でクリックできることはわかったのですが
objectタグで埋め込まれているFlashをクリックできないのでしょうか?
特に複雑なことをしたいのではなくて、yahooのトップにあるようなバナーをクリックしたいだけなんですけど
objectのelementから辿ってクリックとかしたいんですけど

43:デフォルトの名無しさん
07/03/08 15:16:55
すいません、質問させてください。

例えば「AAA BBB」という値が入ったテキストボックスがあるとして、
この時デフォルトではBBB付近でダブルクリックするとBBBのみが選択状態になります。

これを全選択にしたいと思い、ダブルクリックのイベントにSelectAllを書いたのですが、一度BBBが選択されたあと、全体が選択状態になる、といった動きになりました。

ダブルクリックのイベントを無効にしたのち、SelectAllすればいいのかな・・・?と思うのですが、無効の仕方がわかりません。
どなたか、方法を伝授していただけたら幸いです。
宜しくお願いします。

44:デフォルトの名無しさん
07/03/08 15:50:08
ダブルクリックのイベントを無効にしたら
SelectAllすらできないんじゃ…

45:デフォルトの名無しさん
07/03/08 15:51:23
時間測ってクリック2回を捕まえてみるとか

46:デフォルトの名無しさん
07/03/08 16:06:44
>>44
言葉足らずでした。
例えばKeyDownなら、e.Handled = trueでイベントが処理された、とみなされますが、
そんな感じでダブルクリックの時も出来ないかな〜、というわけです。


47:デフォルトの名無しさん
07/03/08 16:37:16
>>46
TextBox継承して
こんな感じじゃダメ?

Public Class hoge
  Inherits TextBox

  Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
    Select Case m.Msg
      Case &H203
        Me.SelectAll()
      Case Else
        MyBase.WndProc(m)
    End Select
  End Sub

End Class

48:デフォルトの名無しさん
07/03/08 17:58:05
>>47
継承というのをはじめてやったのでてこずりましたが、無事できました。
ありがとうございました。

49:デフォルトの名無しさん
07/03/08 19:01:17
>>47
ドトネトはフック簡単で便利だよなw

50:デフォルトの名無しさん
07/03/08 20:02:51
VB.NETでフォームアプリケーション作ってて
継承が初めてってことはありえない

51:デフォルトの名無しさん
07/03/08 20:05:27
>>50
そりゃそうだw
既にフォームが(ry

52:デフォルトの名無しさん
07/03/08 21:55:59
スポーツ少女に処女膜が無いようなもんだな

53:デフォルトの名無しさん
07/03/08 21:59:35
それ違う。とても違う。

54:デフォルトの名無しさん
07/03/08 23:35:50
へやにいるからいおまぃらこいよwwwwww

55:デフォルトの名無しさん
07/03/09 13:35:30
クラスを自分で一つも定義せずにフォームアプリケーションを作るのは
一応可能みたいだな

56:デフォルトの名無しさん
07/03/09 14:35:01
ADO.NETの話です。
ExecuteNonQuery メソッドを用いてUPDATE文を実行して、その返り値が0
だった時は、それが他ユーザによる更新が原因であるのか、
ネットワークやハードウェアの障害によるエラーであるのかのチェックは
出来ない。ということなのでしょうか。
あえてチェックをする場合は、再度SELECT文を使って接続してみるしか
ないのでしょうか。

57:デフォルトの名無しさん
07/03/09 15:35:15
>>56
そういう場合は0ではなくて例外が起きる。

58:デフォルトの名無しさん
07/03/09 15:45:16
>>57
質問前に、msdnを読んだつもりだったのですが、例外の欄に書いてありましたね。
すみません。
InvalidOperationException(接続が存在しません。 または、接続が開いていません)

となると、以下のような解釈でいいということですよね?
例外が戻ってきた:ネットなど接続のエラー
0が戻ってきた:開いている間に他のユーザがデータを書き換えるなどしたため、
        updateで更新されなかった。

59:デフォルトの名無しさん
07/03/09 16:50:22
P2Pのshareの逃げるバージョン情報のウィンドウを作りたい。
MouseEnterイベントでやるのかな?
意外と難しい。


60:デフォルトの名無しさん
07/03/09 17:27:17
Point lastPos;
private void timer1_Tick(object sender, EventArgs e){
Point current = System.Windows.Forms.Cursor.Position;
if (this.Bounds.Contains(p)){
int dx = current.X - lastPos.X; int dy = current.Y - lastPos.Y;
Point loc = this.Location;
loc.Offset((int)((float)dx * 1.0f), (int)((float)dy * 1.0f));
this.Location = loc;
}
lastPos = current; this.Refresh();
}
こんな感じ?C#だけど

61:60
07/03/09 17:28:57
ゴミが残ってた
7行目はloc.Offset(dx , dy);でいい

62:デフォルトの名無しさん
07/03/09 17:44:03
>>60
ほほう。どうもありがとうございます。
参考にさせてもらいます。

63:デフォルトの名無しさん
07/03/09 19:43:07
チラウラなんだが、Vistaに標準で.NET3.0&コンソールコンパイラが入っているね。
某家電屋の店頭のVistaPCでHello,Worldを実行できたよ。


64:デフォルトの名無しさん
07/03/09 21:51:56
だんだんMSもOSを触る環境から使う環境へと意識転換してきてるんだな

65:デフォルトの名無しさん
07/03/09 23:18:25
使う環境にコンパイラいらんだろ

66:デフォルトの名無しさん
07/03/09 23:25:17
.NET のクラスライブラリには CodeDOM 関連のものも含まれていてだな

67:デフォルトの名無しさん
07/03/10 13:33:41
実行時にソースコードをコンパイルしてスクリプトみたいに実行できたりしてだな

68:デフォルトの名無しさん
07/03/10 14:02:29
Hello Worldとかありきたりだな
もっと個性ある今風の言葉にしようぜ。

69:デフォルトの名無しさん
07/03/10 14:04:02
こんにちは、世界

70:デフォルトの名無しさん
07/03/10 14:05:52
WellCome DeathMarch

71:デフォルトの名無しさん
07/03/10 14:51:48
Goodbye World

72:デフォルトの名無しさん
07/03/10 14:54:02
うわっつまんねー^^

73:デフォルトの名無しさん
07/03/10 15:58:38
自演乙

74:デフォルトの名無しさん
07/03/10 16:30:02
>>73
かわいそうに。

VB厨はipdわからないから、ID丸見えなのに
誰が自演かわからないんだろうねw

75:デフォルトの名無しさん
07/03/10 17:22:33
>>74
しーっ

76:デフォルトの名無しさん
07/03/10 21:11:40
すいません
文字列のピクセル長を知るためにはどうすればよいのでしょうか?

よろしくお願いします。

77:デフォルトの名無しさん
07/03/10 21:16:19
Graphicsのメンバをよく眺めてみ

78:デフォルトの名無しさん
07/03/10 21:19:15
>>76
その質問では意味がわからんが、漏れがエスパーするに、文字列を描画するのに必要な領域の幅を知りたいというんだな?
TextRenderer.MeasureText() か Graphics.MeasureString() を使え。

79:76
07/03/10 21:21:07
>>77 >>78
ありがとうございました

80:デフォルトの名無しさん
07/03/11 08:57:05
Visual Studioのツールボックスみたいなコントロールは標準であるのでしょうか?
TreeViewコントロールのプロパティをいじって似たものを作ってみたのですが、
動作的にはOKでも、ノード別に見た目の文字位置とか色とかの調整ができない?ので
今ひとつでした。
よろしくお願いします。

81:デフォルトの名無しさん
07/03/11 23:32:35
>>80
ピンポイントでは、そのようなコントロールはないと思う
CodeProjectで>>80が求めるものを見た記憶があるなぁ・・・
日本のサイトではあの手のサンプルないんじゃないかな?

あそこで多分検索したらあると思うよ
C#かVBかは忘れちゃったけどw

82:80
07/03/12 08:19:57
>81
標準ではないですか。。。
codeproject探してみます。
もしくはやったことないけどオーナードローを検討してみます。
ありがとうございました。


83:デフォルトの名無しさん
07/03/12 22:25:02
DataGridでマウスでドラッグして行を選択するのだけど、mousemoveイベントの
間隔が遅すぎてまだらにしか選択されないんです(ゆっくりなら全部選択される)
この間隔ってどこかで設定とか出来る?

84:デフォルトの名無しさん
07/03/12 22:29:50
もう一つDataGrid
そうやってドラッグして選択していった時に、ドラッグしたまま下にはみ出すと
スクロールしながら次々選択されてくってのは何イベント使えばいい?
mouseleaveだと上に抜けたか下に抜けたか分からないし…

85:デフォルトの名無しさん
07/03/12 22:30:58
それ本当にDataGridか?

86:デフォルトの名無しさん
07/03/12 22:44:34
どぼん参考にアクセスのlistboxみたいな動作するようにしてるけど
(rowheader無しで1行全部選択される)それ以外は普通のdatagridだけど

87:デフォルトの名無しさん
07/03/12 23:12:09
小出しにされてもなあ・・なぞなぞじゃないんだし
とりあえず手元に現物が無いから、そっちで原因を洗うしかないんじゃないか?

88:デフォルトの名無しさん
07/03/13 09:05:33
>>86
DataGridViewをフォームに貼り付けて
こんな感じはダメ?

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  Dim a As New DataTable("test")
  a.Columns.Add(New DataColumn("1"))
  a.Columns.Add(New DataColumn("2"))
  a.Columns.Add(New DataColumn("3"))
  a.Columns.Add(New DataColumn("4"))
  For i As Integer = 0 To 49
    Dim r1 As DataRow = a.NewRow
    r1(0) = "a"
    r1(1) = "b"
    r1(2) = "c"
    r1(3) = "d"
    a.Rows.Add(r1)
  Next
  DataGridView1.DataSource = a
  DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
End Sub

89:デフォルトの名無しさん
07/03/13 10:58:06
質問があります。

ActiveXのレジストリ登録についてなのですが、
ActiveXを使うには、DLLをレジストリ登録すると思います。

そのとき、
C:\test01\hoge.dll
C:\test02\hoge.dll
とテストバージョンを2つ作ったとして、両方ともレジストリ登録したとしたら、
どちらが適用されるのでしょうか?

regsvr32 /s C:\test01\hoge.dll
regsvr32 /s C:\test02\hoge.dll
  ↓
piyo.exe

また、regeditでいちいち検索せずに、hoge.dllが今どういう登録がされているのか
を調べるとしたら、どうすれば良いのでしょうか?

90:デフォルトの名無しさん
07/03/13 11:09:51
>>89
VB.NETで作ったCOMならregsvr32ではなく、regasmを使え。
普通のActiveXの話ならすれ違いっぽいが一応答えておこう。
基本は後勝ち。OleView.exeで調べる。

91:デフォルトの名無しさん
07/03/13 11:48:22
>>90
「後勝ち」
確認しました。ありがとうございます。

regsvr32 /s C:\test01\hoge.dll

regsvr32 /s C:\test02\hoge.dll

とやったら、C:\test01\hoge.dll が C:\test02\hoge.dll で上書きされる
ようですね。

92:デフォルトの名無しさん
07/03/13 19:35:29
確か1とか2とか憑かなかったっけ?

93:デフォルトの名無しさん
07/03/13 19:50:03
COMはGUIDとか使ってそれなりに複雑な固体識別してたはずだよね。
っていうか、上書きって意味わからんw

94:デフォルトの名無しさん
07/03/13 20:43:29
全く同じCLSID, ProgID持ってるんだろ

95:デフォルトの名無しさん
07/03/14 11:00:29
質問です!
下のようなCSVファイルがあるとします。だいたい1000行くらいのログです。

aaa,a,aaa,01,01
bbb,b,bbb,01,02
ccc,c,ccc,02,01
ccc,c,ccc,02,02
・・・・・

このCSVにおいて例えば左から4番目のカラムが04のレコードのレコード数を取得したいのです。
既存アプリが吐くログなのでカラム名もないしSQLが使えるかも不明です。
VBSかVB.net2003で上記プログラムを作成したいのですが適切なロジックが浮かびません。
Do〜Loopで一行ずつ読み込んでカンマでセパレートして配列変数に代入し、
検索条件にヒットしたらカウンタを1UPしていく方法くらいしか思い浮かばないのですが、
ほかにもっとシンプルな方法をご存知の方は教えてください。

96:デフォルトの名無しさん
07/03/14 11:03:25
>>95
その方法でいいじゃん。正規表現とか覚えてる間に作れちゃうよ。

97:デフォルトの名無しさん
07/03/14 12:59:59
DataSetに展開してSELECTする手もあるな

98:デフォルトの名無しさん
07/03/14 13:00:32
連投スマン
>>97
DataTableだわw

99:デフォルトの名無しさん
07/03/14 13:08:22
>>95
ADO.NETでCSV読ませれば?
そんでSQLでやるべし

100:デフォルトの名無しさん
07/03/14 13:16:17
ODBC Text DriverはMDACにまだ入ってるのかな?そろそろレガシーな気もする。
ReadLineしてString.Splitで十分な気もするが、
VB.NET的にはMicrosoft.VisualBasic.FileIO.TextFieldParserを使うのが推奨だろう。

101:デフォルトの名無しさん
07/03/14 14:34:24
VB.NETの型付データセットでデータ取得する時にNULLを扱いたいがエラーにはしたくない
Nothing返すようにしてるけど・・・なんとなく外道なのかな?
2005ならNullable.型 で返すんだけど2003だと如何するのがオヌヌメなんだろう・・・

102:デフォルトの名無しさん
07/03/14 16:07:32
1000行程度なら、オレならエクセルで読み込んで処理するが…どうしてもVBなの?

103:デフォルトの名無しさん
07/03/14 16:11:53
すみませんが、こちらでもよろしければ教えてください。よろしくです。

Windows.Form上で使うControlクラスを継承して新しいコントロールを作成し、
そのBaseクラスのプロパティすべてを、一回の属性設定だけでプロパティウインドウに
表示されなくすることは可能でしょうか。

目的はアプリケーションに関係のない項目はプロパティウインドウに表示させず、
関係のあるごく少わずかの項目だけを表示させたいからですが、このためには
一つ一つのプロパティを継承作成して全部そこにAttribuetes設定しないといけないでしょうか?
できれば、既存の項目は全部まとめて表示させないようにしてから、自分で追加した
プロパティだけを表示させるようにしたいのですが、こうしたことは可能でしょうか?

(本件はC#スレッドでもお聞きしていましたがお答えがほしくこちらでも質問させて
戴きました、すみませんよろしくお願いします)

104:95
07/03/14 16:50:45
>>96-100
皆さん、様々なアドバイスありがとうございます。
皆さんのヒントを元にヘルプやwebページを漁ってみましたが、大変参考になりました。
まずは
URLリンク(dobon.net)
あたりのページを参考に、やったことのない方法でやってみようと思います。

>>102
オフィス製品を導入していないサーバーで動かすため、アプリかスクリプトを作るしかありません。
バッチファイルかなにかで済ませられればそれに越したことはないのですが・・・

105:デフォルトの名無しさん
07/03/14 18:00:33
VB.NETをまだ勉強していないのですが、よろしければ質問させてください

現在C、C++、WIN32APIを用いてウィンドウアプリを作成しているのですが
VB.NETでUIを作成し、Cでイベントハンドラのソースを書くことは可能なのでしょうか?
また、その場合CとWIN32のみで作成した場合と処理速度に差がでるのでしょうか?
(現在作っているプログラムはリアルタイム処理なため、処理速度が重要)

理由はデータベース関連の書籍やサイトがほとんどVB、C#、perl、JAVAなどのため
MFCでUIとデータベースを実装するよりも、VB.NETに移行した方がいいのかと思ったからです
C++/CLIなるものがあるようなのですが、何分C以外の言語はほとんど無知なため
よろしければご教授願います

106:デフォルトの名無しさん
07/03/14 18:07:23
>>95
set n=0
for /f "delims=, tokens=4" %%0 in (hoge.csv) do if %%0=04 set /a n+=1
echo %n%


107:デフォルトの名無しさん
07/03/14 18:33:18
>>105
結局ナニが知りたいのかよく読み取れないが、
とりあえずPInvokeでググってみたらどうかな

cで作ったdll内の関数を呼び出せるか、という意味ならそれは可能。

108:105
07/03/14 19:31:17
>>107
わかりにくい文章ですいません
VBを使ってウィンドウを作成し、自分でCで作った関数を呼び出して使えるのか
ということが知りたかったんです
どうやら可能なようですね
PInvokeもかなり参考になりました
ありがとうございました

よろしければ、VBでCを呼び出した場合と、WIN32+Cの場合で処理速度に
差がでるか教えていただければ幸いです
wikipediaのVBの概要に
「ただし、実行速度はC/C++で記述したネイティブプログラムに比べ
10倍から20倍遅いと言われている。」
と書いてあったもので、あまりにも処理速度に差がでるならば使えないので・・・
これはCで書いた関数をVBで書き直した場合、これほどの差がでるということなのでしょうか?


109:デフォルトの名無しさん
07/03/14 19:55:57
>>106
if %%0=04

if %%0==04



110:デフォルトの名無しさん
07/03/14 20:31:54
>>108
日本のwikipediaなんか話半分に聞いとかなきゃダメでしょw

それたぶんVB6以前の話だと思うし。
VB6だってメモリを直接操作できないことによるオーバーラップがネックになるような
ごく一部の処理(特定の文字列操作)以外はそんな遅くなる理由がないし。

っていうか、あんたの用途に適合的かどうかはあんた自身で試すしかないでしょ。

111:105
07/03/14 20:39:37
>>108
wikipediaを信頼しすぎたようですね
大丈夫なようで安心しました
時間はかかると思いますが、自分で試して頑張ってみることにします

ありがとうございました

112:デフォルトの名無しさん
07/03/14 20:41:20
アンカーミス・・・>>110でした
スレ汚し失礼

113:デフォルトの名無しさん
07/03/14 21:47:44
10万行くらいあるテキストファイル(1行100文字前後)の最後の100行を
読みたいのだけれどもっとも高速な方法を教えてくれ。


114:デフォルトの名無しさん
07/03/14 22:01:17
頭から読むしかない。

文字列配列を要素100個分用意して放り込んでいき、
最後まで埋まったら頭から上書きしていく。

115:デフォルトの名無しさん
07/03/14 22:07:49
>114
>頭から読むしかない。
げげ、ほんまかいな。困った。
じゃあ、逆にファイルを書き出すときに末尾に追加するのではなくて、
先頭に行を追加することはできるかい?それが出来れば
読むときは頭から100行読めばいいので。どう?

116:デフォルトの名無しさん
07/03/14 22:12:02
そんな馬鹿なw
天然無脳(つまり114のことだが)だって1万ページある本の最後の1000行を
書き出すのに巻頭から全部目を通さないだろう

117:デフォルトの名無しさん
07/03/14 22:21:19
>116
その方法を教えてくれ。たのむ。

118:デフォルトの名無しさん
07/03/14 22:25:14
ケツからファイルポインタをデクリメントしていって1000個目の改行コード探すだけじゃん。
そこから先は普通にテキストとして読めばいい。

119:デフォルトの名無しさん
07/03/14 22:32:41
>118
サンプルコードを教えてくれ。たのむ。俺は、ファイルポインタなんて
使った経験がない。
StreamReaderでファイルを開いてReadLine() で一行ずつなら読める。

120:デフォルトの名無しさん
07/03/14 22:35:27
氏ねよ

121:デフォルトの名無しさん
07/03/14 22:39:37
>>119
FileStreamクラスを使うんじゃよ

122:デフォルトの名無しさん
07/03/14 22:43:56
>>113
>>119ってもしかしてテキストファイルなら、TextBox系でLoadFileしておいてTextを
String変数に代入してLength目から逆追いするってのと同じじゃないだろうか。
それなら直ぐ書けるのじゃないだろうか。
って俺はとてもヒマないからやってはあげはしないがw

123:デフォルトの名無しさん
07/03/14 22:45:37
あ、ただTextBoxBaseは最大文字数に制限あったっけ??

124:デフォルトの名無しさん
07/03/14 22:49:38
>>122,123は論外

125:デフォルトの名無しさん
07/03/14 23:18:39
プログラム始めてから数ヶ月の俺にも出来たぜw

126:デフォルトの名無しさん
07/03/14 23:24:16
>125
それを俺に教えてくれ。たのむ。

127:デフォルトの名無しさん
07/03/14 23:36:37
>>126
Dim a As New IO.FileStream("C:\a.txt", IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.None)
Dim count As Integer
Dim Bytes(a.Length - 1) As Byte
For I As Integer = a.Length - 2 To 0 Step -1
 a.Position = I
 If a.ReadByte() = 13 And a.ReadByte() = 10 Then
  count += 1
  If count = 1000 Then
   a.Read(Bytes, 0, a.Length - I)
   TextBox1.Text = System.Text.Encoding.GetEncoding("Shift-jis").GetString(Bytes)
   Exit For
  End If
 End If
Next
a.Close()

エンコードはシフトJIS
勘で作ったから保障はしないよ

128:デフォルトの名無しさん
07/03/14 23:44:13
色んな物がメチャクチャだなぁ

129:デフォルトの名無しさん
07/03/14 23:50:53
>Dim Bytes(a.Length - 1) As Byte
これで台無しだな

130:デフォルトの名無しさん
07/03/14 23:58:43
>>126
だからFileStreamクラスを調べろっつってんだろがボケ!!!

でもSeekとかPositionの性能が本当に良いかどうかは知らんよ。

131:デフォルトの名無しさん
07/03/15 00:01:41
>127
おおーーー、超サンキュウ!
さっそく試してみるわ。
>130
>ボケ
だから質問してるんだよ。俺に優しく教えろ!

132:デフォルトの名無しさん
07/03/15 00:06:09
だから悩んだり試したりする前にMSDNに目を通せと(ry

133:デフォルトの名無しさん
07/03/15 01:02:05
>>130はツンデレ

134:デフォルトの名無しさん
07/03/15 05:04:45
フォーム上にお絵かきするソフトで下記の例外がまれに発生するんだけど、
なんのことやらさっぱり分からん。

「InvalidOperationException:バッファ操作が現在進行中であるため、BufferedGraphicsContext を消去できません」

作り方が悪いのか?
どういう場合に発生する例外なのか、VBプロフェッショナル達よ、教えてくれ。




135:デフォルトの名無しさん
07/03/15 08:09:55
頭が悪いんだよ、きっと。
いや、確実に。

作り方が悪いのか?、だと?
お前さん以外にそういうトラブルを申し立てている人間がいるのかよw

136:デフォルトの名無しさん
07/03/15 08:15:47
>>127
そいつのベンチマークが見たいな。


137:デフォルトの名無しさん
07/03/15 09:51:10
>>125 こんなのでどうか

Public Function ReadTailLines(ByVal filename As String, ByVal lineCount As Integer)
  Dim sep() As String = {vbCrLf}

  Using ifs As IO.FileStream = IO.File.OpenRead(filename)
    Dim allBuf As New List(Of Byte)
    Dim len As Integer = lineCount * 100
    Dim pos As Long = ifs.Length
    Dim lines() As String

    Do
      pos -= len
      If pos < 0 Then
        len += pos
        pos = 0
      End If

      Dim tmpBuf(len) As Byte
      ifs.Seek(pos, IO.SeekOrigin.Begin)
      ifs.Read(tmpBuf, 0, len)

      allBuf.InsertRange(0, tmpBuf)
      lines = Text.Encoding.Default.GetString(allBuf.ToArray(), 0, allBuf.Count).Split(sep, StringSplitOptions.None)
    Loop While pos > 0 And lines.Length < lineCount
(続く)

138:デフォルトの名無しさん
07/03/15 09:52:07
    If lines.Length <= lineCount Then
      Return lines
    Else
      Dim ret(lineCount - 1) As String
      Array.Copy(lines, lines.Length - lineCount, ret, 0, lineCount)

      Return ret
    End If
  End Using
End Function

初めてVB.NETでプログラム組んだのでちょいと汚いがな

139:137
07/03/15 09:52:57
>>113 の間違いだ。すまん

140:デフォルトの名無しさん
07/03/15 12:22:10
>>134
どんな時にその例外が投げられるかはMSDN見れ。

なんで、もしくはどこで、出てるのかは
お前さんにしかわからない。

とりあえずコード上での発生箇所を探るしかないとおもう

141:デフォルトの名無しさん
07/03/15 12:26:42
例外発生ネタは発生個所を晒してもらわないことには回答のしようがないんだよな

142:デフォルトの名無しさん
07/03/15 12:50:39
134だけど、例外の発生箇所は下記のとおりだよ。

場所 System.Drawing.BufferedGraphicsContext.Dispose(Boolean disposing)
場所 System.Drawing.BufferedGraphicsContext.Dispose()
場所 System.Drawing.BufferedGraphicsContext.AllocBufferInTempManager(Graphics targetGraphics, IntPtr targetDC, Rectangle targetRectangle)
場所 System.Drawing.BufferedGraphicsContext.AllocBuffer(Graphics targetGraphics, IntPtr targetDC, Rectangle targetRectangle)
場所 System.Drawing.BufferedGraphicsContext.Allocate(IntPtr targetDC, Rectangle targetRectangle)
場所 System.Windows.Forms.Control.WmPaint(Message& m)
場所 System.Windows.Forms.Control.WndProc(Message& m)
場所 System.Windows.Forms.ButtonBase.WndProc(Message& m)
場所 System.Windows.Forms.Button.WndProc(Message& m)
場所 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

自分の作ったコード内ではないので、困ってるんだよ。


143:デフォルトの名無しさん
07/03/15 12:54:43
そんな内部のことはどうでもいいから最後に実行された自分のコードを確認してくれ

144:デフォルトの名無しさん
07/03/15 13:56:01
>>142
> 自分の作ったコード内ではないので、困ってるんだよ。 
俺たちも自分の作ったコード内じゃないことの上にソースすらないからどうしようもないんよ(・ω・)

145:デフォルトの名無しさん
07/03/15 14:14:50
>>144
ソースがないと直しようがないじゃないか・・・

なんか ちらつき防止のダブルバッファの使い方を
間違えたんじゃないかと思うんだが?

どうなの、詳しい人?

それと、思い出したんだが.VisualStudioに逆アセンブラがついてた気がする。
難読化されていなかったらソース解析できる可能性があるよ。

146:デフォルトの名無しさん
07/03/15 14:16:38
ごめん>>144>>142が同一人物だと勘違いした。OTZ

147:デフォルトの名無しさん
07/03/15 14:49:56
>137
誰かこれをVB.NET2003に翻訳してくれ。たのむ。


148:デフォルトの名無しさん
07/03/15 16:47:19
VB.netを使って、サーバーやサイト上のデータ(htmlとかtxtとか)をダウンロードし、
PC内にためこんでデータベース化するソフトを作りたいんですが、
どういう機能を使えばいいのかわかりません。
どういう機能を使えばweb上のデータをDLできるのでしょうか?ADO?ASP?
また、それを学ぶのにお勧めの本などありましたら教えていただけると幸いです<(_ _)>


149:デフォルトの名無しさん
07/03/15 18:12:11
>>148
MSDN

150:デフォルトの名無しさん
07/03/15 18:43:47
VB.NETで作成したEXEファイルを自動的に配布するツールとかないですかね?
クライアントはIEが前提で

ノータッチデプロイメントでいいやって思ってたら、社外からのインターネットアクセスはTAMってやつが邪魔するのよ

151:デフォルトの名無しさん
07/03/15 19:00:29
んーーーーーいろいろ考えたけど
IISにローカルのEXEファイルとサーバサイドのファイル更新日時比較するスクリプト仕込んだポータルサイトを置いといて
そのスクリプトでFTPダウンロードする方式しか思いつかんな
でもかっこ悪いよなこんなやり方
セキュリティ警告のダイアログがウザそうだし

152:デフォルトの名無しさん
07/03/15 19:11:05
フロッピーで郵送

153:デフォルトの名無しさん
07/03/16 00:00:19
if x < 1e10 then
って書いたら、勝手に
if x < 10000000000 then
ってなるのだが、ゼロが並んでいると分かりにくいので、1e10のまま
にしたいのだが、方法はあるか?

154:デフォルトの名無しさん
07/03/16 00:22:53
VBって16進も勝手に整形するよね。もうアホかと。

Const tenBillion as Integer = 1000000000

とか、

if x < 10^10 then

ぐらいか、手の打ち所は?

155:デフォルトの名無しさん
07/03/16 00:31:47
>>153自動整形機能を切るのはダメ?

156:デフォルトの名無しさん
07/03/16 00:40:54
Int64.Parse( "1e+10", NumberStyles.AllowExponent )

ww

157:デフォルトの名無しさん
07/03/16 00:49:55
>>137
それだと、lines.Length=lineCountのとき、戻り値の最初の行が途中からにならないか。

158:デフォルトの名無しさん
07/03/16 04:51:37
134だよ。

ソースを提示したいけど、サイズがでか過ぎてムリだよ。
ミニマムコードを示せればいいんだけど。。。

とりあえず、情報を探してみたけど、
URLリンク(forums.microsoft.com)
URLリンク(www.codeproject.com)

似た現象はあるようだけど、解決策はかいてなかった。
下のは、Graphics.Flushを呼べと書いてあるけど、効果は不明。

う〜ん、はまった。。。



159:デフォルトの名無しさん
07/03/16 10:09:26
VB.NET2003でソフトを動作させていると
IOExceptionが発生し、内容は
このコマンドを処理するのに必要な記憶域をサーバーで確保できません

こんなエラーが時々出る様子

やっている処理は以下のようなもの(普通にありえないんだが別会社のソフトの関係で仕方なくこうなっている)
OSはすべてXPのSP2
ウィルスバスターインスコ済み

一定間隔(処理完了から次の処理開始までが10秒ほど)
PC2〜10からPC1にある大量のファイル(10000ほどある時もある)を全てなめて計算しているんだが
このときに出ている模様

で、検索してみるとサービスで使用しているスタック領域が不足しているので(XPのデフォは15)、これを現在の値から引き上げてやる模様
これが不足する理由ってのがよくわからないけど、他の人は単純に20とか30にまで引き上げてやれば解決しているみたい

外部から共有フォルダに接続してガリガリ読み込むと単純にネットワークサービスが使うメモリが不足するって事なのかな?
あと、これは・・・PC1に対して行うのかPC2〜10に対して行うんだろうか・・・
PC1だとは思うけどレジストリなのでおいそれと変えたくない予感

もし、何か知ってる人居たら教えてくれないか?

160:デフォルトの名無しさん
07/03/16 10:42:42
>>159
その質問に答えられるのはエスパーかペテン師ぐらいだろう。
VB.NET2003でどんなソフトを作ってんのよ。WinFormアプリかサービスか、
通信は共有フォルダなのか独自にやってるのかはっきりしろ。

161:デフォルトの名無しさん
07/03/16 10:54:54
>>160
ごめ、説明不足

WinFormアプリで
PC1の共有フォルダを介してPC1のファイルを
PC2〜10のWinFormアプリ各々がチェックしに行ってる状態

PC1のレジストリにはIRPStackSizeの項目は設定されていない
また、パフォーマンスの詳細設定で
パフォーマンスの優先はプログラム
メモリ使用量はプログラム
なぜか仮想メモリは370〜700固定

IRPStackSizeの変更後の値をネットで調べると15が多いようだが
マージンとってそれよりも大きな値(20〜30とか)に設定しても大丈夫なのかな?
出来れば設定値の基準値が知りたいところではあるけれど・・・

また、PC1では基本的に操作しないのでパフォーマンス設定も
サーバOSのデフォのように変えてやったほうがいいんだろうか?

PC1の大まかなスペックはP4 2.8Gでメモリ512M

ん〜・・・説明へたでゴメ


162:デフォルトの名無しさん
07/03/16 11:00:38
>>148
Webサービスでがんばれ

163:デフォルトの名無しさん
07/03/16 12:45:40
TextBoxのMaxLengthプロパティってディフォルトで32767文字もあるけれど、
10文字で十分なのだけれど、この値が大きくても小さくても、プログラム
起動してタスクマネジャでメモリ使用量比べても、余り違わないのだけれど、
これはどういうこと?1000個のTextBoxでテストしてみたが良く分からない。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4333日前に更新/125 KB
担当:undef