VB.NET質問スレ (Part19 ..
[2ch|▼Menu]
666:デフォルトの名無しさん
07/02/14 23:09:14
>>665
クラスをメモリに確保してるんだからすべてにきまってるんじゃないかな?
じゃなかったら各クラス(以後オブジェクト)のメソッドも使えないっしょ?
一部はメソッド使いたくないなら使わない部分だけ構造体にして格納して取り出すときにTypeOfで調べてぶんきさせてもいいだろうし
ぶっちゃけ同じことVB6でもできると思うんだけど・・・
むしろ型を持ったまま配列に放り込めるのが強みだと思ってるんだが…・

それぁ、全部構造体にしてメソッドはモジュールにでも書き出すとかさ
いろいろ手はあると思う。

それに、そのくらいのメモリ気にする時代でもないと思うんだ
それだったらもっと別のところ削れるだろうし

667:デフォルトの名無しさん
07/02/14 23:15:57
>メソッドも配列要素の数だけメモリ上に確保されてしまう
の意味が不明

668:デフォルトの名無しさん
07/02/14 23:20:09
プログラムコードをメモリ上に展開するって話でしょ?
データはインスタンス分確保されるだろうけど、
コード部分は共用するんじゃなかった?

669:デフォルトの名無しさん
07/02/14 23:20:44
コード部分は共通。リフレクション使ってアセンブリを読み込めば出来るかもしれないけどね。
VB6でもクラスの配列は使える。

670:デフォルトの名無しさん
07/02/14 23:21:12
>>667
あれじゃね?
変数10k
メソッド部分5k
とかの計15kのサイズのクラスがあって
それをインスタンスつくってArrayListとかにほりこんだときに
15k、10k、10k、10k、10k
とかで保持してくれないのかな?
ってことじゃね?

普通にないけどさwww
これできたらじゃぁ2個目のクラスはメソッドどうなるんだよwww
てことになるわけだが、そんな常識は無視して考えようwww


671:665
07/02/14 23:25:12
>>666
ありがとうございます。
>じゃなかったら各クラス(以後オブジェクト)のメソッドも使えないっしょ?
たしかにそうですね。

>それに、そのくらいのメモリ気にする時代でもないと思うんだ
もともとマイコンのプログラミングから入ったので、メモリ節約癖がしみついてしまっている自分。
メモリがギガバイトクラスになっても、気にせずにはいられない自分に欝。
こういうあたりでいつのまにか時代に取り残されてしまうんだな。

672:デフォルトの名無しさん
07/02/14 23:28:20
>>671
いやいや、節約は大事だけど
まぁ、導入する環境とかも含めて考えていけば節約する場面もあると思うよ
非接続データ保持したりすればメモリ食うから、超ぼろいマシンでメモリ足りなくなるかもしれないところはきっと接続でやったりするだろうし
ケースバイケースじゃないかな?と

あくまで、本当に無駄のない部分そぎ落としてからの作業になるけど


と素人PGがいってみるwwww

673:デフォルトの名無しさん
07/02/14 23:37:48
>>670
じゃあ Shared メソッドはどうなるんだよ

674:デフォルトの名無しさん
07/02/14 23:42:14
>>673
実体化した場合Sharedの部分もオブジェクトのメモリ部分に格納されるんじゃないかな?

あくまでクラスのインスタンス化されていないものもメモリに格納されていて
実体化はそれのコピーっしょ?

実体化しないSharedメソドはインスタンス化されていない部分を使用しているんじゃないかと考える

675:デフォルトの名無しさん
07/02/14 23:48:35
連投ごめ

一応俺の浅はかな考えだからwww
もし、本当に知ってる人いたら教えてwwww

676:665
07/02/14 23:58:34
自分で質問しておいてなんですが、
私もちょうど本を見てて「共有メソッドってのがあるじゃん!!」と思ってたところでした。
VB2005に乗り換えて最初に買った、林晴比古のVB2005ビギナー編です。

共有メンバと呼ばれる変数とメソッドは、いくつインスタンス宣言をしても
メモリ上にひとつの実体しか確保されない。

と説明されています。

677:最凶VB厨房
07/02/15 09:11:25
(インスタンス)メソッドの実体は何個インスタンス作ろうが常に一つです。

インスタンスメソッドの起動にはインスタンスへのアドレスとそのアドレスから
メソッドへの相対アドレスの二つを必要とします。

678:デフォルトの名無しさん
07/02/15 09:29:46
そのアドレスから の部分間違えた。
他にも微妙に間違えておるわ。

679:デフォルトの名無しさん
07/02/15 10:11:48
フラッシュを用いたブラウザゲームに連動するソフトを作りたいと思ったのですが、フラッシュから文字列データを取得等は可能でしょうか?
例えば、このような機能を実装したいとした場合に可能かどうかという事です。

ゲーム上で「***はレベルが15に上がった」というメッセージが表示された時、
プログラムの方で予め登録しておいた文字列とマッチングを行い、「レベル」が「15」になった事を検地してデータファイルを更新する等の所定の動作を実行するといった感じです。

680:デフォルトの名無しさん
07/02/15 11:28:01
カメラでディスプレイをモニタして画像を解析する

681:デフォルトの名無しさん
07/02/15 11:41:02
マジレスしたら>>679のやりたいことググって見つけた

682:デフォルトの名無しさん
07/02/15 11:57:38
お助けください

・VB6
・SPREAD ver.6.0

【現象】
EnabledをFalseにするとスクロールバーまで固定されてしまいます。

【質問】
スプレッドシートを表示専用(.EnabledをFalse)にしつつ、
スクロールバーを有効にする方法を教えて頂きたいです。

【備考】
.OperationModeでもスクロールバーが固定されてしまう。

683:デフォルトの名無しさん
07/02/15 12:11:47
そんなの販売元に訊けよ

684:デフォルトの名無しさん
07/02/15 12:13:54
そもそもスレ違いだ

685:デフォルトの名無しさん
07/02/15 12:34:18
西京味噌イラネ

686:デフォルトの名無しさん
07/02/15 12:44:37
>>676
これだからハルピコ本は…

Shared だろうが何だろうが、同一クラスのメソッドやプロパティが
インスタンス毎に生成されたりはしない。

687:デフォルトの名無しさん
07/02/15 14:49:29
アプリケーションの設定情報の管理方法について
URLリンク(www.microsoft.com)

↑この方法で設定を読み出し・書き込みするときに
My.Settings.My_WidthのMy_Widthを変数にすることは出来ないのですか?
例えば
HENSUU=My_Width
My.Settings.HENSUU
こんな感じに・・・

設定する項目が多いとその数だけTextBoxが必要になりますよね?

688:デフォルトの名無しさん
07/02/15 15:00:36
>>687
My.Settings.My_Width = HENSUU じゃ駄目なのか?

689:デフォルトの名無しさん
07/02/15 17:15:14
Dim mProcess As New Process()
mProcess.StartInfo.FileName = "notepad.exe"
mProcess.StartInfo.UseShellExecute = True
mProcess.StartInfo.WindowStyle = ProcessWindowStyle.Minimized
mProcess.Start()
なら最小化されるのに、
mProcess.StartInfo.UseShellExecute = False
だと、なぜか最小化されません。そういうものなのでしょうか?
mProcess.StartInfo.UseShellExecute = True
で、最小化で起こすことはできないのでしょうか?

690:デフォルトの名無しさん
07/02/15 18:11:00
>>687
My.Settings("My_Width") = 10

691:679
07/02/15 20:08:28
>679ですが、自分なりに調べてみましたがわかりませんでしたorz
そのゲームというのは自分の作品では無いのですが、それでも文字列や数値データを取得する事というのは可能なものなのでしょうか・・・
カメラは無しでお願いします

692:デフォルトの名無しさん
07/02/15 23:57:49
>>691
そのFlashが吐き出してくれなきゃまず、普通には無理だろうな
当たり前のことだが・・・

Flashが外部へ何らかのインターフェイスを持っているなら出来るがな
昔時間ない案件の時に適当にテキスト吐かせて無理やりやったことあるけど

693:デフォルトの名無しさん
07/02/16 00:34:36
アプリケーションの設定を soapformatter で保存しています。
が、xmlns がそのアプリケーションのアセンブリ名になり、
他のアプリケーションから読み書きできません。
どうしたらいいのでしょうか?

694:デフォルトの名無しさん
07/02/16 01:18:25
VBAだとTest1とTest2のマクロを一括で処理するには
プロシージャー名を記述すれば出来ますが
VB.NET 2005では、どう記述したら良いのでしょうか?

例)
Sub 一括()
Test1
Test2
End Sub

