VB.NET質問スレ (Part19 ..
[2ch|▼Menu]
39:デフォルトの名無しさん
07/01/18 14:38:56
>>36
Windowsでサーバはダメだよ
2000Pro等だとそもそもサーバ動かしてはいけないし、XP Proだと10台まで

40:デフォルトの名無しさん
07/01/18 14:52:50
>>39
馬鹿?
ソケットのクライアント・サーバの役割としてのサーバと、一般的なOSの役割としてのサーバを混同してないか?

じゃあ、あんたのところなIPメッセージとか10台限定してるんかい?
あれはクライアント兼サーバでソケット通信ですよ。

41:デフォルトの名無しさん
07/01/18 14:55:52
URLリンク(www.apache.jp)
馬鹿だよね。

42:デフォルトの名無しさん
07/01/18 15:03:03
技術的な話してるんだからいいんじゃねえの
答えられないなら黙っといたほう恥かかないと思うよ

43:デフォルトの名無しさん
07/01/18 15:06:04
役にも立たない無駄なソフト作る時間が可哀想と思ってな

44:デフォルトの名無しさん
07/01/18 15:07:49
>>42>>40宛てでしょ。

45:デフォルトの名無しさん
07/01/18 15:16:19
明らかにプログラミングに関する話で
運用環境の事など知ったことか。


46:デフォルトの名無しさん
07/01/18 15:22:12
サーバ側で受信起動の度にスレッド投げちまえ。

47:デフォルトの名無しさん
07/01/18 15:47:16
接続されたものを受信するかどうかは自由だから君のセンスで実装すればよい。

48:デフォルトの名無しさん
07/01/18 18:53:01
すいません、学校でvisual studio.netを使いvbをやってるんですが家で
vbの宿題をやりたいのですがvisual studio.netと同じ環境のフリーソフトはありますか?

49:デフォルトの名無しさん
07/01/18 19:08:14
SharpDevelop

50:36
07/01/18 19:53:09
>>えらいみなさん
返答ありがとうございます。

BeginReceiveを読んでAcceptコールバックから抜けると
次々接続要求が来たとき全て同様にAcceptできるので素敵なんですが、
Acceptコールバック内でデータが来るまでブロックしちゃうと
その間別の接続要求を受け入れられなくなっちゃうんですよね。
BeginReceiveの後タイムアウトとしてReceiveコールバックが呼ばれてくれると
一番嬉しいのですが、タイムアウト設定は見当たりません。

VB.NETで非同期ソケットを実現させている方々は
BeginReceiveを使ってないのでしょうか・・・

>>48
Visual Studio 2005 Express Editionはいかが?

51:デフォルトの名無しさん
07/01/18 21:03:42
>Acceptコールバック内でデータが来るまでブロックしちゃうと
どこが非同期なんだ?

52:デフォルトの名無しさん
07/01/18 22:33:10
string型の一次元配列(領域数は44)をつくり、各領域に1文字ずつひらがなを格納したい場合、どう書けばよいでしょうか?
44行にわたって代入文を書かなくてはならないのでしょうか?
それともC言語のように1行で纏めて書く事も出来たりしますか?

平仮名44文字は例として出しただけで、本当は100個近く別個に格納したいと思っているのですが・・・
100行も代入が続くと見た目が美しくないというか冗長に見えると思いますが、
VB.NETはそういうものだという認識であるべきなのでしょうか?

53:デフォルトの名無しさん
07/01/18 22:40:22
ファイルから読み込む

54:デフォルトの名無しさん
07/01/18 22:43:10
まあ文字列を for でだな

55:デフォルトの名無しさん
07/01/18 22:50:17
一次元配列の中身をシャッフルしたいのですが、どうしたら良いでしょうか・・・
VB2005です

56:デフォルトの名無しさん
07/01/18 23:02:20
各要素ごとにどれかの要素と入れ替えればいい

57:デフォルトの名無しさん
07/01/18 23:17:04
>>52
string[] hiragana = new string { "あ", "い", "う", ・・・}

ほとんどC言語と同じだな


58:57
07/01/18 23:22:09
間違えた。
string[] hiragana = new string[] { "あ", "い", "う" };

必ず一文字ならこんなのもあるよ。

char[] hiragana = "あいうえお".ToCharArray();


59:デフォルトの名無しさん
07/01/18 23:24:27
>>55
どうシャッフルするか(ルール)は自分で書くしかないヨ!

60:デフォルトの名無しさん
07/01/18 23:26:40
>>57-58
あー、ここは VB スレだ。まあ大差ないが。


61:デフォルトの名無しさん
07/01/18 23:27:45
>>52
forで'あ'から'ん'まで回せ

62:57
07/01/18 23:31:57
>>60
うは!!!!orz

Dim hiragana As String() = New String() {"あ", "い", "う"}
Dim hiragana As Char() = "あいうえお".ToCharArray()


63:デフォルトの名無しさん
07/01/19 00:17:38
Dim hiragana As String() = {"あ", "い", "う"}
でいいかと。

64:デフォルトの名無しさん
07/01/19 06:36:41
便乗して横から質問させて下さい。
連続した文字である時、文字コードを使って代入するという事は出来るのでしょうか?
for文を使って文字コードの値を1つずつ増やして代入するという処理をループで回す事が出来れば簡潔にかけますよね

65:デフォルトの名無しさん
07/01/19 07:00:19
できる

Char 型とか意識した事もないんだろな

66:デフォルトの名無しさん
07/01/19 14:50:15
別プロセスのフォームに存在する特定のコントロールの
ウインドハンドルが判っているときに、
そのコントロールにフォーカスが
あるかどうかの判定はどうすれば可能でしょうか?

67:デフォルトの名無しさん
07/01/19 15:13:07
ウィンドハンドルいらないから、コントロールのフォーカスがあたれば
INIでも更新して、外れればINIを戻すでも実装できるし、
INIの代わりにプロセス間通信でもいいし。

68:デフォルトの名無しさん
07/01/19 15:37:44
>>67
レスどもです
別プロセスのフォームって言うのは、ソースがどっか行っちゃってるPGで
自分が中身を触れる状態には無いのです。
コントロールIDを特定してハンドルは取得出来たのですが、
フォーカスがあるかどうかの判定がうまくいきません。


69:デフォルトの名無しさん
07/01/19 16:17:03
SetFocusAPI
の引数と戻り値で判定し、
判定後フォーカスを元に戻してやるとかダメかな。

70:デフォルトの名無しさん
07/01/19 16:49:39
>>69
ありがとうございます、やってみます

71:デフォルトの名無しさん
07/01/19 17:20:14
別プロセスだと駄目だった希ガス

72:デフォルトの名無しさん
07/01/20 23:42:53
文字列が、正しいファイル名(パスが付いていても良い)かどうか
判定する方法はあるか?
"C:\path1\path2\filename.txt" GOOD
"fasdjkfas://))(()))239hj$%&" BAD
みたいな判定をしたいのだが。

73:デフォルトの名無しさん
07/01/21 00:27:25
>>72
それが人にものを訊く態度か
Path.GetInvalidFileNameCharsでも見とけや阿呆

74:デフォルトの名無しさん
07/01/21 00:58:45
>73
さんきゅう。
VB2005から使えるのか。
俺は2003なので使えないな。でも参考になったぜ。感謝しているぞ。


75:36
07/01/21 10:08:13
遅レスながら・・
>>46のいうように接続ごとにスレッドたてることにしました。
ありがとうございました。

76:デフォルトの名無しさん
07/01/22 07:36:21
ContextMenuStripと全く同じ項目をMenuStripで使用したい場合
同じコードを2つ書かなくても良い方法が有りますか?
たとえばテキストボックスの「編集」なんかを、右クリックを
プルダウンメニューで使用したいのです。
お願いします。


77:デフォルトの名無しさん
07/01/22 10:08:22
おはようございます
早速ですが、異なるプロシージャで変数を共有したい場合、どういった方法が最も妥当だと言えるのでしょうか
弱い頭で考えたわたしなりの方法としまして、グローバル変数、引数の渡しっこ、変数を格納するただそれだけのクラスを作る、
ぐらいしか思いつきません、皆様方はいかなる方法をとり日々プログラミンスっているのでしょう
何とぞよろしくお願いし□


78:デフォルトの名無しさん
07/01/22 10:47:42
>>76
両方のイベントハンドラで一つのメソッド呼べばいいじゃん

>>77
クラスフィールド
つーかクラスって知ってる?


79:デフォルトの名無しさん
07/01/22 10:52:53
すいません。
VB2005でSerialPortのReadで取得したByteデーターを
Unicodeに変換する方法を教えてください。

80:デフォルトの名無しさん
07/01/22 11:43:31
>>79
Encoding周りで出来ないの?


81:79
07/01/22 11:53:59
>>80
>>Encoding周りで出来ないの?
はい、送信のUnicode から s-jisは出来たのですが。

Dim enc As Encoding = Encoding.Unicode
Dim byteArray() As Byte
ReDim byteArray(SerialPort.BytesToRead)
SerialPort.Read(byteArray, 0, SerialPort.BytesToRead)
Dim strGetText As String = enc.GetString(byteArray)
これをTextBoxに表示させていますが、「...」になります。
バイト配列には入っています。

82:デフォルトの名無しさん
07/01/22 13:30:43
>>81
それじゃUTF-16 =>UTF-16の変換になってるよ。

83:デフォルトの名無しさん
07/01/22 14:03:56
Visual Basic 2005 Express Editionで
Labelを使うたびにAutoSizeをFalseにするのが面倒なんですが、
プロパティのデフォルトの値を変更することは可能でしょうか?
可能であればやり方を教えてください。

84:79
07/01/22 14:04:58
>>81
そうでした。
EncodingクラスのConvertメソドを使うことで出来ました。
おさがわせしました。

85:デフォルトの名無しさん
07/01/22 14:10:51
VB2005の配列の宣言は、どれが良いんでしょう?
全部意味が違ってるみたいですが・・・

Dim Test1() As String = New String(4) {}
Dim Test2(4) As String

Dim Test3() As String
Dim Test4 As String()

86:85
07/01/22 17:21:32
たぶん分かりました。
コンパイルされた後のMSILを見ると全部同じになるみたいです。
(上記の例はどうかわかりませんが・・・)
なので、好きなように書いても構わない。が答えで良いと思います。

参考URL
URLリンク(forums.microsoft.com)

87:デフォルトの名無しさん
07/01/22 17:23:08
同じならすきに書いていいなんて素人の判断するな

88:85
07/01/22 18:13:58
参考URLの

>けして冗談だけではなくて。 一人でプログラミングしているときは、
>どの書き方をするかは好みの問題です。
のコメントを

>好きなように書いても構わない。
と解釈したのは、まずかったですか?

あとの文章に可読性を第一に考える等、色々書いているのを
記載しなかったのは、あやまります。

89:デフォルトの名無しさん
07/01/23 07:58:23
>>85
枝葉末節

90:デフォルトの名無しさん
07/01/23 09:55:59
>>87
どう判断すべきか書きましょう。 34点。
>>89
情報量ゼロ。 1点。

91:デフォルトの名無しさん
07/01/23 11:54:15
>>90
国語の読解力。1点。

92:デフォルトの名無しさん
07/01/23 16:53:17
Dim Text1 As String()

オススメ。
後々これが一番しっくり来ると思う。

93:デフォルトの名無しさん
07/01/23 17:30:41
あっそ。

はい、次。

94:デフォルトの名無しさん
07/01/23 18:06:02
Dim strList as new List(of String)


95:デフォルトの名無しさん
07/01/23 18:09:16
C#のように考えるなら、下みたいに書いた方が良いかな?

Dim text1 As String()
Dim text2 As String() = New String(4) {}
Dim text3 As String() = New String() {"1", "2", "3", "4", "5"}

96:デフォルトの名無しさん
07/01/23 18:11:08
Dim Text1 とやった時点で、コーディング作法の勉強しなおし。

97:デフォルトの名無しさん
07/01/23 18:25:34
何言ってんだ

98:デフォルトの名無しさん
07/01/23 18:25:48
>>85

1> Dim Test1() As String = New String(4) {}
冗長

2> Dim Test2(4) As String
いいね

3> Dim Test3() As String
いいね

4> Dim Test4 As String()
要素数を指定するとき2と、記法が異なるね

配列数指定の有/無でも一貫しているので、
満場一致で2、3に決まりました。
初心者はこちらをご使用ください。

99:デフォルトの名無しさん
07/01/23 18:38:42
あっそ。

はい、次。


100:デフォルトの名無しさん
07/01/23 18:50:26
ひとりつまんない奴がいますね
いつものキチガイの方でしょ?

101:デフォルトの名無しさん
07/01/23 18:57:07
あっそ。

はい、次。

102:デフォルトの名無しさん
07/01/23 19:50:47
反応したんならビンゴか。
ネット匿名掲示板のレスで特定できるほど
腐臭が漂ってるから、リアルでは相当気をつけなよ。

103:デフォルトの名無しさん
07/01/23 19:51:18
あっそ。

はい、次。

104:デフォルトの名無しさん
07/01/23 19:52:11
バカとバカに釣られてるヤツだけなのかここは

105:デフォルトの名無しさん
07/01/23 20:33:47
>>98
どうやら君とは理解しあえないようだ。


106:デフォルトの名無しさん
07/01/23 20:36:20
次元数まで含めて変数の性質に見える。
気持悪い。
古い書き方と互換性持たせるだけの書き方はやめた方がええ

107:デフォルトの名無しさん
07/01/23 21:05:23
>>105
皆そうだとおもうけどw

>>106
固定のサイズの配列の場合

Dim text1 As String(10)

って書けないのが厄介。
むむむ。

108:デフォルトの名無しさん
07/01/23 21:15:39
配列って固定サイズだろ

109:デフォルトの名無しさん
07/01/23 21:17:36
>>108
ちょっとくらい推察してやれよ

110:デフォルトの名無しさん
07/01/23 21:33:01
いやです

111:デフォルトの名無しさん
07/01/24 00:16:49
どくいり きけん たべたら しぬで

これをプログラミングしてください もちろんVBで!!!

112:デフォルトの名無しさん
07/01/24 00:59:44
ネタはオヤジ。
知能はコドモ。

113:デフォルトの名無しさん
07/01/24 09:10:01
VB2005で作ったソフトとDelphi.NETで作ったソフト

どちらの方が実行速度が速いでしょうか?

114:デフォルトの名無しさん
07/01/24 09:56:17
どちらも遅い

115:デフォルトの名無しさん
07/01/24 10:02:29
VB2005もDelphi.NETもMSIL(中間言語)にコンパイルされてから動くから
MSILを書くときどれだけ効率よく書けるかで違ってはくるだろうけど
.NET Frameworkを使うから実行速度はほとんど変わらないはず。

116:デフォルトの名無しさん
07/01/24 10:07:04
>>114
>>115
レス有難うございます。

Delphi Win32にするかなぁ・・・しかし、Vista対応を考えると・・・。

117:デフォルトの名無しさん
07/01/24 10:13:45
ハァ?VistaはWin32が動かないとでも言うのか?

118:デフォルトの名無しさん
07/01/24 10:28:12
>>117
お前以外に誰もそんな事いってねーよ。

119:デフォルトの名無しさん
07/01/24 10:38:25
>>118
そんな事って?

120:デフォルトの名無しさん
07/01/24 10:47:32
この問いかけは無理がある。

121:デフォルトの名無しさん
07/01/24 11:39:33
Delphiアプリは、VistaのAlt+Tabで変な挙動をする。
変なウインドウがあるからかな

122:デフォルトの名無しさん
07/01/25 02:53:45
>>116
何に処理速度が必要なのか言ってみ

123:デフォルトの名無しさん
07/01/25 09:01:08
>>122
多分、いってみただけだろ?w
こういう奴の大半はしったかで、とりあえずMSの悪口いってみればかっこいいと思ってる奴。


124:116
07/01/25 10:45:58
>>122
PictureBoxにグラフを書きたいのだが
VB6の時、書くポイントが多くなると描画に時間が掛かった。
どうもコンポーネントを経由するから時間が掛かるらしい。

それに対しDelphiの場合、その経由が無くかなり速かった。
(結局VB6で作ったのですが・・・)

で、同じようなモノを新しく作る事になり、ついでに開発環境を新しくしようと言う事で
 VB2005、Delphi.NET、Delphi Win32
のどれにしようかと考えて、ちょっと質問させて貰ったんですけどね。

vista対応や64bit対応や色々と注文もあったりして・・・

125:デフォルトの名無しさん
07/01/25 10:46:05
VB.NET始めようと思ってるんだけど良書おせーてください
もしくは買っちゃいけない悪書

126:デフォルトの名無しさん
07/01/25 11:15:51
>>124
VB6で描画で早くやろうと思ったら、APIを使うのがまあ筋でしょ?
.netであれば別に言語がどうこうは大差ない。

>>125
@ITあたりを読破してからでもおそくないべ。


127:デフォルトの名無しさん
07/01/25 11:20:37
@ITってあれか
以前Cの記事だったかなんだったかで適当な事書いてあったから信用してないんだよな・・・

128:デフォルトの名無しさん
07/01/25 11:33:40
こんなところで入門書の選択を聞く奴よりはよっぽど信頼できる。


129:デフォルトの名無しさん
07/01/25 11:37:43
>>126
API・・・まあそうなんだけどね。
へっぽこなんで使いこなせませんでした。

速度で言えば
Win32>.net
なんだよね? やはり。

130:デフォルトの名無しさん
07/01/25 11:38:29
>>128
そりゃすいませんw

131:デフォルトの名無しさん
07/01/25 12:43:00
川俣のあの記事結構いいと思うよ俺は。
VB6erじゃなくてもね

132:デフォルトの名無しさん
07/01/25 13:01:16
>>131
ありがとう
今見てる

133:デフォルトの名無しさん
07/01/25 13:32:30
string型変数に格納した文字列の中からy番目の文字を一文字消したいのですが、
hairetu.remove(y.1)
これでいいのかと思ったのですが何も起こりません・・・
ちゃんとyにも数字が入っているのですが

どこがおかしいのでしょうか?
そもそももっと違う方法でやるべきものなのでしょうか?

134:デフォルトの名無しさん
07/01/25 13:37:53
>>133
hairetu = hairetu.remove(y.1)

135:デフォルトの名無しさん
07/01/25 16:24:05
最近プログラムを始めた初心者なのですが、.NETでlogの計算をできるのでしょうか?
それとも自分で計算式を組まないとダメなのでしょうか?
もしできるのであれば、教えていただけるとありがたいです。
お願いします。

136:デフォルトの名無しさん
07/01/25 16:30:48
>>135
System.Mathクラス

137:デフォルトの名無しさん
07/01/25 16:34:51
「.NETでlogの計算」でググれ!
さすればおのずと答えが導かれるでしょう。

138:135
07/01/25 17:20:56
ありがとうございます。
解決しました。

139:デフォルトの名無しさん
07/01/25 17:37:13
>>135
Math.Log()

140:デフォルトの名無しさん
07/01/25 23:52:16
今オセロ作ってます
PictureBox1_Clickのメソッド内で
PictureBox1をクリックするとクリックした場所の升目に
絵(白黒のチップ)が描写されるプログラム作ってるんですけど
ウィンドウ縮小したり違うウィンドウに被せるとチップの絵が消えるんだけど
消えないようにするにはどうすればいいんでしょう?
自分でも無学なりに調べてみたんだけど全然ワカラン
tipsサイトにAutoGraphics使ったら消えないとあったから使ってみたんだけどチップが1個しか描写できないからゲームにならん・・・

141:デフォルトの名無しさん
07/01/25 23:55:08
Paintイベントで再描画しる

142:デフォルトの名無しさん
07/01/26 00:02:47
ピクチャーボックスのクリックダウンイベント中に
メッセージボックス出すことって可能?

143:デフォルトの名無しさん
07/01/26 00:13:19
クリックダウンイベント "中" に

144:142
07/01/26 00:20:26
>>143すみません間違えました
「クリックダウンイベントの中で」って言えばいいんだろうか

例えばピクチャーボックスをクリックして条件を満たした場合に
メッセージボックスで「条件を満たしました」みたいなことを出したいんですが

145:デフォルトの名無しさん
07/01/26 00:23:18
やってみればいいじゃないですか。


146:デフォルトの名無しさん
07/01/26 01:25:50
メッセージボックスに変数と文字を両方出力させたいのですがどう書けばできますか。

147:デフォルトの名無しさん
07/01/26 02:29:08
もっと具体的に書いてくれ。

MessageBox.Show(String.Format("変数nの値は{0}です。", n))

148:146
07/01/26 08:34:04
MessageBox::Show("n={0}","結果",MessageBoxButtons::OK);
のような感じにしたいのですが・・

149:デフォルトの名無しさん
07/01/26 08:43:14
ローカルウィンドウ見れ

150:デフォルトの名無しさん
07/01/26 11:02:12
MessageBox::Show("n=" + n, "結果", MessageBoxButtons::OK);


151:デフォルトの名無しさん
07/01/26 12:46:10
おまえら・・・なんでこんなレベル低い話やってんだよw

152:146
07/01/26 19:18:40
int n = 2;
MessageBox::Show(n + "abcdefg", "title", MessageBoxButtons::OK);
とするとcdefgと表示されnの数だけ文字が消えてしまうのですがどうしたらいいですか

>>151
すいません、ド素人なんです

153:デフォルトの名無しさん
07/01/26 19:29:28
ここVB.NETスレだよな?

154:147
07/01/26 20:12:18
>>152
その前にプログラムの経験ある?
んで >>147 はどうだったのよ。

なんか釣られてるような気がしてきた…

155:146
07/01/26 20:26:05
>>154
c++をちょっとかじった程度で.NETは入門書見ながらやってますがさっぱりです。
147はコンパイルできません。
MessageBox::ShowがMessageBox.Showとされてるのを見ると何か根本的に間違っている気がしてきました・・・

156:デフォルトの名無しさん
07/01/26 20:35:47
>>155
おまいはいったい何の言語を使ってるんだ
C++/CLIだったらスレ違い

157:146
07/01/26 20:39:19
>>156
Visual c++ .NET です

158:デフォルトの名無しさん
07/01/26 20:40:17
スレタイを100回読み直せ

159:147
07/01/26 20:40:59
>>157
まずはインターネットの使い方を…

160:デフォルトの名無しさん
07/01/26 22:09:20
この一連の流れワロタw

161:デフォルトの名無しさん
07/01/27 18:16:43
プロセスIDから親プロセスIDを得るにはどうすればよいのでしょう?
PerformanceCounter("Process","Creating Process ID","プロセス名")
だと、プロセス名が重複すると駄目だし。


162:デフォルトの名無しさん
07/01/27 18:58:51
Win32API の CreateToolhelp32Snapshot かな
NT4 じゃ使えないようだがまあいいよな今更

163:デフォルトの名無しさん
07/01/28 12:57:45
Formのクライアント領域にDrawLinesで連続した線分を描いてるんだけど、
Paintイベントがウィンドウのサイズを変更したことによって起こった場合と、
Invalidateメソッドによって起こした場合とで極端に違うみたいだ。

どうしてだろうか?
またこれを回避する方法はあるのかな。

164:163
07/01/28 13:00:20
【訂正】
× Invalidateメソッドによって起こした場合とで極端に違うみたいだ。
○ Invalidateメソッドによって起こした場合とでパフォーマンスが極端に違うみたいだ。
問題を再現できると思われるコードです。
  Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    MyBase.SetStyle(ControlStyles.ResizeRedraw, True)
  End Sub
  Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
    Dim pt As PointF() = New PointF(1000 - 1) {}
    Dim rnd As New Random
    Dim width As Integer = Me.ClientSize.Width
    Dim height As Integer = Me.ClientSize.Height

    Dim sw As New Stopwatch
    sw.Start()

    For i As Integer = 0 To 999
      With pt(i)
        .X = CSng(width * i / 1000)
        .Y = rnd.Next(height)
      End With
    Next

    Dim g As Graphics = e.Graphics
    g.DrawLines(Pens.Black, pt)

    sw.Stop()
    Console.WriteLine("Elapsed = {0}", sw.Elapsed)
  End Sub
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Me.Invalidate()
  End Sub

165:デフォルトの名無しさん
07/01/28 13:41:24
Invalidate は全体を再描画するわけだが

166:デフォルトの名無しさん
07/01/28 13:44:50
>>163
リサイズの方が遅いでいいのかな?
フレームの書き直しやマウスでのドラッグの処理でパワーをくってるのでは。
Invalidateとリサイズは別のフォームから操作するようにすれば条件は近くなると思う。

167:デフォルトの名無しさん
07/01/28 14:05:59
どんくらいちがうのん?


168:161
07/01/28 14:50:11
>>162
だんけです。

ネイティブのPerformanceCounterにはインスタンスインデックスとかがあって
区別できるようですが、.NETからはどうも指定できないみたい。


169:デフォルトの名無しさん
07/01/28 18:01:07
Me.WindowState = FormWindowState.Minimized
をした時、メモリの消費量(正確にはスワップされてるだけっぽいですが)が減りますが、これは内部でどのようなメソッドを呼び出しているのでしょうか。
最小化せず、メモリ消費量が減ったように見せたいのですが、、、

170:デフォルトの名無しさん
07/01/28 18:06:27
また意味わかんないことを言う奴が来たなあ。。

171:デフォルトの名無しさん
07/01/28 18:12:24
>>169
SetProcessWorkingSetSize(hProcess, 0xffffffff, 0xffffffff)  : kernel32.dll

172:デフォルトの名無しさん
07/01/28 18:22:10
>>171
分かりました。ありがとうございまくす。

173:デフォルトの名無しさん
07/01/28 21:26:09
教えてもらってくすくす笑うなぁぁぁぁ!

174:デフォルトの名無しさん
07/01/28 22:33:14
>>173
>>170

175:デフォルトの名無しさん
07/01/29 02:33:34
>>163
165が言うようにInvalidateはウィンドウ全書き換え。
で、ウィンドウのリサイズや別ウィンドウが重なった後の書き換えは
単純に矩形にならず、複雑な形でクリッピングする処理が入る。

リサイズでも全書き換えしたいなら SetStyle とか見てみ

176:デフォルトの名無しさん
07/01/29 03:26:07
二次元配列 Array1(3,3)とArray2(3,3)の中身を比べるプログラムを作りたいんですけど
どなたか助言をお願いします。

Array1とArray2の中身すべてに
Integer型の0、もしくは9が格納されています。
Array1とArray2の中身を見比べて全く一緒ならtextbox1に「○」と表示させたいと思っています。

(例)
Array1 Array2
001  001
101  101     ←中身が全く同じなので「○」
000  000

Array1 Array2
001  001
101  111     ←中身が違うので「×」
000  001

自分で調べてみてループや判定文を使うのだろうと思って頑張ったのですが
動作してくれません。初心者ですみませんがよろしくお願いします。

177:デフォルトの名無しさん
07/01/29 03:27:28
>>176
×Integer型の0、もしくは9が格納されています。
○Integer型の0、もしくは1が格納されています。

間違えました。ごめんなさい。

178:デフォルトの名無しさん
07/01/29 04:00:05
>>176
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i As Integer, j As Integer
Do
For i = 1 To 3
For j = 1 To 3
If Array1(i, j) <> Array2(i, j) Then
TextBox1.Text = "×"
Exit Do
End If
Next
Next
TextBox1.Text = "○"
Exit Do
Loop
End Sub

179:デフォルトの名無しさん
07/01/29 05:12:45
名前空間のステートメントが無効です。
全く何をすればいいのか解らない・・・です・・・

180:デフォルトの名無しさん
07/01/29 11:51:09
自作クラスのオブジェクトをCStr(MyObj)のように使いたいのですが、出来ますか?
出来るとしたらどんなメソッド(プロパティ?)を実装すればいいですか?

181:デフォルトの名無しさん
07/01/29 11:58:50
ToString()をオーバーライドしたらよかっぺ

182:デフォルトの名無しさん
07/01/29 12:37:44
>>175
回答する能力ないくせに無理して答えなくていいんだよ。
人の張ったサンプルを良く見たか?w

183:デフォルトの名無しさん
07/01/29 13:41:26
すんません。
Dim s() As String
と宣言して、どこかでインスタンスを作るとして、
インスタンスが既に出来ているのか居ないのか
判断する方法を教え下さい。

184:デフォルトの名無しさん
07/01/29 13:45:04
IsNothingとか Is Nothing とか。


185:183
07/01/29 15:28:32
>>184
もう少し具体的にお願いします。
Dim s() As String
'If s(0) Is Nothing Then  <- ここんとこ
ReDim s(0)
End If

186:デフォルトの名無しさん
07/01/29 17:33:22
>>185
184じゃない↓がでええやろ?
If s Is Nothing Then

187:183
07/01/29 17:46:27
>>186
ダメみたいです。(^^;
「変数's'は値が割り当てられる前に使用されいます。・・・・」
と出ます。

188:デフォルトの名無しさん
07/01/29 17:55:02
>>187
それは警告だから動くだろ?
警告が気に入らないなら↓のようにしとけ
Dim s() As String = Nothing

189:デフォルトの名無しさん
07/01/29 17:56:10
Dim s() As String

'変数初期化します。
ReDim s(0)

で駄目なの???



190:デフォルトの名無しさん
07/01/29 18:21:13
>それは警告だから動くだろ?

にVB厨の神髄をみた

191:デフォルトの名無しさん
07/01/29 18:23:49
ReDimなんか使うんじゃねぇ

192:デフォルトの名無しさん
07/01/29 18:27:37
>>183
だから大人しく入門書をまず読めって。
人様に質問なんざそれからにしろよ。

お前さんのやってることは、九九も知らないのに連立方程式の解き方を教えろと言ってるのと同じだ。
九九のレベルからいちいち掲示板で質問するつもりか?
そんなんじゃどんなに幸運でも100年かかるわw

193:デフォルトの名無しさん
07/01/29 18:39:22
ていうか、VBって無くなるみたいだからやらない方がいいんじゃないの?


194:デフォルトの名無しさん
07/01/29 18:43:20
>>193
ソースは?

195:デフォルトの名無しさん
07/01/29 18:52:28
Dim x(0)
ReDim x(100)
はVB6だとエラーになるが、VB.NETでは大丈夫というかIs Nothingを省きたいときの推奨の方法みたいだ。
ただ可変配列を使いたいときはコレクションの使用も考慮したほうがいい。


196:デフォルトの名無しさん
07/01/29 18:58:56
>>194
公式情報ではなくて、以前C#のスレに書いてあった。
VBは無くなるからC#にしておけとの事だとか。

197:デフォルトの名無しさん
07/01/29 18:59:45
kuma-

198:デフォルトの名無しさん
07/01/29 19:58:35
>>196
ゲイツ様はC#をあきらめてVBはこれまで通りプッシュされると聞き及んでいますが、
あなたはこれを信用しますか?

199:デフォルトの名無しさん
07/01/29 20:00:00
下らんそんなに馴れ合いたいのなら他所行きな

200:デフォルトの名無しさん
07/01/29 20:14:27
誘導、ここで好きなだけやってくれ

【VB.NET】VS2005 選ぶならどっち?【C♯】
スレリンク(tech板)l50

201:183
07/01/29 21:10:59
>>188
>>Dim s() As String = Nothing
サンクス、うまくいきました。

>>189
配列のサイズでデーターの大きさを所得したいので。
If s IsNot Nothing Then
  ReDim Preserve s(s.Length)
Else
  ReDim s(0)
End If
こんなことを考えてました。

>>195
実際はジェネリックでやってます、それと疑問は別物で。

>>193
客の要望でどっちでも書いてます。
C丼でも大してかわりが有りません。

202:デフォルトの名無しさん
07/01/29 21:23:04
201みたいなプログラマの書いたコードは怖くて使えんな。
なんだよその「動けばいいじゃん」っていう発想w

本当にそれでいいのか?
どんなショボい入門書にも書いてあることが理解できてないのに

203:デフォルトの名無しさん
07/01/29 22:21:51
>>183
初期化はちゃんとした方がいい。
>>188 はちょっと乱暴だが…w

204:デフォルトの名無しさん
07/01/29 22:23:49
それ以前に参照型って概念が理解できてないんでしょ

205:デフォルトの名無しさん
07/01/29 22:24:45
>>190
C#だったらどーするの?

206:デフォルトの名無しさん
07/01/29 22:32:09
だから「初期化しろ」って警告なんだろーが

207:デフォルトの名無しさん
07/01/29 22:34:07
初期化するだろ普通は

208:デフォルトの名無しさん
07/01/29 22:35:03
190も馬鹿だが>>205-206もな
初期化しろ?w
ちょっとニュアンス違うよ


209:デフォルトの名無しさん
07/01/29 22:41:13
>>208
だからVB厨じゃなかったらあの警告にどう対処するのか教えてよ。

210:デフォルトの名無しさん
07/01/29 22:43:56
>>208
日本語に不自由なのも大概にしとけよw

対処すべきだ、というニュアンスを匂わしてる奴を馬鹿だといってるんだけど

211:210
07/01/29 22:44:41
>>209の間違い

212:デフォルトの名無しさん
07/01/29 22:47:18
ああなんだ190ってあいつか。
おめーがアンカーつけねえからわかんなかったじゃねえか。

213:デフォルトの名無しさん
07/01/29 22:47:27
なにこの肥溜めスレ

214:デフォルトの名無しさん
07/01/29 22:57:13
初期化しないでも警告だけでコンパイル通るの?
VB.netって。
そうなら>>190はそういうこと言ってるんじゃないのかな



215:デフォルトの名無しさん
07/01/29 22:58:15
なんか祭ってるな。

>>212
お前の知り合いか?


216:デフォルトの名無しさん
07/01/29 22:59:31
むしろいちいち初期化しないとコンパイル通らない言語って具体的になんだよw

217:デフォルトの名無しさん
07/01/29 23:01:01
>>216
C#

218:デフォルトの名無しさん
07/01/29 23:02:52
おいおいw

219:デフォルトの名無しさん
07/01/30 00:17:17
>If s IsNot Nothing Then
>  ReDim Preserve s(s.Length)
>Else
>  ReDim s(0)
>End If
>こんなことを考えてました。

こりゃいったいどういうプログラムだ。


220:デフォルトの名無しさん
07/01/30 00:19:56
C#は初期化しないと通らんぞ。
正確にはどこでも初期化せずに、いきなり参照すれば、だが。


221:デフォルトの名無しさん
07/01/30 00:28:11
>>220
もういい馬鹿は糞して寝てろw

222:デフォルトの名無しさん
07/01/30 00:34:33
フィールドなら通るから勘違いしてんのか?


223:デフォルトの名無しさん
07/01/30 01:23:07
ローカル変数は初期化しないで参照することはできんな。

224:183
07/01/30 08:11:30
>>219
あるデーターを採取して配列に入れる、入れる前に
配列の個数を1つ増やす、値の代入は本質問と
無関係なため省略してある。
蛇足だが、その後は、プログラム終了時は、
配列はシリアル化してXMLファイルに
書き込み、次の起動時に配列に読み込む。
データーの数又データーの有無は、配列の要素数で
判断する。

>>202
何が書いてあるのだ。
あなたのコードを見せていただけますか。

>>203
>>201が初期化のコードだと言うことがわからんかな。


225:デフォルトの名無しさん
07/01/30 08:15:38
可変長なコレクションに配列は無いわ

226:200
07/01/30 08:26:08
>>224
馬鹿にして悪いけどしょうがないよ、あんた本当に基本がわかってないし、
自分が基本がわかってないっていう自覚すらないから。

例えば値型と参照型の区別、なんていう基礎の基礎からしてわかってないでしょ。
.NETにおける配列の意味もわかってない。

それだけでなくセンスもない。
理解できないだろうけど>>201みたいなコードってありえんから。

227:デフォルトの名無しさん
07/01/30 10:21:11
配列の個数を1増やす
や め て く れ
何故かVB6時代によくみたコードだな。
だがVB6でもこれはやめてほしい。

228:デフォルトの名無しさん
07/01/30 10:25:39
で、要素数-1がデータ数かよ。
要素0もしくは最後か?ともかく余った要素には何が入ってんだ?


229:デフォルトの名無しさん
07/01/30 10:29:30
初歩的な質問で申し訳ないのですが、画面のリストボックスに
スクロールが必要でない時も最初から縦スクロールバーを表示させるにはどうしたら良いでしょうか?
スクロールが必要な際は表示されるのですが、そうでない時はスクロールバー自体が消えてしまいます。

230:デフォルトの名無しさん
07/01/30 10:32:37
間違えました。
ListBoxではなく、ListViewでした。

231:デフォルトの名無しさん
07/01/30 12:27:13
だから一晩かかってるのに何故 List(of xxx)とか ArrayListにしないの?
シリアル化だって勝手にやってくれるし。


232:183
07/01/30 12:53:29
>>231
201をよく嫁
実際はListジェネリッククラスを使って、
インデクサで処理してる。

>>226
おまえが1番馬鹿なようだな。

いやもっと馬鹿が居た。
>>228


233:188
07/01/30 13:05:42
おいらのレスでずいぶん盛り上がりましたねw

234:デフォルトの名無しさん
07/01/30 13:42:48
>>232
VBの配列の指定数は要素数じゃないだろってだけの話だろう?
馬鹿馬鹿ばっかり言ってないでなぜ馬鹿なのか分かるように言ってくれよ

235:デフォルトの名無しさん
07/01/30 15:35:32
どなたか>>229-230に回答を…。
ググってみたら同じような質問があったのですが、それにも回答がついてませんでした。

236:デフォルトの名無しさん
07/01/30 15:46:37
ArrayListって要素を追加した順番に保存されますか?
またfor eachで取り出す場合はその順番は保証されていますか?

237:デフォルトの名無しさん
07/01/30 15:50:36
>>235
適当に空行足しておけばいいだろ。


238:デフォルトの名無しさん
07/01/30 16:08:05
>>236
そらそうだ

239:デフォルトの名無しさん
07/01/30 16:11:25
>>236
順番に保存する他にどんな保存方法があるんだ?
For Eachは要素を列挙する関数なんで、順番は保証されない。
とは言ったものの実際は順番に出てくるが。
正式にはインデクサを使え。

240:デフォルトの名無しさん
07/01/30 16:24:18
やっぱりfor eachは多用しないように気をつけようっと。

241:デフォルトの名無しさん
07/01/30 17:00:59
>>239
嘘つけw

242:デフォルトの名無しさん
07/01/30 17:33:39
>>237
通常IE等でスクロールがない画面で表示されるようなグレイアウトの状態でスクロールバーを表示したいので
改行を足すのはちょっと目的と変わってしまいます。
でもお答え頂きありがとうございます。

引き続きどなたかわかる方、回答お待ちしています。

243:デフォルトの名無しさん
07/01/30 17:34:05
反復処理の順序 For Each...Next ループを実行すると、コレクションの反復処理の順序は
GetEnumerator メソッドが返す列挙子オブジェクトの制御下に置かれます。反復処理の順
序は、Visual Basic ではなく、列挙子オブジェクトの MoveNext メソッドによって決まります。
したがって、コレクションのどの要素が最初に element に返されるかや、特定の要素の後
にどの要素が返されるかを予測することはできません。

特定の順序でコレクションを反復処理する必要がある場合は、そのコレクションによって公
開される列挙子オブジェクトの特性を把握していない限り、For Each...Next ループが適切な
選択肢とは言えません。For...Next ループや Do...Loop ループなど、別のループ構造を使
用した方が、信頼できる結果が得られます。

ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.ja/dv_vbalr/html/ebce3120-95c3-42b1-b70b-fa7da40c75e2.htm

244:デフォルトの名無しさん
07/01/30 17:37:55
Array"List"のListってのは何を意味してるか考えろよ。
列挙子オブジェクトの特性が把握できてるんだよ。w この場合。


245:デフォルトの名無しさん
07/01/30 17:41:43
おぉ!ということはfor eachでも問題ないんですね。
かっこいーからfor eachのほうを使うことにします。

246:デフォルトの名無しさん
07/01/30 18:13:46
>>242
なんの為か知らんがどうして表示したかったら、
ハンドルにAPIのShowScrollBarを投げろ。

247:デフォルトの名無しさん
07/01/30 18:42:22
>>244
それって確証ある?
つまり明文化された仕様として保障されてるか?
俺は怪しいと思うけどどうなんだろう。

>>239の言うように、Enumeratorは(クライアントのデータ構造が仮にリストでも)
リストを手繰っていくような動作を実装することは義務付けられてないでしょ。

自分でEnumeratorみたいの実装すること考えたって、パフォーマンス優先するなら
リストを手繰るような実装は俺ならしないけど。

248:デフォルトの名無しさん
07/01/30 18:57:18
どんな実装するってのか聞いてみたい。

249:デフォルトの名無しさん
07/01/30 19:03:40
例えばリストが、常に上の方に詰められる自己参照構造体配列(の配列)で実装されてたら、
Enumeratorは構造体配列を上からシーケンシャルに吐き出せば済むでしょ。

250:デフォルトの名無しさん
07/01/30 19:28:50
んーなんだそういう話か…
んー
なんていうかさ、自然に考えられる実装ってあるじゃん。
ある意味特殊な構造の実装になってる場合なんかは、
何を重視するかで実装は変わってくるが、
そういう場合は明確にドキュメントするよね?

で内部がただの配列であり、配列と同様に扱えると明記されてる
ArrayListで、予想外の順序で列挙される実装なんて有り得るか?
逆にそういう実装なら絶対に明記されてるだろ。

で保証はないって話は理解出来なくもないんだが、
現実はもっと怪しい仕様??なんてものがいっぱいあって、
そういうことと比べれば実質十分信用していいレベル。
まあ、絶対に明記されてる仕様にしか、一ヶ所たりとも依存しないってんなら
好きにすればいいけど

251:デフォルトの名無しさん
07/01/30 19:30:44
>>247
仕様はないでしょうな

現在存在するすべてのArrayListの実装がリスト順に返しているという事実と、
今後現れる実装が互換性を維持してくれるだろうという希望に頼るしかなかろう

252:デフォルトの名無しさん
07/01/30 20:30:49
>>250
わかんないお人だなあ。
だからさあ、リスト構造をしているのは、
換言すればリストの「ふり」をするのはListなりArrayListなのであって
Enumeratorじゃないんだよ。

253:デフォルトの名無しさん
07/01/30 21:11:30
いやそういうことじゃなくて現実の話をしてる
リストのセマンティクスをもつコレクションがリストじゃない並びの列挙を行うなら、
現実にはドキュメントされてる、普通。
ArrayListとかは実装が配列になってると明記されてたはず。
この状態で異なる列挙実装なんて普通考えられない。
もしそうなってるなら明記されてるはず、現実には。
他の人間が実装したリストはそりゃ分からんが。

254:デフォルトの名無しさん
07/01/30 21:35:36
なんかインターフェイスと実装をごっちゃに議論してるような気がするんだけど

255:デフォルトの名無しさん
07/01/30 21:38:03
??

256:デフォルトの名無しさん
07/01/30 21:40:50
>>253
倒錯してると思うよ。

普通逆でしょ。
IEnumeratorの要求仕様以上のspecial feature があるなら明記するよ。
明記してないなら、それは「期待すんなよ」ってことだと解釈するのが普通だと思うけど。

っていうか、ArrayListのがインデックス順に整列された配列、なんて記述を見た記憶は
俺にはないなあ。

257:デフォルトの名無しさん
07/01/30 21:51:25
>>254
たしかに>>256で初めてEnumeratorに I が付いたな

258:デフォルトの名無しさん
07/01/30 21:58:32
>>257
アホでしょお宅w

259:デフォルトの名無しさん
07/01/30 23:10:34
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.ja/dv_fxfund/html/71807ea7-9180-48a6-916f-35a5251d477f.htm
URLリンク(msdn2.microsoft.com)(VS.80).aspx
よくよめ


260:デフォルトの名無しさん
07/01/30 23:13:07
ArrayList クラス
必要に応じてサイズが動的に増加する配列を使用して、IList インターフェイスを実装します。


261:デフォルトの名無しさん
07/01/30 23:26:17
>>259
そんな隅っこにこっそり書いてあるのなw
なるほど勉強になった。

まあでも、個人的には本当にその記述信用していいのかな、
って気がしないでもない。
ちょっとありえない実装のような気がするんだよね。

ところでList(of T)に関してはどうなんだろう。

>>260
「配列を使用して」、っていうのは「正体はベタな配列に過ぎないんですよ」
って意味じゃないよ。

262:デフォルトの名無しさん
07/01/30 23:56:36
いまいちわからんなぁ

>まあでも、個人的には本当にその記述信用していいのかな、
>って気がしないでもない。
>ちょっとありえない実装のような気がするんだよね。

ArrayListみたいなのの実装で列挙が順序通りってのが、なんでありえない実装なわけ?

>「配列を使用して」、っていうのは「正体はベタな配列に過ぎないんですよ」
>って意味じゃないよ。

言ってる意味がちょっとよく分からん。

263:デフォルトの名無しさん
07/01/31 00:07:34
お前らもうええわ。
メアド交換して勝手にやってろ

264:デフォルトの名無しさん
07/01/31 00:14:05
>>262
文盲かよ。。だから処理の効率が悪いからだって何度も言ってるじゃん。。
順番にアクセスしたいのなら普通にインデクサ使えば良いだけだし。

後半の話も書いてるでしょ。
配列を使用して、というのは内部的に配列を使ってListが実装されてるって意味であって…
まあ、リストとかキューとか自前でデータ構造実装したことないなら理解できないかもね。

265:デフォルトの名無しさん
07/01/31 00:46:46
あのさ、何よりパフォーマンスだけが重要ならそもそも列挙なんて仕組みはいらんだろうに
そもそも列挙実装の仕組みとしては単純なインデックスが一番効率的だろうが
まあこれは内部実装が単純な配列の場合だが。
列挙なんて効率悪いものなんていらんから、順序通りの列挙の実装はありえないつてか?

お前の言ってること全然理解出来ねーよ
内部実装が単純な配列のコレクションなら順序通りが一番当たり前だろ。
なんでありえないわけ?
わざわざ順序通りにならないようにすんのか?なわけないよな。

ただのインデックス使えばいいってのは状況によってはもちろん分かるが
だからありえないってのは理解できん

どうしてもありえないってんならSSCLIでソースみてみろよ。



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

5374日前に更新/270 KB
担当:undef