VB.NET質問スレ(Part2 ..
[2ch|▼Menu]
237:デフォルトの名無しさん
09/03/05 09:00:49
>>236
そうやって聞いてる間にやってみてればとっくに結果出てるだろうに

238:デフォルトの名無しさん
09/03/05 09:33:36
まぁ>>224の言わんとしていることもわかる気はする

うちの新人君

classA a = new classA();
classA b = a;

b.hoge = hogegege;

あれ〜?aのhogeがかわっちゃってる・・・・とかねorz

239:デフォルトの名無しさん
09/03/05 14:19:41
若干VB.NETの質問から外れるのですが、
通常Windowsで使うアプリケーションを作成する場合
VBやVisual Cといったソフトを使いますが、こういったGUI用のソフトを使わずに
普通のC言語やBasic言語でも同じようなGUIのプログラムを作ることは
可能なのでしょうか?
もし可能だとしてやはりかなり手間がかかるのでしょうか?

240:デフォルトの名無しさん
09/03/05 14:29:34
>>239
全部自前でやるからめんどくせぇwwwww

241:デフォルトの名無しさん
09/03/05 17:59:39
>>239
全部メモ帳で書く。とか言ってるのか?
出来るけどめんどくせw
興味あるなら↓の「WindowsSDK編」でも見てみるといい
URLリンク(homepage2.nifty.com)

242:デフォルトの名無しさん
09/03/05 20:42:27
ビルドしたexeファイルにはWindowsなどに設定した個人的な情報はどの程度入っているでしょうか?
OSのユーザー名(アカウント)とかは入っているでしょうか?

243:デフォルトの名無しさん
09/03/05 23:12:15
前に中開いたらビルド場所が書いてあった気がする

244:デフォルトの名無しさん
09/03/05 23:26:49
.NETは知らないけど、むかしのコンパイラは情報が埋め込まれていてウイルスを作った奴を特定できたとか
ていうか、それが当たり前の世の中になってほしい

245:デフォルトの名無しさん
09/03/05 23:30:47
.NETのEXEをバイナリで覗いたことはないが
中は確か中間言語だったっけ?
コメントされた上司の悪口とか抽出できたらおもしろそうだな

246:デフォルトの名無しさん
09/03/06 19:36:20
メモ帳で開いてみたら?

247:デフォルトの名無しさん
09/03/07 01:35:52
>>243-246
レスありがとう
バイナリエディタで開いたらビルドしたパス名が入っていました。
デスクトップにあるフォルダとかだとユーザー名が入ってしまいそうですね。

248:デフォルトの名無しさん
09/03/07 15:45:46
>>247
My Project|コンパイル|詳細コンパイル オプション|デバッグ情報を生成
のところをnoneにしたらパス消えるよ



249:デフォルトの名無しさん
09/03/07 22:09:13
ツールバーに音をだしたり動画を再生するコントロールがねー

250:デフォルトの名無しさん
09/03/07 22:17:30
>>249
AxWindowsMediaPlayer

251:デフォルトの名無しさん
09/03/07 22:20:05
.NETのクラスで用意してくれないとこまtっちんぐ

252:デフォルトの名無しさん
09/03/07 22:58:55
つWPF

253:デフォルトの名無しさん
09/03/08 00:12:01
400行くらいで結構機能満載な画像ビューワー出来ました
ほとんど.net任せで作れますね


254:デフォルトの名無しさん
09/03/08 00:28:50
ソース付きでうp

255:デフォルトの名無しさん
09/03/08 01:02:25
iRが30を超えていてもメッセージがでちゃう

iR = cRa.Next(1, 39957 + 1)
If 1 <= iR <= 30 Then
MsgBox(iR)
End If


256:デフォルトの名無しさん
09/03/08 01:04:57 BE:2034010087-2BP(182)
■韓国からWBCの腹いせ食らってるぜwwwwwwww
*****************************************

WBCで日本相手にコールド負けを喫した韓国が
mamonoサーバーに攻撃開始
VIPPERはこれに対し反撃を行う

・開始時刻: 24:30
・手段:Apache砲/hping砲
・Apache砲弾:URLリンク(vipshota.if.land.to)
・攻撃先:www.naver.com

WBCで韓国がファビョって2chに攻撃★2
スレリンク(news4vip板)

*****************************************


257:デフォルトの名無しさん
09/03/08 01:09:30
>If 1 <= iR <= 30 Then
こんな書き方をするのが悪い。基本解説サイトを通読するところからやり直し

258:デフォルトの名無しさん
09/03/08 01:13:05
>>256
ファビョってるのはお前も一緒じゃねえかw
本当コピペ君って馬鹿だな、まで読んだ。

259:デフォルトの名無しさん
09/03/08 01:20:49
>>257
わろたw 懐かしいこの発想〜
この書き方のがわかりやすいもんねw

260:デフォルトの名無しさん
09/03/08 01:37:56
>If 1 <= iR <= 30 Then

これはどういう評価してんの?
コンパイル通るってことは仕様なんでしょ?

261:デフォルトの名無しさん
09/03/08 01:40:40
>>260
おもしろくなって俺もやってみた
確かにその式31超えてもTrueで評価されてるな
てかそんな書き方出来るって初めて知ったわw

262:デフォルトの名無しさん
09/03/08 01:48:23
適当なこと言うけど、Option Strict Offだと
昔のBASICの流れでTrueは-1、 Falseは0とかに暗黙的に変換される仕様に
なってるとかじゃないの

263:デフォルトの名無しさん
09/03/08 01:57:29
見えない括弧があるってことかw
31を越えるって事は、 1 <= iR が <= 30 かどうかを評価してるのかも。

264:デフォルトの名無しさん
09/03/08 02:13:21
1 <= iR を True(-1)と評価した後に
True(-1) <= 30
を評価してるんだろうね

265:デフォルトの名無しさん
09/03/08 05:13:39
If 1 < 0 < -1 Then

これだとFalseになるから多分>>264で正解なんだろうな
つうか何のためにこんな仕様になってるんだ?
VBAでもこんな書き方使った記憶がないんだが

266:NAS6 ◆kl1JWE6W72
09/03/08 07:36:07
>>254

URLリンク(www5b.biglobe.ne.jp)

viewer
拡大縮小(&画面に合わせて)
同フォルダ内巡回
ファイルゴミ箱&コピー

位を実装してます


267:デフォルトの名無しさん
09/03/08 07:45:07
OpenFileDialogをCancelしたときはExitSubしといた方が良いとおも

268:NAS6 ◆kl1JWE6W72
09/03/08 08:30:38
>>267
対応しました


269:デフォルトの名無しさん
09/03/08 10:34:05
DataViewにはRawのフィルターはあるけど
とくていの列だけテーブルから持ってくるメンバが用意されてないようだが

270:デフォルトの名無しさん
09/03/08 12:32:50
>>265
だから、恐らく大昔のMS BASIC時代からの流れ。
この仕様を使ってif文を使わずに計算の結果を変えたり条件分岐につかったり
したんじゃなかったかな。

もっとも、Trueは-1(0の1の補数)じゃなくて1だったような気もしたが。

271:デフォルトの名無しさん
09/03/09 16:13:27
>>270
>もっとも、Trueは-1(0の1の補数)じゃなくて1だったような気もしたが。

BASICは昔から-1、1はC言語でしょ
VB.NETではTrueを1に変換することも出来るけどね(Convert.ToIntとか)

それと、<,>,<=,>=などは+,-,*,/と同じ演算子だから、すべて演算した結果が
真か偽かで条件分岐してるだけなんだけど

272:デフォルトの名無しさん
09/03/09 19:42:41
>>271
おいおいcにはtrueって概念はないよw
これ有名な話。cで決まってるのは偽が0に評価されるってことだけ。
Cのif文は、要するにJZ(Jump if Zero)だからね。

それと確かに昔のMS系のBASICの真値は1だった記憶がある。
まあどうでもいいか

273:デフォルトの名無しさん
09/03/09 22:05:20
vb.netもbrfalseだよ

274:デフォルトの名無しさん
09/03/10 01:58:14
CreateObjectで起動したEXCELプロセスが、VBアプリ終了しても終わらないんですが、なぜかな?

275:デフォルトの名無しさん
09/03/10 04:11:45
Marshal.ReleaseComObject で検索をクリック!

276:デフォルトの名無しさん
09/03/10 06:56:08
>>272
trueは概念ではなく値。
そして現在のCには_Boolという型が存在する。

まったくcase-insensitiveな奴にはロクな奴がいないな。

277:デフォルトの名無しさん
09/03/10 13:29:15
A=true
Cint(A)は?
B=folse
Cint(B)は?

278:デフォルトの名無しさん
09/03/10 13:38:55
>URLリンク(msdn.microsoft.com)
MSはその仕様を「問題」と認識してるらしいよ

279:デフォルトの名無しさん
09/03/10 14:02:57
>>278
>「問題」と認識してるらしいよ
何処をどう読んだらそうなるわけ?

280:デフォルトの名無しさん
09/03/10 14:06:21
>ここでは、組み込みデータ型の演算で起きる一般的な問題についていくつか説明します。
これじゃね?


281:デフォルトの名無しさん
09/03/10 14:11:26
で、解答用紙はどこに提出すればいいのでしょう

282:デフォルトの名無しさん
09/03/10 17:57:08
問題を起こす主体は「間抜け」、ということで宜しいか?

283:デフォルトの名無しさん
09/03/10 18:15:20
自作の2つのアプリがあって、
1つの方でもう一方を起動すると
実行結果が返ってくるようにしたいのですが
どんな方法で可能でしょうか?

284:デフォルトの名無しさん
09/03/10 18:17:37
バッチ処理的なもんならProcess使って標準出力でいいんじゃね

285:デフォルトの名無しさん
09/03/10 18:18:32
標準入出力を使う
別プロセスにする必要がないなら
もう一方のアプリをdllと同じように参照してその中のメソッドを直接呼ぶこともできる
いちばんスマートなのは共通部分をdllにすること

286:デフォルトの名無しさん
09/03/10 18:55:41
レスありがとうございます。
DLLについて調べてみることにします。

287:デフォルトの名無しさん
09/03/10 20:14:23
>もう一方のアプリをdllと同じように参照してその中のメソッドを直接呼ぶこともできる
これを試してみたのですが、
dllかcomではないとダメというエラーが出て参照設定できなかったのですが、
exeファイルでも参照設定する方法がありますか?

288:デフォルトの名無しさん
09/03/10 20:24:30
.NETのexeでないとだめ
.NETのexeじゃないんだったら普通にプロセス起動して標準入出力通すしかない

289:デフォルトの名無しさん
09/03/10 20:40:57
VB.NET2003というものですがこれではダメでしょうか?

290:デフォルトの名無しさん
09/03/10 20:49:57
覚えてないけどVS2003ではexeは参照できないのかも
少なくとも2008ではできるし,VSでサポートされてなくても実際は可能なんだけどな

291:デフォルトの名無しさん
09/03/10 20:55:02
2002、2003 の頃はダメだった希ガス

292:デフォルトの名無しさん
09/03/10 21:00:32
レスありがとうございます。
そうですか。
それではプロセス起動して標準入出力、という方法を調べてみることにします。

293:デフォルトの名無しさん
09/03/10 21:11:26
たかがメソッド1つ2つ呼ぶだけだろうから
リフレクションで動的にロードしてリフレクション通してメソッド呼べばいいんでない

294:デフォルトの名無しさん
09/03/10 21:19:03
先生方、質問です。

URLリンク(xxx.xx.xx)

というリンクがあって、ここをクリックすると
123456.pdf というファイルのダウンロードが始まるページがあります。


VB2005を使って、
この 123456.pdf というファイルを自動でダウンロードさせたいのですが、
どうすればよいのでしょうか。
My.Computer.Network.DownloadFile() メソッドを使って、
直接、上記 URL をダウンロードしようとすると、
テキスト1行だけのファイルがダウンロードされるだけでした。

123456 の部分は、223456 であったり、様々であるため、
コード内で動的に指定して、複数のファイルを自動でダウンロードさせる
仕組みにしたいです。

よろしくご教授下さい。


295:デフォルトの名無しさん
09/03/10 21:24:09
>>294
WireShark とか、ieHttpHeader とか使って、やりとりを調べる。
そのやりとりと一緒のやり方を HttpWebRequest で作る。

296:189
09/03/10 22:26:38
ホームページをダウンロードして保存するプログラムを作りたいと思っています。
今会社のPCでも使用できるようなものにしたいんですが、
会社のPCでは外部にアクセスする際、社員番号とパスワードの入力が求められてしまいます。
そこで↓のページを参考にして認証の設定を考慮したPGを組んでみたんですが
エラーになってアクセスできませんでした。考えられる原因と対策を教えてください。(漠然とした質問ですいません。)


URLリンク(dobon.net)

会社の認証方式はLDAPでした


297:デフォルトの名無しさん
09/03/10 22:33:45
あぼーんがいると思ったら、キチガイさんが帰ってきましたか・・・

298:デフォルトの名無しさん
09/03/11 01:21:10
先生方、質問です。

URLリンク(xxx.xx.xx)

というリンクがあって、ここをクリックすると
123456.pdf というファイルのダウンロードが始まるページがあります。


VB2005を使って、
この 123456.pdf というファイルを自動でダウンロードさせたいのですが、
どうすればよいのでしょうか。
My.Computer.Network.DownloadFile() メソッドを使って、
直接、上記 URL をダウンロードしようとすると、
テキスト1行だけのファイルがダウンロードされるだけでした。

123456 の部分は、223456 であったり、様々であるため、
コード内で動的に指定して、複数のファイルを自動でダウンロードさせる
仕組みにしたいです。

よろしくご教授下さい。

※ただし、
 「WireShark とか、ieHttpHeader とか使って、やりとりを調べる。
  そのやりとりと一緒のやり方を HttpWebRequest で作る。」
 以外で。なめんな。



299:デフォルトの名無しさん
09/03/11 01:23:03
>>298
死ね

300:デフォルトの名無しさん
09/03/11 01:29:18
指定した時間に休止状態かスタンバイの状態から復帰させる方法を教えてください。

301:デフォルトの名無しさん
09/03/11 01:34:00
>>287-289
わろたw
でも俺さっき>>295見た直後に興味持ったんでieHttpHeaderを探して試してみたぞ
これを使えば>>294ができるなって思ったけど気に入らないの?


302:デフォルトの名無しさん
09/03/11 01:34:44
>>298->>299だったozr

303:デフォルトの名無しさん
09/03/11 01:38:47
手取り足取り教えてもらえないと、納得できないんでしょ。

304:デフォルトの名無しさん
09/03/11 07:20:44
>>303
オマイは猫か!

305:デフォルトの名無しさん
09/03/11 08:16:13
猫は過剰な干渉を嫌う

306:デフォルトの名無しさん
09/03/11 08:49:38
Achilles使いこそ真

307:デフォルトの名無しさん
09/03/11 21:46:34
>>196
>考えられる原因と対策を教えてください。

原因:あなたが無能だからです。
対策:あなたが有能になることです。無理かもしれませんがw

308:デフォルトの名無しさん
09/03/11 22:02:05
>>307
質問スレまで来てつまらないレスすんなよ
ウサ晴らしならチラシの裏にでも書いておけ

309:デフォルトの名無しさん
09/03/11 22:32:07
液晶画面の電源を切る方法を教えてぴょん

310:デフォルトの名無しさん
09/03/11 22:32:56
LDAP なら、NTLM か Kerberos で認証通せばいいんじゃね?

311:デフォルトの名無しさん
09/03/11 22:40:13
>>309
CIM_Display.SetPowerState() でいけそうじゃない?

312:デフォルトの名無しさん
09/03/12 01:43:08
御知恵をお貸しください。
クリック等のイベントを、クリックされたコントロールの裏に透過するような処理を書きたいんですが、何か方法はないでしょうか?
ディスプレイにメモ的な物を表示させておきたいのですが、ポインタが乗ったり、クリックしたりした時に、そのメモにイベントが渡ってしまって、思惑とちょっと違う動きになってしまって困っています。
ポインタが乗ったタイミングで透過100%にすれば誤動作はしないのですが、乗るたびにメモがチラチラと主張して目に優しくないです。


313:デフォルトの名無しさん
09/03/12 01:44:47
ん?

あー、そういうこと・・・

ん?

って感じ

314:デフォルトの名無しさん
09/03/12 02:41:09
ポインタを乗せてからちょっと経ってから透過させるとか、乗ってる間徐々に透過されていくとかにすればいいんじゃね?

315:デフォルトの名無しさん
09/03/12 10:23:55
なんでみんなテキストを扱う時も
textwriterじゃなくstreamwriter使う?

316:デフォルトの名無しさん
09/03/12 10:39:52
日本語でおk

つかみんなって誰を指してんだよ

317:デフォルトの名無しさん
09/03/12 10:41:48
>>315
  Public MustInherit Class TextWriter
で、
  Public Class StreamWriter
    Inherits TextWriter
なわけだが。

318:デフォルトの名無しさん
09/03/12 15:17:17
帳票とかグラフとか印刷とか、皆さんはどうしていますか?

Excelを利用している
DrawとかDocumentとかで頑張っている

その他、補助製品を利用している。
Crystal Reports
ActiveReports
VS-VIEW
Reports.NET
VB-Repor
などなど・・・


現在Excelを利用して書いているんですが、Excelが無いPCでの印刷や
印刷動作が重いなどを回避したいと思っています。
何か簡単で作成できて良い方法がある方は教えてください。
(購入も含めて)

319:デフォルトの名無しさん
09/03/12 15:51:56
簡単な書式だったら、PrintDocument 使って自力で。
ちょっと入り組んでたり、バーコード/二次元コードを含むときは
JIVE REPORT。

320:デフォルトの名無しさん
09/03/12 21:05:04
>>318
通常はアクティブレポートの付属でやってる
レーダーとか足りないものは自作して使いまわしてる
流石にコンポーネント2つも買ってくれなかったのさ 貧乏だから・・・うちの会社

321:デフォルトの名無しさん
09/03/12 21:35:38
ちんぽすげーかいい

322:デフォルトの名無しさん
09/03/12 22:01:04
「3661」という数字を「1時間1分1秒」という文字列にしたいのですが良い方法を教えて

323:デフォルトの名無しさん
09/03/12 22:19:27
小学生か

324:デフォルトの名無しさん
09/03/12 22:39:24
>>322
dim t as integer
t=3661
t/3600 & "時間" & (t mod 3600) /60 & "分" & (t mod 3600) mod 60 & "秒"

325:322
09/03/12 22:42:09
すごいすっきりしてていいね
ありがとう

326:デフォルトの名無しさん
09/03/12 22:48:52
このままじゃできないけどね

327:デフォルトの名無しさん
09/03/12 23:15:25
Button1_Click
Timer1.Enabled=True
Button2_Click


タイマーをFalseにするまでButton2のイベントは起こらないのかしら

328:デフォルトの名無しさん
09/03/13 00:02:01
>>325
>>324みたいなコードはむしろ「すっきりしてない」コードって言うんだよw
君みたいなセンスの人ってどこにでもいて困るんだが、勘違い甚だしいんだよ。

頼むから、「コードの行数」を最小化しようとするのではなく、
「コードを理解するのに必要な時間」を最小化することを心がけてくれ。

例えば、
dim totalTimeBySec as Interger = 3661
dim hour as Integer = totalTimeBySec \ 3600
dim minute as Integer = (totalTimeBySec mod 3600) \ 60
dim sec as Integer = (totalTimeBySec mod 60)
dim result as String = String.Format("{0}時間{1}分{2}秒", hour, minute, sec}

こんなふうにぱっと見て何やってるか分かるように書くんだよ。

329:デフォルトの名無しさん
09/03/13 00:10:08
コメントかけばいいじゃね?

330:デフォルトの名無しさん
09/03/13 00:16:46
>>328
感動した。

コメントもさ、自分で書いたくせに時間が経って読み返すと
意味不明なことがあるんだよね…

331:デフォルトの名無しさん
09/03/13 00:18:20
>>329
それもVB脳的勘違いだな。
コンパイラはコメントを解釈してくれないよ?

332:322
09/03/13 00:21:28
これもいい!!
すごいありがとう


333:デフォルトの名無しさん
09/03/13 00:24:35
中国人かお前は

334:デフォルトの名無しさん
09/03/13 01:13:28
普通にリア小だろ。

335:デフォルトの名無しさん
09/03/13 08:05:17
>>331
コンパイラに理解させたいだけなら最初の方でもよくない?
そもそもあの処理をみてわかりにくいと感じるってどんだけ初心者だよ


336:デフォルトの名無しさん
09/03/13 08:16:27
>>327を解説するひとこそが貴重なプログラマなんだが

337:デフォルトの名無しさん
09/03/13 08:47:30
だって意味不明なんだもん>>327


3661秒を分かりやすく書くのならTimeSpan.FromSecondsがベストだよ

338:デフォルトの名無しさん
09/03/13 09:45:06
>>328
あの程度で「すっきりしてない」とか、どんだけ阿呆なの?
で、自分で考えた結果がその糞汚いコード?

>>337
ふつー、TimeSpan 使うわな。FromSeconds か コンストラクタかは好みで。

339:デフォルトの名無しさん
09/03/13 09:45:49
>>327

>タイマーをFalseにするまでButton2のイベントは起こらないのかしら
マジレスするとんなわきゃねぇ

つうか何が言いたいんだこいつ?

340:デフォルトの名無しさん
09/03/13 15:15:29
わかりやすさ、なんて人によって違うしね。

341:デフォルトの名無しさん
09/03/13 15:22:15
既にあるものをわざわざ自分で作るのは迷惑行為

342:デフォルトの名無しさん
09/03/13 15:31:17
Dim m as Integer = b.MaxValue
とした場合に出る
"インスタンスを経由する共有メンバへのアクセスです。正規の式は評価されません。"という警告を回避したいです。

bはクラス変数で今の所Byte型にしているのですが、今後UShortやUIntegerなどに変えるかも知れないので。
= 255 や = [Byte].MaxValue とはしたくありません

343:デフォルトの名無しさん
09/03/13 15:46:53
意味的に完全におかしいんだからしょうがない
たまたま型が違っても名前が一緒なだけ
MaxValueとかMinValueとかParseとかだけ集めたクラスを別に作っとけばいい

344:デフォルトの名無しさん
09/03/13 15:51:07
あーでもそこだけのためにクラス作るのもおかしいな
諦めて適当にConstなローカル変数に代入しといたら

345:デフォルトの名無しさん
09/03/13 16:23:35
クラス変数…?

つかそれなら、**.MaxValue を戻す、Shared でないプロパティを追加すれば
いいじゃないの。

346:デフォルトの名無しさん
09/03/13 16:44:16
b.GetType.GetField("MaxValue").GetValue(b) で型に応じた値が取得できそうなので、この方向でもうちょっと調べてみようと思います。

>343-345
ありがとうございました

347:デフォルトの名無しさん
09/03/13 16:49:43
ああやっと意味が解った
>>346のやり方だと一旦bの型にダウンキャストしてからaの型にキャストしないといけないので無意味

348:デフォルトの名無しさん
09/03/13 16:56:57
>>347
意味がわからん。リフレクションを使う、って文脈でなぜダウンキャスト?

349:367
09/03/13 17:17:09
b.GetType.GetField("MaxValue").GetValue(b)の戻り値がObject型だから
aの型に変換する前にボックス化の解除が必要なんだけど,
CType使えば自動でやってくれるな。すまん。
厳密にはいったんDirectCastでbの型にするのが正しい。

350:デフォルトの名無しさん
09/03/13 17:20:41
で、明示的に変換しないと、丸まったり桁落ちしたりするの?

するなら問題だけど、そうでなければどうでもいい。VB だし。

351:デフォルトの名無しさん
09/03/13 19:47:53
いまさらだけど、>>342みたいなことがしたい場面というのが思いつかない。

想像するにマジックナンバーを忌避する様な感覚で「bが特定の型であることを
前提としたコード」を回避してるとかなんだろうけど、だとしたら
プログラミングに対する考え方が根本的に間違ってるとしか思えんな。

352:デフォルトの名無しさん
09/03/13 19:49:44
俺も思いつかないが

>342は拡張メソッドで解決できそうだな

353:デフォルトの名無しさん
09/03/13 20:03:30
拡張メソッド使った場合はポリモーフィックな動作が出来ないね。
どうしてもってことなら、抽象的な「数値クラス」を自分で作るとかした方が
いいのかも。

めんどくさいだけかもしれんが。

354:デフォルトの名無しさん
09/03/13 20:17:27
ぶっちゃけそこまで動的な変更を意識しなけりゃいけないようなプログラムってあるの?

355:デフォルトの名無しさん
09/03/13 20:19:40
Module Hoge
<Extension>Public Shared Function MaxValue(Of T)(ByVal type As T) As T
Return Cache(Of T).MaxValue
End Function
Private Class Cache(Of T)
Public Shared ReadOnly MaxValue As T
Shared Sub New()
MaxValue = DirectCast(GetType(T).GetField("MaxValue").GetValue(Nothing), T)
End Sub
End Class
End Class
//Dim a As Integer = b.MaxValue()
意味があるかは置いといてこんな感じかいね
毎回リフレクションするよりは遥かに速いはず

356:デフォルトの名無しさん
09/03/13 20:49:41
>>355
なんか違うような気もするが、ジェネリックの面白い使い方ではあるね。


357:デフォルトの名無しさん
09/03/13 22:29:25
>いまさらだけど、>>342みたいなことがしたい場面というのが思いつかない。
場面と言うか、作ってる途中で仕様変更をした時、
修正しなきゃならない箇所を減らしておきたかっただけのことなんです。

例えば = [Byte].MaxValue としていた場合、
後でもしもbの型をByteからUShortに変えた時は = [Ushort].MaxValue に変更する必要が出てくるんですが、
そこの変更を忘れてバグを出すのも嫌だなと。

仕様を固めないままコード打ってること自体間違ってると言われればその通りなんですが

358:デフォルトの名無しさん
09/03/13 23:18:12
>>357
ByteをやめてやっぱりUShortに変えよう。
ってなるのはどういう時なの?
最初からIntegerとか大き目の型を使っておけばいいんじゃないの?

359:デフォルトの名無しさん
09/03/13 23:27:16
メモリを16Mから32Mに増設したときとかなら
気が大きくなってUShortにしようかなって思うかもしれん

360:デフォルトの名無しさん
09/03/13 23:51:34
>358
Byte,SByte,Short,UShortの存在価値ってないよな。

361:デフォルトの名無しさん
09/03/14 10:04:21
ほしゅ

362:298
09/03/14 11:43:43
お蔭様でうまくいきました。

http 解析しなくても、また HttpWebRequest を使わなくても
解決できました。

ヒント:WebRequest

有難うございました。


363:デフォルトの名無しさん
09/03/14 12:52:15
Halo Warld
を表示するプログラム教えて

364:デフォルトの名無しさん
09/03/14 13:18:58
Console.WriteLine("Halo Warld")

365:デフォルトの名無しさん
09/03/14 19:14:24
>>362
http解析のくだりは置いとくとして、
WebRequest.Createでhttp:なにがしを指定したら、HttpWebRequestのインスタンスが帰ってくるのは理解してるのかね
そもそもWebRequestは MustInherit だぞ


366:デフォルトの名無しさん
09/03/14 20:47:44
Apache+Monoに挑戦したがよくわからなかったので他に無料の.NET用Webサーバない?

367:デフォルトの名無しさん
09/03/14 20:48:23
IIS

368:デフォルトの名無しさん
09/03/14 20:52:30
WindowsXPなどのクライアントOSで動く無料の公開ライセンスをそなえたWebサーバ
IISは2人以上に公開する時はWindowsServerの料金を払わないとダメ

369:デフォルトの名無しさん
09/03/14 21:34:37
クライアントのWindowsに10接続以上は不可だからOSごと変えなきゃね

370:デフォルトの名無しさん
09/03/14 21:47:31
URLリンク(www.forest.impress.co.jp)

371:デフォルトの名無しさん
09/03/14 21:49:39
MS 製品のライセンスについては、あんまり追求しない方がいいよ。


372:デフォルトの名無しさん
09/03/14 21:50:19
どうして?

373:デフォルトの名無しさん
09/03/14 22:00:13
白黒はっきりさせようと MS に問い合わせると、とんでもない答えが返ってくるから。
グレーはグレーのままにしておいた方がいい、ってこと。

ライセンス(CAL)をきっちり買えるんなら別だけど。

374:デフォルトの名無しさん
09/03/14 22:03:27
グレーじゃないのにグレーと言うのは何故?

375:デフォルトの名無しさん
09/03/14 22:27:39
構造体の1次配列のメンバを指定して並べ替えたいのですが
メンバごと型を指定して並べ替える良い方法があったら教えて頂きたいです。


376:デフォルトの名無しさん
09/03/14 23:06:10
>>375
DataTableに置き換えてソートかけるんじゃだめ?

377:デフォルトの名無しさん
09/03/14 23:29:55
なんというVBらしい発想w
IComparer(Of T)を実装したクラスを作ってそのインスタンスをArray.Sortに渡すのが正解

378:デフォルトの名無しさん
09/03/15 17:21:06
IComparerで調べてみることにします。ありがとうございました。

379:298
09/03/15 18:42:54
>>365
もう解決したからいいんだけど、
WebRequest は MustInherit ではなくそのまま使えたよ。VS2005。
あと、WebResponse が帰ってくるのは、.Create() ではなく
.Getなんちゃら() メソッドです。

やってみると単純だった。
ただ、今回の肝は、ログインページで認証を済ませてから
ダウンロードしなきゃいけない仕組みのため、
WebRequestでMethodをPostに指定し、
取得したクッキーを使いまわす
という操作が必要でした。
これも、これでいいのかというくらいすんなり行ってしまって
自分で驚いたほど。

いやー便利だよVS


380:デフォルトの名無しさん
09/03/15 21:23:09
そもそも割り算とはなんなんでしょうか

381:365
09/03/15 21:31:14
俺は295じゃないが

MSDNのサイトで確認する限り、WebRequestは1.1から3.5までですべてMustInheritなんだが
んで.GetなんちゃらメソッドはSharedじゃないだろう?ならばそのメソッドを呼ぶための
インスタンスはどうしたんだと。MSDNには、
>新しい WebRequest インスタンスを初期化するには、Create メソッドを使用します。WebRequest コンストラクタは使用しないでください。
って書いてあるんだがな
つまりおまえが使った.Getなんちゃらメソッドは、実際にはHttpWebRequestクラスの
メソッドが使われてるはずだろうと言ってるんだ

あと認証の話だが、なにもわからない状態からそれを確認するためには、>>295のいう
>WireShark とか、ieHttpHeader とか使って、やりとりを調べる。
は間違っていない。というより事前情報がなにもなければほとんど唯一の手段だ
そして認証してクッキーを使いまわすってのは、まさに
>>そのやりとりと一緒のやり方を HttpWebRequest で作る。
ということをやってるんだが。HttpWebRequestかWebRequestかはしらんがな

この現状をふまえて、おまえが>>298でいった、なめんな って言葉はどういうことだ?
回答してくれた人をなめてるのはお前だろう



382:デフォルトの名無しさん
09/03/15 23:55:29
素直にごめんなさいしないとな
できないならチョン以下

383:デフォルトの名無しさん
09/03/16 01:43:03
>>381
落ち着け
自分の理解や常識を超えたり勘違いしているやつはああいう風に言うやつが必ずいるんだ


384:デフォルトの名無しさん
09/03/16 10:41:32
>>360
Byte配列は必要。

385:デフォルトの名無しさん
09/03/16 13:03:10
"Abc"="ABC"
をTrueにするには
UCase("Abc")=UCase("ABC")

LCase("Abc")=LCase("ABC")

以外になにかある?


386:デフォルトの名無しさん
09/03/16 13:12:04
String.EqualsのStringComparison使ったオーバーライドとか
でもqとQが等しいと判断するかどうかはどうするのか

387:デフォルトの名無しさん
09/03/16 13:13:19
エスツェットとかはどう判断するのかなー

388: [―{}@{}@{}-] デフォルトの名無しさん
09/03/16 13:57:27
半角全角を同一視する場合は、StrConvで変換するのが無難かしら

389:デフォルトの名無しさん
09/03/16 14:45:33
こことか?
URLリンク(dobon.net)

390:デフォルトの名無しさん
09/03/16 14:51:03
Option Compare Text
を指定する



391:デフォルトの名無しさん
09/03/16 19:48:38
>>385
"ABC" like "ABC"

392:デフォルトの名無しさん
09/03/16 19:49:40
ああ、すまん、左辺も同じにしちまった。
"Abc" like "ABC"


393:デフォルトの名無しさん
09/03/16 20:23:21
("Abc").toupper="ABC"

394:デフォルトの名無しさん
09/03/16 22:30:37
VB2005.netで、WEBサイトからhtmlのデータを取り込むという処理の作り込みをしていますが、
この作り込みが非常に面倒で、WebBrowserクラスのDocumentTextプロパティから、
htmlのテキストを取り込んで、そこから特定の文字列を探し出して、
さらに不要な文字列を置き換えて。。。という非常に面倒なことを延々とやってる状況です。
WEBサービスやRSSなども提供されていないため、htmlから地道に文字列を抽出するしか
ないのですが、何かいいやり方やツールみたいなものって提供されてないでしょうか?


395:デフォルトの名無しさん
09/03/16 22:51:26
>>394
DOM でやるか、正規表現ってとこじゃない?

396:デフォルトの名無しさん
09/03/17 00:26:08
List(Of String)を↓のC#みたいに初期化したいんだけど、VB.NETでのやり方が分かりません。教えて偉い人。

List<string> strList = new List<string>() { "あ", "い", "う" };

397:デフォルトの名無しさん
09/03/17 00:39:55
C#で書いてコンパイルしてVB.NETに逆コンパイルすればわかるんじゃね?

398:デフォルトの名無しさん
09/03/17 00:59:46
SharpDevelop使えば一発で変換できるんだが。

399:デフォルトの名無しさん
09/03/17 10:36:47
array.sortで降順にするにはどうすれば

400:デフォルトの名無しさん
09/03/17 10:39:55
比較結果逆にしたComparison(Of T)を渡す

401:デフォルトの名無しさん
09/03/17 10:50:10
具体的な何行ものコードをみないとわけわかめうどん

402:デフォルトの名無しさん
09/03/17 10:53:40
そういや今朝はわかめうどん食った

403:デフォルトの名無しさん
09/03/17 11:17:56
2003から2008になったら訳ワカメ
Sortの話題が上がってたから検索して
URLリンク(www.atmarkit.co.jp)
ここのプログラム見てみたんだが

  Function hikaku(ByVal x As String, ByVal y As String) As Integer
    Return x.Length - y.Length
  End Function

ここの関数に勝手に変数に値が入っていく
これは暗黙の変換?が行われてる?

404:デフォルトの名無しさん
09/03/17 12:01:53
IComparer使うのと本質的には同じなんだから
(メソッド1つで済ますかインターフェイスの実装が必要かだけの差)
2003から2008になったからってわけではないけどな
デリゲート自体は最初からあったんだし
VB9で追加されたのはラムダ式であって

変換は関係ないな
デリゲートを渡すってのは
「このデリゲートに必要なメソッド格納してるんで必要なときにデリゲート越しに呼んでね」
ってこと
ソートはループと比較で成り立ってるわけで、
Array.Sortのなかでもループしつつ何度もデリゲート越しに比較関数呼び出してる

405:デフォルトの名無しさん
09/03/17 13:11:28
構造体になっている配列をメンバと並べ方を指定して並べ替えるサンプルってどこかにないですかね


406:デフォルトの名無しさん
09/03/17 13:19:48
>>405
>>403

構造体になってる配列って微妙に胡乱だが

407:デフォルトの名無しさん
09/03/17 13:32:08
    Structure MySt
        Public hoge As String
        Public moge As Integer
        Public hage As Object
    End Structure



 Dim s() as MySt

で並べ替えって事か





408:デフォルトの名無しさん
09/03/17 15:11:37
そうです。
例えばですが
メンバに
ID
名前
年齢
日付
がある構造体の配列に
IDや年齢のメンバの場合は番号順で日付は日付順などという感じでなのですが
>>389のサイトにListViewの並べ替えで似たものがあったのですが
これを普通の配列で使えるように書き換えができないものかやっているのですが難しいです。

409:デフォルトの名無しさん
09/03/17 15:22:44
だから>>403まんまじゃん? ちょっと比較関数の中身が変わるだけで
なにが分からないのか

410: [―{}@{}@{}-] デフォルトの名無しさん
09/03/17 16:14:56
>>408
その手の物は、DataTableとDataViewを使うと
DBライクに扱えて楽だと俺は思う

411:デフォルトの名無しさん
09/03/17 16:20:57
403=407
だが
自分で実装してみようと頑張ったが
Dim MyList As New List(Of MySt)
で宣言したところまでは出来たが
いざMyListに値をAddしようとすると訳分からなくなった

タダの配列
s(0).hoge
s(0).moge
をSortしようとしてもVBに怒られた

俺もお手上げ
DataTable使いたくなるw

412:デフォルトの名無しさん
09/03/17 16:27:36
ソート以前にリストの使い方からとは想定外でした

413:411
09/03/17 17:07:08
何とか動いた
この方法が正しいのかは分からんが

s()の配列をAddRangeで代入して
Structure要素の数だけhikakuを追加してやればいけた



414:デフォルトの名無しさん
09/03/17 17:09:13
>>411
MyListが何でいきなりsになってんだか。
>>404がすでに説明しているとおり、Sortメソッドでデリゲート関数を呼び出して、戻り値でソートしてる。
Sortメソッドがクイックソートアルゴリズムを用いて>>403のレスでいけばhikaku関数に比較データを渡してその戻り値で判定してソートを実行している。
ただこの場合だと、ソート対象メンバがひとつだけしかできない。
ソート対象を場面によって変えたい場合は、

Private Class HogeComparer
Implements IComparer(Of MySt)
Public Function Compare(ByVal x As MySt, ByVal y As MySt) As Integer Implements IComparer(Of MySt).Compare
Return x.hoge.Length - y.hoge.Length
End Function
End Class

Private Class MogeComparer
Implements IComparer(Of MySt)
Public Function Compare(ByVal x As MySt, ByVal y As MySt) As Integer Implements IComparer(Of MySt).Compare
Return x.moge - y.moge
End Function
End Class

といった感じで、IComparerインターフェイスを実装したクラスをソート対象にしたいメンバごとに作成し、
Dim?MyList?As?New?List(Of?MySt)
とした場合(ソートしたい配列がMyListのとき)
hogeでソートしたい場合は
Dim hogeCmp As New HogeComparer()
ArrayList.Sort(MyList, hogeCmp) 'Array.List.Sort(MyList, New HogeComparer())でもよい
mogeでソートしたい場合は
Dim mogeCmp As New MogeComparer()
ArrayList.Sort(MyList, mogeCmp) '同上
と呼び出せばそれぞれのメンバでソートができる
まあ、わざわざ対象ごとにクラス作らないといけないところがめんどくさいが。

415:411
09/03/17 17:29:42
>>414
スマン
ちょっと間違った
    Private s As New List(Of MySt)

        Dim r(3) As MySt
        r(0).hoge = "ccc"
        r(0).moge = 123
        r(1).hoge = "bbb"
        r(1).moge = 234
        r(2).hoge = "aaa"
        r(2).moge = 345
        r(3).hoge = "xxx"
        r(3).moge = 0

        s.AddRange(r)

        s.Sort(AddressOf hikaku1)


    Function hikaku1(ByVal x As MySt, ByVal y As MySt) As Integer
        Return x.hoge > y.hoge   
    End Function
    Function hikaku2(ByVal v1 As MySt, ByVal v2 As MySt) As Integer
        Return v2.moge - v1.moge
    End Function

こんな感じにした
ちなみにVS8です

しかしこういうやり方で並べ替えが出来るとは知りませんでした
勉強になりました(自分はめんどくさがりなのでDataTable使いますw)

416: [―{}@{}@{}-] デフォルトの名無しさん
09/03/17 18:42:51
>>415
VS8ならLinqも使うと幸せになれるかも知れない

417:デフォルトの名無しさん
09/03/17 19:13:12
構造体を自分で改変できるなら、
宣言の先頭 (Structure MySt の次の行) で
implements IComparable(Of MySt)
と入れて Enter、てのが早道だべ。

418:デフォルトの名無しさん
09/03/17 19:34:45
ファンクションプロシージャってのがよくわからんなサブしかつかっとらんし

419:デフォルトの名無しさん
09/03/17 23:38:20
2chブラウザをつくるとして
携帯のIDとパソコンのIDは何が違う?

420:デフォルトの名無しさん
09/03/17 23:42:06
IDってユーザーエージェントのことか?

421:デフォルトの名無しさん
09/03/18 00:24:46
>>408
並べ替えのレスいろいろありがとうございました。
おかげさまでなんとか並べ替えできました。
慣れないのが多くてむずかしくて良く理解できていませんが便利なので使わせていただきます。
ありがとうございました。



422:デフォルトの名無しさん
09/03/18 00:29:29
理解して使わんとなんか不満が出た時に見動く取れなくなるぞ

423:デフォルトの名無しさん
09/03/18 00:49:09
メイン
Delegate Sub AdLogDlg(ByVal Log As String)

Thr = New Thread(New ThreadStart(AddressOf MovThr))
Thr.IsBackground = True
Thr.Start()
Thr.Join()


Sub MovThr()
Form1.Invoke(New AdLogDlg(AddressOf Form1.AdLog), New Object() {Txt})
End Sub

ってやった時にInvokeのとこで固まるんだがJoinしてるから?

424:デフォルトの名無しさん
09/03/18 02:08:30
ListViewのItemのフォントとSubItemのフォントを別のものに指定することは出来るでしょうか?

425:デフォルトの名無しさん
09/03/18 03:58:34
NumericUpDownコントロールのスピンボタン?は消せないんですか?

426:デフォルトの名無しさん
09/03/18 08:45:41
>>423
そう。Invokeはその処理の完了を待機するから、
メインスレッド>サブスレッドが終了するまで待ち
サブスレッド>メインスレッドに依頼した仕事が終わるまで待ち
の典型的デッドロック。
BeginInvokeにすれば完了待たずに次に進むからデッドロックは起こらないけど、
そもそもメインスレッドでJoinとかはやるべきじゃない。

>>424
ListViewItem::UseItemStyleForSubItems

427:デフォルトの名無しさん
09/03/18 13:03:42
>>425
それテキストボックスじゃね?


428:デフォルトの名無しさん
09/03/18 13:22:32
>>427
数字フィールドとして使いたい

429:デフォルトの名無しさん
09/03/18 14:02:44
TextBox の KeyPress イベントで、数字以外のキー入力を
蹴れば (イベント構造体の Handled = True) いい。

430:デフォルトの名無しさん
09/03/18 14:36:02
>>428
テキストボックスを数字入力専用にすれば済む話ではないのかと・・・・・

431:デフォルトの名無しさん
09/03/18 15:19:40
>>430
そんなこと出来るの?
>>429は別にして

432:デフォルトの名無しさん
09/03/18 15:22:46
NumericUpDownも内部では数字以外をはじいてるんだと思うが…

433: [―{}@{}@{}-] デフォルトの名無しさん
09/03/18 15:51:58
>>431
カスタムコントロール作るのが簡単じゃね

434:デフォルトの名無しさん
09/03/19 01:31:00
>>431
MaskedTextBoxでいいんじゃね

435:デフォルトの名無しさん
09/03/19 11:22:34
>>433
なんで態々カスタムコントロール?
派生すりゃいいじゃねえか。

436:デフォルトの名無しさん
09/03/19 13:07:34
>>431
ごめ言葉足らずだった、標準機能ではそんなこと出来ない
そういう機能ならどうせ使いまわすんだろうし継承してカスタムコントロールで使いまわし効くようにしたら
という意味

つうか、社内でそういう機能くらい作ってそうなものだけど

437:デフォルトの名無しさん
09/03/19 18:25:05
コントロール配列はなぜ無くなったんですか?

438:デフォルトの名無しさん
09/03/19 20:43:26
レイトバインド(Create Object)できますか?

439:デフォルトの名無しさん
09/03/19 21:32:30
>>437
いらないからじゃない?

>>438
はい

440:デフォルトの名無しさん
09/03/20 01:12:45
TabControlのTabPageなのですが、
コードを書いてデバッグして色々してるうちに
いつの間にかページの順番が変わってしまうのですがこれは何故でしょうか?

441:デフォルトの名無しさん
09/03/20 09:58:55
vb.net2005のあぷりをはいふするときは、
ゆーざーには
最新のネットフレームワークをまいくろそふとのさいとからだうんろーどしてください
って言っとけばいいの?

442:デフォルトの名無しさん
09/03/21 07:43:53
VB2008での質問です。

NumericUpDown1.value = Data1
NumericUpDown2.value = Data2
NumericUpDown3.value = Data3

このようなステートメントが500程あります。
まとめる方法をご教授下さい。

443:デフォルトの名無しさん
09/03/21 10:25:26
ファイルコレクションを取得する時に特定の文字列を含んだ名前のファイルだけを抜き出すときは
GetFiles("*.jpg")
とするけど
GetFiles("*.jpg" and "*gameCG*")
とか
GetFiles("*.jpg" or "*.gif")
みたいにやるのはどうやんの?

444:デフォルトの名無しさん
09/03/21 12:00:28
,

445:デフォルトの名無しさん
09/03/21 12:13:45
>442
NumericUpDown1〜NumericUpDown500までを配列にして、
Data1〜Data500も配列にしておいた上で代入する

446:442
09/03/21 14:26:33
>>445
できました。ありがとうございました。

447:デフォルトの名無しさん
09/03/21 15:54:52
スピンボックスを500個並べたってか…
DataGridView 使うわけにはいかんのか。

448:デフォルトの名無しさん
09/03/21 23:35:43
DataGridViewとListViewは何が違いますか?
どういう時に使いわける?

449:デフォルトの名無しさん
09/03/21 23:55:50
ちいさめのいろんな種類の画像をズラズラ並べたい場合はなにコントロールをつかうのか

450:デフォルトの名無しさん
09/03/22 13:49:44
インターネットからHTMLソースを取得する方法について教えてください。

認証が必要なサイト(ニコ動なんですが)からの取得ができません。
URLリンク(dobon.net)
URLリンク(d.hatena.ne.jp)
主に↑のサイトを参考にVB.NETで書いてみたのですが、
httpWebRequest.GetResponse() に当たる所で処理が止まってしまい、
「System.Net.WebException:操作がタイムアウトしました。」となります。

POSTを使わない↓であれば正常に取得できます。(ログインページになってしまいますが。。)
URLリンク(dobon.net)
何か他に設定など必要でしょうか?

451:デフォルトの名無しさん
09/03/22 13:54:01
だから Wireshark(ry

452:デフォルトの名無しさん
09/03/22 14:12:15
ああ、、類似の質問がいくつかorz
すみません、ieHTTPHeaders入れて頑張ってみます。

453:デフォルトの名無しさん
09/03/22 15:15:30
Dim Sng as Single =3.141
などを小数点第三位で四捨五入してラベルコントロールには3.14と表示するにはどうするんだろぅ
Format(Sng , "0.00")だと四捨五入しないで切り捨てになっちゃう

454:デフォルトの名無しさん
09/03/22 15:50:14
>>453
URLリンク(www.atmarkit.co.jp)

455:デフォルトの名無しさん
09/03/22 19:20:32
おk

456:デフォルトの名無しさん
09/03/22 19:25:55
フォームがあるアプリを作ったのですが、
これで起動時にコマンドライン引数を受け取るようにしたくて

Shared Function Main(ByVal CmdArgs() As String) As Integer

というプロシージャを作ったのですが、
そうするとフォームが出ないまま終了してしまいました。

そこで、
Public Shared F As New Form1
を宣言してMain内で F.Show()を実行したのですが、
一瞬出てすぐにアプリ自体が終了してしまいました。

正しい方法が分かりましたら教えて頂けると助かります。



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

5149日前に更新/159 KB
担当:undef