Sub Test1()
End Sub

Sub Test2()
End Sub

695:デフォルトの名無しさん
07/02/16 01:35:35
最近のPGはインスタンスごとにメソッドの実体ができるのかどうかとか、
本気で悩むくらい、常識的な感覚もなくなってるのか…


696:デフォルトの名無しさん
07/02/16 01:45:14
だってここVB.NETスレだよ?


697:デフォルトの名無しさん
07/02/16 08:19:19
>>695
常識的なプログラマならそんなアホな悩みを持つかよw

インスタンスメソッドなんて、実体はインスタンスへのポインタを引数にとる「関数」
に過ぎない、とOOP勉強して1時間で気づくだろ普通w

698:デフォルトの名無しさん
07/02/16 08:31:26
そういうもんだろうと予想はするけど、
本当に実装がそうなってるかどうか気になるってのは別におかしくないだろ

699:デフォルトの名無しさん
07/02/16 10:11:55
インスタンスごとにメソッド実体を持つなんて、
ちょっと考えられない。
ものすごく特殊な機能を実装している言語とかランタイムなら、
確かに絶対ないとは言い切れないが、少なくとも.NETレベルの
機能でそれはありえない。
ていうか、上で書いたのはそもそも、みんなインスタンス単位で持ってると
思ってるような書き込みが最初に続いていたからで。


700:デフォルトの名無しさん
07/02/16 10:15:45
少なくとも、まず共有されてると予想するのが先でしょ。
10000この配列にインスタンス格納したら
メソッドの実体が10000個できるのかよ。
メモリいくらあっても足りない。
継承してるメソッドとかどうなるんだよ。


701:デフォルトの名無しさん
07/02/16 10:17:48
>ていうか、上で書いたのはそもそも、みんなインスタンス単位で持ってると
>思ってるような書き込みが最初に続いていたからで。

すまん、読み返してみたらそれほどではなかった。


702:デフォルトの名無しさん
07/02/16 10:26:02
ちなみに、インスタンス毎に確保される、データ以外の領域ってのはちゃんとある。
型オブジェクトへのポインタと、同期テーブルインデックス。
32ビット環境では占めて8バイト分がとられる。


703:694
07/02/16 15:21:54
とりあえずCallで解決しました。
Call Button1_Click(Button1, e)

異なるイベントで、同じ処理を流用するとき
他に良い方法はありますか?


704:デフォルトの名無しさん
07/02/16 15:48:17
メソッド作って好きにに呼びゃあいいだろ


705:デフォルトの名無しさん
07/02/17 00:32:27
viEmuのアンインストール方法を教えて

706:デフォルトの名無しさん
07/02/17 00:35:31
事故怪血しました

707:デフォルトの名無しさん
07/02/17 07:51:57
URLを指定して該当ページのソースを読む事って出来ますか?
出来るとしたらどんな関数を使えば良いのでしょうか、教えて下さい

708:デフォルトの名無しさん
07/02/17 07:55:12
>>707
WebRequest クラス

709:665
07/02/18 21:27:35
665です。
2日たって来てみたら、なにやら詳しそうな方のレスがついていて
ありがたいです。
>>697 >>792 を読んで、ホッとしました。
やっぱり無駄にメモリを食わない仕様になってるんですね。


710:デフォルトの名無しさん
07/02/19 00:12:34
>>792よろぴく


711:デフォルトの名無しさん
07/02/19 01:43:16
>>792 は難しそうなので
>>689 をよろしく


712:デフォルトの名無しさん
07/02/20 16:46:37
VBA実行処理中に経過時間をリアルタイムで表示させるには、どうしたらいいですか?

