VB.NET質問スレ (Part10 ..
[2ch|▼Menu]
514:デフォルトの名無しさん
05/03/31 21:04:25
どなたか>>474をお願いします・・・

515:デフォルトの名無しさん
05/03/31 21:20:18
CE用のプログラムで
ポケットPCのシステム日付時刻を変更する方法はありませんか?

516:デフォルトの名無しさん
05/03/31 21:26:52
>>515
DateAndTimeモジュールのTodayプロパティ・TimeOfDayプロパティはサポートされてない?

517:デフォルトの名無しさん
05/03/31 21:38:16
>>516
ヘルプ

518:デフォルトの名無しさん
05/03/31 21:42:03
断末魔?

519:デフォルトの名無しさん
05/03/31 21:48:24
>>518
そう。消えろ。

520:デフォルトの名無しさん
05/03/31 22:00:56 BE:28350533-###
VC++に比べてなんでこんなにVBは簡単なのでしょうか?

521:デフォルトの名無しさん
05/03/31 22:06:42
DateAndTime.TodayにDateを入れて変更しようとすると
noSupportedExceptionのエラーが出てしまいます…

522:デフォルトの名無しさん
05/03/31 22:17:37
>>502
ShowDialogのときは、不要になったときに
Disposeしておいた方がいい。

ほうっておいてもアプリケーション
終了時に破棄されるとは思うけど。

523:デフォルトの名無しさん
05/03/31 22:21:50
>>521
となるとこいつかな。
URLリンク(bbs.wince.ne.jp)
VBのソースなので注意。

524:デフォルトの名無しさん
05/03/31 22:55:26
VBのやり方だと出来ないっぽいです…
Microsoft.VisualBasic.DateAndTime.Todayを使おうとすると
notFupportedExceptionが発生してしまっています

525:デフォルトの名無しさん
05/03/31 23:02:15
> VBのやり方だと出来ないっぽいです…

てのはどういう意味かな?
523の話?

526:デフォルトの名無しさん
05/03/31 23:03:52
どなたか>>474をお願いします。

527:デフォルトの名無しさん
05/03/31 23:10:54
>>525
ごめんなさい
523のことです

compactだと時刻設定は出来ないんですかねえ…

528:デフォルトの名無しさん
05/03/31 23:14:25
>>527
どうできないのかを聞くまでは。
何かの例外が投げられるのか?
(リンク先で言う)SetTime関数がFalseを返すのか?
文字変換部分はうまくできているのか?

529:デフォルトの名無しさん
05/03/31 23:27:03
SmtpMail使ってtext/plainなメールを送信したら本文の最後に必ず改行が足されるんですけど、
これって仕様?

530:デフォルトの名無しさん
皇紀2665/04/01(金) 08:59:13
>>513
ObjectとSystem.Objectの違いを教えて下さい。
旧型Objectと新型Object(.NET)
ってことだけで、同じですよね?


531:デフォルトの名無しさん
皇紀2665/04/01(金) 09:31:42
>>530
>>513ではないが
ObjectはSystem.Objectのエイリアスだよ。
要するに、同じものです。

532:デフォルトの名無しさん
皇紀2665/04/01(金) 10:01:44
名前空間を理解してないんじゃない?

533:デフォルトの名無しさん
皇紀2665/04/01(金) 10:14:47
>>531
さんくす。

でもなんで、同じForm_Loadで
senderがObjectだったり、System.Objectだったりするのだろう?
エイリアス使ったりそうでなかったりなのでしょう?
どうして使う名前が統一してないのでしょう?


534:デフォルトの名無しさん
皇紀2665/04/01(金) 10:43:07
>>533
残念ながら、私はVB.NETを
使ったことがないんでよくわからないです。

>>532
名前空間は関係ないよ。

535:デフォルトの名無しさん
皇紀2665/04/01(金) 11:00:17
>>534
.NET使ったことなくてよくわかんねーならだまってろ。

名前空間そのものの話だろうがよ。

536:デフォルトの名無しさん
皇紀2665/04/01(金) 11:21:49
.NET使ったことがないとは言ってないが・・・

>名前空間そのものの話だろうがよ。
IntegerとSystem.Int32のような関係といったらわかる?

537:デフォルトの名無しさん
皇紀2665/04/01(金) 11:57:59
>>533ですが、なんか文がおかしいので訂正します。

×どうして使う名前が統一してないのでしょう?
○どうして使う名前が統一されてないのでしょう?
○どうして(MSは)使う名前を統一してないのでしょう?

選択すると自動で作成されるイベントハンドラで、
Form_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
だったり、なんかソースが統一されてなくていやです。


538:デフォルトの名無しさん
皇紀2665/04/01(金) 12:30:19
なんか厨房ネタが続いているなあ。。
>>536
Objectがエイリアスだと思ってるのか。。
それこそ違うよ。

539:デフォルトの名無しさん
皇紀2665/04/01(金) 12:31:53
>>538
じゃあ、Systemをインポートしなくても大丈夫なのは何で?

540:デフォルトの名無しさん
皇紀2665/04/01(金) 12:41:08
>>539
ネタだと思うけど一応回答ね。
プロジェクトのプロパティを見るべし。

541:デフォルトの名無しさん
皇紀2665/04/01(金) 12:43:42
>>540
はっはっは、vbc.exeでメモ帳に書いたソースをコンパイルした事もないのかい?

542:デフォルトの名無しさん
皇紀2665/04/01(金) 12:45:00
うろ覚えだが、プロパティのインポートってとこ?
Systemを削除してもコンパイル通るけど。

543:デフォルトの名無しさん
皇紀2665/04/01(金) 13:38:06
さちこさん。お茶

544:デフォルトの名無しさん
皇紀2665/04/01(金) 15:00:00
マルチスレッドについて質問です

URLリンク(dobon.net)

の後半に、マルチスレッドのサンプルコードがあります。
その中で、ボタンのEnabledを変更するためや、コントロールの値を変更するために
デリゲートを使用しているのですが、これはなぜでしょうか?

調べてみると、どうやら非同期デリゲートというものらしいのですが、
いかんせんスレッドもデリゲートも初心者の旧VBプログラマなので、
なぜこういうコーディングになったのかを理解したいのです。

デリゲートにすると非同期になるんですか?
なぜ非同期でないとまずいのでしょう?
普通にButton1.Enabled = true とするとどうなってしまうの?

どなたかお分かりになる方、ご教示ください

545:デフォルトの名無しさん
皇紀2665/04/01(金) 15:17:50
文字列を指定したキーで暗号化してくれる関数を探しています。
もしご存知のかたがいましたら教えてください。
こんな感じで・・・

private function 文字列暗号化(byval s as string, byval key as string) as string


546:デフォルトの名無しさん
皇紀2665/04/01(金) 15:27:24
ありました。

547:デフォルトの名無しさん
皇紀2665/04/01(金) 15:28:25
>>544
> デリゲートを使用しているのですが、これはなぜでしょうか?

Invokeを使うから。

デリゲートというのは、メソッドそのものを変数に代入できるようにしたもの。
そうすることで、例えばデリゲートを引数に取るメソッドを書くと、そのメソッド先で“デリゲートで指定されたメソッド”を実行できるようになるわけ。
で、Invokeメソッドはデリゲートを引数に取るから、デリゲートを作ってるわけ。

InvokeメソッドはForm(の基底クラスのControl)に実装されたもので、
「“自分を作ったスレッド”で、“渡されたデリゲートで指定されたメソッド”を実行する」
という働きをする。

デリゲートもクラスの一種なんだけど、宣言すると自動的にBeginInvoke/EndInvokeと言うメソッドが追加される。
これが非同期デリゲートと言って、BeginInvokeを呼び出すとそのデリゲートに指定されているメソッドが別スレッドで実行される事になる。
んだけれども、この場合は関係ない話なので、非同期デリゲートの事は棚に上げておいて良い。
あと一応フォローしておくと、「非同期で実行」=「別スレッドで実行」。

> 普通にButton1.Enabled = true とするとどうなってしまうの?

なぜInvokeを使うか、というのの詳細は面倒なので省略。
・必ずコントロールを作成したのと同じスレッドで操作しなければならない
・作成スレッドと同じスレッドで操作するのにはそのコントロールのInvokeまたはBeginInvokeを使う
・その操作処理はデリゲートでラップしてInvoke/BeginInvokeの引数に渡す
という点だけ覚えればいい。
そうしない場合、「何が起こるかは保証されない」。

548:デフォルトの名無しさん
皇紀2665/04/01(金) 16:45:37
ネットワーク上のPCの共有フォルダにアクセスしたいのですが、
ユーザーとパスワードを指定してアクセスできるようなクラスはありますか?

549:デフォルトの名無しさん
皇紀2665/04/01(金) 16:52:30
クラスはない。
Win32API使うしか。

550:548
皇紀2665/04/01(金) 16:55:36
>>549
む、マジすか・・・

551:デフォルトの名無しさん
皇紀2665/04/01(金) 17:03:07
>>547
詳細な解説、ありがとうございます
30回くらい読み返して、ようやく意味が分かってきました

ちなみに、コントロール(とか、そのスレッド内で作成されたオブジェクト)に関わらないメソッドなら
そのまま呼び出してもいいという理解でよろしいですか?
数値・文字列等の演算系関数とか

あ、でもStringすらクラスですよね
ということは、クラスのスコープが大事ということでしょうか?
呼び出すメソッド内で作成され、消滅するクラスオンリーで構成されたメソッドなら、そのまま呼んでよし、とか
プロジェクトや、フォーム全体で使用しているクラス(グローバルやソースの上の方で宣言したりするもの)を触るメソッドなら、デリゲートで呼ばないとだめ、とか

マルチスレッドは奥が深いですね
むずかしー

552:デフォルトの名無しさん
皇紀2665/04/01(金) 19:05:46
>>551
> ちなみに、コントロール(とか、そのスレッド内で作成されたオブジェクト)に関わらないメソッドなら
> そのまま呼び出してもいいという理解でよろしいですか?
> 数値・文字列等の演算系関数とか

勿論。
というかInvokeしたら全てコントロール作成スレッドで実行される事になって、マルチスレッドじゃなくなってしまう。

> あ、でもStringすらクラスですよね
> ということは、クラスのスコープが大事ということでしょうか?

いいや、スレッドを超えてオブジェクトを共有して構わない。
寧ろオブジェクトを共有できる事にスレッドの意味がある。
Invokeしなければならないのは、コントロール(System.Windows.Forms.Controlとその派生クラス)を操作する時のみ。

ただし2つのスレッドから同時にあるオブジェクトを操作してしまったりすると問題が起こりうるから注意が必要だ。
例えばあるスレッドでArrayListをFor Eachしている時に、別のスレッドでこのArrayListにAddしたりRemoveしたりしたら、正しくFor Eachできなくなる。
そういうのを避けるためにSyncLockステートメントなどがある。

553:デフォルトの名無しさん
皇紀2665/04/01(金) 19:09:27
DOBONさんとこのメルマガのバックナンバー嫁、でいいんじゃないの?
ここで説明しきるなんて無理なんだから。

554:デフォルトの名無しさん
int 2ch =05/04/01(金) 20:50:13
まあ、自分の中での整理も兼ねて。

555:デフォルトの名無しさん
int 2ch =05/04/01(金) 21:58:08
バカばかりだしな。

556:551
int 2ch =05/04/01(金) 22:44:26
>>552
なるほど!
重ね重ねありがとうございました。
大変参考になりました。
精進致しますです。

>>553,555
申し訳ありませんでした。もう消えますので勘弁して下さい。

557:デフォルトの名無しさん
int 2ch =05/04/01(金) 23:29:40
どなたか>>474をお願いします。

558:デフォルトの名無しさん
int 2ch =05/04/02(土) 01:47:58
結局>>533は誰もわからないということでしょうか?



559:最凶VB厨房
int 2ch =05/04/02(土) 01:59:26
なんで統一してないかなんて作った奴に聞かんとわからんだろう。
だぼーくぃっくで生成したかリストから選んで生成したかがわかるかも
しれんぐらいだな。

560:デフォルトの名無しさん
int 2ch =05/04/02(土) 10:10:38
>>559
しょーがないな。
このスレは、言語だけでなく文章まで初心者の香具師ばかりだから。

561:559
int 2ch =05/04/02(土) 10:17:11
文章を正して投稿して。

562:デフォルトの名無しさん
int 2ch =05/04/02(土) 13:47:52
>>558
IDE の仕様の話をされても困りますから (w

563:デフォルトの名無しさん
int 2ch =05/04/02(土) 13:48:29
>>557
あのな・・・
『少しは』自分で考えなさい。
『少しは』ね。

564:デフォルトの名無しさん
int 2ch =5,2005/04/02(土) 14:48:06
>>563
いや、もちろん自分でも考えるというか試してますが、
どうも私にはムリそうなので質問しているのです。

565:564
int 2ch =5,2005/04/02(土) 14:51:41
ちなみにShift-JIS以外の場合はいったんShift-JISの一時ファイルに
変換してから>>474の方法で読み込む、という方法で一応は
解決しています・・・が、どうにも不細工なやり方に思えるので、
スマートにできるやり方を知っている方がおられましたら
是非お願いします。

566:デフォルトの名無しさん
05/04/02 20:17:50
このスレは馬鹿の溜まり場みたいな
ところだから、聞くだけ無駄だろ。

567:デフォルトの名無しさん
05/04/02 20:45:09
春だねぇ。縦読みにすらなってない。

568:デフォルトの名無しさん
05/04/02 20:52:13
バグにもならないコメント文みたいなもんだな。

569:デフォルトの名無しさん
05/04/02 21:05:16
>>568
いいえ。

570:デフォルトの名無しさん
05/04/02 21:05:37
>>566
了解しました。

571:デフォルトの名無しさん
05/04/02 23:53:02
VB.NETの初心者です。
テキストファイルをStreamReaderで開くときにエンコードを
指定できますが、あらかじめ文字コードが分かっていない
場合はどう指定すればよいのでしょうか。


JavaだとJISAutoDetectとかいうのがあって便利だったのですが。

572:デフォルトの名無しさん
05/04/02 23:58:01
>>571
URLリンク(www.gprj.net)
これでも使わせて貰うか。

573:デフォルトの名無しさん
05/04/03 00:11:17
>>572
却下します。

574:デフォルトの名無しさん
05/04/03 00:15:33
そうか。じゃあ自前実装で車輪の再発明を頑張れ。

575:デフォルトの名無しさん
05/04/03 08:38:26
発明じゃなくて、作りなおしだろ。ばか

576:デフォルトの名無しさん
05/04/03 10:07:36
>>574
アホな人

577:デフォルトの名無しさん
05/04/03 12:25:00
普通のスレなら春休みの厨房クンが……と思うところだけど
もともとVBやってる奴ってスキルだけでなく人格的にも未熟な奴が多いからなあ。。

幼稚な自分に嫌気がささないところが不思議でしょうがないんだけど、
まあ自意識ないんだろうなこういう輩は。

578:デフォルトの名無しさん
05/04/03 12:39:25
>>577
自意識ないんだろうなぁ、こういう輩は。

579:デフォルトの名無しさん
05/04/03 13:45:57
C#             VB.NET       VB(p-code)
平均    310    平均    1190    平均    5488
最小    296    最小    1156    最小    5468
最大    329    最大    1313    最大    5625

1億回の計算を連続で行うのにかかった時間(ミリ秒)

580:デフォルトの名無しさん
05/04/03 13:56:43
これだけじゃ判断しようがないんだが。

581:デフォルトの名無しさん
05/04/03 14:33:46
>>580
許してやれよ。

582:デフォルトの名無しさん
05/04/03 14:34:23
>>579
どうせ等価なコードは書けてないんだろ。

583:デフォルトの名無しさん
05/04/03 14:36:41
>>579
それぞれのソースを晒せ

584:デフォルトの名無しさん
05/04/03 14:40:03
>>583
多分全然等価じゃないコードが出てくると予想。

585:デフォルトの名無しさん
05/04/03 14:45:12
コードは等価なんです!

実行した機材が違うだけで。

とか?

586:デフォルトの名無しさん
05/04/03 14:46:43
>>585
つまんね。

587:デフォルトの名無しさん
05/04/03 14:47:19
>>585
見当違いのツッコミはやめてくれ。

588:デフォルトの名無しさん
05/04/03 17:09:44
不満があるなら自分で試せよ

589:デフォルトの名無しさん
05/04/03 17:12:33
>>588
とうの昔に試してるけど?
バカにデータは公開しないが。

590:デフォルトの名無しさん
05/04/03 17:13:15
>>579
ソースを含め、何の条件も添えずにこんなデータ出す奴の
気が知れないよな。

591:デフォルトの名無しさん
05/04/03 17:42:03
>>589
口だけじゃダメだな

592:デフォルトの名無しさん
05/04/03 18:03:13
>>591
あらら。あなたは?

593:デフォルトの名無しさん
05/04/03 18:09:50
>>592
わたしは星の王子様よ

594:デフォルトの名無しさん
05/04/03 18:18:43
自分でやろうやろうと思って忘れてて、
いざ他人に先越されると悔しくて難癖つける・・と。メモ

595:デフォルトの名無しさん
05/04/03 18:45:52
メモ♥

596:デフォルトの名無しさん
05/04/03 18:58:19
>>593-595
あのー、色々書いてるようですけど、あなたは
どこが違うのですか?

597:デフォルトの名無しさん
05/04/03 19:01:17
この板も早くIDつけてほしいよな。

598:デフォルトの名無しさん
05/04/03 19:34:13 BE:104814869-
みんなでbe付ければ解決。

599:デフォルトの名無しさん
05/04/03 20:06:46
>>594
で?君は?

600:デフォルトの名無しさん
05/04/03 20:20:52
>>598
おお、こんなのあったんだ。
で、beってどうやって付けるの?

601:デフォルトの名無しさん
05/04/03 22:33:41
他の人のベンチマークまだぁ?

602:デフォルトの名無しさん
05/04/03 22:51:44
>>601
お前のは?

603:デフォルトの名無しさん
05/04/03 23:17:50
>>579のデータがおかしいと言うのなら、まず自分で数値出さないとねぇ。
C#とVB.NETなんて速度ちっとも変わらねぇよとでも言いたいのか?
そう言いたいならハッキリそう言えばいい。

604:デフォルトの名無しさん
05/04/03 23:29:21
折れのでは、C#:VB.NET = 1:1 だった。
変わんない

605:デフォルトの名無しさん
05/04/04 01:58:32
C#とVB.NETに速度の違いがあるとすると整数のオーバーフローチェックの
デフォルトの違いくらい。それほど違いが出るものかな?
/removeintchecks
/checked

606:デフォルトの名無しさん
05/04/04 05:06:16
関数使ってると変わってくるんじゃないのか

607:デフォルトの名無しさん
05/04/04 09:38:39
>>603
それ以前の問題であることに早く気付いてください。
>>590とかで乱暴ながらも指摘されてるのに
気付かなかった?

608:デフォルトの名無しさん
05/04/04 10:06:37
> まず自分で数値出さないとねぇ。

利用規約違反ですね。タイーホします。

609:デフォルトの名無しさん
05/04/04 10:33:22
>>608
だな。

おまえら、EULAをちゃんと嫁。
このうんこやろう。

610:デフォルトの名無しさん
05/04/04 10:33:49

If button Is TBB0 Then
'TBB0のときに必要な処理

ElseIf button Is TBB5 Then
'TBB5のときに必要な処理

End If

↑こんなコード(button、TBB0、TBB5はいずれもButton型)
をSelect Caseで整理しようとしてるんだが、Select Caseでは
Button型は使えないみたいで、CObj()を通してもだめで、
しかたなく

Select Case button.Text
Case TBB0.Text
'TBB0のときに必要な処理
Case TBB5.Text
'TBB5のときに必要な処理
End Select

こんなごまかしで動かしていますが、もっとうまい方法はないものでしょうか?
(TBB0.Text=TBB5.Textになっちゃうとおかしくなりますし)


611:デフォルトの名無しさん
05/04/04 11:07:56
>>610
どうしてもというなら.Nameで分岐するとか。

612:610
05/04/04 12:07:59
>>611

うう、ありがとうごぜぇますだ。さっそく試すべ。。。
あれ、なんか違うかも?ん?、Button型じゃなくてToolBarButton型?
え、なんでNameプロパティないの?

すみません、質問するまえにもうちょい下調べしないと。
でもオブジェクトを確実に識別できるプロパティを探せばいいわけだし、
がんばってみます。

613:デフォルトの名無しさん
05/04/04 12:27:50
>>607
いちいちソース書くのめんどくせ

614:デフォルトの名無しさん
05/04/04 12:42:10
下手したら30代超えのオッサンが「うんこ野郎」だの「タイーホ」だの言ってるかと
思うと反吐が出るな。

幼稚臭っ。キモ過ぎる。

615:デフォルトの名無しさん
05/04/04 12:43:25
なんでVB使いにはこんな幼稚な奴が多いんだ?

616:デフォルトの名無しさん
05/04/04 16:02:32
>>612
.Tagがあるなら、好きなのを定義して分岐のキーにできる。

617:デフォルトの名無しさん
05/04/04 16:11:07
ToolBarButtonなら、ToolBarのButtons.IndexOf(button)でインデックスベースという手もあるが。

618:デフォルトの名無しさん
05/04/04 16:35:05
>>610
ヘルプぐらい読め。

619:デフォルトの名無しさん
05/04/04 16:59:12
>>613
発想がおかしい。省略していいかどうかの判断ができていない。
それにソースだけではないとも指摘されているが
それについて触れようともしていない。

結論。アホ。

620:610
05/04/04 18:02:49
>>616

Tagは真っ先に考えたのですが、フォームが多数あって
Tagを入れ忘れるやつがいないとも限らないので
(VBのToolbarでKeyの入れ忘れを散々やってます(汗))
他の方法がないかと勉強してたところなのです。
(入れ忘れさえなければいい方法なのですが)


>>617

With TB1.Buttons
Select Case .IndexOf(button)
Case .IndexOf(TBB0)
Case .IndexOf(TBB5)

こんな感じになりますた。だいぶすっきりだし、判定もまちがいなさそうです。


>>618

すまぬ。ヘルプみたのだがいい方法が見つからなんだ。

621:デフォルトの名無しさん
05/04/04 19:41:17
素直にIf...ElseIfで書いたほうが後々理解しやすいと思うけど。。

622:デフォルトの名無しさん
05/04/04 20:25:05
これのことかと思ったんだけど、勘違いかな?
URLリンク(www.microsoft.com)

623:デフォルトの名無しさん
05/04/04 20:26:18
>>621
まあまあ。こういう輩にそんなこと言ったって
わかんないんだって。分かりやすいプログラムを書ける人が
PGとして高く評価されることにそのうち気付くかなぁ。

624:デフォルトの名無しさん
05/04/04 20:57:04
>>621 現場の事わかってない厨か学厨でしょ しょせん
自分でマスかいて、高度な事やってるつもりでも
周りはいい迷惑なんだって
おまえが責任もって最後まで虫取り保守やれっていいたくなる

625:デフォルトの名無しさん
05/04/04 21:14:15
やっぱり、バカが集まるところだ。ここは。

626:デフォルトの名無しさん
05/04/04 21:28:21
>>624
現場を気取ってるが多分学生だな。
多分本当に現場にいるPGなら後半2行にそのことを
露呈した記述があることにすぐ気付くと思うが。
>>625はそれを指摘してるんだよな。

627:デフォルトの名無しさん
05/04/04 21:35:33
一人芝居が上手なスレはここですか?

628:デフォルトの名無しさん
05/04/04 21:44:22
>>626
げっ
ばれましたか
さすがです...ショボーン

629:デフォルトの名無しさん
05/04/04 22:08:57
>>626
はい。626は私ですよ。
一人芝居は>>627-628ですね。
それじゃ。

630:629
05/04/04 22:09:38
あー、アンカーは626じゃなくて628にするべきだったね。
まーどうでもいいけど。

631:デフォルトの名無しさん
05/04/04 22:13:44
>>619
数値だけ出して読む側がそれを信じようが信じまいが問題なし
別に何をどう書こうが自由だしw

632:デフォルトの名無しさん
05/04/04 22:55:13
>>631
まだ分かってないみたい。信じる信じない以前に
判断を下しようがない、って言ったら分かる?

分かりやすいように、君がやったことを極端な例にしてあげようか?

パフォーマンス測定しました!
VB.NETは1秒、C#では100秒でした。
終わり。

633:デフォルトの名無しさん
05/04/04 23:50:52
>>632
まだ分かってないみたい。読み手が判断を下す以前に
何を書こうがどんな書き方をしようが自由だって言ったらわかる?
終わり。

634:デフォルトの名無しさん
05/04/04 23:53:12
>>633
それはいいけどその後の君の対応はNG。

635:デフォルトの名無しさん
05/04/04 23:55:05
>>633
はいはい。このスレを君の落書き帳として使わせてくださいってことね。
それに対しては「いいよ、通報されない程度にね」としか
言いようがないな。

636:デフォルトの名無しさん
05/04/04 23:55:59
>>633
分かりました。あのデータがどんな条件やどんなソースから
得られた数値なのか興味があるのですが、提示して頂けませんか?

637:デフォルトの名無しさん
05/04/04 23:56:14
>>634
どんな対応をしても自由だしw、NGだと思っているだけだろう

638:デフォルトの名無しさん
05/04/05 00:03:29
必死になりすぎて恰も別人を装っているかのように思える。
>>635
もし荒らしだと思っているなら、それに反応するのも荒らしだな。
荒らしを助長していることになる。
>>636
めんどくせ

639:デフォルトの名無しさん
05/04/05 00:17:07
>>638
捏造データ?じゃないですよね。
ソースはもう消してしまったんですか?

640:デフォルトの名無しさん
05/04/05 00:20:41
>>639
ごめんなさーい、もう消してしまったんですぅーm(_ _)mペコリ

641:デフォルトの名無しさん
05/04/05 00:24:12
>>640
ふーん

642:デフォルトの名無しさん
05/04/05 00:26:58
>>641
あきらめてね〜

643:デフォルトの名無しさん
05/04/05 00:41:21
>>642
ソース見て叩こうと思ったけど無理みたいだから諦めます。

644:デフォルトの名無しさん
05/04/05 00:42:51
>>642
よっぽど他人には見せられない代物だったんだろうなぁ。

645:デフォルトの名無しさん
05/04/05 00:50:21
>>643
暇つぶしができると思って期待してたのかな?相手できなくてごめんね
>>644
見せられないのではなく、何度も言っているように見せるのがめんどくさいんだよ。
やっとわかってくれたかな?

646:質問age
05/04/05 00:57:13
しつもんです!そもそも>>633さんは何が訊きたかったのでつか?

647:デフォルトの名無しさん
05/04/05 01:01:22
>>646
その何かがわかるまでスレッドの中を何度も繰り返し読んでみよう!
きっと何かがわかってくるはずだよ。

648:646
05/04/05 01:13:06

世の中は春休みだという事がわかりますた。。。_| ̄|○

649:デフォルトの名無しさん
05/04/05 01:14:26
わかるの遅っ

650:最凶VB厨房
05/04/05 01:14:47
世の中は春休みだったのか・・・。
俺がいる世界はもしかしてあの世なのか?!
こりゃまいったわぃ

651:デフォルトの名無しさん
05/04/05 01:23:38
わかるの遅っ

652:デフォルトの名無しさん
05/04/05 07:07:22
>>645
あれー?削除しちゃったんじゃなかったんだー。
コロコロ変わるねーw

653:デフォルトの名無しさん
05/04/05 09:09:00
普通に組んでC#の方が速いならC#で作りたいなぁ


654:デフォルトの名無しさん
05/04/05 09:12:28
普通に組んでC++の方が速いからC++で作るといいよ。

655:デフォルトの名無しさん
05/04/05 09:19:03
C++は難しいのでやめておきます。

656:デフォルトの名無しさん
05/04/05 09:36:16
>>652
削除したことどこでも否定してないけどw 頭大丈夫?
まぁ、めんどくさいと言っても削除しちゃったから見せることすらできないけどねw

657:デフォルトの名無しさん
05/04/05 16:40:23
URLリンク(www.atmarkit.co.jp)
↑サンプルアプリケーションがあったのでちょっと拝見

しかし、こんなもの見て「よし、これやってみよう」なんてプログラマいないよな?
まんど臭い機能つけて後で突っ込み浴びて却下とかなったら、破壊したくなるもんなあ。
Sのプログラマは駄目かと思われ・・受身が一番で常。

ただRAD手法は絶対必要だと思う。んでもって強気にいかないと(仕様変更をあの手この手で防がないと)、納期に間に合いません!

フィックスって言ってたやん・・なんて愚痴は何百回言ったことでしょうか・・

658:デフォルトの名無しさん
05/04/05 23:54:06
>>656
>>656
>削除したことどこでも否定してない
まさにあなたはそこを突っ込まれたのですよ。
理解してから書くか、理解できてないのならダンマリでよろしく。

659:デフォルトの名無しさん
05/04/06 00:58:46
そろそろウザいので相手するな。

660:デフォルトの名無しさん
05/04/06 03:24:21
>>658
いやぁ以前にも書いたけどどんな書き方しようが自由だからね。
そんなに僕ちゃんのおふざけが気に入らなかったかなw

661:デフォルトの名無しさん
05/04/06 07:11:59
>>659
うん。

662:デフォルトの名無しさん
05/04/06 11:31:39
あるプロセスが起動中か確認したいのですが
どうのようにすればよいでしょうか?
例えばhoge.exeか起動中かどうかというのを
確認したいです。


663:デフォルトの名無しさん
05/04/06 11:40:31
System.Diagnostics.Process.GetProcessesByName

664:デフォルトの名無しさん
05/04/06 11:43:15
>>663
さんくす

665:デフォルトの名無しさん
05/04/06 15:03:27
>>661
アホだったらいちいち相手しないよ。

666:デフォルトの名無しさん
05/04/06 16:05:06
WebBrowserコンポーネントで開いたExcelのイベントを取ることは可能だろうか?

667:初歩的な質問なのですが
05/04/06 16:05:18
初歩的な質問なのですが、vb.netを使ってアプリケーションを作成し、
セットアッププロジェクトでインストーラーを作成しています。

その際に作成した「プロジェクトファイル名\obj\Release」に作成したアプリケーションが出来ますが、
これをセットアッププロジェクトの「アプリケーションフォルダ」にドラックアンドドロップして、作成したアプリケーションを含めてビルドを行うと、依存関係が見つかりませんと出ます。

アプリケーション単体でビルド行った際には出ないのです。
もちろん、必要なCOMなどは参照設定で登録しております。

これは何が問題なのでしょうか?


668:デフォルトの名無しさん
05/04/06 20:51:32
>>667
理解しようとする意欲がないのに、最初からいきなり複雑なことを
成し遂げようって発想が理解できない。
韓国人のパリパリとかいう主義みたい。

そういう場合はまず手始めにフォームだけの空っぽのアプリのインストーラを
作ってみる。小学生でもわかる定石でしょ。
話はそれから。

669:デフォルトの名無しさん
05/04/06 22:28:25
年齢を生年月日から求めたいのですが
DateDiffで年の差を求めると月/日が無視されてしまいます。
困りました。

670:デフォルトの名無しさん
05/04/06 22:37:12
DateTimeのSubtractメソッド、TimeSpanのTotalDaysプロパティ、除算。

671:デフォルトの名無しさん
05/04/06 22:40:51
>>669はただ「困った」って言ってるだけじゃん。
何も質問してないぞ。

672:デフォルトの名無しさん
05/04/06 22:42:07
>>670
それって365日と366日で結果が違ったりしませんか?
超てきとー

>>671
(・∀・)ニヤニヤ

673:デフォルトの名無しさん
05/04/06 23:25:48
VBを始めようと思っているのですが、周りの人はCにしておけといっています。
VBの欠点を教えてください。

674:デフォルトの名無しさん
05/04/06 23:49:21
>>673
数日前もだれかに言った気がするが・・・
馬鹿に思われるからやめなさい

675:デフォルトの名無しさん
05/04/07 00:59:11
>>673
早く挫折できる。

676:デフォルトの名無しさん
05/04/07 11:34:46
以下のようなエラーが出ます。
> 'System.ObjectDisposedException' のハンドルされていない例外が mscorlib.dll で発生しました。
> 追加情報 : 閉じている TextWriter に書き込むことはできません。
エラーが出るのは下のソースで「_WriteText.Flush()」です。
Finalize()でFlush()を呼ぶ前にClose()は呼んでません。
なぜこんなエラーが返るのか検討がつきません。知っている方、ご教授願います。

  Public Class TextOut
   Private _FStream As FileStream
   Private _WriteText As StreamWriter
   Public Sub New()
     _FStream = New FileStream("log.txt", FileMode.Append, FileAccess.Write)
     _WriteText = New StreamWriter(_FStream, Encoding.GetEncoding("Shift_JIS"))
   End Sub
   Protected Overrides Sub Finalize()
     _WriteText.Flush()
     _WriteText.Close()
     _FStream.Flush()
     _FStream.Close()
     _WriteText = Nothing
     _FStream = Nothing
     MyBase.Finalize()
   End Sub
  End Class

677:デフォルトの名無しさん
05/04/07 13:24:02
.NETでの正規表現の質問はここでいいのでしょうか。

パターンAからパターンBが「最初」に出てきたところまで、
というパターンを作りたいのですがうまく行きません。

pA〇〇〇〇〇pBpA×××pBpA△△△△△△△△pBpA・・・・

↑から pA〜pBまでのセットを取りたいのです。

ここで、 pA.+pB とやると最初から最後まで引っかかってしまいます。

ただ、 pA[^pB]+pB とやれば意図したように動くのですが、
実際にはパターンA、パターンBとももう少し複雑なので
なにかいい方法はないでしょうか。


678:デフォルトの名無しさん
05/04/07 13:25:30
最短一致は「?」

679:デフォルトの名無しさん
05/04/07 13:30:19
VB.NETの質問スレだろ?なんでVB否定するヴォケがいるの?ROMってろよ、ゴラァ

680:デフォルトの名無しさん
05/04/07 14:43:02
>>678
ありがとん
pA.+?pB で思うようにできました。

681:デフォルトの名無しさん
05/04/07 17:40:37
普段はエラーなど起きないのに、ごく稀に発生するエラーに悩んでおります。
発生するエラーは2種類あります。

System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。
at System.Data.Common.Dbnetlib.ConnectionError(HandleRef pConnectionObject, IntPtr& netErr, IntPtr& netMsg, IntPtr& dberr)
at System.Data.SqlClient.TdsParser.ProcessNetlibError(IntPtr errno)
at System.Data.SqlClient.TdsParser.ReadNetlib(Int32 bytesExpected)
at System.Data.SqlClient.TdsParser.ReadBuffer()
at System.Data.SqlClient.TdsParser.ReadByteArray(Byte[] buff, Int32 offset, Int32 len)
at System.Data.SqlClient.TdsParser.ReadEncodingChar(Int32 length, Encoding encoding)
at System.Data.SqlClient.TdsParser.ReadValue(_SqlMetaData md, Int32 length)
at System.Data.SqlClient.TdsParser.ProcessRow(_SqlMetaData[] columns, Object[] buffer, Int32[] map, Boolean useSQLTypes)
at System.Data.SqlClient.SqlDataReader.PrepareRecord(Int32 i)
at System.Data.SqlClient.SqlDataReader.GetValues(Object[] values)
at System.Data.Common.DbEnumerator.MoveNext()
at System.Web.UI.WebControls.Repeater.CreateControlHierarchy(Boolean useDataSource)
at System.Web.UI.WebControls.Repeater.OnDataBinding(EventArgs e)
at System.Web.UI.WebControls.Repeater.DataBind()
at hoge.hogehoge.Button1_ServerClick(Object sender, EventArgs e)
at System.Web.UI.HtmlControls.HtmlInputButton.OnServerClick(EventArgs e)
at System.Web.UI.HtmlControls.HtmlInputButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
at System.Web.UI.Page.ProcessRequestMain()

続く...(本文長すぎって。。。)


682:681
05/04/07 17:41:27
...続き

System.InvalidOperationException: データ リーダーが閉じているときに、無効な操作 Read をしようとしました。
at System.Data.SqlClient.SqlDataReader.Read()
at System.Data.Common.DbEnumerator.MoveNext()
at System.Web.UI.WebControls.Repeater.CreateControlHierarchy(Boolean useDataSource)
at System.Web.UI.WebControls.Repeater.OnDataBinding(EventArgs e)
at System.Web.UI.WebControls.Repeater.DataBind()
at hoge.hogehoge.Button1_ServerClick(Object sender, EventArgs e)
at System.Web.UI.HtmlControls.HtmlInputButton.OnServerClick(EventArgs e)
at System.Web.UI.HtmlControls.HtmlInputButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
at System.Web.UI.Page.ProcessRequestMain()

以下、ソース抜粋
Repeater1.DataSource = SqlDataReader1
Repeater1.DataBind() ★ ここで稀にエラーが発生
SqlDataReader1.Close()
SqlConnection1.Close()
SqlConnection1 = Nothing

データベースを検索して結果を表示する、といった簡単なものなのですが、
結果の件数が100件程度だと再現せず、1000件ほどになると稀に発生します。
よい解決案などありましたら、ご教授おねがいいたします。


683:デフォルトの名無しさん
05/04/07 18:24:18
>>681
Repeater1が何ものか知らないが
DataSourceにReaderをつっこむのではなく
DataTableのDefaultViewを設定してみては?


684:デフォルトの名無しさん
05/04/07 18:31:49
.netフレームワークのバージョンって
どうやって調べるの?

685:デフォルトの名無しさん
05/04/07 18:48:52
>>676
_FStreamのファイナライザが既に動いてCloseしてるからだろう。
URLリンク(www.ascii.co.jp)
が参考になるかも知れない。

そもそも、どうせFileStreamがGCされた時にFileStreamのファイナライザが動いてフラッシュして閉じるので、
こちらでわざわざファイナライザを実装してCloseさせちゃいけない。

StreamWriterを使うと、デフォルトではStreamWriterがバッファリングしてストリームにすぐには書き込まないので、
書き込み内容が損失するわけだ。StreamWriterのファイナライザはストリームに操作しないから。
確実にはStreamWriter.Closeが喚ばれない場合の解決策としては、
StreamWriterを使わずWriteやWriteLineメソッドを自前で実装してFileStreamに直接書き込むとか、
StreamWriterを使うなら、AutoFlushをTrueにする手もある。

こういう場合はIDisposableを実装させてDisposeメソッドにファイル閉じる動作を書いて、
プログラマにDispose呼出を明示するのがベターなんだけどな。
VB2005でUsingステートメントもサポートされるようになるし。

ちなみに、StreamWriter.Closeは、自動でFlush動作もするので_WriteText.Flushは必要ないし、
基底のストリームも閉じてしまうのでその後の_FStream.Flushとかできない(意味無い)。

686:デフォルトの名無しさん
05/04/07 19:01:57
>>684
コード上から(実行時に)調べる、というのなら
URLリンク(www.atmarkit.co.jp)

687:676
05/04/07 21:05:29
>>685
レスありがとうございます。凄く×∞参考になりました。m(_ _)m
ついでに、自分のバカさ加減がよ〜くわかりました…
全て685さんの指摘どおりです。
私はVB.NET歴2日の上、JavaやC++(こっちは4年くらいやってる)と同じ
程度の処理が出来ると思ってました(爆)。

StreamWriter.CloseがFileStream.Closeを呼び出すのはいいとして、
Finalize()の呼び出し順序が明確に決まってない事には驚きました。
指摘にあったDisposeの実装で対応するしかなさそうです。
Finalize()を使った「後始末はおまえにまかせる」は無理っぽいですね。
書き込みの精度は、一定のWriteをした直後にFlushするようにします。


StreamWriterとFileStreamの問題は有名なんですね。
しかもStreamWriterのFinalize()が何もしないっては……orz

688:デフォルトの名無しさん
05/04/08 01:06:57
何かしてくれるとバグに気づきにくい可能性があるからだよ。


689:デフォルトの名無しさん
05/04/08 03:00:17
>>679
あなたはVBスレでVB万歳なレスだけみていてそれで満足なんですね?
たまには自己否定も必要なんですよ。

690:デフォルトの名無しさん
05/04/08 05:20:35
VB6からの移行組です。
簡単な通信(チャット)を行うプログラムを作ろうと思います。
Winsockコントロールが標準で無いのでSystem.Net.Socketsを
使う方法を初歩から学習中です。

そこで分からないのは、Winsock.ocxのデータ受信イベント
(DataArrival)の代わりの方法についてです。

WithEvents 付きで System.Net.Sockets.TcpClient を宣言すると
「WithEvents変数はイベントを発生させません」と怒られます。

何か、Eventドリブン式で書く方法は有りますでしょうか?

とりあえず、Threadクラスを使ってループ待ちさせる方法を見つけ
自作イベントのような形では実現できましたが、こっちのスレッド
方式と、Event方式とどちらが一般的でしょうか?

VB6の時にクラスは使ってましたが理解度は低めです。
よろしくお願いいたします。


691:デフォルトの名無しさん
05/04/08 05:33:58
わざわざイベントで書く必要がないんだが。
送受信を行うNetworkStreamは、データが来るまで自動的にブロッキングしてプログラムの流れを中断させる。
別スレッドでReadさせておけばいい。

692:デフォルトの名無しさん
05/04/08 06:04:23
>691 レスありがとうございます!それでは現在テストで動いた以下の
スレッド方式でも、悪い方ではないと考えていいでしょうか?
Private Sock1 As New System.Net.Sockets.TcpClient
Private Stream As NetworkStream
Private myThread As Threading.Thread
-----ボタンクリック
Private Sub Button1_Click(〜) Handles Button1.Click
   Sock1.Connect("www.yahoo.co.jp", 80)
   TextBox1.Text = ""
   Stream = Sock1.GetStream()
   Dim ByteSend As Byte() = System.Text.Encoding.ASCII.GetBytes("GET / HTTP/1.0" + vbCrLf + vbCrLf)
   Stream.Write(ByteSend, 0, ByteSend.Length())
   myThread = New Threading.Thread(AddressOf DataArrave)
   myThread.Start()
End Sub
-----自作SUB
Private Sub DataArrave()
   Dim ByteRead(2000) As Byte
   Dim strText As String
   Dim intLength As Integer
   Dim lngRevcnt As Long
   Dim lngRevByt As Long
   Do
     intLength = Stream.Read(ByteRead, 0, ByteRead.Length())
     lngRevcnt += 1 : lngRevByt += CLng(intLength)
     Me.Text = "受信パケット数:" & lngRevcnt & " (" & lngRevByt & " byte)"
     strText += System.Text.Encoding.ASCII.GetString(ByteRead, 0, intLength)
     If intLength < 1 Then Exit Do
     Sock1.Close()
   Loop
   TextBox1.Text = strText
End Sub

693:690=692
05/04/08 06:08:49
↑すみません、レスの改行制限で見づらくなりました。
とりあえずの確認用なので、単に、HTTP-GETを送信して
自作スレッドで受信させているだけのショボプログラムです。

とりあえずこんな感じでも、アリでしょうか?


694:デフォルトの名無しさん
05/04/08 06:21:05
>>692
Readがパケットごとに実行される保証はどこにもないはずだがね。

> strText += System.Text.Encoding.ASCII.GetString(ByteRead, 0, intLength)

まあASCIIだからいいけど、shift_jisとかだとデコードに失敗する可能性があるよ。
最後の1バイトが2バイト文字の1バイト目だった場合に。
受信中はMemoryStreamに蓄えて、受信が完了してから一気にGetStringしたほうがいい。

> Do
(略)
>   If intLength < 1 Then Exit Do
>   Sock1.Close()
> Loop

このSock1.Close()はコピペミスかな?
Loopの外に出さなきゃいけないね。

> Me.Text = "受信パケット数:" & lngRevcnt & " (" & lngRevByt & " byte)"
> TextBox1.Text = strText

やっかいなのはこいつだ。
別スレッドからコントロールを操作しちゃいけない。
Invoke/BeginInvokeを使う必要がある。
URLリンク(dobon.net)
の19から26、とくに25を良く読んでマルチスレッドに関する問題を良く把握してくれ。

695:690=692
05/04/08 06:33:44
>694
うぉ!ありがとうございます!

1Read=1パケとは限らないのですね。分かりました!
確かに、逐次デコードはまずいですね。了解です。

> このSock1.Close()はコピペミスかな?
> Loopの外に出さなきゃいけないね。

そうなんです。実は少し悩んでました。
手持ちの書籍「VB..net逆引き大全500」の初歩サンプルに
こういった記述があったもんで丸写ししながら疑問に感じてました。
試してみたらコレでも動くんです。
今試したら外へ出しても動きますね。理屈通り外へ出します!

> Invoke/BeginInvokeを使う必要がある。

了解です。教えていただいた所を良く読んで勉強します!
とても丁寧に分かり易いレスを本当にありがとうございました!


696:デフォルトの名無しさん
05/04/08 07:12:06
>>689
理由が書かれていませんね。

697:デフォルトの名無しさん
05/04/08 08:29:05
>>686
遅くなりましたがありがとうございました。

698:デフォルトの名無しさん
05/04/08 13:11:00
comboboxでデータソース指定だと、表示(DisplayMember)と値(ValueMember)を指定できるけど、
自分で項目を設定した場合は、そういった指定はできないものなのですか?

699:デフォルトの名無しさん
05/04/08 13:14:27
どういう効果を求めているの?

700:デフォルトの名無しさん
05/04/08 13:18:05
表示は

東京
大阪
名古屋
・・・(略)

などと表示して、内部の値としては

34
21
15
・・・(略)

などように、取り出せるようにしたいです。


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

4974日前に更新/240 KB
担当:undef