1 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 18:07:34 ] 前スレ VB.NET質問スレ(Part25) pc11.2ch.net/test/read.cgi/tech/1203650042/ テンプレは2〜5くらいまでの間にある予定
511 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 13:29:47 ] >>509 高さがテキスト分ってことはスクロールしないと見えない下のほうも含めてってこと? 内容とフォントとかの設定ひろってきて、自分でビットマップ作って描画するのがいいんじゃ?
512 名前:509 mailto:sage [2008/08/06(水) 14:40:38 ] >>511 はい、今その方法でいけました! お手数お掛けしました!! あーざーす!
513 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 14:00:00 ] ピクチャーボックスの1から2に画像をBitBltで転送したいのだけど2に何も表示されません、どこが間違ってますか? Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load PictureBox1.Image = System.Drawing.Image.FromFile("C:\WINDOWS\大草原の風.bmp") End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim g As Graphics Dim hDC As IntPtr Dim hDC2 As IntPtr Dim re As IntPtr Dim bmp As New Bitmap(256, 256) g = Graphics.FromImage(bmp) hDC = g.GetHdc() hDC2 = GetDC(PictureBox1.Handle) re = BitBlt(hDC, 0, 0, bmp.Width, bmp.Height, hDC2, 0, 0, SRCCOPY) PictureBox2.Image = bmp PictureBox2.Refresh() g.ReleaseHdc(hDC) g.Dispose() bmp.Dispose() End Sub
514 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 14:02:55 ] そもそもなんでBitBlt使うの?
515 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 15:19:27 ] VB6でずっと使ってたから、あとVB.netでもGraphicsクラス使うより 速いと聞いたからです。 乗り換えを決意してからまだ数日なので手探り状態でよくわかってなくて・・・
516 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 15:23:52 ] P/Invokeは普通に出来ることを普通にやれるようになってから手を出そうな。 P/Invokeは基本的に自己責任ってやつだ。 人に試してもらいたかったらとりあえずP/Invokeの宣言部分もアップするべし。 見ただけで気が付いたのはbmp.Dispose()が余計。
517 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 15:24:52 ] よほどの事をしない限り大抵はむしろ多少遅くなるから使わなくていい
518 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 15:28:24 ] VB6時代には、VB使いは必要もないのにAPIを使いたがると言われたものだが、 伝統は引き継がれていた。
519 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 16:35:22 ] 宣言部分は最初長過ぎで弾かれて・・ Public Declare Function BitBlt Lib "gdi32" Alias "BitBlt" _ (ByVal hDestDC As IntPtr, ByVal x As Integer, ByVal y As Integer, _ ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hSrcDC As IntPtr, _ ByVal xSrc As Integer, ByVal ySrc As Integer, ByVal dwRop As Integer) As IntPtr Public Declare Function GetDC Lib "user32.dll" (ByVal hwnd As IntPtr) As IntPtr Const SRCCOPY As Integer = &HCC0020 Public Declare Function ReleaseDC Lib "user32" Alias "ReleaseDC" _ (ByVal hwnd As IntPtr, ByVal hdc As IntPtr) As IntPtr 速度が変わらないならBitBlt使わなくてもいいんだけど 使い方が分からなければ自分で比較検証もできなくて 困ってますアドバイスお願いします。
520 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 16:56:43 ] いま少し前進した、 bmp.Dispose()削る そして実行してボタンを押したあと、フォームを最小化して もっかい大きくしたら表示されてた もう少しだがんばります。
521 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 17:02:11 ] 解決しました、 PictureBox2.Refresh()を PictureBox2.Invalidate()に変えたらできました Refresh使ってるコードはあっちこっちで見かけたのに みんな使えてるのかな? もっと勉強しますありがとうございました。。
522 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 17:16:53 ] >>521 PictureBox2.Refresh() も削る
523 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 17:41:22 ] ReleaseDC(PictureBox1.Handle, hDC2)を追加 リソースリークをおこしてる。IntPtrはGCで回収はしてくれないぞっと。
524 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 17:44:19 ] どう考えてもこれが最速だと思うのだが PictureBox2.Image = PictureBox1.Image ビットマップに一度落とすにしろこれでいける Dim srcimg As Image = PictureBox1.Image Dim img As New Bitmap(srcimg.Size.Width, srcimg.Size.Height) Using g As Graphics = Graphics.FromImage(img) g.DrawImage(srcimg, 0, 0) End Using PictureBox2.Image = img
525 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 18:52:26 ] 513じゃないけど、BitBltの動作の検証用のコードかもしれんのに 文句いってどうするよ。 文句いってる奴ってGDI+にはBitBlt相当の機能ってないから 実際よく使われてること知らないんじゃないの? つーかBitmapをDisposeするなとかこいてる奴に突っ込まれたくないだろうw
526 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 19:32:31 ] 実際Disposeしちゃいけない場面だし
527 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 19:34:25 ] ピクチャボックスから使っているビットマップをDisposeするとピクチャボックスが例外おこす。 Disposeするならピクチャボックスから使われなくなったタイミングでしないといけない。 速度比較するなら何百回も繰り返さないとまとまった時間にならないから 画像を入れかえたりクリアするタイミングでDisposeしたほうがいい。
528 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 19:45:58 ] >>526 そこは済まん513のコード読まずに早とちりしたw
529 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 19:51:33 ] 連続で質問して申し訳ないのですが、さっきのを一歩進めて こんどはBitmapからPictureBox2に転送してみました あってると思うのだけど何故表示されないのでしょうか? Dim g As Graphics Dim g2 As Graphics Dim hDC As IntPtr Dim hDC2 As IntPtr Dim re As Integer Dim srcimg As Image = Image.FromFile("C:\WINDOWS\大草原の風.bmp") Dim bmp2 As New Bitmap(srcimg.Size.Width, srcimg.Size.Height) g2 = Graphics.FromImage(bmp2) g2.DrawImage(srcimg, 0, 0) Dim bmp As New Bitmap(bmp2.Width, bmp2.Height) g = Graphics.FromImage(bmp) hDC = g.GetHdc() hDC2 = g2.GetHdc() re = BitBlt(hDC, 0, 0, bmp.Width, bmp.Height, hDC2, 0, 0, SRCCOPY) PicMap.Image = bmp PicMap.Invalidate() g.ReleaseHdc(hDC) g.Dispose() g2.ReleaseHdc(hDC2) g2.Dispose()
530 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 19:57:38 ] PicMapはPictureBox2の間違いです、すみません
531 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 20:10:53 ] >>529 いっちゃ悪いけど人に見てもらうんだからもう少し読みやすいコード書けよ。 とりあえず数字のサフィックスつけた変数名なんて論外。 変数名っていうのはそれが意味するものがわかるように命名するんだよ。 Src(Source)とかDest(Destination)とかTargetとか使ってくれ。 あと変数の宣言は、できる限り初期化と一緒に一番最初に使う直前でやってくれ。
532 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 22:04:23 ] >>513 これよくよく試してみるとPictureBox1の範囲をスクリーンキャプチャ したことになってるな、 NET難しぃ挫折しそうだ・・・
533 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 22:15:30 ] いやどう見ても.NET無関係の部分だが
534 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 22:22:20 ] BitBltはディバイス依存の激しい命令だから、 どちらかがリアルのディバイスかそれとコンパチブルの ビットマップじゃないとうまく行かない気がする。 Win32でも結構はまる部分だ。 たしかに.NET関係ないな。
535 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 20:00:02 ] DataGridView の行を27行ずつ削除(非表示)しながら、 画面のハードコピーをその都度画像ファイルに保存しようと考えています。 以下のコードで画像は保存されるのですが、DataGridView の非表示が反映されません。 (全部同一の画像が保存される) For 〜 next で繰り返さないで、手動で行った場合は大丈夫なのに、 自動で保存した場合だけ削除(非表示)が追いついてないのは納得いきません。 その辺の事情とかご存知の方はおられますでしょうか?
536 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 20:01:42 ] 以下、コードです。 ---------------------- Dim GridCount As Integer = DataGridView1.Rows.Count 'DataGridView の行数 Dim PrintCount As Integer = ((GridCount - 1) \ 27) + 1 'ハードコピーの枚数 Dim DelCount As Integer = 0 'DataGridView 削除行数 For i As Integer = 0 To PrintCount - 1 Call CaptureForm(Me) 'ハードコピー取得関数 memoryImage.Save("D:\TOPY\image" & i & ".bmp") 'ハードコピーをファイルに保存 memoryImage.Dispose() 'ハードコピーの解放 For ii As Integer = 0 To 26 If DelCount < GridCount Then DataGridView1.Rows(DelCount).Visible = False DelCount += 1 End If Next Next
537 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 21:21:59 ] 毎回DataGridView.Refresh呼べ
538 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 00:06:48 ] テキストボックスでEnable = Falseにしないで、 テキストボックスの中のテキストを範囲選択出来なくする方法ありませんか?
539 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 00:20:55 ] もうLabelにしちゃえよ
540 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 11:15:28 ] ReadOnlyにして背景を白くするんじゃだめ? 選択はできちゃうけど。
541 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 14:09:29 ] VB.NETでバッチEXEを作ってそのEXEから成功したか失敗した かの戻り値を取得したいのですが、可能でしょうか? また、もし可能なら方法を教えてください。
542 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 14:14:04 ] 可能だけど何が分からないのか分からないので
543 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 14:34:16 ] 方法
544 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 14:47:25 ] 好きなほうで function Main() as integer return 2 end function sub Main() Environment.Exit(2) end sub
545 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 15:20:11 ] >>538 透明なパネルかぶせちゃうとか。
546 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 15:27:50 ] Panel1の中にあるPictureBox1にPictureBox1_Paintイベントを発生させるにはどうすればいいですか? PostMessage(PictureBox1.Handle, WM_PAINT, GetDC(PictureBox1.Handle), 0)は反応なし Panel1.InvokePaintは使い方がわかりません 何かいい方法ありませんか
547 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 15:45:28 ] Invalidate&Update
548 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 16:39:50 ] Private Sub PictureBox1_Paint(・・・・) Handles PictureBox1.Paint のHandles PictureBox1.Paintの部分がいつのまにか削れてたw エラーでねーのかよ 普通のことがなんでできないのかかなり悩んだ あほすぎてすまん。。。
549 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 21:09:58 ] >>548 VB6からの移行組の人かな。 たぶんコントロールをカット&ペーストしたんだね。 ドトネトではコンテナ内への移動もドラッグでできるからVB6時代の その習慣は修正した方がいいかもね。
550 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 19:42:35 ] Microsoft Visual Basic 2008 Express Editionではフォーム上に追加したラベルのサイズを変更することはできないのでしょうか?
551 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 20:36:54 ] >>550 できると思うけど・・・ プロパティにサイズってない?
552 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 21:07:33 ] AutoSizeだったかを確認
553 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 21:13:35 ] >>550 オートサイズをfalseにすればできる
554 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 21:23:59 ] >>551-553 できました。ありがとうございます。
555 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 21:40:27 ] VB2008 Professional + SQLServer2005 Expressで スタンドアローンのWindowsアプリケーションを開発しています。 VBからストアド(T-SQL)を実行しているのですが、このストアドにブレークポイントを設定して ステップ実行するにはどのように行えばいいのでしょうか? サーバーエクスプローラーからブレークポイントを設定しても、デバッグ実行時に 「ブレークポイントは、現在の設定ではヒットしません。このドキュメントのシンボルが読み込まれていません。」 となってしまいます。 よろしくお願い致します。
556 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 16:12:40 ] ListBoxでマウスのダウンやキーボードの↑↓で項目の選択が変更されるのをキャンセルしたいです。 (別にボタンがあり、それで選択項目の変更を行いたい) Enabled = Falseにすると文字の色が変ってしまうので避けたいです。 よろしくお願い致します。
557 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 17:32:15 ] >>556 ListBoxを継承してOnKeyPressで上下カーソルキーだったら握りつぶす。 ただし、個人的にはソンナユーザーフレンドリーでないUIは考え直すのが正解だと思う。
558 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 17:39:49 ] >>556 キーダウンやらキープレス拾って無効にすれば?
559 名前:556 mailto:sage [2008/08/11(月) 17:41:13 ] >>557 レスありがとん。 エミュレータ的なものを作ってるから、どうしてもそういった動作が必要みたいなんです…
560 名前:556 mailto:sage [2008/08/11(月) 17:46:28 ] >>558 もレスありがとう。 キーボードの方はアドバイス通り e.Handled = True で無効にできたんですけど、MouseDownってどうやって無効にすればいいんですか… お手数お掛けします…
561 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 17:54:08 ] だからOnMouseDownをオーバライドして握りつぶせばできないか?
562 名前:デフォルトの名無しさん [2008/08/12(火) 01:23:17 ] すいません誰か教えて欲しいのですが、 xmlファイルのテーブル<aaa>とアイテム<bbb>,<ccc>みたいなのがあるとして、 <aaa> <bbb>こんにちは</bbb> <ccc>こんばんわ</ccc> </aaa> 下にあるコードでアイテム名を取得したいのですが、 Dim ds As DataSet ds.Tables("aaa").Columns(取得したい列番号).ColumnName さらに下のようにxmlファイルに同じ名前のアイテムを追加してしまうと、アイテム名が 正しく取得できなくなってしまいます。何か解決策はないでしょうか? わかりにくい文章になってしまってすいません。 <aaa> <bbb>おはよう</bbb> <bbb>こんにちは</bbb> <ccc>こんばんわ</ccc> </aaa>
563 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 02:10:56 ] ねぇねぇ。 ProとExpでは何が違うの? 教えてエロキモい人
564 名前:デフォルトの名無しさん [2008/08/12(火) 08:34:25 ] なんだ知らないのか。最初からgoogle先生に聞けばよかった。
565 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 10:38:11 ] >>563 お前はチャーリー浜かw
566 名前:556 mailto:sage [2008/08/12(火) 11:12:06 ] >>561 いけました!! ありがとうございました!!
567 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 12:32:56 ] >>562 DataTableは列名の重複が許されない以上どうしようもないな 普通にXmlDocumentでロードしてXPath使うってのはダメなの? WinFormのバインディングには向かんけど
568 名前:562 [2008/08/13(水) 01:35:39 ] >>567 XmlDocumentで出来ました。ありがとうございます。
569 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 16:45:52 ] 頭が混乱してきたのでちょっと確認すみません A Dim bmp As New Bitmap("C:\Sample.png") bmp.Dispose() B Declare Function DeleteDC Lib "gdi32.dll" _ (ByVal hdc As Integer) As Integer Dim hBmp as Integer Dim bmp As New Bitmap("C:\Sample.png") hBmp = bmp.GetHbitmap() DeleteObject(hBmp) AとBって全く同じことですよね?
570 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 16:48:17 ] 宣言間違った、こっちが正解です Declare Function DeleteObject Lib "gdi32.dll" _ (ByVal hObject As Integer) As Integer
571 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 16:53:23 ] 何をもって同じというかは難しいが、おそらくそれは同じではない。
572 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 17:40:10 ] すみません質問ちょっと変えます Bの方はこれでbmpのリソースがちゃんと解放されるんでしょうか?
573 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 17:41:47 ] いいや全然
574 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 18:54:34 ] VS2008を使用しています。 文字列の最大の一行の長さに ウィンドウサイズを動的に可変させたい(文字列を全て表示できるように)のですが 何か方法はありますでしょうか? 簡単に言うと2chブラウザのレスポップアップみたいな感じです。 @ttp://dobon.net/vb/dotnet/graphics/measurestring.html これで最大幅を調べて変更 A改行コードor<br>タグを調べてその幅に合わせる ※フォントとフォントのサイズは固定 これぐらいしか思いつけなかったのですが…
575 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 19:31:51 ] MeasureStringでと思ったがbr要素が何故出てきた
576 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 19:49:40 ] いや、表示させる文字列がhtmlだから、 <br>が確か改行だったなーと。 やっぱり@の方法が一番いいんですかねぇ… 余計なコントロールが…
577 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 22:46:10 ] FileSystemWatcherというのを勉強しているのですが、 ユーザーが作成したファイルを監視した場合、 このコンポーネントには誰(あるいはシステム)が作成したかどうかの 情報は取得できないのでしょうか?
578 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 22:46:06 ] Visual Studio 2005 のVBで、PDFファイルを表示するソフトを作成しています。 作成手順は以下のとおりの簡単なものです。 ツールボックスからPDF Readerを選択し、フォームに貼り付けました。 それをこんな感じでプログラムを書いてPDFファイルを表示させました。 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load AxAcroPDF1.src = "C:\1.pdf" AxAcroPDF1.setShowToolbar(False) End Sub これだけのプログラムなのですが、ビルドしてEXEファイルを実行し、 そのソフトを閉じると、『"0x03fe1a8f" の命令が "0x0000004" のメモリを参照しました。 メモリが "read" になることはありませんでした。』 と出るのですが、どうすればいいのか現在検討もつきません・・・
579 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 23:03:05 ] アウトプロセスサーバーなんだから終了前に開放が必要なんだろ。
580 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 23:29:17 ] >>579 返信ありがとうございます。 VBのアプリソフト作成が初めてなので、『アウトプロセスサーバー』という言葉と 終了前に開放が必要というのがよくわからないので、ちょっと調べてみようと思います・・・ ちなみに開放ということで、閉じるボタンに以下のプログラムを書いてみたのですが 駄目でした。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If AxAcroPDF1.Disposing = False Then AxAcroPDF1.Dispose() End If AxAcroPDF1 = Nothing Application.Exit() End Sub
581 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 23:57:37 ] 手順的にはAxAcroPDFの製造元からマニュアルなりを取り寄せるのが先だな。 ActiveXになってても一般に使ってくださいという性格のものではないかもしれない。
582 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 00:06:39 ] なるほど・・・ もう少し調べてみて、わからなかったら別に手を考えてみます
583 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 15:44:07 ] じかに貼り付けちゃだめよ WebBrowserを貼り付けて、その中で使うものよ
584 名前:デフォルトの名無しさん [2008/08/17(日) 16:38:05 ] EditBoxに縦棒のカーソルを表示して、文字挿入位置をコントロール したい。どうやったらいいの?
585 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 17:46:07 ] >>584 日本語で書こう。 それじゃ何が聞きたいのか誰にも伝わらないと思うぞ。
586 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 18:43:31 ] 教えてください。 「ファイルやディレクトリをすべてのサブディレクトリから検索するには?」 ttp://www.atmarkit.co.jp/fdotnet/dotnettips/548allfiles2/allfiles2.html のサンプルファイルをコンパイルして実行例のとおりに動かそうとしてもエラー となりうまきいきません。 "System Volume Information"へのアクセス権が無い!と怒られます。 このサンプルをどのように修正すれば不具合を解決できますでしょうか。
587 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 19:49:55 ] try catch end tryしろ
588 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 20:53:38 ] >>587 スキルの無い奴に限ってこういった無意味なコメントする。 知らないなら知らないって書けよ。
589 名前:デフォルトの名無しさん [2008/08/17(日) 20:54:37 ] >日本語で書こう。 >それじゃ何が聞きたいのか誰にも伝わらないと思うぞ。 理解力つけろや。
590 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 21:35:46 ] とりあえず解読してみる。 editboxにキャレットを表示して、 任意の位置に文字の挿入をしたいのですが、 どうすればいいんでしょうか? 違うか…
591 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 00:20:05 ] 質問させてください プログラム自体というよりプログラムを作るにあたっての考え方についての質問なんですが 当方、プログラム経験が極浅の為ある事に対し自分なりの考えでプログラムを組んでは考え方を改めてのプログラムの組直しばかりやって一向に前に進めてません どうかご助言をお願いします。 そのプログラムの内容についてなのですが 「通信により取得した命令群が、現状で行われている命令と違えば新しく取得した命令を実行するというプログラム」です。 これについての私のプログラムの持っていき方なのですが 通信により取得した命令群を個々に分解し、一時保存用にと用意している配列にそれぞれ格納し それを現状を保存している配列と比較し、違う場合はその命令を入れ替えその都度命令の実行処理をするというプログラムです。 それでここで私が戸惑うところなのですが 命令群と言っても処理上は文字列なので、わざわざ分解し個々の命令を配列に格納する必要性はあるのか? 長い文字列を比較後入れ替える処理中に、そのまま一気に命令まで実行してしまうと文字列の比較作業がその度に遅れるのではないか? など、こういった細かい所が浮かんできて何度も作り直そうとしてしまいます・・ プログラム作成の熟練者の方ではこういう場合どういう持っていき方をするのでしょうか?
592 名前:デフォルトの名無しさん [2008/08/18(月) 00:23:03 ] おう。まあまあ理解できてるやないか? それにしても、解読せんと 解らんのか?メンドクサイやっちゃなー。あたま悪いんか? 質問がわかったら回答して見ろや。
593 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 00:27:52 ] >>592 インテリセンスでプロパティやメソッドが表示されるのに、どうしたら いいのかまったくわからないのなら、絶望的にセンスがないから プログラミングから手を引いた方がいいと思うよ。
594 名前:デフォルトの名無しさん [2008/08/18(月) 00:30:22 ] >プログラム作成の熟練者の方ではこういう場合どういう持っていき方をするのでしょうか? こら。わりこむな。 うだうだ考えずにとっとと作れ。 そもそも比較時間が問題になるんか? アイドリングが0.1%減る程度なら うだうだ考えるな。
595 名前:デフォルトの名無しさん [2008/08/18(月) 00:33:22 ] >インテリセンスでプロパティやメソッドが表示されるのに、どうしたら >いいのかまったくわからないのなら、絶望的にセンスがないから >プログラミングから手を引いた方がいいと思うよ。 答え方のセンスがなってないな。使い古した言い方を止めろや。お前には 発想力というものがないのか?
596 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 00:58:53 ] > 命令群と言っても処理上は文字列なので、わざわざ分解し個々の命令を配列に格納する必要性はあるのか? 命令群の記述順に意味があるのかどうかにもよるんじゃない? あるいは「A B C」という命令が送られてきた場合に「B」は実行中だから 「A」と「C」を追加実行するというような仕様なのかどうかとか。
597 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 01:08:41 ] すみません書き方が悪かったです 命令群というより状態を表すステータス群です それぞれのステータスを比較し違えば更新するということなので おっしゃるような、比較した命令(ステータス)を処理する順番は全く関係ありません。
598 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 02:39:29 ] >>597 具体的に例を出してくれれば、答える側も理解しやすいしアドバイスもしやすい
599 名前:デフォルトの名無しさん [2008/08/18(月) 14:23:08 ] 継承した基本クラスのプロパティなどを表示させ無い事ってできますか? 例: Public Class ClsBase protected AAA As Integer protected BBB As Integer protected CCC As Integer protected DDD As Integer End Class 上記を継承したSUB1、SUB2、SUB3の三つのクラスがあったとして、 SUB1では[AAA/BBB/CCC]だけを SUB2では[BBB/CCC/DDD]だけを SUB3では[AAA/CCC]だけを利用したい場合、 各クラスで必要ない基本クラスのプロパティを非表示にさせたい。
600 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 14:29:00 ] 表示だけじゃ意味が通らん VSでのインテリセンスとかPropertyGridのことだろうけど OverridableなプロパティならOverridesしてBrowsable/EditorBrowsable属性を付けなおせる PropertyGridならTypeConverter属性駆使すれば非表示にできるけどインテリセンスは無理だった気がする
601 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 14:32:17 ] TypeConverterじゃまずいな、Designer属性の方じゃないと
602 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 14:35:22 ] >>600 ありがとうございます。 まさしくインテリセンスの事でした。
603 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 16:03:39 ] お前ら何でC#じゃないの?
604 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 17:30:56 ] >>603 C系の独特のマジカルな記法が重なってくるとどうも苦しむのですた。 いつかは慣れるでしょうか?
605 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 01:19:39 ] >>603 サラリーマンだからさ
606 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 01:22:45 ] >>604 アレに耐えられるようになって初めてマゾだ
607 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 01:25:11 ] VBで書いてコンパイルしてC#に変換かければ済む話だ
608 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 01:28:11 ] そんなことするぐらいならVBのままでいいだろw
609 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 01:31:07 ] オマエはニートか?
610 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 01:33:58 ] どこの誤爆だw
611 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 01:57:52 ] 誤爆という事にしたいのか 哀れな
612 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 19:49:26 ] 「すべての参照の検索結果」メニューで出て来る「シンボルの検索結果」を 見たいように並べ替えて見たいのですが、方法がありましたら教えてください。 まずはファイル別にまとめて見たいのですが。
613 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 22:23:53 ] プログラムをロード後、使用途中段階で呼び出される関数にて多くの配列と変数を宣言すると プログラム自体のメモリ使用率が動的になってしまいますよね それでプロの方は、事前にメモリの確保(予約)をしているからそんなことがあっても大丈夫って聞いたことがあるのですが 事前にメモリを確保するのはどうやったらよいのでしょうか? プログラムのロードイベントで全部の変数を宣言すればよいのでしょうか? また、別のプログラム同士でデータをやり取りする場合、メモリのアドレスで読み書きしているからお互いから操作できるらしいのですが これまたどういう手法なのでしょうか? 変数のアドレスを渡せばよいのでしょうか まだ始めて間もないので意味不明な質問かもしれませんが、私の質問の意図がご理解できましたらどうかアドバイスをお願いします。
614 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 22:29:41 ] 気にしなくていい
615 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 22:52:15 ] フォームをloadしたらdatagridviewにコンボックスの列を足してるんですけど datagridのコンボックスはselectedindexないからloadした後コンボックスの 初期値を設定できないで困ってます。 EditingControlShowingのイベントでSelectedIndexChanged作って〜 とやったらできたんですけどこれはセル編集中だから自分が求めてる のとはちがってました。 datagridviewはバインドしてます。バインドした後にコンボックスを足してます。 わかる方アドバイスお願いします。
616 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 03:05:55 ] コンボックスなんて聞いたことがない
617 名前:デフォルトの名無しさん [2008/08/20(水) 04:22:50 ] EXCELを立ち上げて落としたい。 しかし、どうあがいてもEXCEL.EXEがタスクに残る。強制的に殺す奥の手は ないのか?
618 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 04:28:43 ] >>617 プロセス切ればいいじゃん
619 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 04:31:38 ] >>617 VBのプログラムを終了しても残るなら Book.Close(False) / App.Quit() をしてないせい。 VBのプログラムを実行したまま意図したタイミングでExcelを終了させたいなら Marshal.ReleaseComObject()をもれなく書く。 この2種類の話題がごちゃ混ぜにされてることがあるから要注意。
620 名前:613 mailto:sage [2008/08/21(木) 23:20:01 ] どなたか分かりませんか? 24時間365日稼動できるようなソフトを作りたいのでメモリなど蓄積が気になって・・・。
621 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 23:26:45 ] visual Studio 2008を使っているんですが、プログラム作成中にソースデータやフォームのデザインを 変更する前に別のファイルとしてバックアップしたいのですがどうしたら良いのでしょうか? 「ファイル」から名前をつけて保存をするとソースファイルは別のファイルで保存されるのですが、プロジェクトを読み込みなおすとその別に保存したソースファイルから読み込んでしまいます。 またデザインデータは保存できないように感じました。 エクセルなどを変更する時は****(H20.8.21).xlsなどと日付毎に保存していたのですが、このプロジェクトファイルもそういう風に扱いたいのです、どうしたらよいのでしょうか?
622 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 23:41:49 ] >>620 >>614
623 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 23:45:14 ] >>621 VSSやその他のソース管理ソフトを使うか、 エクスプローラからプロジェクトのフォルダを丸ごとコピーする。
624 名前:613 mailto:sage [2008/08/22(金) 00:06:51 ] >>622 では「メモリ開放」とはどういう作業なのでしょうか? あともうひとつのメモリの共有についてできれば教えていただきたいです・・。
625 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 00:14:43 ] >>621 .vbと.resxコピーするだけじゃあかんのか? (俺は2003だから2008じゃどーか知らんが)
626 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 00:32:17 ] フォルダ丸ごとコピーが一番手っ取り早い
627 名前:621 mailto:sage [2008/08/22(金) 00:37:26 ] >>625 それをバックアップした場合、プロジェクトはどこから読み出せばよいのでしょうか? >>623 ,626 やはりそれが一番ですね 現状はそれでやってます それでVSSとはなんでしょうか?
628 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 02:49:24 ] >627 さすがに少しはぐぐれ。VSSぐらいはすぐ引っかかるから 人に聞いただけだと聞いたこととそのすぐ回りしか分からないが、自分であれこれ探し回れば効率こそ落ちるが色々知識が入ってくる。 つか、質問スレで言うのがアレなのは分かってるけど、 コピーしたフォルダなら幾ら弄っても大丈夫なんだから 何が必要で何が不要なファイルかなら実際に試して経験則的に覚えりゃいいと思うが。 (間違ってる可能性は残るから過信は禁物だが) どうせ参考にはならんだろうが、 数ヶ月前に弄ってたVB2008のプチアプリのバックアップするために試行錯誤した時のメモには ・obj、binフォルダ不要 ・My Project内、Application.myappとSetting.settingsファイル不要 と書いてあった。モジュールとリソースファイルとプロジェクトファイルは要るぞ、とも。 万が一信じるにしても、無論自己責任で
629 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 08:04:56 ] >>624 自分で確保したものを開放すればよい。 実際のメモリーのお掃除はOSのお仕事。 メモリー共有って言葉を知っているならそれで調べればいくらでもサンプルは出てくるぞ。
630 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 14:06:17 ] >>629 OSは何もしないんだが。 メモリ開放はGCが行う。
631 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 14:17:14 ] >>624 せめてもう少しプログラムに関する知識とVB.NETの知識を得てから質問してくれないと、 何を聞きたいのか分からないから答えようがない。
632 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 14:39:19 ] 解放
633 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 15:44:53 ] >>624 C言語においては配列作成時などに確保したメモリは明示的に解放する必要がある。 C言語にはメモリを解放する関数が存在する。 .NETで開発する場合、ガベージコレクションという便利なものがあって、 スコープが外れて使用されなくなったメモリ領域を自動で解放してくれる。 ゆえにVB.NETで開発する君の場合は特に考えなくても良い。
634 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 16:37:08 ] スコープとか言って通じる相手なんか?
635 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 17:11:27 ] 自分で検索する為の単語を与えてやるのは良いこと。 てか回答者レベル低い奴大杉。さすがVB。
636 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 22:45:25 ] 夏厨大杉まで読んだ
637 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 00:21:22 ] >>633 なるほど!VBやるまえにC言語を少しかじっていたのでそれで混同していたのかもしれません ですけど、VBにもdisposeなどの開放メソッドがありませんか?
638 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 00:26:46 ] メモリ以外のリソースを解放するためのメソッド
639 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 00:32:13 ] リソースの開放・・・・ 解説サイトで使ったほうがいいとあったのでファイル操作などで使ってましたが リソース・・・リソース・・・調べます
640 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 07:12:04 ] VB.net のセットアップで.net FrameWorkも一緒に配布するには どんな設定したらいい?
641 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 15:00:43 ] 2005から2008にしたらツールボックスが使えません。 なにか追加しろとか出てるんだけど。 詳細お願いします。
642 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 15:11:32 ] なにかってなんだよ
643 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 15:12:01 ] その「なにか」を追加すればいいんじゃね
644 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 15:17:27 ] デベロッパーなんですけどOrz
645 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 15:33:23 ] デベロッパーを追加しろ?
646 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 20:16:10 ] Microsoft.VisualBasic.PowerPacks.Vs.dllは ユーザーに.NET3.5SP1を入れてもらえばいいのかな? それともインストーラ作って配布しなきゃいけない?
647 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 21:59:36 ] >>646 試せばわかることを聞くな 新人研修で習わなかったか?
648 名前:デフォルトの名無しさん [2008/08/26(火) 06:38:28 ] 3.5いれたらXPが死んだ。怖いよー。2.0で我慢する。
649 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 13:00:05 ] >>646 Microsoft.VisualBasic.Compatibilityと同じ扱い。.NET2.0でも使える。
650 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 14:42:18 ] VB6→2005のシステム移行を行っているのですが VB6にて作成したユーザーコントロール(TextBoxのみ)を 使用しているようです。 このコントロールのChangeイベントを取りたいのですが VB2005で取るにはどうしたらよいですか?
651 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 20:52:38 ] タブ区切りのCSV(TSV)や、XMLのファイルをSQLにロードする方法として 最も簡単な方法を教えてください。 もしくは、どこかのHPに分かりやすい解説ないでしょうか? Google先生に聞いてみてるのですが、これ!というのに未だ出会えていません。
652 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 20:54:43 ] DBがなんだかしらんけど CSVならなにかしらインポートユーティリティあるんじゃね
653 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 23:06:02 ] 簡単なのはデータベースにあったデータローダー使うのがいいんでね 変わったフォーマットだとStreamReaderで読んでしこしこinsert文投げるとか これくらいは悩むより手動かした方が早いよ 10行でズバリではムリかもしれないが、エラー処理なしならソース20行くらいで できそう?
654 名前:641 mailto:sage [2008/08/27(水) 14:50:38 ] imepita.jp/20080827/531750 ツールボックスにこのような文字が表示され使えません。 何を追加すればいいのかが分かりません。 2005ではそのようなことはしなくてもちゃんと表示され 使えてました。2008にしたらこのような状態になりました。
655 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 15:36:23 ] >>654 どんなソリューション作成したのかわかんねえよそれじゃ。 VSの画面全体のキャプチャをうpしろ。 コンソールアプリ作成のソリューションとかいう落ちじゃねえだろうな。 あと普通にスレ違い。 Visual Studio 2008 Part 11 pc11.2ch.net/test/read.cgi/tech/1217525513/
656 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 17:13:12 ] ' メンバ変数 Private m_aliasName As String = "MediaFile" メソッド1の中で mciSendString("open """ + ○○○.mp3 + """ alias " + m_aliasName, Nothing, 0, IntPtr.Zero) mciSendString("play " + m_aliasName, Nothing, 0, IntPtr.Zero) でmp3を再生して メソッド2で Dim strRetBuf As System.Text.StringBuilder = New System.Text.StringBuilder(255) mciSendString("status " + m_aliasName + " position", strRetBuf, 256, IntPtr.Zero) で、strRetBuf,に現在の再生時間を取りたいんですけど、うまく取得できません… どこかに問題があるのでしょうか。。。 再生は正常に行われます。
657 名前:656 mailto:sage [2008/08/27(水) 18:16:37 ] mciSendString("status " + m_aliasName + " position", strRetBuf, 256, IntPtr.Zero) の戻り値が263でした。
658 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 18:24:09 ] 次はmciGetErrorStringだな
659 名前:656 mailto:sage [2008/08/27(水) 18:25:22 ] やったんですけど、空のStringBuilderが帰ってくるんです…w
660 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 18:30:05 ] じゃあ呼び方が変なんだろ ByRef output As StringBuilderとか宣言してそうだな
661 名前:656 mailto:sage [2008/08/27(水) 18:34:50 ] Private Shared Function mciSendString(ByVal command As String, ByVal buffer As System.Text.StringBuilder, ByVal bufferSize As Integer, ByVal hwndCallback As IntPtr) As Integer Declare Function mciGetErrorString Lib "winmm.dll" Alias "mciGetErrorStringA" (ByVal dwError As Long, ByVal lpstrBuffer As System.Text.StringBuilder, ByVal uLength As Long) As Long 宣言はこんな感じです。
662 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 18:39:54 ] Longキターー!!
663 名前:656 mailto:sage [2008/08/27(水) 18:45:22 ] すまそ… Private Declare Function mciGetErrorString Lib "winmm.dll" Alias "mciGetErrorStringA" (ByVal fdwError As Integer, ByVal lpszErrorText As System.Text.StringBuilder, ByVal cchErrorText As Integer) As Integer に直したら、mciGetErrorStringいけたw 指定されたデバイスが開かれていない、または、MCIで認識できません 言うとる。。。
664 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 19:09:03 ] >>654 ただ単にアクティブウィンドウがフォームじゃないだけだったりしないか?
665 名前:656 mailto:sage [2008/08/28(木) 10:07:05 ] スレッド立てて、そっちの方から取得しようとしたらダメみたいでした。 メインの方の処理からは取得できる。。。 スレッドやとダメなのかなぁ…
666 名前:656 mailto:sage [2008/08/28(木) 10:38:09 ] すんません…スレッドのすごい基本を勘違いしてました。 メンバ変数におもいっきしアクセスしてました。 お手数お掛けしました。
667 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 10:41:40 ] いや別に別スレッドからメンバ変数触るのは気を使うけど問題はないが コントロールはともかく
668 名前:656 mailto:sage [2008/08/28(木) 10:55:21 ] え、別に触っても問題ないんですか? 気を使うっていうのは、スレッド内で値が変更される可能性があるから本スレッドでは気をつけないといけないって事っすか?
669 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 11:04:14 ] positionはmciGetStringを使わんとあかんのだが。
670 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 14:23:57 ] はじめまして、諸先輩方のお知恵を拝借したく。 環境はVB.net2005です。 ListViewコントロールを配置したのですがマウスクリック カラム横幅を固定する方法が見つからなくて困っています。 ListViewクラスのメンバ、Controlクラスのメンバなども確認しましたがそれらしきものが見つからず。 お手数おかけしますがよろしくお願い致します。
671 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 14:29:04 ] ColumnWidthChanging CancelだけじゃダメでNewWidthに現在値を入れなおさないととか言う話を聞いた気がする
672 名前:670 mailto:sage [2008/08/28(木) 19:45:53 ] >>671 迅速なご返信、本当にありがとうございます。 > ColumnWidthChanging という重要なキーワードと、 > CancelだけじゃダメでNewWidthに現在値を入れなおさないととか言う話を聞いた気がする という対応策まで頂いて、組んでみたところ実際にそのままではダメだったことを確認した後 NewWidthに値を入れなおしてバッチリ動作したことを確認。いや〜助かりました。 迅速でパーフェクトなご回答、本当にありがとうございました! 最も参考になったURL: .NET Framework クラス ライブラリ ListView.ColumnWidthChanging イベント msdn.microsoft.com/ja-jp/library/system.windows.forms.listview.columnwidthchanging (VS.80).aspx ↑確かにこの例のようにmsgboxを出したりするとキャンセルできるのですが、それを削るとなぜかキャンセルできない。
673 名前:670 mailto:sage [2008/08/28(木) 19:47:26 ] 対策(NewWidthに現在値を入れなおし)し、解決できたコードも一応書いておきます。 Private Sub listview1_columnwidthchanging(ByVal sender As Object, _ ByVal e As ColumnWidthChangingEventArgs) _ Handles ListView1.ColumnWidthChanging 'イベントを無効にする e.Cancel = True 'キャンセルした後、各列幅を再設定してみる Select Case e.ColumnIndex Case 0 e.NewWidth = _CFG_COLUMN1 '列幅の初期値 Case 1 e.NewWidth = _CFG_COLUMN2 '列幅の初期値 Case 2 e.NewWidth = _CFG_COLUMN3 '列幅の初期値 End Select End Sub
674 名前:デフォルトの名無しさん [2008/08/28(木) 21:56:38 ] MSDNを隅々までちゃんと読んでないだけだろ
675 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 07:56:29 ] クライアント上のプログラムを検索してDB登録するプログラムを作成したいのですが、 (要はウイルスチェックのオンラインスキャンみたいなものです) VB.NET(ASP.NET)で実現可能なものでしょうか? 参考となるHP等ありましたらご紹介下さい。
676 名前: [―{}@{}@{}-] デフォルトの名無しさん mailto:sage [2008/08/29(金) 12:44:03 ] >>675 どんな事が起こるかを考える事から始めた方がいい
677 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 13:37:31 ] 音声認識で困ってます。誰か助けて(´;ω;`) エラー箇所:engine.SetInputToDefaultAudioDevice エラー内容:{"値が有効な範囲にありません。"} Private Sub Recognized(ByVal sender As Object, ByVal e As RecognitionEventArgs) Console.WriteLine(e.Result.Text) End Sub Sub Main() Dim engine As New SpeechRecognitionEngine() AddHandler engine.SpeechRecognized, AddressOf Recognized engine.LoadGrammar(New DictationGrammar()) engine.SetInputToDefaultAudioDevice()&bnsp<==ここでエラー Do While (True) Console.Write("Speak:") engine.Recognize() Loop End Sub
678 名前:デフォルトの名無しさん [2008/09/02(火) 22:59:54 ] DataGridViewの第2キー使ったソート教えてください ソート自体はセルのヘッダー部分クリックしたら自動で行えるものを 使おうと思ってるんですが、やっぱり一から書くべきですかね・・・
679 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 23:13:22 ] ヘッダクリックじゃそりゃその列でしかソートできんわな DataSourceがBindingSourceでBindingSourceの元がDataTableなら BindingSource.Sort使えばよし
680 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 08:55:09 ] ま、それぐらいできなきゃ糞だろ
681 名前:デフォルトの名無しさん [2008/09/04(木) 21:30:01 BE:766864883-2BP(4221)] Buttonをクリックすることで文字をフォーム内のTextBoxに挿入する方法教えてください
682 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 22:01:27 ] 実現したいことをちゃんと説明できないようじゃ無理
683 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 09:55:40 ] >>681 Textbox.Text="もうあきらめたら?"
684 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 11:32:41 ] >>681 Private Sub Button_Click(sender As Object, e As EventArgs) _ Handles Button.Click '>>683 の一文。既にある文字列に追加したいなら"="は"+=" End Sub
685 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 01:09:14 ] >>684 &=じゃないのか?
686 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 04:25:50 ] ぬるぬるびじゅあるべーしっく!
687 名前:デフォルトの名無しさん [2008/09/06(土) 09:47:44 ] Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.KeyPreview = True End Sub Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp If e.KeyCode = Keys.Up Then Call Button2_Click(Nothing, Nothing) End If End Sub これで↑を押したときに、ボタン2のイベントを呼び出すことができるんだけど、 連続でしたいときは何回も押さないと駄目だよね? ↑を押し続けることで、ボタン2のイベントを何回も呼び出し続けるためにはどうすればよいですか?
688 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 10:13:21 ] タイマー使う?
689 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 10:24:48 ] KeyDownでいいんじゃね?
690 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 11:05:14 ] そもそも「キーを押した時の処理」で わざわざKeyUpを選んだ理由が不明すぎる
691 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 14:23:29 ] >>687 >↑を押し続けることで 押し続けている間はKeyUpイベントが発生しないよ。 フォームデザイナでイベントの説明見つつ、まずは拾うイベントを見直そう。
692 名前:687 [2008/09/07(日) 02:22:09 ] レスありがとうございます 仕方なくkeypressで文字キーを割り当てました。 あともう一つ質問なんですが、 MsgBox()で変数を表示されることはできないんでしょうか? C言語のprintf("%d",x)のように
693 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 02:33:11 ] 普通にできる。
694 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 13:15:26 ] >>692 C言語で作れよ。
695 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 13:33:31 ] すいません、どなたか教えてください。 ↓の画面にあるようなコンポーネントを探しています。 www4.ocn.ne.jp/~izu1/software/sample.htm どんなのかというと、ボタンをドラック&ドロップで配置でき、 その長さを調節できたりするよなものです。 有料でもかまいません。 どうぞお願いします
696 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 14:01:15 ] >>695 実行時リサイズできるコントロールのサンプル www.codeproject.com/KB/vb/controlresize.aspx サンプルでは、四隅でリサイズできるようになってるけど、修正して左右に来たらリサイズを行うとすれば長さだけ調節できるようになる。 また、四隅にボックスを描画してるところを消して、ControlPaint.DrawBorder(もしくはButtonRenderer)を使ってボタン枠を描画すればOK.
697 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 14:35:31 ] please tell me how to make com wrapper
698 名前:デフォルトの名無しさん [2008/09/08(月) 04:59:13 ] 環境:WindowsXP、VB.NET 2005 std. ターゲット:Windows Mobile 5.0 (.NET Compact Framework 2.0) 質問者のレベル:DB?なにー?VB.NET?それってつおい? よくわからないこと ・SJISで書かれたCSVファイルから1レコードづつ読込んで、データベースファイルにない idなら追記、既存idならレコードの更新をする方法。(CSVファイルは数百KB〜数MB程度) 本当はデータベースファイル経由じゃなくて直接CSVをデータソースとして使いたいのに 方法がわからないあばばばばば
699 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 07:50:26 ] 追記、テーブルはこんな感じなんですが。 id(int型、主キー、ただし欠番有り) name(varchar型、最大32) note(text型、NULL許可) data(datetime型、"1999-08-31 06:06:06"と空白含むので""で囲んである)
700 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 09:57:50 ] >>696 なるほど、そういうコントロールもできるんですね。 情報ありがとうございます!
701 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 15:29:18 ] win2000環境でDataGridViewを表示させるのが えらい遅いんだがそんなもん?win2000だから? 体感10列100行表示に10秒ぐらい 処理は特に無くて行を100行追加しただけ・・・
702 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 16:12:51 ] >>701 そんな遅いとは思わないんだが・・・ うちのはまぁ1秒とかそんなもんだが・・・
703 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 16:17:40 ] 1行ずつ追加したとか
704 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 16:22:42 ] Fillに時間掛かってるとか 実は各カラム10万文字ほどの文字列とか
705 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 16:24:29 ] VISTAにしない貧乏人だからだろうなw
706 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 16:48:49 ] >>701 遅すぎ。 >特に処理は無くて てこたあ非バインド?それでその速度なら データソース疑った方がいいかも試練。 >>705 お前が失せるだけでもスレの平均レベルが上がる気がする。
707 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 16:52:08 ] >>701 いったいどんなマシンでどんなソースで ってのが少しはわからないと一概に言えないと思うんだわ さすがにないとは思うけどメモリ256で動いてるとか
708 名前:デフォルトの名無しさん [2008/09/08(月) 16:57:08 ] おまえ??妄想しすぎて頭が爆発しちゃってないか?
709 名前:701 mailto:sage [2008/09/08(月) 18:00:00 ] >>702 そうですか、特にwin2000だからということも無いのですね・・・ >>703 /704 Me.DataGridView1.RowCount = 100 この1行をForm_Loadに書いただけです。 データもセットしてないです。 >>707 CPU Pentium4 3G MEM 1G なのでとりあえず問題ないかと・・・ 補足で、 コンパイルしたexeをXPの同等くらいのマシンで動かした場合一瞬で表示されました。 Win2000環境にEl Tabelle Sheet 4.0Jのトライアルを入れてやってみたら一瞬で表示されました。 もうDetaGridViewなんてやめてライセンス確保して El Tabelle Sheetで開発しようかと考え中です。 >>705 客先環境に合わせて開発環境OSをWin2000にしたので 貧乏なのは客先なのでどうにもならんw
710 名前:デフォルトの名無しさん [2008/09/08(月) 18:04:05 ] 自分vistaだけどさ、別にxpでも2000でもいいじゃん。 ただ、vistaはクソだバグだらけだxpのが数千倍いい!とか マニュアル見ないでいう人はきらい。 個人で2008serverほしいんだけど、むだかなぁ。
711 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 18:13:51 ] VISTAは出るの遅かったからな。評価が定まるのはまだ2年ぐらい先のことなんじゃないか?
712 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 18:58:16 ] >>709 >Me.DataGridView1.RowCount = 100 >この1行をForm_Loadに書いただけです。 >データもセットしてないです。 待て。>>701 で「10列」とか言ってなかったか?
713 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 19:14:14 ] ?
714 名前:デフォルトの名無しさん [2008/09/08(月) 22:43:10 BE:1789351687-2BP(4221)] >>683-684 遅れましたけどありがとうございます
715 名前:701 mailto:sage [2008/09/09(火) 09:03:21 ] >>712 うん。だから10列100行と書いてあるよ? 10列はデザイナで追加 100行をコードで追加
716 名前:デフォルトの名無しさん [2008/09/09(火) 12:18:40 ] Private Sub mnuMedian_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuMedian.Click objUndo = picSample.Image picSample.Image = Median(picSample.Image) End Sub でボタンを押して画像を変換して Private Sub mnuUndo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuUndo.Click picSample.Image = objUndo End Sub メニューをクリックして処理前の画像に戻そうとしてるのですが, objDataに処理後の画像が保存されてしまいます.どうすればいいのですか? objUndoはForm Classで変数宣言してます.
717 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 12:22:20 ] 基本的にただの代入なら同じオブジェクト CloneとかNewとかで別のオブジェクト作れ
718 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 12:31:31 ] >>716 objUndo = picSample.Image.Clone() 参照型と値型の区別がついてないあたりがVB
719 名前:716 [2008/09/09(火) 12:38:54 ] >>717 値型と参照型の凡ミスですね。わかりました。 助かりました。ありがとうございました。
720 名前:716 [2008/09/09(火) 12:41:21 ] >>718 追加で ありがとうございました。
721 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:07:36 ] 足し算の結果を3桁カンマ区切りで表示する 足し算アプリケーションを作りたいのですが 教えてください。
722 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:29:13 ] (a + b).ToString("0.000")
723 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:30:06 ] カンマとピリオド間違えた。
724 名前:デフォルトの名無しさん [2008/09/09(火) 14:32:22 ] すげー VBAって便利じゃん!
725 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:07:45 ] VBAかよっ
726 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 17:31:24 ] エディタで同じコントロールだけ全部選択する方法無い?
727 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 17:39:45 ] ああごめん。VBですです。
728 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 18:05:19 ] ない
729 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 19:40:55 ] JANEのスレ一覧みたいなコントロールってありますか?
730 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 19:44:22 ] まずアンカー付けやがれ糞虫ども
731 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 22:35:57 ] だがことわる
732 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 11:51:24 ] >>729 TreeView
733 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 13:21:48 ] >>729 Janeがどんなブラウザかは知らんが、 もし今からVB.netかC#で2ちゃんブラウザ作るなら、 スレ一覧にはListView(詳細表示)かDataGridView使う。
734 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 14:19:05 ] JaneってDelphiで作られてるんだよな
735 名前:デフォルトの名無しさん [2008/09/10(水) 21:12:36 ] えーとある文字列から秒のみで表されている時間の情報を正規表現で取り出して hh/mm/ssの形に直したいんですけれども ちょっとググったら detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1110391756?fr=rcmd_chie_detail という回答があったのですがなんか力技なんですけど もっと日付時間関数とかでスパっと行う方法は無いでしょうか?
736 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 21:18:12 ] そんな特殊需要にこたえるメソッドが汎用ライブラリにあったら むしろ不思議だと思うんだが。。 っていうかコードの書き方はともかく、考え方はいたってオーソドックスで どこが力技なんだか理解に苦しむぞ。
737 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 21:21:46 ] TimeSpan.FromSeconds
738 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 21:28:34 ] >>735 正規表現で?
739 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 21:31:01 ] 正規表現で取り出したいのか関数でスパッと行いたいのか
740 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 21:33:48 ] いや、力技という感覚は理解できるが。 >>737 みたいにするのがシンプルでいいと思うよ。
741 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 21:35:34 ] TimeSpan.FromSeconds().ToString()で終わりだな
742 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 21:35:47 ] あ、正規表現で取り出すところは出来てます >>737 を調べてみます
743 名前:735 mailto:sage [2008/09/11(木) 00:06:13 ] 遅くなりましたが上手くいきました 理解出来てない部分はありますがとりあえず望んだ動作はしてくれてます どうもありがとうございました
744 名前:デフォルトの名無しさん [2008/09/11(木) 00:14:03 ] VS2003.NETですが、Javaの操作って出来るのでしょうか?
745 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 00:33:09 ] 意味が分からない。
746 名前:デフォルトの名無しさん [2008/09/11(木) 00:51:40 ] >>745 うぜえなお前に聞いてねえよ
747 名前:744 mailto:sage [2008/09/11(木) 00:57:14 ] まったくだ
748 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 01:03:21 ] >>747 で、どういう意味?
749 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 01:06:33 ] >>744 そもそもスレ違い
750 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 10:35:08 ] >>698 ですが、ちょこっとヒントだけでもいただけませんか?
751 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 10:59:50 ] >>750 横槍ですまんが あれじゃね? CSV読み取ってDataTableにでも格納すれば てはなしじゃね? 勘違いしてたらスルーしてくれ
752 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 11:10:45 ] >>750 ODBCのテキストドライバのことを言ってるなら既に非推奨。 VBだったらMyなんたらにCSV用のテキストリーダークラスがあったはず。
753 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 11:13:24 ] >>698 ここらへん www.atmarkit.co.jp/fdotnet/dotnettips/487csvparser/csvparser.html dobon.net/vb/dotnet/file/readcsvfile.html
754 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 11:14:48 ] そんなもんエクセルとかでいいし、VBでやるほどでもない。
755 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 15:06:07 ] VB2005での質問 Form1からForm2をShowDialogで開いて Form2を「X」で閉じると Form1まで一緒に終了してしまうんだが これはバグ? 一応Form1のClosingイベントで回避はしてるんだが VB2003の時にはなかった現象なので困惑中
756 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 15:15:24 ] きっとおまいのコードのバグ
757 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 15:59:05 ] わしもそう思う
758 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 16:05:27 ] おいどんもそう思うでごわす
759 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 16:05:52 ] わっちもそう思いんす。 …Form2がスタートアップオブジェクトになってるとか。
760 名前:755 mailto:sage [2008/09/11(木) 16:07:13 ] 今日来たWindowsアップデートかけて再起動したら直った… ナンジャコリャ…
761 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 16:08:16 ] >>759 いや、SUBMAINから呼び出してた なにやら解決下っぽいので再現できない…w
762 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 16:09:52 ] EXCELとか素人。プロならJavaを選ぶ。
763 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 16:55:41 ] JAVA(笑)
764 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 18:03:55 ] Javaを真に必要とする案件って少ないよな。 どうしてこれでJavaなんだ?って言いたくなるのは山ほどあるが。
765 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 18:09:31 ] それはVBだって同じこと。なんならエクセルとかVBAでいいじゃんか。
766 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 19:09:49 ] JAVAのほうが(客を言いくるめて)単価を高く設定できるとか JAVAの教育しかしてないとか
767 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 19:12:51 ] でもさ、なんかJAVAの方がかっこよくね?
768 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 19:31:16 ] >>767 イミフ
769 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 21:11:20 ] ソースの可読性(メンテにおいて)JAVAとVBじゃどっちが上だ?
770 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 21:48:24 ] なんかJava使いってあこがれちゃうよな… Javaって、なんか堅いっていうかさ、難しいからな…
771 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 22:15:59 ] JAVAなんか覚えてもゲーム作れないじゃんww
772 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 22:25:44 ] >769 ifやwhileのブロック終端が明記されている、という点はVBが有利か。 べつに他の言語でもコメントで「このカッコはどのループの終端だよ」って書いといてくれればいいんだが。
773 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 01:18:39 ] ゲームって(笑
774 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 01:43:31 ] >>751-753 それがですな、.NET CF 2.0だと省かれてるんですわ。TextFieldParserクラスが。 結局、自分でcsv用のパーサ書くなりなんなりしないといけないという。 VB.NETなら簡単だからと安請け合いしなけりゃよかった・・・。
775 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 01:56:20 ] CSV程度書くのも簡単だとおもうけど。
776 名前:デフォルトの名無しさん [2008/09/12(金) 03:25:10 ] .NET初心者の元JAVA使いです。 あるクラスのインスタンスが複数あった場合に、同じもの(=同じ参照アドレス)であるか 判断する手段は無いでしょうか? 変数の代入を含む参照渡しで期待した動作にならない時に、 同一のインスタンスであるか確認したい場面は多いと思うのですが。。。 GCHandleを使うようですが、わざわざコードを書かないと見えないのでしょうか? Javaの時は、Eclipseデバッガの変数ビューに表示されるID=XXの値が同じなら 同じインスタンスと見なしていました。
777 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 03:48:33 ] >>775 自分で書かなきゃならないならVBなんか選びませんよ、と。
778 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 05:13:37 ] rfc準拠で読み取ろうとすればそれなりにコードが必要になるが、 たいがいローカルルールでcsvは作られてるものだ。 データにカンマやダブルクオーテーション禁止といったルールのものも多い。 それならばString.Splitで一発だろ。
779 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 08:45:10 ] >>776 Object.ReferenceEquals
780 名前:776 mailto:sage [2008/09/12(金) 09:59:25 ] >>779 ありがとう。
781 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 10:38:29 ] DataGridViewって col1,col2 row1 row2 から row1,row2 col1 col2 の並びに変更できますか? 環境はVB2005です。
782 名前:デフォルトの名無しさん [2008/09/12(金) 10:56:08 ] デバッグ時のローカルWindowで、DataTableのSystem.Data.DataRowの 中身を手軽に覗きたいのですが、何か良い方法はありませんか?
783 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 11:23:20 ] ウォッチの値の右の方にビジュアライザを選ぶアイコンがなかったかな?
784 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 12:30:09 ] >>781 できません。
785 名前:781 mailto:sage [2008/09/12(金) 13:23:20 ] >>784 やっぱり出来ないですか。 答えてくれてありがとです。 別な方法を考えてみます。
786 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 13:27:27 ] 機械的にぐるぐるやるしかないだろうね>ROW COL
787 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 16:27:34 ] 携帯から失礼します。 VB2005なのですがお教え願います。 業務要件でブラウザ上にオリジナルのCOMを表示する必要性が出てきました。 当たり前ですが、aspx(Web)デザインのツールボックスには表示されません。 Registory COM free も調べたのですが、いまひとつ的を射ません。 MFCやWin32APIやSDKでなんとかなるものでしょうか? いきなり不躾な質問ですが、何卒宜しくお願いいたします。
788 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 20:46:41 ] Split()はやめておけ。もうちょいひねって簡易なCSVパーサーかくほうがいいぞ。 コメント欄なんて特に英語だと ","なんて使われ放題だ。
789 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 00:53:25 ] データにカンマや改行コードが入るような場合は ダブルクウォーテーションでくくるんだからカンマ使われ放題でもかまわないだろ
790 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 01:02:17 ] 馬鹿は黙ってろ
791 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 01:06:07 ] > コメント欄なんて特に英語だと ","なんて使われ放題だ。 だから何?
792 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 01:08:41 ] ローカルル−ルで作ってた頃限定の話だろ。 カンマが入るようなデータにはTSVを使ってたな。 これから読み書き両方作るのならXMLを使えってことで積極的にはサポートしないのだろう。
793 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 14:22:43 ] しかしCSVは便利だよな
794 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 14:31:27 ] 789は、Splitの動作をしらないのか、いやそんなことはどうでもいい。 XMLよりYamlが好みなんだけど、ライブラリ少ないんだよね。
795 名前:デフォルトの名無しさん [2008/09/13(土) 15:23:05 ] すみません。 GetType演算子 と TypeOf演算子 の違いはどういったものでしょうか? どちらも変数またはオブジェクトの型を取り出すのでしょうか。 どうもよくわからないままでした。よろしくです。
796 名前:795 mailto:sage [2008/09/13(土) 15:34:08 ] それとあと、もうひとつ、System.Type.GetType メソッドもありました。 たとえば、Imageクラスの変数にBitmapクラス(フォーマット)のオブジェクトを 格納した場合、実体としてのオブジェクトの型(Bitmap)を取り出すのは TypeOf()で、 変数の型(Image)を取り出すのはGetType演算子またはSystem.Type.GetType メソッド といった感じで使う、というようなことなのでしょうか??この辺、どうもよくつかめないです。
797 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 16:02:25 ] Object.GetType()やType.GetType()の意味が分からないのは Typeオブジェクトの意味がわからないってことで、Typeオブジェクトの意味が わからないのはたぶんクラスとかOOPがが分かってないってことだろう。 逆に言えばそれが分かればGetTypeの意味は自然とわかる。 Typeof...Isも同様で、クラスの継承をまず理解する必要がある。
798 名前:デフォルトの名無しさん [2008/09/13(土) 16:54:41 ] >>797 C++の解説本とか見ても普通Typeオブジェクトなんか説明はない。 で?
799 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 17:08:23 ] >>798 日本語が不自由ならサンスクリット語で書いてくれてもいいよ。
800 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 17:21:47 ] 煽りたい年頃なんです
801 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 17:33:55 ] 限界です。 影の薄い repeaterコントロールについて教えてください。 「クラスの配列のとある値」を、repeaterコントロールを使って表示したいのですが、全く動いてくれません。 データソースのセット、バインドやら一通りはやっています。 public class mdata public code as string ←こいつを表示したい public text as string end class '---------略 dim alydata as new List(of mdata) dim l_data as new mdata l_data.code = "01" l_data.text = "AA" alydata.add(l_data) '==バインド repData.DataSource=alydata repData.DataBind() ======== aspx 側 ======= <asp:Repeater ID="repData" runat="server"> ==中略 <ItemTemplate> <%# Eval(Container.DataItem, "code") %> ←型 'mdata' から型 'String' への変換は無効ですのエラーで止まる </ItemTemplate> ==========- あと一歩な気がするのですが、その一歩で2時間経過してしまいました。 先人方、ご教授お願いいたします。
802 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 21:31:30 ] >>799 >日本語 が不自由なのか、気の毒にな。
803 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 02:09:44 ] >>787 です。 日本語で書いたのですがスレ違いだったのでしょうか? かなり急いでいます。
804 名前:デフォルトの名無しさん [2008/09/14(日) 18:39:55 ] "abcdああああabcdいいいいabcdううううabcdええええabcdおおおおabcd" という文字列を、"abcd.*?abcd"という正規表現で検索したら、 "abcdああああabcd""abcdいいいいabcd""abcdううううabcd""abcdええええabcd""abcdおおおおabcd" がヒットする事になると思うのですが、 str="abcdああああabcdいいいいabcdううううabcdええええabcdおおおおabcd" Dim reg As New Regex("abcd.*?abcd", RegexOptions.IgnoreCase Or RegexOptions.Singleline) Dim m As MatchCollection = reg.Matches(str) For Each h As Match In m MsgBox(h.ToString) Next としたところ、"abcdああああabcd"の後、”い”から検索を始めてしまうらしく、 "abcdああああabcd""abcdううううabcd""abcdおおおおabcd" しかヒットしません。 この場合全部ヒットさせるにはどうすればいいでしょうか? それとも根本的になにか間違っていたりしますか?
805 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 19:35:38 ] 正規表現のパーサーって普通は文字列を先頭から終りに向かって一方向にスキャンするだけで 後戻りはしないだろう常識で考えて。 っていうか"abcd.*?"って意味不明のような気がするんだけどこれって何か 特別な書き方なんだっけ?
806 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 19:46:10 ] そうなんですか チェックに使っていたEmEditorFreeというソフトだと全部ヒットしていたんですがなにか複雑な処理でもしてるんですかね .*?は、任意の文字の0回以上の繰り返しの最短一致、のつもりで使ってました
807 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 20:17:55 ] >>806 ごめん最短一致については俺が無知だっただけみたいだ。 正規表現得意じゃないんでベストかどうかは保証できないけど以下のコードで 一応できたよ。 Private Function GetAllMatches(ByVal text As String) As String() Const pattern As String = "(abcd.*?abcd)(.*)" Dim reg As New Regex(pattern, RegexOptions.IgnoreCase Or RegexOptions.Singleline) Dim m As Match = reg.Match(text) If m.Success Then Dim match As String = m.Groups(1).Value Dim matches As New List(Of String) matches.Add(match) Dim leftover As String = m.Groups(2).Value matches.AddRange(GetAllMatches(leftover)) Return matches.ToArray Else Return New String() {} End If End Function '---------------------------------------- Dim Str As String = "abcdああああabcdいいいいabcdううううabcdええええabcdおおおおabcd" For Each s As String In GetAllMatches(Str) Console.WriteLine(s) Next
808 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 20:35:25 ] ごめん Dim leftover As String = match.Substring(1) + m.Groups(2).Value に修正しといてw 我ながらものすごい大ボケだな(恥)
809 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 21:17:54 ] うーん凄いですね・・・ 左を一文字削って繰り返すのはわかるんですが関数の中で自分自身を呼んでる所で頭がパニックになります・・・
810 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 21:40:37 ] >関数の中で自分自身を呼んでる所で 一度手を止めて、 再帰とか再帰呼び出しって言われる手法について一通り学んでみた方が良くね?
811 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 21:46:26 ] というか、別に非難するとか咎めるとかじゃなくて素直に驚いたんだけど、 正規表現使う人が再帰呼び出しを知らないっていう、いまはそういう時代なんだな。 なんかドラゴンボールでスーパーサイヤ人のくせに空飛べない悟天に驚いた 悟飯の心境というかなんというか。。
812 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 23:01:38 ] まあ正規表現自体はプログラミングを志すよりも先に Wordやフリーのテキストエディタで出くわすものだろうし
813 名前:デフォルトの名無しさん [2008/09/14(日) 23:40:40 ] 境界線無しの状態でフォームサイズ変更できるようにする方法ないですか?
814 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 23:43:13 ] 正規表現なんてWordで出くわすか?w 多機能エディタならメニューに入ってる確立が高いので なんじゃこりゃって思うかも知れないけど
815 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 00:21:23 ] ワイルドカードぐらいだな
816 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 01:56:04 ] 正規表現なんて鯖弄ってる奴か勉強してきた奴以外はしらないだろ
817 名前:ギギギ・・ mailto:sage [2008/09/15(月) 03:48:51 ]
818 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 12:14:10 ] 俺はPerlで書かれた掲示板CGIを改造してた時に出くわしたな
819 名前:デフォルトの名無しさん [2008/09/15(月) 17:18:03 ] >>816 だな。
820 名前:デフォルトの名無しさん [2008/09/16(火) 03:08:52 ] >>787 =>>803 だけど。 このスレ相当レベル低いんだな。 期待した俺が馬鹿だった。ごめん。 精々再帰呼び出しや正規表現でも語ってろ。 それから、確率を確立って書くか?w
821 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 04:29:10 ] 日本語変換って知ってる? 別に自分で書いているわけじゃないんだよ。
822 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 06:26:02 ] Registory
823 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 07:59:25 ] レジ・ストーリー キタコレw トイストーリーの仲間かw
824 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 08:48:08 ] レベルの低い質問ですが、 ListViewの一番右のColumnHeaderの右端を、ListViewの右端に固定する方法はありますでしょうか
825 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 10:25:18 ] >>824 ありますん
826 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 11:00:16 ] >>824 途中のカラムの幅変えられても右端は変わらず 横スクロールバーも出ないように、みたいな事? そりゃ、ColumnWidthChanging イベント捕まえて 自分で計算してやるしか。
827 名前:デフォルトの名無しさん [2008/09/16(火) 13:35:12 ] data(i) = cmd : i = i + 1 こういう : のついた式の意味をググりたいのですが なんと調べればいいんでしょうか?
828 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 13:40:35 ] : は式の一部じゃない 調べ方は、VSのヘルプのキーワード検索で : 一字を入力 なんでもgoogleは芸がないぜ
829 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 13:42:14 ] その記号は「コロン」と呼ぶ。
830 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 13:50:30 ] マルチステートメントでぐぐってみそ
831 名前:827 mailto:sage [2008/09/16(火) 14:00:07 ] >>828 >>829 >>830 1行に複数構文なんですね 今まで他言語をやっててVBのソースを見たとき VBにはこういう式があるのあと思ってしまいました… ありがとうございます!
832 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 14:14:51 ] 昔のMSXBASICとかマルチステートメントで1行プログラムとかやってたな…
833 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 21:21:30 ] 達磨さんが:だ
834 名前:デフォルトの名無しさん [2008/09/17(水) 14:37:07 ] DirectX SDK(March 2008)をインストールしたんだけど、 参照の追加でどれを選択したらいいんですか? visual basic 2008 Express を使ってます。
835 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 17:30:40 ] >>834 Managed DirectXでググれ
836 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 22:21:28 ] AxWindowsMediaPlayerコントロールを表示してて、トレイに最小化して また復帰するとDockがFillにもかかわらず標準のサイズに戻ってしまう のだがどうもならんのだろうか .Size=new size(〜で指定しても一瞬だけ広がってまたすぐ戻ってしまう
837 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 22:29:23 ] 丁度今読んでたこれみたいな事かな natchan-develop.seesaa.net/article/18029500.html
838 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 22:50:31 ] いや、フォーム自体は元に戻るんだが、その上に貼ったパネルに FillしたAxWindowsMediaPlayerが小さくなってしまうというもの (起動時はちゃんと一杯にFillしてる) 一応動くことは動く(再生出来る)のだが、ちとみっともないし…
839 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 22:53:55 ] >>804 もし、---***---===---というパターンが前提であるならば Dim sp() As String = New String() {"abcd"} Dim s As String = "abcdああああabcdいいいいabcdううううabcdええええabcdおおおおabcd" Dim ss() As String = s.Split(sp, StringSplitOptions.RemoveEmptyEntries) For i As Integer = 0 To ss.Length - 1 ss(i) = sp(0) & ss(i) & sp(0) Next でもいける。
840 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 23:52:19 ] そういう場当たり的な泥臭いことをしたくないから正規表現使ってるんだと思うけど。 っていうか論点ズレてるよ。 804の質問は、あるパターンに一致する文字列を網羅的に全部抜き出したいって意味でしょ抽象的に言えば。 あと余計なお世話だろうけど、配列名()っていう配列の宣言方法って違和感感じるなあ。
841 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 00:04:12 ] まったく余計なお世話ですね 氏ねばいいのに
842 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 00:06:38 ] 違和感感じるなあ(笑)
843 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 00:24:08 ] 幼稚臭いな。 というより、そういう反応というのは「ボキュのアイデンティティは2チャンネラです」 って言ってるのに等しいと思うんだが、自分のアイデンティティが「2チャンネラ」 なんていうチープなものでも悲しいとも思わないんだから逆説的に幸せな奴だな。
844 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 12:04:34 ] >>843 みたいな奴ってのは、 「誰宛にレスしたものかは自分だけが知ってればいい」とでも思ってるんだろうか。
845 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 17:32:04 ] SortedListのシリアライズは可能ですか? ここを見てArrayListをSortedListにしてみたのですが、'Dictionary が実装されているため シリアル化できません' って言われてしまって出来ませんでした。 ttp://www.atmarkit.co.jp/fdotnet/easyxml/easyxml11/easyxml11_04.html 結局SortedListをArrayListにしてシリアライズしました。 取り出しはデ・シリアライズ後、ArrayListをSortedListにしました。 シリアライズできるものと出来ないものって、どうやって決定されるんでしょうか。 どうかご教示お願いします。 そこんとこを上手く解説した書籍なりサイトなりがありましたら、あわせてお願いします。
846 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 19:59:08 ] >>845 ジェネリックの方を使ってもダメなの?
847 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 21:44:44 ] XMLは結構制限だらけだからな…