713:デフォルトの名無しさん
07/02/20 17:06:19
スレ違いです

714:デフォルトの名無しさん
07/02/20 17:08:34
えっ!VB.NETでVBAを操作する場合なのですけど?

715:デフォルトの名無しさん
07/02/20 18:37:46
>>712
Background Worker

716:デフォルトの名無しさん
07/02/20 20:46:01
AがBでもCでもない時、という条件を
A <> B AndAlso A <> C
と書いてるんですが、もっとスマートな書き方はあるでしょうか?

717:716
07/02/20 20:47:34
すみません、>>716まちがえました。
A <> B And A <> C
です。よろしくお願いします。


718:デフォルトの名無しさん
07/02/20 21:30:35
おれの経験じゃ、こういうピントがずれたことにこだわる傾向のある奴は
プログラマ向いてない。

719:デフォルトの名無しさん
07/02/20 21:54:24
それからさー、Helpのリンクがどんどん切れて行くんだが、
なんとかならんのかこいつは!!!

720:デフォルトの名無しさん
07/02/20 21:55:54
>>718
んなことない。
初心者は大抵そう。

721:デフォルトの名無しさん
07/02/21 01:45:26
質問です。

一覧系の画面を作るのに、Spreadを使用しているのですが、
特定の列を固定することはできるのでしょうか?
(エクセルのウィンドウ枠固定みたいな感じにしたい)
プロパティを探してもそれらしき設定が見つかりません。

.NET標準のDataGridというコントロールには列固定を設定する
プロパティがあるんですが、Spreadじゃできないんですかね…

722:デフォルトの名無しさん
07/02/21 08:28:51
グレープシティのSPREADのこと?
俺は使った事ないからわからないな。

あの分厚いマニュアルに書いてない?
CDの中にPDF付いてなかったっけ?

723:デフォルトの名無しさん
07/02/21 09:42:55
>>715
時間のかかる処理をバックグラウンドで実行するには?BackgroundWorkerコンポーネント
URLリンク(www.atmarkit.co.jp)

724:デフォルトの名無しさん
07/02/21 11:24:00
質問があります。
VC++.NETで作ったDLL(ソースあり)があり、デバグモードで実行しています。
これに、VB.NETで作ったプログラムからデバグモードでアタッチしたいのですが、
どうすればいいのでしょうか?

725:デフォルトの名無しさん
07/02/21 11:53:05
で、できた…!DLLのアタッチ、自力でできました!
一応どうやったか書いておきますね。

1.VB側、exeをビルドして終了(もしくは放置)
2.VC++側でDebugモードでDLLビルド→自動的に出てくる『ActiveXコントロールテストコンテナ』は無視
3.VBで生成したexeを実行
4.VC++側のメインメニュー→「デバッグ」→「プロセス」を選択
5.VBで生成したexeのプロセスを探し出しクリック→「アタッチ」ボタンを押す
6.良くわからんけど「Native」にチェックを付けてOKボタンを押す

この時点でexeとDLLがくっついて一連のプロセスとして扱えます。
あるボタンをクリックし、その主処理がDLLにあるとすればそちらに制御が流れますので
ブレイクポイントを張っておけばそこで処理が止まり、ステップ実行してデバグ可能
になります。

726:デフォルトの名無しさん
07/02/21 11:54:50
>>725に一応補足します。
レジストリにVC++から生成されるDLLへのパス指定をしているのは言うまでもありません。

727:デフォルトの名無しさん
07/02/21 12:22:32
つうか、ソースあるなら1つのソリューションにしちゃえばいいじゃん。
それで依存関係つければ別に。

728:デフォルトの名無しさん
07/02/21 12:27:16
>>727
もう安定稼動しちゃってるから今更構成を変えるのは怖いのです…。

729:デフォルトの名無しさん
07/02/21 12:28:01
>>723
COMはスレッドセーフじゃないと思うんだがw

しかし、こういう得意げに一行コピペする奴の神経ってわからん。
いや、むしろ精神分析の対象だと思う。
少しも大げさでなく。

730:デフォルトの名無しさん
07/02/21 12:31:54
分らないのだったら書き込まなくてもいいよ。患者さん

731:デフォルトの名無しさん
07/02/21 12:35:52
2chでレスしてる相手の神経をいちいち推測しようとするほうがよっぽど分析対象に近いと思うがw

732:デフォルトの名無しさん
07/02/21 12:39:14
喧嘩はやめて〜♪

733:デフォルトの名無しさん
07/02/21 12:41:02
>>728
プロジェクトは構成だけど、ソリューションは論理単位ですよ。
なので、別にプロジェクトを変えないでも2つのプロジェクトを1つのソリューションとして定義するだけ。

734:デフォルトの名無しさん
07/02/21 13:40:25
>>729
意味がわからん、もう少し詳しく説明しなさいw

735:728
07/02/21 14:29:15
>>733
や、それはそうなんだけどCVSのバージョン定義とかなんとかめんどいのよ。
やった方が将来的にはいいってのは分かるんだけど、
まだ慣れてないんで、なんか現状とは違うものにしちゃいそうな俺。

736:デフォルトの名無しさん
07/02/21 16:03:18
>>729
>>2

737:デフォルトの名無しさん
07/02/21 16:38:33
わろた

738:デフォルトの名無しさん
07/02/21 17:07:18
初歩的な質問です。
 -5.067の値を-5.0670E+000と書き換えるやり方を教えて下さい。
 お願い致します。

739:デフォルトの名無しさん
07/02/21 17:24:31
ToString("E4")

740:デフォルトの名無しさん
07/02/21 17:48:46
>>738
質問者が初歩的な質問なんていうなよw

741:デフォルトの名無しさん
07/02/21 19:03:34
むしろ高度じゃね?

742:デフォルトの名無しさん
07/02/21 19:12:06
>741
んなこたぁ〜ない

743:デフォルトの名無しさん
07/02/21 23:37:08
ちとお尋ねします。

Private Structure 構造体名
Public Dim String1 As String
Public Dim String2 As String
.....
End Structure

Public Function 関数() As String
Dim 構(n) As 構造体名

構(0).String1 = "なんとか"
構(0).String2 = "かんとか"
...
構(1).String1 = "書き込む"
構(1).String2 = "やめる"
...

上記の宣言と同時に配列に値を入れていく方法ってありますか?

Dim 構造 As 構造体
Dim 構() As 構造体名 = {(構.String1 = "なんとか", 構.String2 = "かんとか"), _
(... }
こういうのはダメでした。正しい方法あれば教えてください。
VB暦はだいたい100時間くらいです。

744:デフォルトの名無しさん
07/02/21 23:38:44
構造体にコンストラクタを記述する

745:デフォルトの名無しさん
07/02/22 00:04:53
>>743
やり方は幾らでもあるが、一番オーソドックスなのは
構造体の中に「初期化した自分自身」を返す共有(Shared)メソッドを書く方法だろう。

別に構造体でなくクラスでも構わない(まあ特別な理由がない限りそうだと思うが)
ならコンストラクタに初期化の処理を書いてもいい。

っていうか、初心者はまず本の一冊ぐらい読めよ。
そんでもってちょっと考えれば誰でも思いつくようなこと(例えばこの質問がそうだが)
を質問するのは恥ずかしいことだと思った方がいいよ。

746:デフォルトの名無しさん
07/02/22 00:19:33
なんか
面白いvb.netで作られたアプリない?


747:デフォルトの名無しさん
07/02/22 00:27:16
>>743
Structure ABC
    Public Sub New(s1 As String, s2 As String)
        Str1 = s1
        Str2 = s2
    End Sub
    Public Str1 As String
    Public Str2 As String
End Structure

Module XXX
Sub Main
    Dim a() As ABC = { New ABC("111","111"), New ABC("222","222") }
End Sub
End Module


748:743
07/02/22 00:34:39
>>744 >>745 >>747
皆様ありがとうございます。精進します。

749:738
07/02/22 11:39:21
>>739
 ありがとうございました。これで安心です。

750:デフォルトの名無しさん
07/02/22 13:21:54
あるフォームのPanelコントロールに動的に追加されるテキストボックスがあり
その動的に追加されたテキストボックスのValidatedイベントに
あるプロシージャをAddHandlerしてある状態です。

このときあるプロシージャで入力チェックを行い
ダメならエラープロバイダを表示したい
OKならエラープロバイダを表示しない
としたいのですが、
今一歩わからないところがあります。


1.SetErrorで表示させたエラープロバイダは単純にVisible=Flaseにしたのでかまわないのか・・
スッゴイ初歩的なことですみません。

2.やっぱりあるコントロールのインスタンスを作る時にエラープロバイダのインスタンスも作成し、それをセットするべき?
(今はFormに貼り付けたエラープロバイダをセットしています。)

イマイチ説明がぐちゃぐちゃなきがしますが・・・

751:デフォルトの名無しさん
07/02/22 19:05:44
何も行動を起こさないうちから分からないとかほざいてる
お前さんの存在こそ分からないよ

752:デフォルトの名無しさん
07/02/23 00:40:03
サブフォーム開いたり閉じたりした後にメインのComboBoxにフォーカスあてる(クリックする・Tabキーでフォーカス移動する)だけでnull参照エラーがでます
何しても解決できない
ボスケテ

753:デフォルトの名無しさん
07/02/23 09:52:32
フォーム2をモードレスで開いたり閉じたりする場合は
グローバルに宣言をしても良いの?

クラスはグローバルに宣言することは良くないって聞いてたんで
この機会にちゃんとした方法を覚えておきたい。

754:デフォルトの名無しさん
07/02/23 10:12:30
モードレスでも呼び出し元がいるなら、そいつがインスタンス管理すればいいし。
そうじゃなく、アプリ内で完全に各画面非同期なら、アプリ自身の管理プロセスクラスの変数でしょ。
グローバルじゃなくてもいけるし、グローバルでもいける。


755:デフォルトの名無しさん
07/02/23 11:22:50
つーか.netにグローバルはない


756:デフォルトの名無しさん
07/02/23 11:30:12
Moduleだけでプログラムを書く。

757:753
07/02/23 12:50:08
グローバルと言うかパブリックです。
そのパブリックもモジュールに宣言したものをグローバルと言いました。
紛らわしくてごめんなさい。

>>754
アプリ内で各画面非同期です。
管理プロセスクラスと言うのがあるんですか?
ぐぐるで探してみたけど見つけれませんでした。

>>755
モジュールもクラスと考えればそうなりますね。

>>756
それはちょっと勘弁願いたい。

758:デフォルトの名無しさん
07/02/23 16:52:01
育児イライラどう発散してる?育児板
スレリンク(baby板)

763 名前:名無しの心子知らず[] 投稿日:2006/11/18(土) 13:06:17 ID:g2BG3ATp
娘@3ヵ月にあたりちらす。ビンタやお湯に顔面つけたり、
定規をビシッと背中にふりおろしたり、オムツ一枚にして冷たい床の上に寝転ばせたりマチ針で歯茎さしたりw

765 名前:名無しの心子知らず[] 投稿日:2006/11/18(土) 13:13:44 ID:wPPSorpM
>>763
気持ち分かるよ。イライラするよね。育児って。
私はわざとどなったりして息子を怯えさせちゃうよ。
今日は怯えて指しゃぶり過ぎて指がすっごい内出血しちゃった。

766 名前:名無しの心子知らず[] 投稿日:2006/11/18(土) 13:41:34 ID:g2BG3ATp
>>765
わかってくれてありがとう。
本気で死なない程度や跡が残らない程度に毎日してるよ。
たまに気がむいたら可愛がるけどね!
さっきなんか一瞬だがドライヤーの熱風背中に浴びせたよw
マチ針は血が出て焦ったけどね。
おすすめは、熟睡してるところにいきなり勢いよく高い高いがいいよ。
驚愕の顔で泣くのがたまらんw
あとおしりの谷間の産毛をむしりとる。
痛いみたいでよく泣いてるけど跡が残らない♪

759:デフォルトの名無しさん
07/02/23 18:30:38
>>757
言ってることが酷く頓珍漢だから、殊勝に初歩から勉強することをお勧めする

760:753
07/02/23 23:49:38
>>759
VB6厨です。
サポート有りと無しじゃ(サポート受けるかは別として).NETが有利なんで
必要にせまられて頑張ることになってます。

クラスをもう一度勉強しなおしてきます。


761:デフォルトの名無しさん
07/02/24 01:37:24
1、あらかじめカンマで区切られた文字列をカンマごとにバラバラにして配列に入れる。
2、"で囲まれたものは1つにまとめて入れる。 "a,b,c,d,e"こんなのは1個とする。
3、"が変な場所にあったり、足りないものはとりあえず無視する。

こんな条件で書いてみたんですが長いので短くきれいに改良したいのです。
どこをどうなおしたらいいんでしょうか。
記憶を頼りにメモ帳で書いたので文法もロジックも間違ってるところが
多いと思いますのでよろしくお願いします。

762:761です
07/02/24 01:38:47
Public Function ABCList(ByVal ABC As String) As List(Of String)
  ABCList = New List(Of String)
  Const Comma As Char = CChar(",")
  Const WQuotation As Char = CChar("""")

  Dim ArrayOfABC() As String = ABC.Split(Comma)
  Dim CountABC As Integer = ArrayOfABC.Length
  Dim ”あり As Boolean = False
  Dim Temp As String = ""
  Dim i As Integer

763:762つづき
07/02/24 01:39:44
  For i = 0 To CountABC - 1
    If ArrayOfABC(i).先頭が” Xor ArrayOfABC(i).最後尾が” Then
      If ArrayOfABC(i).先頭が” Then
        If i < CountABC - 1 Then
          Temp &= ArrayOfABC(i)
          ”あり = True
        Else
          ABCList.Add(ArrayOfABC(i))
        End If
      Else
        If i <> 0 Then
          Temp &= CStr(Comma & ArrayOfABC(i))
          ABCList.Add(Temp)
          ”あり = False
        Else
          ABCList.Add(ArrayOfABC(i))
        End If
      End If
    ElseIf ”あり Then
      Temp &= CStr(Comma & ArrayOfABC(i))
    Else
      ABCList.Add(ArrayOfABC(i))
    End If
  Next

  Return ABCList
End Function

764:デフォルトの名無しさん
07/02/24 15:10:44
>>762
あんまり正規表現つかったことないんで間違ってたらごめん
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim texts As String() = MySplit(TextBox1.Text)
    For Each Text As String In texts
      Console.WriteLine(Text)
    Next
  End Sub

  Private Function MySplit(ByVal input As String) As String()
    Dim pattern As String = "([^,]*("".*"")+[^,]*,)|([^,]*,)|([^,]*$)"
    Dim matches As MatchCollection = Regex.Matches(input, pattern)
    Dim texts As New List(Of String)

    For Each m As Match In matches
      texts.Add(m.Value.Trim(","c))
    Next
    Return texts.ToArray
  End Function

765:デフォルトの名無しさん
07/02/24 15:45:18
2005ならTextFieldParserが使えるな

766:デフォルトの名無しさん
07/02/24 16:01:00
そんなのあるのか
でもVBの名前が付いてるとなんか使う気しねえw

767:デフォルトの名無しさん
07/02/24 16:49:23
俺は気にせず使ってる。
使わない方がいい理由があんまりない。

768:デフォルトの名無しさん
07/02/24 17:08:23
/novbruntimerefつけてコンパイルしないと勝手にMicrosoft.VisualBasic.dll参照してるでしょ

769:デフォルトの名無しさん
07/02/24 17:57:37
メソッドを作る
URLリンク(homepage1.nifty.com)

770:761
07/02/24 18:26:03
皆さんどうもありがとうございます。知らんことばっかりなんで勉強します。

771:デフォルトの名無しさん
07/02/24 18:26:47
VB関数は何か馬鹿にされているような気がして使う気になれないな〜。

772:デフォルトの名無しさん
07/02/24 21:25:18
カスタムコントロールを作くたんですが、Formに貼付けたタイミングで。。。

Private Sub Button1_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
何か処理...
End Sub

↑見たいに(業務ロジックを書くにあたって)必要なイベントを自動的にFormに書く事ってできないでしょか?
Clickイベントの中にテンプレートコードも同時に出力して、お前らそれ使ってロジック書け見たいなこと
やりたいんですが。


773:デフォルトの名無しさん
07/02/24 22:05:39
コントロールからは出来ない。

フォーム側の基本クラスを抽象化すれば、似たことは出来るけど。
その場合、フォームがフォームデザイナで表示できない(=実体化できない)ので開発が難しい。



774:デフォルトの名無しさん
07/02/24 22:46:52
っていうか、そんな定型的な処理なら最初からコントロールに
組み込んでおけばいいじゃん。

775:デフォルトの名無しさん
07/02/24 22:48:25
>>772
テンプレート使えばいいんじゃないの?

776:デフォルトの名無しさん
07/02/24 22:53:14
2005ならオナペットを差し込めばコピペと同じだべ。

777:デフォルトの名無しさん
07/02/25 00:27:07
VB.NETを使用し、PageUpなどの任意のキーを、
一定間隔で押下させるソフトウェアを作成しています。

目的の動作をするプログラムは完成し、IEなどのアプリでは
正常に動作をしています。

ですが、FPSゲームなど、特定のアプリではキー入力が
受け付けられていません。

SendKeys.SendWait()、win32api.keybd_event()どちらを使用しても
結果は同じでした。
どのようにすれば、このようなアプリにもキー入力ができるのでしょうか?

よろしくお願いいたします。

778:デフォルトの名無しさん
07/02/25 00:50:01
>VB関数は何か馬鹿にされているような気がして使う気になれないな〜。
馬鹿にされ「る」ような気がして、じゃなくて
馬鹿にされ「ている」ような気がして
ってどういうことだよw

779:デフォルトの名無しさん
07/02/25 01:13:15
>>771
出来ないやつほどそういう事気にするのなw
普通使って簡単にできるものなら利用するだろ。
ま、趣味でプログラムやってる人はご自由に。

780:デフォルトの名無しさん
07/02/25 01:48:31
恐らく半分冗談で言ってるんだろうから
なんもそうムキにならんでもいいだろうに

781:デフォルトの名無しさん
07/02/25 01:53:50
>>777
特定のゲームでそういうことが出来ないようにしてるんじゃないか?

782:デフォルトの名無しさん
07/02/25 02:03:04
じゃなくてDirect Inputは(当たり前だけど)ウィンドウメッセージとして
キー入力を受け取っているわけじゃないからそりゃSendKeysじゃうまくいくはず無いよ。

俺はどうやれば>>777みたいなことが可能か見当もつかないけど、
ひょっとしてDDKとか使わないと不可能なことだったりしてね。

783:772
07/02/25 11:36:09
皆さんどうもです。

>>776
2005なのでこのやり方でヤッテみます。

784:デフォルトの名無しさん
07/02/25 17:42:19
空のファイルを作りたいんだけど、この2行でOKかな?(close、disposeされる?)
.NET Framework 2.0、VB2005Exp使用

Using hStream As System.IO.FileStream = System.IO.File.Create("C:\hoge.txt")
End Using



785:デフォルトの名無しさん
07/02/25 21:28:09
例外さえ気にしないのなら、
System.IO.File.Create("C:\hoge.txt").Close()
で十分だが。

786:デフォルトの名無しさん
07/02/26 09:41:19
ListViewItemsコレクション みたいな Array 系の持ってる CopyTo でコピーしてくれるのはアイテムの場所を知らせる情報だけでしょうか?
CopyTo をした後に元のアイテムの項目に変更があった場合、コピー先にもそれが反映されています。
本当の意味での CopyTo を実現するメソッドまたは、方法はございませんでしょうか。。。よろしくお願いいたします。


787:デフォルトの名無しさん
07/02/26 10:34:59
DownloadFileメソッドでダウンロードする場合
指定したURLが存在するかしないか確認する方法は?

788:デフォルトの名無しさん
07/02/26 12:39:32
>>786
基礎的な知識の習得をスキップして、何でもかんでも理解してもいない
対処療法で場当たり的にやり過ごそうとか思ってるから
そういうわけのわかんないこと言うんだよ。

なんやねん、本当の意味でのCopyToって。
俺様のその時その時のやりたいこと基準で本当とか決めるなよw

789:デフォルトの名無しさん
07/02/26 14:00:01
>なんやねん

790:デフォルトの名無しさん
07/02/26 14:12:14
浅いコピー、深いコピーのことだろうよ。
自分も大して知識があるわけじゃないのに偉そうにする奴って痛いよ。

791:デフォルトの名無しさん
07/02/26 14:27:11
>>788
>>2



792:デフォルトの名無しさん
07/02/26 14:31:15
>>788
◎対症療法
×対処療法

793:デフォルトの名無しさん
07/02/26 14:31:46
>>788
つ「対症療法」

794:デフォルトの名無しさん
07/02/26 14:51:16
>>788の人気にshit

795:デフォルトの名無しさん
07/02/26 15:16:22
URLリンク(dictionary.goo.ne.jp)

796:デフォルトの名無しさん
07/02/26 15:30:14
質問に答えてやれよw

>786
"MemberwiseClone"を調べてみて

だが>787はほかの人頼む

797:デフォルトの名無しさん
07/02/26 17:08:51
しゃーないなw

>>787
「WebResponse 404」でぐぐってみて
自分はめんどくさいからTry〜Catchでエラーに無理矢理させちゃう

798:デフォルトの名無しさん
07/02/26 20:03:18
integer 型の計算について質問です

dim aa as integer
aa = (19 / 20) + 1
これが2となるのですが、1とするためにはどうすればよいでしょうか?
aa = Cint(19 / 20) + 1
でも駄目なんですよね。。。
integerって整数型ですよね。。。

aa = Cint(10 / 20) + 1 // aa = 1
aa = Cint(11 / 20) + 1 // aa = 2

799:デフォルトの名無しさん
07/02/26 20:08:45
Math.Floorじゃダメか。

800:798
07/02/26 20:20:24
>>799
ありがとうございます。
aa = System.Math.Floor(19/20) + 1
とすることで、求めた値を得ることができるようになりました。

801:デフォルトの名無しさん
07/02/26 20:25:39
Fixでもええんじゃないか

802:デフォルトの名無しさん
07/02/26 21:09:40
今更2003に手を出さされたが
2005のDataGridViewみたいにDataGridは列固定できないのかよ・・・・

やっぱオーナードロー嫌なら2つDataGrid並べるしかないのか?


803:デフォルトの名無しさん
07/02/26 21:21:09
>>798-801
798は「何がしたいか」、つまり求められている仕様についてについて
何もいってないのによく回答できるよな。
質問者が馬鹿なら回答する奴もどうかしてるよ。

804:デフォルトの名無しさん
07/02/26 21:32:48
>>803
> aa = (19 / 20) + 1
> これが2となるのですが、1とするためにはどうすればよいでしょうか?

↑これが「仕様」じゃないとでも?

805:デフォルトの名無しさん
07/02/26 21:35:32
馬鹿だろw

例えて言えば、「(x, y) = (0, 0)を通る直線」っていうのが
直線を一意に規定してると思うか?w

806:デフォルトの名無しさん
07/02/26 21:40:26
全然例えになってないじゃんw

807:デフォルトの名無しさん
07/02/26 22:36:42
客先から出てくる仕様ってのはしばしば>804のような物ではある。

808:デフォルトの名無しさん
07/02/26 23:19:46
俺的予想
>>788=>>803=>>805
こういう奴が暴れるプロジェクトは大体失敗する。

809:デフォルトの名無しさん
07/02/27 09:26:35
斜に構えた批判屋、揚げ足取りってウザイよね。
得意になってるけど、まあ勝手に言ってればって。

810:デフォルトの名無しさん
07/02/27 17:02:48
こんにちは。VB6からVB.net 2003に転向しようとしていて苦しんでいる初心者です。
windows XP環境で下記のようなツールを作成していますがうまくいきません。

@フォーム(form1)上にボタン一つ(button1)配置
Abutton1を押すと、現在のシステム時刻を変数に代入
Bその際、代入された時刻が13:00〜15:00の間だった場合はその時刻を表示

下記のようにコーディングしてみたのですが、さっぱり動きません。
どうすれば正しく動くのか教えていただけますでしょうか?

Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click

Dim dtNow As DateTime = DateTime.Now
Dim tsNow As TimeSpan = dtNow.TimeOfDay

If tsNow >= #1:00:00 PM# And tsNow <= #3:00:00 PM# Then
MsgBox(tsNow.ToString())
End If

End Sub

811:デフォルトの名無しさん
07/02/27 17:10:02
まず最初に、特に事情が無い限り今からやるなら2005が良いと思うぞ。

質問のほうはたぶん…
.NETはVB6とは違って、Sub button1_Click()を作っただけでは動かない。
プロパティウィンドウのイベントの欄に追加されていないと駄目。
雷みたいなマークね。

812:デフォルトの名無しさん
07/02/27 17:29:20
>>811
今テストしたらイベントはちゃんと動きますね。
というか>>810に貼ったコードだとビルドできないことが判明・・・

2003は実は発売直後くらいに買ったのですが、どうしても扱いなれたVB6ばかり
使ってしまって、今更になってあせって勉強を始めた始末です。
2003と2005ってそんなに違うものなのですか?

813:デフォルトの名無しさん
07/02/27 17:50:31
2005はデグレ。

814:デフォルトの名無しさん
07/02/27 17:56:22
>>811
適当なこと書くなよ。ちゃんとHandlesが書いてあるだろ。

>>810
DateTimeは日付情報も持ってるから条件が真にならないんだろう。
DateTime構造体のHourフィールドとか見るようにしないと駄目。
2005と2003は、特に縛りが無いなら2005を使った方が将来性がある。

815:デフォルトの名無しさん
07/02/27 17:59:01
>>811
コレがゆとり教育ならぬ2005使いの現実。

816:811
07/02/27 18:16:35
超寝ぼけてた
そうね。Handlesね。C#と混同した上によく見てなかった。

817:デフォルトの名無しさん
07/02/27 18:22:15
>>810
#...#ってDateTimeリテラルだから、TimeSpanと比較しちゃいかん。

818:デフォルトの名無しさん
07/02/27 18:27:21
TimeSpan じゃダメだろ。
Dim dtNow As DateTime = DateTime.Now
If dtNow.Hour >= #1:00:00 PM#.Hour And dtNow.Hour <= #3:00:00 PM#.Hour Then
    MsgBox(dtNow.ToString())
End If

819:デフォルトの名無しさん
07/02/27 18:29:49
エレガントじゃない希ガス

Dim tsNow As TimeSpan = DateTime.Now.TimeOfDay
If tsNow >= #1:00:00 PM#.TimeOfDay And tsNow <= #3:00:00 PM#.TimeOfDay Then
MsgBox(tsNow.ToString())
End If

820:デフォルトの名無しさん
07/02/27 18:42:53
なんて低レベル過ぎて泣けてくるなw

821:810
07/02/27 18:48:27
>>818さんのコードでいけました!
Timespanのまま比較すると「演算子'>='は、型'System.Timespan'に対して定義されていません」
と出て、ビルドできなかったのですが、Timespanに関する認識が相当間違っていたようです・・・。
皆さん、本当にありがとうございました。

822:デフォルトの名無しさん
07/02/27 22:50:06
>>811
のレスみて思った

とりあえず一通りさらっとでいいからMSDN読めよ と
まだ移行してる連中が多いとしたら・・・

public sub main
dim formA as new form1
formA.show
end sub

これでフォームがすぐ消えてしまいます!助けて!
みたいなの出そうじゃね?www

823:デフォルトの名無しさん
07/02/27 23:10:15
19 \ 20
にしようよ…


824:デフォルトの名無しさん
07/02/28 08:15:54
けんかにならにように、皆さんの意見を入れました。w
CInt(System.Math.Floor(Fix(19 \ 20)) + 1)

825:デフォルトの名無しさん
07/02/28 09:53:28
んなあほな…泣

826:デフォルトの名無しさん
07/02/28 10:23:07
質問です。
DataGridViewで、CheckBoxを表示させておりますが、特定列のCheckBoxのEnabledをFalseにする方法はないか探しております。
ReadOnly=Trueにすることで、入力を受け付けない(クリックしてもチェックのON/OFFは出来ない)ようにはできましたが、クリック自体はできるので少々気持ちわるいです。
いい技があればご教授くださいませ。

環境はVB2005proです。

827:デフォルトの名無しさん
07/02/28 10:57:10
キャンセルせいよ・・・・・

828:デフォルトの名無しさん
07/02/28 23:01:46
private void dataGridView1_CellMouseEnter( object sender, DataGridViewCellEventArgs e )
{
 if( e.ColumnIndex == 0 )
 {
  Random ran = new Random(DateTime.Now.Millisecond);
  System.Windows.Forms.Cursor.Position = new Point(
   System.Windows.Forms.Cursor.Position.X + ran.Next( 500 ) - 250,
   System.Windows.Forms.Cursor.Position.Y + ran.Next( 500 ) - 250 );
 }
}

ごめんうそ

829:デフォルトの名無しさん
07/03/01 00:45:48
VBで書いたれいよ!

830:デフォルトの名無しさん
07/03/01 00:56:20
>828
それはC#な上に、少々どころでなく気持ち悪いです。

831:デフォルトの名無しさん
07/03/01 09:14:28
こんにちは、質問ですが、
ieで設定されている"ホーム ページ"をVB.NETで取得する
方法を教えてください。
Webbrowserで取得する方法でも構いません。
宜しく。


832:デフォルトの名無しさん
07/03/01 10:04:44
>>831のついでに教えてけろ。

IEの 「編集」−「このページの検索」でやってるページ内検索ってのは
どうやってやってんのかわかる香具師いる?HTMLソース追っかけてんのかね?
WebBrowserでもやれるじゃろか。
ってか初めからつけといてくれればいかったんだが・・・。

833:デフォルトの名無しさん
07/03/01 10:41:05
>>831
レジストリ参照すればええんじゃね

834:デフォルトの名無しさん
07/03/01 10:45:00
いくつかPanelをのっけてそれぞれDocking=Topにしてくと、
どういう順番でやっても先にFormにおいた方のものからTopに並んでしまう。
これってTopにした順番に上から並ぶってならんのだろうか

835:831
07/03/01 10:49:21
>>833
サンクス、 考えても見なかった。

>>833
検索や検索文字の表示は簡単そうだが、スクロールが難しそう。


836:デフォルトの名無しさん
07/03/01 12:26:20
>>834
ドキュメントアウトライン

837:デフォルトの名無しさん
07/03/01 12:46:32
ちょっと教えてください
VB.NET 2003で
DataAdapterを使用してデータを更新する部分です。

DataSetの中には個別に取得してきた 関連性の無い TableA TableBがあります。

登録の時この2つのテーブルに編集をかけた後
1回のUpDateで更新することは出来ないでしょうか?
DataAdapterがTableという名前のDataTableにしか処理を行ってくれないので詰まっています。

出来れば2回に分けて行うのはやりたくないという状態です。

838:デフォルトの名無しさん
07/03/01 13:32:21
Adapterのヘルプとか読めば、出来ないってすぐわかりそうなものを。

839:デフォルトの名無しさん
07/03/01 13:34:05
>>838
いや、もしかしたら何かできるんじゃないかな?と
本来関係の無いデータ同士は同じDataSetに入れるべきじゃないとわかってはいるんですが・・・

840:デフォルトの名無しさん
07/03/01 14:18:37
>>839
設計し直せwww


841:デフォルトの名無しさん
07/03/01 15:13:58
VB.NET2003+SQLserver2000へデータのINSERTを行っています。

ConnectionをOpenしてBeginTransaction。
ExecuteNonQueryでINSERT文を発行後にCommitし
ConnectionをClose、Disposeしています。

上記処理を画面上のボタンクリックイベントから実行しているのですが
データがDBにINSERTされる時とされない時があります。
デバッグしてもエラーにはならず、アプリの処理的には正常。
しかしDBには反映されない時がある・・・という状況に陥っております。

正常終了しているのにDBには反映されない、そんなことがあるんでしょうか?

842:デフォルトの名無しさん
07/03/01 15:44:47
ぶれーくぽいんと張って、トランザクションを
はったまま強制終了したりしてるからじゃないの。

843:デフォルトの名無しさん
07/03/01 15:46:49
センセイ〜〜
メソッドの返り値である影響件数はいかがなものでしょうか?

まぁ、正常に1件以上の数値が返ってきてるんだろうけど

DBに反映されないって・・・
エンタープライズマネージャをデータ更新前に表示しておいて確認、
更新後にエンタープライズマネージャの表示を更新し、その後確認しても反映されていないってこと?

844:デフォルトの名無しさん
07/03/01 15:57:51
>>842
いえ、それはないです

>>843
エンタープライズマネージャでもクエリアナライザでも反映されてないんです。
INSERTが単にコケるならまだわかるんですが・・・
データ不正も疑ったのですがそうでもないようで困り果てております



845:デフォルトの名無しさん
07/03/01 16:02:24
たしかプロファイラだっけ?
SQL鯖に投げられたSQLとか確認できる奴でチェックして
まずは鯖で直にそれ実行してみれば?
何が悪いのかを狭めていかないと判らないと思う

反映されないとかっての 俺はコーディングミス以外で今まで経験は無いんだが・・

846:デフォルトの名無しさん
07/03/01 16:13:32
>>845
やっぱりそれしかないですかね・・・
プロファイラ掘ってみます

コーディングミスなら確かにわかるのですが
全てのデータが更新されないのではなく、時々更新できないデータが出るので・・・
色々ありがとうございました。

環境は違いますがこれに似たような状況でした
URLリンク(fukkey.dyndns.org)


847:834
07/03/01 16:14:30
>>836
そうかこういう場合のためにあれはあったのか。
わかったサンキュー。

848:デフォルトの名無しさん
07/03/01 16:49:16
>>846
>>843の言ってるExecuteメソッドの戻り値は?

849:デフォルトの名無しさん
07/03/01 17:44:06
>>848
1が戻ってきてます
処理件数は1件なので正常・・・

雛見沢に行ってきます
スレ汚し失礼しました

850:デフォルトの名無しさん
07/03/01 18:46:51
VB2005Proを使用しております。

Dim Image1 As Image = "イメージA"
Dim Image2 As Image = Image1.GetThumbnailImage(10, 10, 〜

で画像のサイズは小さく出来るのですが
ここで一緒に品質も落とす方法がわかりません

どのような方法(クラス、メソッド)を使用すれば品質も
指定したかたちで、Image型を作ることが出来るのでしょうか?



851:デフォルトの名無しさん
07/03/01 18:59:15
落とす理由はよくわからんが
ImageCodecInfo 使えないかな?

852:デフォルトの名無しさん
07/03/01 19:01:28
あ、まちがったw
System.Drawing.Imaging
名前空間のEncode辺りとかさ

のつもりだった

853:850
07/03/01 19:16:55
レスありがとうございます。

System.Drawing.Imaging.EncoderParameter
System.Drawing.Imaging.EncoderParameters
System.Drawing.Imaging.ImageFormat
を使用して形式や品質を変更出来る事がわかりました。

今ヘルプとGoogleで調べているのですが
使用方法が画像の保存(saveメソッド等)を対象にしている
ものばかりで、画像に保存ではなくそのまま
Image型に入れる方法を探してます。

854:デフォルトの名無しさん
07/03/01 20:07:46
ファイルにしないのに画質を落とす意味がわからん。
そもそも画質は「落とす」んではなく、非可逆圧縮の結果として「落ちる」もんなんじゃねえの?

855:デフォルトの名無しさん
07/03/01 20:13:00
>>853
画質落としたサムネイルか・・・
一意な名前の一時ファイルでやっちまうとかもありだけど・・・・

縮小表示した時の補完方法の変更で画質落とすことにならんかな?
多少落ちると思うけど・・・・


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

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