VB.NET質問スレ(Part35)
: デフォルトの名無しさん [sage] 2010/09/14(火) 09:20:53 前スレ VB.NET質問スレ(Part34) ttp://hibari.2ch.net/test/read.cgi/tech/1270998481/ テンプレは あたり : デフォルトの名無しさん [sage] 2010/09/14(火) 09:21:33 MSDN ttp://msdn.microsoft.com/ja-jp/library/ms229284.aspx どぼん!のVB道のトップページとTipsページ ttp://dobon.net/vb/ ttp://dobon.net/vb/dotnet/index.html Insider.NET ttp://www.atmarkit.co.jp/fdotnet/index.html 宇宙仮面の C# プログラミング ttp://uchukamen.com/ .NET TIPS ttp://www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html 緑のバイク ★ 初めてのC# プログラム全般 ttp://homepage3.nifty.com/midori_no_bike/CS/ VB.NETとC#でデザインパターン ttp://hccweb1.bai.ne.jp/tsune-1/ 匣の向こう側 ttp://www.ne.jp/asahi/nami/mei/index.html WisdomSoft ttp://wisdom.sakura.ne.jp/ じゃんぬねっと ttp://jeanne.wankuma.com/ どっとねっとふぁん - C# Tips And Samples - ttp://homepage3.nifty.com/dotnetfan/index.html ttp://dotnetfan.org/ C#プログラミングTips ttp://www.atmarkit.co.jp/fdotnet/csharptips/index/csharptips_index.html : デフォルトの名無しさん [sage] 2010/09/14(火) 09:22:13 CodeProject ttp://www.codeproject.com/vb/net/ the GotDotNet Home Page ttp://www.gotdotnet.com/ KEN's .NET ttp://www5b.biglobe.ne.jp/~yone-ken/VBNET/index.html Cetus Links: 19,498 Links on Objects and Components / .NET ttp://www.cetus-links.org/oo_dotnet.html HIRO's.NET ttp://vbdotnet.fc2web.com/index.html @IT:特集 .NET開発者のためのオンライン・リソース・ガイド ttp://www.atmarkit.co.jp/fdotnet/special/onlineres/onlineres_01.html .NETでいきまっしょい! ttp://santamartadotnet.hp.infoseek.co.jp/ これがほしかった!厳選サンプルツール集 ttp://anetm.com/dev/tools/vbdotnet.htm ぬーやんのdotNET講座 ttp://www.geocities.jp/nuu_yan/dotNET/index.html PINVOKE.NET ttp://www.pinvoke.net/ WinAPI Database for VB Programmer ttp://www.winapi-database.com/ : デフォルトの名無しさん [sage] 2010/09/14(火) 09:22:54 Windows Api programming in C# , VB.NET, and VB6. Examples of P/Invoke and DllImport with Source code ttp://custom.programming-in.net/ CodeZine ttp://codezine.jp/ ConvertCSharp2VB ttp://www.kamalpatel.net/ConvertCSharp2VB.aspx @IT:.NET Tools ttp://www.atmarkit.co.jp/fdotnet/tools/index/index.html SharpLibrary Redirector ttp://www.sharplibrary.com/ MSDN アカデミック アライアンス 技術資料 ttp://www.microsoft.com/japan/msdn/academic/articles/ 「300 秒でズバリ !!」&「10 行でズバリ !!」シリーズ (VS2005) ttp://www.microsoft.com/japan/msdn/thisweek/300x10/ (VS.NET 2003) ttp://www.microsoft.com/japan/msdn/thisweek/wednesday/ PAPA'n VB ttp://papanvb.i-love-vb.net/ (旧コンテンツ) ttp://www.mitene.or.jp/~sugisita/index_old.html VB レスキュー花ちゃん ttp://www.bcap.co.jp/hanafusa/dotnet/index.html VB中学校 ttp://homepage1.nifty.com/rucio/main/main.htm 初心者から中級者のためのVB ttp://www7b.biglobe.ne.jp/~vb_beginner2008/ テンプレここまで : デフォルトの名無しさん [sage] 2010/09/14(火) 09:50:29 誘導されました。 VB.NETのスレが無いのですみません。 Dim [source] As TreeNode = _ CType(e.Data.GetData(GetType(TreeNode)), TreeNode) 上記の[source]ってどういう意味でしょうか? なぜ[ ] がついているんでしょうか? : デフォルトの名無しさん [sage] 2010/09/14(火) 10:10:38 予約語を変数名等で使用したい場合に[]でエスケープする 予約語はこの辺を参照 ttp://msdn.microsoft.com/ja-jp/library/ksh7h19t(v=VS.90).aspx …sourceって予約語じゃない気もするけどね : デフォルトの名無しさん [sage] 2010/09/14(火) 10:18:12 例だから 好きな変数に書き換えて使ってください : デフォルトの名無しさん [sage] 2010/09/14(火) 12:00:27 なるほど 予約語ですか。 ありがとうございました。 : デフォルトの名無しさん [sage] 2010/09/14(火) 16:01:18 インターネットでサンプルをみながらVB.NETを勉強しています。 継承(inherits)していないクラスのコンストラクタに MyBase.New() と書かれているのですが、これはなんのためにあるのでしょうか。 対象のサンプルコードが書かれているページ ttp://park5.wakwak.com/~weblab/clsSyain.html : デフォルトの名無しさん [sage] 2010/09/14(火) 18:04:35 Sub Newの扱いは他のメソッドと比べると少し特殊です MyBaseのNew()を呼ぶことで、System.Object クラスの新しいインスタンスを初期化します この作業を行うことで、始めてコンパイラは基底クラスをインスタンス化できるようになります : デフォルトの名無しさん [sage] 2010/09/14(火) 18:21:08 呼ばなくても引数なしのコンストラクタが勝手に呼ばれるからの場合は省略していい というか普通は省略する : デフォルトの名無しさん [sage] 2010/09/14(火) 19:01:46 .net初心者です。 ライフゲームをつくっているのですが、For文と配列をつかって、PictureBoxを並べて表示させることはできました。 これでは決まりきった形(正方形や長方形)の背景しか表示できず、ライフゲームとして面白みがありません。 そこで、たとえば猫の写真をもってきて、猫の形の背景をつくりたい(つまり猫の形上でライフゲームが展開したい)とき、 どういう関数を使えばいいでしょうか? : デフォルトの名無しさん [sage] 2010/09/15(水) 13:35:04 四角や長方形を組み立ててドット絵風に猫の絵にする 猫の絵のjpgやbmp読み込んでDraw関数で書き込む PictureBoxの背景画像を猫にする : デフォルトの名無しさん [sage] 2010/09/16(木) 19:20:52 「ライフゲームとして面白みがない」というのがよくわからん。外観だけの話じゃないのか? もし猫の写真を認識してライフゲームの初期状態やフィールドの形状を生成するってことだったら 写真をBitmapオブジェクトに読み込む→画像を方眼状に仮想的に分割 →一つのセルに含まれるすべてのピクセルの色の平均を求める→明度かなんかを閾値として生か死か決める →これを全てのセルに対して繰り返す 一番シンプルな形としてはこんな感じだろうけど、いきなりこれだけ組み立てるのはたぶん君にはまだ難しい。 : デフォルトの名無しさん [sage] 2010/09/17(金) 19:09:03 webbrowser1でリンクをクリックしたとき、それをwebbrowser2で開きたいと思っています。 BeforeNavigateという機能を使えばできそうな感じではあるのですが、初心者向けの解説がなく、さっぱり使い方がわかりません・・・ どういったプログラムを書けばいいのでしょうか・・・ : デフォルトの名無しさん [sage] 2010/09/18(土) 23:16:46 VB.netとはあまり関係無いかもしれませんが、 ファイルの作成日時と更新日時の関係がどうも納得行かないので質問です。 Windows環境で特定のファイルのプロパティを見たところ 次の様なタイムスタンプになっていました。 作成日時 2010年9月18日、 12:57:11 更新日時 2010年9月18日、 1:33:45 ここで疑問なのはなぜ【更新日時】が【作成日時】よりも過去になっているのでしょうか? ファイルの 作成 > 更新 という流れなので【更新日付】が 一番直近の日時になっていなくてはならないと思うのですが。 : デフォルトの名無しさん [sage] 2010/09/18(土) 23:26:28 自由にいじれるもんにそんな文句付けても仕方ないが 例えばファイルコピーしたら作成はされるが更新はされない : デフォルトの名無しさん [sage] 2010/09/18(土) 23:55:06 ありがとうございます。そーいえばコピーしましたw : デフォルトの名無しさん [sage] 2010/09/19(日) 23:49:28 別のフォームにあるテキストボックス(TextBox1)の内容を取得したいのですが、 (そのフォームも自作アプリなのですが) GetWindowTextで取得すると、TextBox1という文字列が取得されてしまいます。 起動後に手入力で内容を書き換えても、FormLoad時に書き換えても フォームデザイナに初期に定義されていたTextBox1という文字が返ってきてしまいます。 フォームデザイナであらかじめ変更しておくとその通り返ってくるのですが 実際のそのときのテキストボックスの内容を取得する方法を教えて頂きたいです : デフォルトの名無しさん [sage] 2010/09/20(月) 00:08:30 別のフォームって別のアプリケーション? WM_GETTEXT使う : デフォルトの名無しさん [sage] 2010/09/20(月) 02:56:17 ありがとうございます。 SendMessageを調べてみます。 : デフォルトの名無しさん [sage] 2010/09/20(月) 07:41:24 そのアプリケーションは何で作ったのだろうか? 実はGetWindowTextに渡すウィンドウハンドルが間違っているだけの予感がする。 : デフォルトの名無しさん [sage] 2010/09/20(月) 22:05:19 SendMessageで別のアプリケーションのコマンドボタンを押したくて ボタンのハンドルにマウスの左ボタン押し、離し(&h201と&h202)を送っているのですが、 ボタンの画像が押されたようになるのですが、押した時のプロシージャが実行されないのですが、 押した時と同じように動かすにはどうしたら良いでしょうか? キーコードのKeys.Spaceを送ると直接クリックした時と同じ動作をしました。 GetWindowTextでTextBox1という文字が返ってくるのでハンドルは間違って いないのではないかと思います。 その後検索してみたのですがGetWindowTextは他のアプリケーションに対しては使用できないみたいでした。 : デフォルトの名無しさん [sage] 2010/09/20(月) 22:55:19 コモンコントロールのボタンならBM_CLICK : デフォルトの名無しさん [sage] 2010/09/20(月) 23:24:07 BM_CLICKで出来ました。 どうもありがとー : デフォルトの名無しさん [sage] 2010/09/20(月) 23:48:34 APIに関連した質問ばかりですみません。 下のループでウィンドウテキストがConsoleに正常に出ないのですが どこに原因があるでしょうか? ループの上に一時停止を設定して、F10を押して一つずつ表示させると出るのですが・・・ 早すぎるのが原因のような感じですが、SendMessageは瞬時に次のものは使ってはダメでしょうか? EnumChildWindow()の使い方が不慣れで共有変数の扱いとかが分からないので このような方法で列挙してみました。 Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As String) As Integer Public Const WM_GETTEXT = &HD Dim OYA As IntPtr Dim ko As IntPtr Dim mago As IntPtr Dim WindowTitle As String = "テストフォーム" OYA = FindWindow(vbNullString, WindowTitle) ko = FindWindowEx(OYA, IntPtr.Zero, vbNullString, vbNullString) Console.WriteLine(ko.ToInt32) If ko.ToInt32 = 0 Then Exit Sub Dim a As String= New String(Chr(0), 255) Dim leng As Integer = Len(a) Do Until (ko.ToInt32 = 0) mago = FindWindowEx(OYA, ko, vbNullString, vbNullString) SendMessage(mago, WM_GETTEXT, leng, a) Console.WriteLine(a.ToString) Console.WriteLine(mago.ToInt32) ko = mago Loop : デフォルトの名無しさん [sage] 2010/09/21(火) 18:16:19 あらかじめフォーム上にある一つのボタンのクローンを50個ロード時に動的に増やすサンプルコード書いてくれませんか? : デフォルトの名無しさん [sage] 2010/09/21(火) 18:20:54 糞UI乙 それ余計に難しいから最初の一個のプロパティやイベントハンドラもコードから設定した方が早い : デフォルトの名無しさん [sage] 2010/09/22(水) 11:55:47 2バイト文字を扱うのなら---Aではなく---Wをつかうべきでは? : デフォルトの名無しさん [sage] 2010/09/22(水) 11:58:30 それと、両方の文字セットが使われる可能性があるのなら、DeclareじゃなくDllImport属性つけてCharSetをAutoにしたほうがいい。 : デフォルトの名無しさん [sage] 2010/09/22(水) 15:30:05 DeclareでもAuto修飾子があるよ : デフォルトの名無しさん [] 2010/09/25(土) 21:23:52 Open FileName For Binary Access Write As #1はVB.netでは使えないのかな。 VB.netでこのユーザ定義型で読み書きするには、どうしたらいいですか? ttp://www.mb.ccnw.ne.jp/garger-studio/gameprog/vb0124.html : デフォルトの名無しさん [sage] 2010/09/26(日) 14:51:25 ちょっと素朴な疑問なんだけど ClientRectangle.Locationプロパティでコントロールの原点を取得するのって何か意味あるの?常にx=0 y=0だから、もし座標変換や座標計算で使用する場合 いちいち取得しなくても直接 x=0 y=0 でやったらだめなんかなぁ? それとも何か特別な時に変化とかするの?わかる人教えてください 長文すんません : デフォルトの名無しさん [sage] 2010/09/26(日) 15:17:34 素朴に質問する前に、MSDNライブラリのControl.ClientRectangleの項は読んだの? 読んでないでしょ? MSDNライブラリも読まずに質問するって面の皮厚過ぎないか : デフォルトの名無しさん [sage] 2010/09/26(日) 18:54:28 回答もできないやつに限ってOO読みましたかとか?いう クソだねカスだねさらにうなら病院行った方がいいね : デフォルトの名無しさん [sage] 2010/09/26(日) 19:05:40 呼んだからしてんじゃねーの? このプロパティによって返される四角形の左上隅の座標は (0,0) となります。 クライアント領域の左上隅の座標は0,0だから当然そのコントロールの右下隅はコーンとロールの Sizeプロパティで取得できるし決め打ちで左上隅を0,0にしてもサイズ計算はできる ただし、クライアント領域を絶対領域に変換する計算をするにはClientRectangle使ったほうがスマート 両方参照するコードだと長くなるから : デフォルトの名無しさん [sage] 2010/09/26(日) 19:07:02 呼んだから=x 読んだから=○ : デフォルトの名無しさん [sage] 2010/09/26(日) 19:12:45 お前が読め : デフォルトの名無しさん [sage] 2010/09/26(日) 19:16:11 >コーンとロール 新しいスイーツ? : デフォルトの名無しさん [sage] 2010/09/26(日) 19:20:29 なんか偉そうだな : デフォルトの名無しさん [sage] 2010/09/26(日) 23:46:48 VB2005を使ってRS232C接続機器の制御用アプリを作っています。シリアルポートを直接制御している部分はDLLになっており、 別担当者が開発しています。 問題は、そのDLL内のあちこちでDoEventsを呼び出していること。シリアルがらみなので別スレッドで動いているにもかかわらず、 何かしらシリアルデータのやり取りが発生するとDoEventsを呼んでくれます。 非同期にDoEventsが呼び出されるおかげで、アプリの終了処理中などウィンドウの構成やら何やらが変化しているときにも、 非同期にイベント処理が走ってエラーが出ます。 そこで、対処療法ですが、フックするなどして、DoEventsを有効/無効と切り替える方法を教えて頂けないでしょうか。 DoEventsOff():DLL内ルーチン呼び出し:DoEventsOn()、みたいな感じでDoEventsの無効有効を切り替えるイメージです。 ここからは言い訳。 本来はDLL内でのDoEventsの呼び出しを止めるべきなのですが、残念ながら、DLLのメンテ担当者にその気が無いのです。 部署内での打ち合わせでDLLの改善を提案したりしたんですが、本人の作っているアプリでは個別に回避処理を入れるやり方で対応できている、 DoEventsを止めるとGUIの動きがぎこちなくなるからダメだ、という事でやはり拒否。上長も、このDLLは別部署でも使っていることもあり、既にリリースしているDLLを 差し替えることにはかなり否定的な立場をとってます。 ここは気合いで同機能のDLLを作って・・・ということができればカッコいいんですが、DLLを置き換えると、メンテ業務や部署内外への周知やサポートも一緒に 引き継ぐことになっちゃうので、二の足を踏んでます。 現時点ではそのDLL担当者がこういう雑務も引き受けてくれてるので、やはり強いことは言えません。 ということで、質問に戻りますが、DoEventsをフックし、有効/無効を切り替える方法を教えて頂けないでしょうか。 よろしくお願いします。 : デフォルトの名無しさん [sage] 2010/09/27(月) 00:31:30 メソッド呼び出しのフックなんて危険なことがそう簡単にできると思えないなあ。 というか、DoEventsなんか使うあなたの同僚もおかしいけど、 こう言っちゃなんだけどDoEventsで動作がおかしくなるあなたの担当分のコードも 問題あると思うよ。 DoEvents呼んだって、非同期的にイベントが発生したりしないよ? だってDoEventsの機能は「メッセージ キューに現在ある Windows メッセージをすべて処理します。」、 つまり、DoEventsを呼んだ結果発生するイベントは、Windowsメッセージに関連付けられた、 UIスレッドで発生するイベントだけだから。 何か勘違いがあるんじゃないの? : デフォルトの名無しさん [sage] 2010/09/27(月) 02:39:10 確かに、非同期といってもよっぽど頻繁にDoEventsが動いてないと 変な状況が目立って出るはずありませんね。 たしかに、まだまだ見直すところがありそうです。 ちと頭冷やして、ちゃんと構成しなおしてみます。 ありがとう! : デフォルトの名無しさん [sage] 2010/09/27(月) 07:25:16 どんなエラーなのか分からないけど、別スレッドでDoEventsを呼んだとしても、 UIスレッドには影響ないだろ。別スレッドでDoEventsを呼んで、状況が再現 するか試してごらん。多分影響ないから。 しかし通信中に迂闊にDoEvetnsなんて呼んだら、まともに通信できなくなるだろうに。 : デフォルトの名無しさん [sage] 2010/09/27(月) 08:45:05 というか、DoEventsなんか使うあなたの同僚もおかしいけど、 その同僚の代弁をすると、 ポーリングしてるようなぐるぐる処理の場合 DoEventsやめたら非常に楽しいことになるけどいいのかね? : 41 [sage] 2010/09/27(月) 12:30:07 結局、別スレッドとかは関係ありませんでした。そもそも、無限ループでリアルタイムモニタの通信を行い、DoEventsを定期的に呼んでGUIを動かし、ボタン押 下などへの応答は自前イベントで処理する、という思想で作っていたようです。 VB6の頃から試行錯誤してきたソースを使っているので、こういう構成になっているとの事。 役に立つことのある情報とは思えませんが、参考までに具体的な話を。 ・制御対象のリアルタイムモニタのため、単純な無限ループで繰り返しシリアル通信を行う。アップデート間隔をできるだけ短くする為の様です。 ・GUIが固まるので、シリアル通信のDLL内でDoEventsを呼んでいる。(シリアルにコマンドをライトし、リードで応答を待つ場合など、必要な応答データが揃 うまで繰り返しリードし、その都度DoEventsも呼び出している模様。) ・フォームに配置されたボタンを押すと、制御対象に設定を書き込んだり、リアルタイムモニタとは別のデータを読み出したりするシリアル通信を行う必要が ある。そこで、自前のイベントとイベントキューを作って、上記の無限ループでこれらの自前イベントを処理することで対応している。 ・その他のイベントについては、普通のスタイルでハンドルを定義しているので、たまにイベント処理が破綻するが、そういうのは見つかるごとに対応している。 (一時的に上記ループを停止するなど) 私がこのあたりちゃんと把握せずに、コントロールを追加したときにハンドラ内でシリアル通信を起動してたので、変な事になってたようです。 しかし、コントロールを追加するたびに、上記の自前イベントを拡張しないといけないのは面倒ですが。 もうちょっと頭を整理してから対策してみます。 お騒がせしました&ありがとうございました。 : デフォルトの名無しさん [sage] 2010/09/27(月) 18:50:33 クラスライブラリ(プロジェクト名:xlsworks、クラス名:xlsjobs)を作成してm COMオブジェクトの「Microsoft Excel 11.0 Object Library」を参照しました。 で、そのクラスを別のWindowsApricationからプロジェクト参照で呼び出して使用してるんですが、 そのクラス内で所得できる、 Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter のような、列挙体で設定されてる数値は、 WindowsAprication側からは参照できないんでしょうか? : デフォルトの名無しさん [sage] 2010/09/27(月) 19:45:00 スレッドを立ち上げて待機状態にしてメイン側から必要な時だけ 動かしたいのだけどそういうスレッド間の同期とる場合もセマフォとか 使うのでしょうか : デフォルトの名無しさん [sage] 2010/09/27(月) 19:56:16 クラスライブラリのプロジェクトにIDEが自動作成したdll(ファイル名の一部に"interop"が 入ってるやつ。たしか3つぐらいあるはず)を、Windowsアプリのプロジェクトから参照すればOKなはず。 : デフォルトの名無しさん [sage] 2010/09/27(月) 20:18:28 AutoResetEventでも使えば : デフォルトの名無しさん [sage] 2010/09/28(火) 08:13:52 byval/byrefについて、stringの場合はbyvalで渡す方が一般的でしょうか? : デフォルトの名無しさん [sage] 2010/09/28(火) 09:00:32 引数全般ByValが基本だよ : デフォルトの名無しさん [sage] 2010/09/28(火) 09:34:08 ありがとうございます! : デフォルトの名無しさん [sage] 2010/09/28(火) 15:56:47 ttp://support.microsoft.com/kb/129931/en-us?fr=1#top VB4時代のこんなの見つけたけど、今は大丈夫だろうと思ったら Sub Main(ByVal cmdargs() As String) Dim sw As New Stopwatch Dim a(50000000) As Integer sw.Restart() For Each i As Integer In a a(i) = i Next sw.Stop() p(sw.ElapsedMilliseconds) sw.Restart() For i As Integer = 0 To UBound(a) a(i) = i Next sw.Stop() p(sw.ElapsedMilliseconds) Console.Read() End Sub 何度試しても、キャッシュを気にして順番を変えてみても for eachのほうが遅い 今でも配列にはforを使うべき? : デフォルトの名無しさん [sage] 2010/09/28(火) 16:17:10 C#だと最適化されて同じになるんだけどな ちゃんと型指定されてるからVBだから最適化できないってことはないはず コンパイラが馬鹿なんだろ : デフォルトの名無しさん [sage] 2010/09/28(火) 17:57:57 うちの環境だと差は出ないな。 VSのデバッグモードで動かしたりしてない? XPSP3, .NET4.0でコマンドラインからoptimizeコンパイル、実行。 最初のループだけ早くなる傾向があるから、 foreachとforを3セット繰り返して、後ろ2セットで測定した。 : デフォルトの名無しさん [sage] 2010/09/28(火) 18:24:12 for eachのnextは列挙の次の要素の取得だけど、 普通のforのnextはintegerのインクリメントだからなぁ 列挙よりインクリメントが早いって話なんじゃないだろうか : デフォルトの名無しさん [sage] 2010/09/28(火) 18:24:42 csvの1行目を除外してA列で昇順で並び替えるには、どうしたらいいですか? : デフォルトの名無しさん [sage] 2010/09/28(火) 19:04:36 デバッグモードで試してた。それをきいて一安心 ところでコマンドラインでコンパイルするのには何か意味があるの? 2010expressで最適化はデフォルトでOnになってるけど csvを1行目を除外して読み込んでorder byとかでやればいいんじゃない? しかしVB.netよりもVBAのほうがいいように思うけど もしその作業が単発ならExcelのオートフィルタ : デフォルトの名無しさん [sage] 2010/09/28(火) 19:05:26 ずれた。後半は宛 : デフォルトの名無しさん [sage] 2010/09/28(火) 19:32:30 このサンプル・プログラムで最後の行から最初の行に読み込むようにするには? ttp://www.atmarkit.co.jp/fdotnet/vblab/vb2005m_08/vb2005m_08_04.html : デフォルトの名無しさん [sage] 2010/09/28(火) 19:49:01 どこまで出来て、どこが出来ないの : デフォルトの名無しさん [sage] 2010/09/28(火) 20:04:21 え?この部分を最初の行からじゃなくて最後の行から最初の行へ Do While Not tr.EndOfData oneLine = tr.ReadFields() If oneLine(0) = txtNumber.Text Then sw.WriteLine(oneLine(1)) End If Loop : デフォルトの名無しさん [sage] 2010/09/28(火) 22:41:49 無理 全部List(Of String)にでも読み込んでからReverseしてFor Each : デフォルトの名無しさん [sage] 2010/09/29(水) 03:10:38 複数列あるcsvをList(Of String)とか配列に読み込む方法がわからない。 : デフォルトの名無しさん [sage] 2010/09/29(水) 03:35:20 古本屋に行って投売りされてる初心者本片手にMSDNとにらめっこ一ヶ月ぐらいした方がいいぞそのレベルは 一行ずつ読み込んでも、全部いっぺんに読み込んで改行コードで分割するんでもいいだろ。 : デフォルトの名無しさん [sage] 2010/09/29(水) 07:31:10 : デフォルトの名無しさん [sage] 2010/09/29(水) 12:23:20 まとめて読み込むなら、これだな。 ttp://msdn.microsoft.com/ja-jp/library/s2tte0y1.aspx : デフォルトの名無しさん [sage] 2010/09/29(水) 18:38:14 やってることは一緒なんだからコンパイラが最適化できる。バカ正直にIEnumerator操作する必要はない。 むしろ、for eachの列挙の方が形が決まってる(自由度が低い)分最適化の余地が大きい。 : デフォルトの名無しさん [sage] 2010/09/30(木) 09:08:23 日付を2001001から2001/10/01へ変換するにはFormatはどうすれば? : デフォルトの名無しさん [sage] 2010/09/30(木) 10:39:35 2001年0月1日? : デフォルトの名無しさん [sage] 2010/09/30(木) 11:42:04 固定長だったら Dim s As String = "20011001" Dim y As String = s.Substring(0, 4) Dim m As String = s.Substring(4, 2) Dim d As String = s.Substring(6, 2) でいいじゃん あとで結合するときは、直接やらないでいったんそれぞれInt32.ParseでIntegerに変換して DateTimeを作ってからToStringでフォーマット使って文字列にした方が応用が利く : デフォルトの名無しさん [sage] 2010/09/30(木) 11:46:17 Dim csvRecords As New ArrayList While tr.EndOfData oneLine = tr.ReadFields() csvRecords.Add(oneLine) End While tr.Close() '最後の行から最初の行へ その1 'csvRecords.Reverse() '要素の順序を反転 '最後の行から最初の行へ その2 For MyRow = csvRecords.Count - 1 To 1 Step -1 Next MyRow : デフォルトの名無しさん [sage] 2010/09/30(木) 12:44:52 そこもわかってないんだろうけど問題はそこじゃないだろ 結論から言うとの方法は使えない 自分でTextReaderの派生クラス作ってうまく辻褄合わせしてやればできなくはないけどには絶対無理 一行ごとにTextFieldParserを作るとか強引な方法は考えられるけど ある程度フォーマットの決まったファイルを読むならTextFieldParserなんて使わずに自分で書くのも難しくない : デフォルトの名無しさん [sage] 2010/09/30(木) 13:04:49 で出来たけど? : 74 [sage] 2010/09/30(木) 13:29:28 考えたらはどうせメモリに全部読み込むの前提なんだから 全ての行を逆に結合して一つの文字列にしてしまえばTextFieldParser使えるね : デフォルトの名無しさん [sage] 2010/09/30(木) 14:10:24 サンプル・プログラムでTextFieldParser使ってるのに意味不明。 : デフォルトの名無しさん [sage] 2010/09/30(木) 14:14:00 やってることは一緒じゃないんじゃね? 列挙は実際の要素(この場合配列に格納されてる実際のinteger値)取得する必要があるけど、 普通のループは要素関係ないぞ(取得/インクリメントするのはループ変数のinteger値) integer値を取得するってとこだけ見れば同じかもしれんが 前者は配列中の要素を特定する必要があるが後者はその必要が無い 配列だからIEnumeratorすっとばす最適化するってなら差が出ない理由にはなるな つかの二つのループって同じ処理結果じゃないだろ、これ : デフォルトの名無しさん [sage] 2010/09/30(木) 15:56:17 C#ではfor (int i = 0; i < array.Length; i++) hoge(array[i]); のような典型的な形の配列アクセスは最適化されるよ 配列専用の特別なIL命令が使われるらしい VBはどうか知らないけどたぶん一緒 : デフォルトの名無しさん [sage] 2010/09/30(木) 20:05:02 質問だけしてトンヅラって感じの悪い野郎だな : デフォルトの名無しさん [sage] 2010/09/30(木) 20:51:29 文字か数値か判別するのにChar.IsNumberとかInteger.TryParseだとうまくいかない。 「String "--" から型 'Double' への変換は無効です。」とエラーが出る 他に文字か数値か判別する方法はないのかな? : デフォルトの名無しさん [sage] 2010/09/30(木) 21:06:27 それ、IsNumberやTryParse以外の所でミスってないか? どの行でエラー出してるか確認してみろ : デフォルトの名無しさん [sage] 2010/09/30(木) 21:09:01 VB初心者が書いてみたがこんなんでどう Dim s As String Do Dim i As Integer s = Console.ReadLine() If s Is Nothing Then Exit Do End If Try i = CInt(s) Console.WriteLine(i + 10) Catch ex As Exception Console.WriteLine(s) End Try Loop : デフォルトの名無しさん [sage] 2010/09/30(木) 22:27:35 「正常系の処理に例外を使うな」 : デフォルトの名無しさん [sage] 2010/09/30(木) 22:29:19 うっせーよ : デフォルトの名無しさん [sage] 2010/10/01(金) 01:22:19 だよな。 列挙の方は要素からの読み取りで間接的な参照が挟まるlことになる。 : デフォルトの名無しさん [sage] 2010/10/01(金) 08:56:41 VB2008使用です。 チェックボックスを出しているDateTimePickerで、 Checkedの変更タイミングで行いたい処理があります。 ValueChangedで実装してみたのですが、 DateTimePicker.Value=Today DateTimePicker.Checked=True とした後にチェックボックスを画面上で外すと ValueChangedが行われません。 Checkedの変更タイミングはValueChangedではないのでしょうか? : デフォルトの名無しさん [] 2010/10/01(金) 13:21:13 恐れ入ります、分かる方がいらっしゃいましたらご教授ください。 ●VB.NETにて、配列の先頭アドレスを数値に変換するにはどうすればよいのでしょうか? やりたいことは、waveOutPrepareHeader()に渡すWAVEHDR構造体のlpDataメンバに 波形バッファの先頭アドレスを代入したいのです。 例) <StructLayout(LayoutKind.Sequential)> Structure WAVEHDR Dim lpData As Int32 Dim dwBufferLength As Int32 Dim dwBytesRecorded As Int32 Dim dwUser As Int32 Dim dwFlags As Int32 Dim dwLoops As Int32 Dim lpNext As Int32 Dim reserved As Int32 End Structure Declare Function waveOutPrepareHeader Lib "winmm.dll" Alias "waveOutPrepareHeader" (ByVal hWaveOut As Int32, ByRef lpWaveOutHdr As WAVEHDR, ByVal uSize As UInt32) As Int32 Dim waveBuffer As Byte(BUFFER_SIZE) Dim waveHdr As WAVEHDR waveHdr.lpData = waveBufferの先頭アドレス waveHdr.他のメンバ = 適当に設定 waveOutPrepareHeader(..., waveHdr, ...) C言語風に書けるなら waveHdr.lpData = (unsigned long)waveBuffer; とやりたいところですが・・・。 よろしくお願いいたします。 : デフォルトの名無しさん [sage] 2010/10/01(金) 14:07:01 非同期なら GCHandle.AllocでGCHandleType.PinnedしておいてAddrOfPinnedObject その配列がアンマネージで使われなくなったらFreeを忘れずに あとポインタとかハンドルはInt32じゃなくてIntPtrな : デフォルトの名無しさん [sage] 2010/10/01(金) 14:17:29 書き戻しがないなら単純にコレでいけると思う。 <StructLayout(LayoutKind.Sequential)> Structure WAVEHDR Dim waveBuffer As Byte(BUFFER_SIZE) Dim dwBufferLength As Int32 : どうしてもリアルにアドレスを数値化したいなら 固定化なりマーシャリングを自前でやる必要がある。 : デフォルトの名無しさん [sage] 2010/10/02(土) 15:33:06 下記のコードでnの中のresultに0.0000・・・の0の部分だけを取りたいのですが、 これだと0が代入されてしまいます。 n = 1.0000000015 だと result = "1.00000000" となるので正規表現は間違っていないよですが、 0だけの文字列を取る方法を教えて頂きたいです。 Dim n As Double n = 0.0000000015 Dim r As New Regex("(?<1>1\.?0*)\d+") Dim m As Match m = r.Match(n) If (m.Success) Then Dim result As String result = m.Groups(1).Value Console.WriteLine(result) End If : デフォルトの名無しさん [sage] 2010/10/02(土) 15:48:30 1.0000000015にたいして 00000000がとれれば良いの? : デフォルトの名無しさん [sage] 2010/10/02(土) 15:55:13 1.0000000015の場合は 1.00000000が取りたいです。 実際には1.・・・・という値が対象になることはないです。いつも0.・・・・・nn・・・ 0.00・・・・・nnnで0以外の数字が出るまでの0.000000の部分を取りたいです。 : デフォルトの名無しさん [] 2010/10/02(土) 16:02:35 nをそのまま文字列にすると1.5E-09になるぞ。 nをはじめから文字列にしたらどうなる? Dim n As String = "0.0000000015" : デフォルトの名無しさん [sage] 2010/10/02(土) 16:02:40 [1-9]\.0+ あとそういうのに浮動小数点使うな Decimal使う : デフォルトの名無しさん [sage] 2010/10/02(土) 16:04:31 94みたいなことをしてないか気づけるので Option Strict Onおすすめ : デフォルトの名無しさん [sage] 2010/10/02(土) 16:06:20 誤解されそうな表現だった。別に94に何か言いたいことがあるわけじゃなくて 勝手に暗黙的な変換がなされるのを防ぐって意味ね : デフォルトの名無しさん [sage] 2010/10/02(土) 16:09:42 レスありがとうございます。 Decimalでできました!正規表現もありがとうございます。 String変数に入れると"9E+15"みたいになってしまいました。 Option Strict Onをやったら何箇所か〜〜〜が出ました; どうもありがと! : デフォルトの名無しさん [sage] 2010/10/02(土) 16:13:02 >Option Strict Onをやったら何箇所か〜〜〜が出ました それは同様のバグがある可能性が極めて高い場所だから修正することをお勧めする : デフォルトの名無しさん [sage] 2010/10/02(土) 16:20:27 そのままのコードを生かしてみた string.formatの部分はもっとましなやり方があるかもしれない Dim n As Double = 0.0000000015 Dim reg As New System.Text.RegularExpressions.Regex("(?<1>.\.0*)\d+") Dim s As String = String.Format("{0:0.################}", n) Dim m As System.Text.RegularExpressions.Match = reg.Match(s) If (m.Success) Then System.Console.WriteLine(m.Groups("1").Value) End If : デフォルトの名無しさん [sage] 2010/10/02(土) 16:32:36 誰の言うことが正しいのかの判断は君に任せるが、 Decimal使えっていうのは俺はちょっと論点ずれてると思うよ。 扱う値の範囲にもよるが、普通はDoubleで問題ないし、以下のようなコードを書くべき。 Private Function SomeFunc(ByVal value As Double) As String Dim regex As New Regex("^(\d*[.]+0*)\d*$") Dim m As Match = regex.Match(value.ToString("G")) If m.Success Then Return m.Groups(1).Value Else Return "" End If End Function : デフォルトの名無しさん [sage] 2010/10/02(土) 16:41:48 それ正規表現間違ってます 何も考えたくないならDecimalの方がいいよ 浮動小数点はちゃんと理解して使わないと結構普通に予期しない動作するよ : デフォルトの名無しさん [sage] 2010/10/02(土) 16:46:49 WindowsフォームにWebBrowserがあります。 WebBrowser上のActiveXのコントロール(テキストボックスなど)にアクセス できるでしょうか? : デフォルトの名無しさん [sage] 2010/10/02(土) 17:05:45 Document.DomDocumentでCOMのDOMのポインタが取れるから その中から探してIHTMLObjectを取得すればいいんじゃないの やったことないから細かいことは知らないしCOMはスレ違い : デフォルトの名無しさん [sage] 2010/10/02(土) 17:08:02 Dim m As Match = regex.Match(value.ToString("G")) は Dim m As Match = regex.Match(value.ToString("F20").TrimEnd("0"c)) とかにしないとダメだなw素で何か勘違いしてた。 >それ正規表現間違ってます どこが? >浮動小数点はちゃんと理解して使わないと むしろちゃんと理解してない奴がやたらとDecimalなぞを使いたがる印象 : デフォルトの名無しさん [sage] 2010/10/02(土) 17:24:08 [.]+はおかしい ?の間違い? : デフォルトの名無しさん [sage] 2010/10/02(土) 17:25:59 よくそんな知識で人にケチ付けられるな.... : デフォルトの名無しさん [sage] 2010/10/02(土) 17:32:52 確かにその量指定子は不適切だったありがと : デフォルトの名無しさん [] 2010/10/02(土) 18:28:24 VBまともなの買うなら。 ttp://profiles.yahoo.co.jp/-/profile/?sp=oGT3BCg1eqGiCHsyTN79KJdc : デフォルトの名無しさん [sage] 2010/10/02(土) 18:43:23 GUIアプリを適当に作るとソースコードとGUI部品が密着してしまって再利用しにくくなりますよね。 特にマルチスレッドアプリを作ってると、自分の知識が足りない事もあって、改良しようとすると全面作り直しなど泥沼にはまってきます。 こういうのを解決する手法があると思いますが、教えてもらえますか。 : デフォルトの名無しさん [sage] 2010/10/02(土) 18:47:32 他の言語やってみたら見方が変わるよ VBできるならC#→Java→他がおすすめ : デフォルトの名無しさん [sage] 2010/10/02(土) 19:25:03 とにかくクラスを作るようにしてたらそのうち慣れるよ : デフォルトの名無しさん [sage] 2010/10/02(土) 19:33:12 やっぱ仕事単位でクラスにまとめるんですね。以前やってみたけどそれほど旨くいかなかったのはスキル不足のせいかあ。 オッサンなので他言語に移るのはつらいけど、C#はやってみる価値があるのかな・・・。 : デフォルトの名無しさん [sage] 2010/10/02(土) 19:46:12 VBできるならC#は簡単 C#やればVBで「やるべきでないこと」がわかってくる : 88 [] 2010/10/02(土) 21:10:29 です。 どうもありがとうございました。 まずはの方法でうまく行きました。 次はの方法で試してみたいと思います。 : デフォルトの名無しさん [sage] 2010/10/02(土) 23:10:54 vb.netの質問ではないのですが、どうかご教授ください。 vs2003で.net1.1を参照し作成したexe(以降、hoge.exe)を、.net1.1がインストールされていない、 .net2.0以上がインストールされているPCで実行したところ、正常に動作します。 ※「正常」と書いていますが、「ザックリと動く」と読み替えてもらってもかまいません。 そこで質問なのですが、hoge.exeはが参照している.netは1.1なのに、 gacに入っている2.0以降の.netライブラリ上で動作するのでしょうか? もしかして、.net2.0のmachine.configにsidebyside的なことがかいてあるのでしょうか? : デフォルトの名無しさん [sage] 2010/10/02(土) 23:27:50 .NET2.0上で.NET1.1アセンブリの扱いのポリシーは「取り敢えず2.0で動かしてみる」だったはず .NET4だとapp.configに記述されてない限り起動させないだったはずだけど .NET1.0/1.1の記述だけどこの辺参考に ttp://www.atmarkit.co.jp/fdotnet/technology/idnfw11_05/idnfw11_05_02.html : デフォルトの名無しさん [sage] 2010/10/03(日) 09:39:17 .NET4でポリシーが変わったのは、100%の互換性は保証できないから必ずテストしろという意味 1.1→2.0時の問題を踏まえての変更だからその意味を考えて慎重に ほかの会社なら100%の互換性と言い切っちゃうところだけどそこはMSらしいというか : デフォルトの名無しさん [sage] 2010/10/03(日) 10:31:09 .NET4でコードセキュリティモデルから透過セキュリティモデルに変わったのがでかい。 : デフォルトの名無しさん [sage] 2010/10/03(日) 16:41:55 CASがなくなったわけじゃないよ。軒並みObsoleteになっただけ。 どっかの公式ドキュメントで読んだけど、.NET Frameworkのコンポーネントの インストールパスが変わったら問題が出るアプリケーションが存在する可能性は0ではないとかそんなレベルの話らしい : デフォルトの名無しさん [sage] 2010/10/04(月) 11:35:15 質問させてください。 今情報表示するだけのアプリを作っているのですが、 いろんな機種で表示させたいと思っています。 そこで問題になるのが解像度の問題です。 常に最大化して使いたいのですが、小さな機種(800x480に)あわせて作っているので大きな画面だと右と下に大きな余白が出来てしまいます。 全てのラベルや画像を画面いっぱいに広げる方法はないでしょうか? anchorは使ったのですが、これはラベルの文字が大きくならないため使えませんでした。 何かよい対処がわかる方がおられましたら、アドバイスいただけると助かります。 : デフォルトの名無しさん [sage] 2010/10/04(月) 11:40:47 WPFで作れば拡大縮小が自由自在なはず 知らないけど : デフォルトの名無しさん [sage] 2010/10/04(月) 11:45:15 つまりFormだと絶望的だと・・・? : デフォルトの名無しさん [sage] 2010/10/04(月) 12:02:58 折角でかい画面使ってるのにそれに合わせて文字が大きくなるとか超がっかり そんなのOSのDPI設定でするもんだろ : デフォルトの名無しさん [sage] 2010/10/04(月) 12:26:06 解像度取得して それにあわせて描画すればいいだけちゃうんけ? : デフォルトの名無しさん [sage] 2010/10/04(月) 12:28:38 常に最大で使うっていうのが そのPCでは、そのアプリしか動かさないってことなら PCの解像度のほうを変えろ : 121 [sage] 2010/10/04(月) 12:51:19 そんなもんですか どんな画面でも表示できるのを目指しているんですが いろんな設定に対して行うのは結構作業工数がバカみたいになるので・・・ やっぱりそれがいいんですかね。 ワイド画面で設定しているから4:3の画面で少しおかしくなるのは目を瞑りますかね : デフォルトの名無しさん [sage] 2010/10/04(月) 13:01:09 Direct3Dで作るのもいいかも 解像度なんて関係なく作れるし : デフォルトの名無しさん [sage] 2010/10/04(月) 13:14:35 WPFとかDirect3Dとか根本的に修正しないと無理っぽいみたいですね : デフォルトの名無しさん [sage] 2010/10/04(月) 13:49:58 >>いろんな設定に対して行うのは結構作業工数がバカみたいになるので・・・ ん〜と・・・・、そんなに工数多くなるかな?、やろうとしてることがわからんので、ちょとイメージ沸きません anchorで文字のサイズ以外がうまく言ってるなら 文字サイズだけ自力で変えてやれないの?、それなら工数いらなくない? : デフォルトの名無しさん [sage] 2010/10/04(月) 14:05:37 レスありがとうございます。 元が800x480でアプリ開発してて、それを最大化等で拡大したときに文字を含めた全てを均等に大きくしたいのです。 anchorで大きくできると言っても均等ではなく、とりあえず端からの距離を保ったまま大きくなってる状態で、やりたいこととは違うのです。 それにどんな解像度のマシンで使われるか不明なので、どのくらいのフォントサイズで、どの位置〜というのが明確に決めづらいです。 : デフォルトの名無しさん [sage] 2010/10/04(月) 14:14:17 まあ比率で計算するしかないわな Direct3Dも座標は絶対値じゃなくて比率で指定するし : デフォルトの名無しさん [sage] 2010/10/04(月) 14:18:04 文字は自前でコントロールの大きさ調べてそれに対して何% みたいな感じでやれば? もちろん間歇的になるけど それと両アンカーでやっても違うってこと? どうしたいのか分かんね : デフォルトの名無しさん [sage] 2010/10/04(月) 14:18:28 まぁ自動計算はしてくれないと・・・ .Netと言えどもなんでもあるわけじゃないんですねw : デフォルトの名無しさん [sage] 2010/10/04(月) 14:22:52 macなら自由に拡大できるのにね : デフォルトの名無しさん [sage] 2010/10/04(月) 14:24:23 アンカーって余白の設定ですよね? 相対的に大きくしたいので、余白が絶対的に設定されるだけなので今回やりたいこととは違うんですよ。 要はフォームサイズが大きくなった分、全てのコントロールを相対的に大きくしたいのです。 : デフォルトの名無しさん [sage] 2010/10/04(月) 14:27:07 エロいな : デフォルトの名無しさん [sage] 2010/10/04(月) 14:32:19 マックうらやましいれす(^q^) .NETは透過もままならないですからねorz : デフォルトの名無しさん [sage] 2010/10/04(月) 14:32:53 だから両アンカーにすればいいと言ってるのだが… アンカー勘違いしてないか? 余白はpaddingだぞ? : デフォルトの名無しさん [sage] 2010/10/04(月) 14:42:12 それとラベルのautosizeがtrueだったってオチじゃないよね? : デフォルトの名無しさん [sage] 2010/10/04(月) 14:47:33 いやいやいや、ちゃんと読めよ。どう見てもそれじゃ不足でしょうに クライアント領域の幅をW、コントロールの幅をwとすると、136がやりたいのは W/w=const で、139だと W-w=const で、答えはテーブルレイアウト。フォントは知らん : デフォルトの名無しさん [sage] 2010/10/04(月) 14:51:16 両アンカーにしても画像部分しか拡大されないんですが・・・もちろんラベルはautosizeをfalseにしてます autosizeはfalseにしてもanchorで両端にくっつけるとラベルだけ大きくなって、フォントまでは大きくならないんです。 テーブルレイアウト・・・ググってみます! : デフォルトの名無しさん [sage] 2010/10/04(月) 14:51:47 アホか 両アンカーと何度も書いとろうが : デフォルトの名無しさん [sage] 2010/10/04(月) 14:58:31 だからラベルサイズは自動可変するから後はsizechangegedイベントで フォントを変更すればいいという話 もちろんコントロールによってはアンカーだけではうまくサイズ変更 されないものもあるけど(CheckBoxとかRadioButtonとか) : デフォルトの名無しさん [sage] 2010/10/04(月) 14:59:39 SizeChangedね : デフォルトの名無しさん [sage] 2010/10/04(月) 15:00:19 anchorすげー 初めて知った : デフォルトの名無しさん [sage] 2010/10/04(月) 15:11:09 一枚絵を画面サイズにストレッチしたみたいな表示にしたいってことだよね 画面全部まとめて1枚絵にしちゃえば?w : デフォルトの名無しさん [sage] 2010/10/04(月) 15:13:13 要はそういうことです。 > 画面全部まとめて1枚絵にしちゃえば?w それも考えたんですがちょっと無理やりすぎるのでw 他に自分の知らない方法があるのではと思って相談したまでです。 : デフォルトの名無しさん [sage] 2010/10/04(月) 15:13:40 textboxどーすんの?って話になるw : デフォルトの名無しさん [sage] 2010/10/04(月) 15:14:16 前後逆になった それならいけるかもしれませんね。 ちょっと試してみます : デフォルトの名無しさん [sage] 2010/10/04(月) 15:14:56 今回に関してもラベルとグラフコントロールとピクチャボックスくらいなんで大丈夫ですw : デフォルトの名無しさん [sage] 2010/10/04(月) 15:18:09 それも絵として描画するんだよ、縦横比も自由自在だぜ : デフォルトの名無しさん [sage] 2010/10/04(月) 15:19:37 あ、すまん、textboxは、たしかに面倒だw : デフォルトの名無しさん [] 2010/10/04(月) 17:59:32 いちいちコメントにレスつけて自分の意見を主張している様子から察するに、 手を動かして、実際に何かを学ぼうと思っていないだろう。 2chで適当な返答返しながら、どんぴしゃな答え、誰かがコード書いて貼ってくれるの待ってるんでしょ。 2chに来る割合をもう少し減らして、開発に時間割けば? : デフォルトの名無しさん [sage] 2010/10/04(月) 18:03:40 154は忘れて : デフォルトの名無しさん [sage] 2010/10/04(月) 18:03:56 また訳分からん因縁つける奴が 少なくとも言われたことは試してると思うが? : デフォルトの名無しさん [sage] 2010/10/04(月) 18:04:46 156も忘れて(^^; : デフォルトの名無しさん [sage] 2010/10/04(月) 20:15:26 既に誰か指摘してると思うけど、そもそもウィンドウの全ての要素の大きさを クライアント領域のサイズに比例させる必然性が何もないし、苦労してやっても 気持ちの悪いUIになるだけだよなあ。 昔のネオジオの格闘ゲームじゃないんだからさあ。 VS2010のエディタ部分なんかデバッグ時微妙にフォントサイズが変わるけど、 あれってちょっと気持ち悪いでしょ? : デフォルトの名無しさん [sage] 2010/10/04(月) 21:31:21 こんなコード書いて、 やるで おわったで と出力されるにもかかわらずディレクトリが出来ません どうやって調査すれば良いのでしょうか System.Console.WriteLine("やるで") Try System.IO.Directory.CreateDirectory("d:\temp\トップ") Catch ex As Exception System.Console.WriteLine(ex.ToString()) System.Console.WriteLine("いきなりディレクトリつくれんです") End Try System.Console.WriteLine("おわったで") : 159 [sage] 2010/10/04(月) 21:45:33 自己解決。ウィンドウが更新されてなかっただけでした 別プロジェクトでコードを作り直しても同じ結果になり悩んでたんですが ウィンドウを閉じて再度表示させると治りました エクスプローラのwindowが更新されないとか、 今まで経験したことがなかったのでちょっと驚き ウィンドウを再表示後は、上の減少は再現しなくなりました・・ : デフォルトの名無しさん [sage] 2010/10/05(火) 14:10:02 ttp://ideone.com/Pg1mD のようなコードで 1秒間にどれだけ処理(ループ)できるか書いているのですが 妥当ですかね? : デフォルトの名無しさん [] 2010/10/05(火) 14:59:05 何を測りたいのかはっきりさせてくれ そのコードだと、ループ内で行ってる処理の中ではたぶん Console.WriteLineが一番重いので、Console.WriteLineの処理時間を計測してるだけ。 測りたい処理よりもコストのかかる処理をループ内に入れてしまうと何の意味もなくなる。 文字列連結や文字列比較の速度を調べたいのでなければ、 同じ理由で文字列の操作も避ける。GC.Collectも同様。 パフォーマンス計測にはStopwatchクラスを使う。 ループ開始前にStartして終了後にStop。最後に経過時間を出力。 一秒間にどれだけ処理できるか調べたいんだったら最後に一秒当たりに換算すればいい。 : デフォルトの名無しさん [sage] 2010/10/05(火) 15:26:36 そのものズバリ Stopwatch クラスですかありがとうございます。 何を計りたいかですが… 1〜15桁の文字列(パス)の生成に掛かる時間を、 調べたいと思っています。 : デフォルトの名無しさん [sage] 2010/10/05(火) 21:26:04 一文字づつ文字列を連結するのは典型的な非効率糞コード StringBuilderを使う : デフォルトの名無しさん [sage] 2010/10/05(火) 23:58:01 HttpWebRequestとHttpWebResponseで末尾が.のURLリクエストしてるのに 実際は末尾の.がないURLに代わってリクエストされるんだけど 対処法おしえてください : デフォルトの名無しさん [sage] 2010/10/06(水) 00:40:09 ttps://connect.microsoft.com/VisualStudio/feedback/details/386695/system-uri-incorrectly-strips-trailing-dots 現状、TcpClientとかSocketとか使うしかないんじゃないかな : デフォルトの名無しさん [sage] 2010/10/06(水) 22:22:47 CrLf区切りのテキストファイルから 何行目と指定してテキストを取り出したり、 同じように指定してその部分を置き換えたりしたいのですが、 できるとしたらどんな方法で出来るでしょうか? : デフォルトの名無しさん [sage] 2010/10/06(水) 22:32:28 簡単なのはFile.ReadAllLines ファイルの行を置き換えたかったら全部消して書き直せばいい : デフォルトの名無しさん [sage] 2010/10/06(水) 23:03:49 レスありがとうございます。 行数が多くて一行あたりの処理が簡単なため一気に何千行の処理を行うことになるのですが そうなると1行ごとに全部を書き換えるというのは避けた方が良いですよね? 変数に読み込んで処理すれば良いのですが、メモリの占有が大きくなるのと プログラムが予期しない終了の仕方をした時にせっかく途中まで処理したものが どこにも記録が残っていないという状態になってしまうので、 ファイルをピンポイントで修正していきたいと思ったのですがそういうアクセスはあまり一般的ではないでしょうか? : デフォルトの名無しさん [sage] 2010/10/06(水) 23:12:24 >行数が多くて一行あたりの処理が簡単なため一気に何千行の処理を行うことになるのですが これ、他人が読んで意味が通じると思う? : デフォルトの名無しさん [sage] 2010/10/06(水) 23:26:35 高々何千行程度のテキスト読み込んでおくのにどんぐらいのメモリ食うと思ってんだ? : デフォルトの名無しさん [sage] 2010/10/07(木) 04:43:55 9Gくらい? : デフォルトの名無しさん [sage] 2010/10/07(木) 04:49:23 1 行につき 1 MB 使えば 1000 行で 1 GB だから、だいたいそのくらい・・・ ってばかあっー! : デフォルトの名無しさん [sage] 2010/10/07(木) 07:49:52 >ファイルをピンポイントで修正していきたいと思ったのですが >そういうアクセスはあまり一般的ではないでしょうか? 一般的うんぬん以前に、ファイルの任意の位置にデータを挿入する事は出来ないので無理。 元々の一行の長さと、書き込もうとする一行の長さが同じなら、その場所だけ上書きすればよい。 一気に何千行も書きかえるなら、一行ずつランダムアクセスするとかえって遅くなるかもよ。 : デフォルトの名無しさん [] 2010/10/07(木) 15:16:12 いったん別の一時ファイルに書き出せばいいんじゃね StreamReaderで一行ずつ読みながらStreamWriterで平行して書き出せばいい : デフォルトの名無しさん [] 2010/10/07(木) 15:53:02 本当に困っています。 OKWaveのほうにも質問していますが、TransparencyKeyでフォーム中身を透過させて、そのフォームを最大化、そしてまた元のサイズに戻すなど、 一定のサイズ変更操作をすると、フォームのタイトルバーなどがつかめなくなってしまいます。 サイズ変更もできなくなります。 本当に困っています。何か回避方法などをご存じの方がいましたら教えてください。お願いします。 ttp://okwave.jp/qa/q6233258.html (マルチみたいで申し訳ないです) : デフォルトの名無しさん [sage] 2010/10/07(木) 17:59:50 とりあえずそのソースうpして : デフォルトの名無しさん [sage] 2010/10/07(木) 18:06:11 みたいってマルチそのものでしょw : 176 [sage] 2010/10/07(木) 18:24:20 ソースも何も、フォームデザイナで、BackColoerとTransparencyKeyを同一にしただけです。 他の設定は一切いじらずとも、百発百中でなります、 VS2008でも、VB2010 Expressでも。 : 176 [sage] 2010/10/07(木) 19:03:33 ttp://www.youtube.com/watch?v=sARJjxKedS8&fmt=18 こんな感じです。 最大化したっきり、上にあるフォームのタイトルバーがつかめない・・・。 : デフォルトの名無しさん [sage] 2010/10/07(木) 20:04:57 うちは問題ないなー : デフォルトの名無しさん [sage] 2010/10/07(木) 20:19:18 自分で使うわけじゃないので、環境依存ならいいんですけどね。。。 ちなみにWinXPじゃ問題は起きません。Vista以降で、aero有効時にのみ起きるようです。 : デフォルトの名無しさん [sage] 2010/10/07(木) 20:21:50 うちはVistaSP2だけど問題ないなー : デフォルトの名無しさん [sage] 2010/10/07(木) 20:58:57 ディスプレイドライバの相性とか : デフォルトの名無しさん [sage] 2010/10/07(木) 21:12:23 自分のフォームだけaeroオフで起動とかできないですか? aeroがなければ上手くいくのになぁ。。。 : デフォルトの名無しさん [sage] 2010/10/07(木) 21:25:35 プロジェクトのプロパティニXPの視覚効果の有効、無効の設定があったと思うけどそれじゃだめ? うちはvista無いから試せん : デフォルトの名無しさん [sage] 2010/10/07(木) 21:28:25 そのチェック外しても、なんにも変わりませんでした。。。 : デフォルトの名無しさん [sage] 2010/10/07(木) 21:32:13 うちでも再現したよ。 でも下記のコードにしたら固まらなくなったよ private void Form1_Load(object sender, EventArgs e) { //大きさを適当に変更 this.Size = new Size(300, 300); Bitmap bmp = new Bitmap(1, 1); Graphics g = Graphics.FromImage(bmp); g.FillRectangle(Brushes.WhiteSmoke, g.VisibleClipBounds); //透明にする色 Color transColor = bmp.GetPixel(0, 0); //画像を透明にする bmp.MakeTransparent(transColor); //背景画像を指定する this.BackgroundImage = bmp; //背景色を指定する this.BackColor = transColor; //透明を指定する this.TransparencyKey = transColor; this.TopMost = true; } : デフォルトの名無しさん [sage] 2010/10/07(木) 21:33:20 タイトルバーはつかめるがウィンドウ境界が透明扱いになってるな OnSizeChangedで前回のWindowStateと違ってればRecreateHandleとか乱暴なことでもする? : デフォルトの名無しさん [sage] 2010/10/07(木) 21:57:55 タイトルバーも境界もどっちも掴めません。。。 つまり画像を挟むってことですかね? いまdsiから書き込んでるので、明日VB的文法に翻訳してみたいとおもいます。 : デフォルトの名無しさん [sage] 2010/10/07(木) 22:58:27 得意気にC#でw : デフォルトの名無しさん [sage] 2010/10/07(木) 23:30:45 C#にコンプレックス持ってんのかw 仕事はVB.NETで趣味アプリはC#でやってて 今、家だからPCにはC#しか入ってないんだよw : デフォルトの名無しさん [sage] 2010/10/08(金) 05:47:58 バカ? ここは何スレだっつの : デフォルトの名無しさん [sage] 2010/10/08(金) 11:59:10 じゃあ、わざわざC#スレでレスしろってかw めんどいだろJK : デフォルトの名無しさん [sage] 2010/10/08(金) 13:45:25 質問です。 VB2010でVBの勉強をしているのですが、 ボタンを押すことによってテキストボックスに入力されている文字をテキストファイルに出力したいのですが 以下のコードではうまくいきません Dim Writer As New IO.StreamWriter("C:\vb.txt") Writer.WriteLine(TextBox1.Text) Writer.Close() デバッグしてもエラーは出ないし、ボタンを押しても何も起きない状況です どなたかご教示お願いします : デフォルトの名無しさん [sage] 2010/10/08(金) 14:02:16 2010は知らないけど ttp://dobon.net/vb/dotnet/file/writefile.html じゃだめなの? : デフォルトの名無しさん [sage] 2010/10/08(金) 14:21:48 だめです。 GUIデザイナのプロパティからTranceparecyなどの設定を削除して、フォームリロード時にお示しのコードを実行するようにしましたが、 やはりタイトルバーなどがつかめない状態になりました・・・。 : デフォルトの名無しさん [sage] 2010/10/08(金) 14:29:13 じゃダメ? : デフォルトの名無しさん [sage] 2010/10/08(金) 14:41:21 をやると、正常になりますが、最大化したときだけじゃなく、 普通にサイズ変更しただけでもなる場合があるので、いくらかは問題は軽減しますが、全解決とはなりません・・・。 : デフォルトの名無しさん [sage] 2010/10/08(金) 14:43:48 resizeendイベントでもやればいいんじゃないの? : デフォルトの名無しさん [sage] 2010/10/08(金) 14:44:46 なるほど。。。 瞬間にチカチカするのは代償と考えてあきらめるしかないですかね。 : デフォルトの名無しさん [sage] 2010/10/08(金) 14:46:51 フォームが透明になるだけでもありがたく思わないと : デフォルトの名無しさん [sage] 2010/10/08(金) 14:49:13 でもまぁ、そうですけど、何も問題がない人との違いは何なのかと・・・。 まぁ、設定で、おかしくなる人ようの設定かなんかをもうけてもいいですし、その辺は臨機応変にやろうと思います。 : デフォルトの名無しさん [sage] 2010/10/08(金) 14:50:17 問題ないって書いたのは全部俺だけど 全部うそだよw : デフォルトの名無しさん [sage] 2010/10/08(金) 14:50:35 ファイル名にコロンや垂直タブって無理じゃね? : デフォルトの名無しさん [sage] 2010/10/08(金) 14:51:31 さん これでできました。ありがとうございました! : デフォルトの名無しさん [sage] 2010/10/08(金) 14:57:08 も嘘かもしれないので、信じないとしても、 何とか例の現象は解決(?)いたしました。 リサイズができなくなったときのために一応つけておいたステータスバーも取り払うことができ、 当初意図していたとおりのソフトができそうです。 皆様、アドバイス等ありがとうございました。 : デフォルトの名無しさん [sage] 2010/10/09(土) 23:22:31 For i As Integer = 1 To 100 Next の中でiを1から100の間で戻したり進めたりするのは何も問題ないでしょうか? : デフォルトの名無しさん [sage] 2010/10/09(土) 23:25:12 気になるんだったら別の書き方すればいいのに : デフォルトの名無しさん [sage] 2010/10/09(土) 23:49:26 問題ないけどそういう使いかたするならあえてfor nextを 使わないのがいいと思う : デフォルトの名無しさん [sage] 2010/10/10(日) 22:41:57 トンクス : デフォルトの名無しさん [sage] 2010/10/14(木) 11:32:35 宇宙語を話す皆さんに質問です プログラミング用語の『スロー』ってどういう意味?(”投げる”とか答える人はまだ地球人) なんか、こう、イメージの掴める解説ってないのかね : デフォルトの名無しさん [sage] 2010/10/14(木) 12:34:30 マルチ乙 : デフォルトの名無しさん [] 2010/10/14(木) 13:07:36 異常系世界へgotoするってこと その際のスペースカプセルが例外 : デフォルトの名無しさん [] 2010/10/14(木) 15:43:35 linux上でunixを使いCUIの環境で、日の丸の国旗の画像を作るプログラミング、教えてください : デフォルトの名無しさん [sage] 2010/10/14(木) 16:20:31 スレチ : デフォルトの名無しさん [] 2010/10/14(木) 22:36:51 ttp://www.mediafire.com/?78a7las051tizi0 ↑こんな感じでどう? 即席で作ってみたけど : デフォルトの名無しさん [sage] 2010/10/15(金) 01:19:03 プリンタドライバをインストールしたいのですが、「プリンタ名が無効です」と表示されて上手くいきません。 どこがまずいかご教授お願いします。 必要なファイルは事前に C:\Windows\system32\spool\DRIVERS\W32X86 にコピー済みで、 ファイルをフルパスで指定しても同じ結果になります。 Public Shared Function DriverInstall(ByVal strDriverName As String) As Boolean Dim di As New DRIVER_INFO_3 With di .cVersion = 3 .pConfigFile = "ps5ui.dll" .pDataFile = strDriverName & ".ppd" .pDependentFiles = "pscript.ntf" & vbNullChar _ & "pscript.hlp" & vbNullChar _ & "ps5ui.dll" & vbNullChar _ & strDriverName & ".ppd" & vbNullChar _ & "pscript5.dll" .pDriverPath = "pscript5.dll" .pEnvironment = "Windows NT x86" .pHelpFile = "pscript5.hlp" .pMonitorName = String.Empty .pName = strDriverName .pDefaultDataType = "RAW" End With If AddPrinterDriver(String.Empty, 3, di) = 0 Then Dim ExcptWin32 As New Win32Exception(Marshal.GetLastWin32Error()) MessageBox.Show(ExcptWin32.Message, "Win32Err", MessageBoxButtons.OK) Return False End If Return True End Function : デフォルトの名無しさん [sage] 2010/10/15(金) 01:26:27 一応、APIの宣言部分も貼っておきます。 AddPrinterDriverW を AddPrinterDriverA に変えると、エラーメッセージは「パラメータが間違っています」になります。 Private Declare Function AddPrinterDriver Lib "winspool.drv" Alias "AddPrinterDriverW" _ (ByVal pName As String, _ ByVal Level As Integer, _ ByRef pDriverInfo As DRIVER_INFO_3) As Integer Public Structure DRIVER_INFO_3 Public cVersion As Long Public pName As String Public pEnvironment As String Public pDriverPath As String Public pDataFile As String Public pConfigFile As String Public pHelpFile As String Public pDependentFiles As String Public pMonitorName As String Public pDefaultDataType As String End Structure : デフォルトの名無しさん [] 2010/10/17(日) 00:05:45 あげとく : デフォルトの名無しさん [sage] 2010/10/20(水) 16:20:40 じゃ、俺は下げとく。 : デフォルトの名無しさん [sage] 2010/10/21(木) 01:16:55 C#だと拡張メソッドでenumを拡張できるけど、VBはできるん? : デフォルトの名無しさん [sage] 2010/10/21(木) 11:05:07 VBでは拡張メソッド専用の構文を準備していないため次のように属性を直接指定する。 Imports System.Runtime.CompilerServices Module StringExtensions <Extension()> _ Public Sub Print(ByVal aString As String) Console.WriteLine(aString) End Sub End Module 同じ要領でenumでも出来るはず、やってみて。 : デフォルトの名無しさん [sage] 2010/10/21(木) 23:34:28 なるほど、試してみる : デフォルトの名無しさん [sage] 2010/10/26(火) 20:28:20 DLL改ざん出来ないように厳密名付けたんだけど、 この場合バージョン管理ももれなく付いてくるの? アセンブリバージョン上げたら呼び出し側でエラーが出るんだけど… 対処法としてはバージョン固定にするか、GACに登録してバージョンリダイレクトさせるかって事でOK? : デフォルトの名無しさん [sage] 2010/10/26(火) 21:57:25 基本的には厳密名つける=バージョン管理を行う。 >対処法としてはバージョン固定にするか、GACに登録してバージョンリダイレクトさせるかって事でOK? もしくはconfigファイルでバージョンリダイレクト。 もしくは全ビルド。 : デフォルトの名無しさん [sage] 2010/10/26(火) 21:58:25 >DLL改ざん出来ないように厳密名付けたんだけど、 実はあんまり意味ないよね。 : デフォルトの名無しさん [sage] 2010/10/27(水) 00:18:19 >もしくはconfigファイルでバージョンリダイレクト。 これは"呼び出し側exe.config"にバージョンポリシーを記述して配置するイメージですよね? >実はあんまり意味ないよね。 えw : デフォルトの名無しさん [sage] 2010/10/27(水) 18:23:08 すみません、初歩的で申し訳無いのですが 横2列のcsvを二次配列に入れるプログラムが作れません。 field()でテキストをReadlineして field-Aに二次配列で入れるループを書いてます。 untilのループ内に変数Xを利用すると下記のエラーが出ます 「Exception.InnerException を参照してください。エラー: オブジェクト参照がオブジェクト インスタンスに設定されていません。」 Dim field() As String Dim field-A(,) As String Dim reader As New System.IO.StreamReader("field.csv", System.Text.Encoding.Default) Dim X As Integer X = 0 Do Until reader.EndOfStream line = reader.ReadLine() field = line.Split(",") field-A = Nothing field-A(X, 0) = field(0) field-A(X, 1) = field(1) X = X + 1 Loop csvの中身 フィールドA-01,フィールドB-01 フィールドA-02,フィールドB-02 フィールドA-03,フィールドB-03 : デフォルトの名無しさん [sage] 2010/10/27(水) 18:25:30 field-A(X,0)の行でどうもエラーが出るようです。 ・他にもっと簡単な方法があると思うが浮かばない ・変数Xのuntil内での使い方がおかしいorスコープがおかしいが、原因がわからない (UNTIL内でX=0とするとエラーが起きないんですがループでリセットするわけにはいかない) 上記2点、わかる方いらっしゃいますでしょうか? 宜しくお願いします。 : デフォルトの名無しさん [sage] 2010/10/27(水) 19:05:03 >field-A(X,0)の行でどうもエラーが出るようです。 field-Aを使用する前(Do Loopの前)にあらかじめ2次元配列を作成する field-A = New String(2, 1) {} >他にもっと簡単な方法 2次元配列使わないでいいのならListとか使ったほうが楽 >変数Xのuntil内での使い方がおかしいorスコープがおかしい どうおかしいのか分からない : デフォルトの名無しさん [sage] 2010/10/27(水) 19:10:21 オブジェクト参照がオブジェクト インスタンスに設定されていません。 というエラーが出てフォームも立ち上がらない状態です。 untilの外側で宣言したXがインスタンスオブジェクトと認識されてるとかなんとか そこまでしか情報がわかりませんでした。 Nothingで解決かと思ったら解決せず。 : デフォルトの名無しさん [sage] 2010/10/27(水) 20:33:20 配列っていうのは事前にメモリを確保してから使うんだよ? 確保するコードを追加しよう。 だけど、行数わかる?ファイル読み込まないと分からないよな? つまりこの処理に配列は合わない。 随時メモリを拡張してくれるListの方が適切 : デフォルトの名無しさん [sage] 2010/10/27(水) 21:14:07 太古の時代では一行目にデータ数書いたりしてたな : デフォルトの名無しさん [sage] 2010/10/27(水) 21:22:19 >>実はあんまり意味ないよね。 >えw あんまり役に立つ場面てないよね、に言いかえよう。 : デフォルトの名無しさん [sage] 2010/10/27(水) 21:43:46 ありがとうございます! 配列の最大数を宣言しないとだめなんですね。 Dim field-A(10,2) As String と数値を入れて宣言したら思い通り動作しました。 それからListが良いということですので使ってみます。 全て解決です。皆さんありがとうございました。 : デフォルトの名無しさん [sage] 2010/10/28(木) 01:54:46 配列が向かないのはまあ同意するが たまには ReDim Preserve の事も...いや、思い出さなくてもいいか : デフォルトの名無しさん [sage] 2010/10/28(木) 08:22:50 msdnによると ttp://msdn.microsoft.com/ja-jp/library/w8k3cys2(VS.80).aspx >Preserve を使った初期化。Preserve 修飾子を指定した場合、Visual Basic では、 >既存の配列から新しい配列に要素がコピーされます。 とあるから、結局はコピー、つまり遅いんでしょ? : デフォルトの名無しさん [sage] 2010/10/28(木) 10:38:43 一要素ずつ拡張してたら糞遅いわな List(Of T)は容量があふれるたびに内部の配列のサイズが2倍になる 同じことを自分でやってもいいけど時間の無駄 : デフォルトの名無しさん [sage] 2010/10/28(木) 12:49:22 拡張と見せかけた再割り当てってのが嫌なんだよ。 VB6では桁違いに速い。 : デフォルトの名無しさん [sage] 2010/10/28(木) 19:46:52 いや再割り当てはどっちみち必要だろ VB6は内部でListみたいなことをやってるだけ : デフォルトの名無しさん [sage] 2010/10/28(木) 20:48:49 そうなの? 実はその辺自信無くて試したんだけど、10倍ぐらい違ったからそうだろって… : デフォルトの名無しさん [sage] 2010/10/28(木) 20:52:08 なんか物凄く馬鹿っぽいご意見ですいこと.... : デフォルトの名無しさん [sage] 2010/10/28(木) 21:09:43 は間違ってないよ List(Of T)は再割り当て時には現在の倍の容量を確保して新しい領域に現在の要素をすべてコピーする 要素が追加されるたびに再割り当てというような馬鹿なことはしない : デフォルトの名無しさん [sage] 2010/10/28(木) 22:17:26 一般的なListの伝統ですな : 242 [sage] 2010/10/28(木) 23:27:06 もう一度やってみたら、 確かに要素数の増加に伴って拡張に必要な時間が増えますね・・・ にしても.net遅すぎる気が・・・ .netはinteger、VBA(VBが手元に無い為)はlongの一次元配列で、 要素数を0から350000まで1づつ増やすコードをそれぞれで実行した結果、 書くのも恥ずかしいぐらいの差がついちゃいました。 コード間違えたかなぁ・・・ : デフォルトの名無しさん [sage] 2010/10/28(木) 23:45:54 .NETでは確実に額面通りの動作をするから不自然なのはVBAの方だろう ループの中でRedim Preserveしたりするバカが多いから変な最適化してるんじゃないの : デフォルトの名無しさん [sage] 2010/10/30(土) 00:48:22 たまたま空きが後ろにあればそのまま拡張できる実装になってるんじゃない? .NETの場合はメモリ管理上確実に再確保とコピーが必要。 : デフォルトの名無しさん [sage] 2010/10/31(日) 01:26:31 VB2010、.Net Framework4.0で、Byte型変数の値を、10進数に変換し、Integer型の 変数に代入したいと思っています Dim BBB As Byte Dim III As Integer という宣言で、BBBに「10」と入っている時に、IIIにどうにかして「16」と、10進数に 変換した結果を代入させたいと思っているのですが、どうしたらよいのでしょう? III = CInt(BBB)とかIII = ToInt16(BBB)とかやってみたのですが、うまくいかず… ToInt16とかを実行するために、2バイトのバイト列とかにしないとダメなのでしょうか? : デフォルトの名無しさん [sage] 2010/10/31(日) 01:38:32 III=BBB : デフォルトの名無しさん [sage] 2010/10/31(日) 01:46:55 それは何度も試しててムリぽ…と思ってもう一度やってみたら、できました… ありがとうございました 何でできないって思ったんだろ? もう寝ます… : デフォルトの名無しさん [sage] 2010/10/31(日) 07:39:59 できなくね? 何か勘違いしてると思われ 16進数というのは16進数表記の事で、中身の数値じゃないよ。 5という数値を表す場合、"5"、"X"、"五"、"○○○○○"、 といろいろあるが、そのひとつが16進数で、どれもStringで表現される。 III = Convert.ToInt32("10", 16) が正解。 >III = CInt(BBB)とかIII = ToInt16(BBB)とかやってみたのですが、うまくいかず… ToInt16の16は16bit整数型(Short)で16進数という意味は無いよ。 : デフォルトの名無しさん [sage] 2010/10/31(日) 10:49:33 >10進数に変換し 人間が見えるように出力するときにやるもんだろ >BBBに「10」と入っている時に まずここは何進数で「10」のつもりなんだ? BBBに値を代入したコードはどうなってるんだ : デフォルトの名無しさん [sage] 2010/10/31(日) 14:57:34 で解決したって言ってるんだから 単にバイト変数の中身を整数変数に代入したかっただけの話だろ? : デフォルトの名無しさん [sage] 2010/10/31(日) 20:24:40 どうして、VB.NET ってあまり流行らないんですか? どの案件みても、C++とかJavaとかC#とかPHPとか : デフォルトの名無しさん [sage] 2010/10/31(日) 20:28:42 C#でいいならVBをわざわざ選ぶ意味はないよ どっちかというとVB6上がりでC触れないとかネガティブな理由で使う言語だからね : デフォルトの名無しさん [sage] 2010/10/31(日) 21:36:47 VB.netも楽しいけど、C#の方が強力だし、VBの文法って汚いし… やたら融通の効く所はいいと思うんだけど。 : デフォルトの名無しさん [sage] 2010/10/31(日) 22:45:44 Microsoft的には非IT系のGeekなプロフェッショナル向けの言語。 要は会計士とか医師でプログラミングもしちゃうぜ的な人向け。 : デフォルトの名無しさん [sage] 2010/10/31(日) 22:52:28 いつの時代のVBのコンセプトだよそれ。 : デフォルトの名無しさん [sage] 2010/10/31(日) 22:57:06 システム部門が独立してできたようなところだとVBが主戦力多いよ 往々に.net移行が遅れてたりする : デフォルトの名無しさん [sage] 2010/10/31(日) 23:08:41 非情報系の人にはC系は難しいからVBっていうのはもう古いよ。 実際JavaやC#ならVBと変わらん。MSの囲い込みイメージ戦略に騙されてるだけ。 : デフォルトの名無しさん [sage] 2010/11/03(水) 17:01:16 ASP.NETを使うことになったのですが、おすすめの本などありましたら教えてください : デフォルトの名無しさん [sage] 2010/11/04(木) 00:28:54 ttp://hibari.2ch.net/test/read.cgi/tech/1288035953/137 : デフォルトの名無しさん [] 2010/11/04(木) 03:23:01 マルチごめんなさい。 急にプログラマーに仕事が決まり、ASP.NETが必要になったのですが、 適当なスレがなかったようなのでマルチになってしまいました。 謝罪をさせていただいた上でまた質問させてください。 みなさんはASP.NETの勉強はどうしてるんですか? おしえてください。使ってない人もいるかもしれませんが・・ : デフォルトの名無しさん [sage] 2010/11/04(木) 11:05:31 ASP.NETなんて勉強しなくても使えるからなぁ。 : デフォルトの名無しさん [sage] 2010/11/04(木) 11:06:54 RequestオブジェクトとResponseオブジェクトがあれば なんでもできるし。 : デフォルトの名無しさん [sage] 2010/11/04(木) 13:30:28 プログラムできない奴はプログラマとしての仕事をするな 時間と金の無駄だ : デフォルトの名無しさん [sage] 2010/11/04(木) 13:56:28 誰にでもできる簡単な仕事です。 : デフォルトの名無しさん [sage] 2010/11/04(木) 16:22:03 文系理系関係ありません ただ学歴高い方が発注元に単金を高く請求できるので : デフォルトの名無しさん [sage] 2010/11/04(木) 16:48:57 高卒でプログラマやってます : デフォルトの名無しさん [sage] 2010/11/04(木) 17:20:45 その場合は資格をいっぱい取ればおk : デフォルトの名無しさん [sage] 2010/11/04(木) 18:17:44 オラクルマスターを取りなさい : デフォルトの名無しさん [sage] 2010/11/04(木) 18:27:34 テクデとテクネなら持ってます。 : デフォルトの名無しさん [] 2010/11/04(木) 20:51:45 知恵袋でも質問したけど回答がつかなのでここでも聞かせてください 自分のサイトを読み込んでリンクさせるてリンクをクリックすると規定のブラウザで開く方法ってありますか? 要はリファラを残したい。。。 : デフォルトの名無しさん [sage] 2010/11/04(木) 21:00:44 日本語でおk : デフォルトの名無しさん [] 2010/11/04(木) 21:04:49 リファラを残す方法はありますか? : デフォルトの名無しさん [sage] 2010/11/04(木) 21:10:54 リファラが何かわかっているのかい? HTTPヘッダだよ それがわかればどうとでもできることがわかるよ : デフォルトの名無しさん [] 2010/11/04(木) 21:32:25 リンク元のページのことじゃないの?? : デフォルトの名無しさん [sage] 2010/11/05(金) 11:19:49 環境はVB.NET 2008 Express Edition + Windows XPです。 Visual Studioエディタ内で子ウインドウをキーボードで切り替えるとき、 Ctrl+Tabキーで一覧が表示されますが、ここで Enterキーまたはマウスでクリックしなくても切り替えられますか? : デフォルトの名無しさん [sage] 2010/11/05(金) 19:45:34 スペースキーでもOK(たぶん) 念力でもOK(エスパーなら) っていうか、何が聞きたいんだ : デフォルトの名無しさん [] 2010/11/05(金) 20:50:48 質問です。 VisualStudio2003proとSqlserver2005developerを持っているのですが、 この組み合わせではADO.NET2.0の機能を使うことはできませんか? : test.vb [sage] 2010/11/05(金) 21:44:14 意味わからないけど 既定のブラウザでURLを開くだけなら Process.Start(" ttp://example.com/ ") : デフォルトの名無しさん [] 2010/11/05(金) 23:39:21 私はJAVAしかやったことなくて今度VBもやらないといけないことになったのですが、 今までは、オブジェクトというのは変数とメソッドが一緒になった固まりだと思ってました。 しかし、VBのサンプルコードを読むと、 Dim fm As Object fm = 2.73 という構文が出てきたんですが、どうやらこれはVBでは間違っていないようなんです fmをオブジェクト宣言したのなら、まずはそこからインスタンスを作って、さらに インスタンスの変数。つまりfm.hensuu =2.73 みたいな形ならわかるのですが、 いきなりオブジェクトとして数値が宣言されて、いきなり数字が代入されるなんて・・ VBではオブジェクトの意味がJAVAと違うんでしょうか・・おしえてください : デフォルトの名無しさん [sage] 2010/11/05(金) 23:45:07 ほんとにJavaやってんの? それJavaでもできるよ(Java5以降)。オートボクシングという。 .NETではボクシングは実行エンジン自体に組み込まれてて、Javaのオートボクシングよりももっと柔軟。 : デフォルトの名無しさん [sage] 2010/11/06(土) 00:07:27 JAVAにもあるん・・・なんだかわからない・・ まずはインスタンス化しないと変数は代入できないんじゃなかったけ? ましてオブジェクトは固有だから、変数がいくつあるかわからないし・・ : デフォルトの名無しさん [sage] 2010/11/06(土) 00:12:25 VB(というか.net)にはobject型という型があるんだよもん つーか入門書ぐらいけちらず買えよ それかMSDN読むか Javaと違ってMSDNの日本語化はわりと深い所までちゃんとされてるからいいぞ : デフォルトの名無しさん [sage] 2010/11/06(土) 00:13:58 Javaでもこう書ける Object fm; fm = 2.73; 2行目は省略形で書かれていて、省略せずに書けば次のようになる。 fm = Double.valueOf(2.73); Double.valueOf(2.73)の処理はボクシングと呼ばれる。 .NETでもこれと同じような処理が自動的に行われている。 これでわかんないならVBと比べる以前にJavaを入門書からやり直すべき。 : デフォルトの名無しさん [sage] 2010/11/06(土) 00:15:33 何が言いたいのかよーわからんけど、 Object型のインスタンスなんて、スレッドの同期オブジェクトが欲しいときぐらいしか作らないよw : デフォルトの名無しさん [sage] 2010/11/06(土) 00:31:43 普通は、intやdoubleなどの単一の値も、 全てオブジェクトとして扱うのがオブジェクト指向的には自然なんだよ Javaは設計が古いのでそうなってないが.NETは実際に全部オブジェクトとして扱えるということ : デフォルトの名無しさん [sage] 2010/11/06(土) 00:36:52 javaもまともにできてたとは思えんな。 : デフォルトの名無しさん [sage] 2010/11/06(土) 13:37:13 .net前のMSDNとかは、変な翻訳とかも混ざって非常に分かり難かったが 最近のは割とまともにローカライズされて見やすくなったよな 新しく使うクラスとかはとりあえずF1押して概要とかメンバーとか見るのが癖になってる : デフォルトの名無しさん [sage] 2010/11/06(土) 15:26:46 ありがご当皆さん・・勉強してみます・・・ : デフォルトの名無しさん [sage] 2010/11/07(日) 01:58:54 ・注文テーブル 注文番号(PK) 都道府県コード 市区町村コード 以下、注文日時とか商品IDとか諸々 ・都道府県マスター 都道府県コード(PK) 都道府県名 ・市区町村マスター 都道府県コード(PK1) 市区町村コード(PK2) 市区町村名 とこんなテーブルがあったとして、DataGridViewにBindingSourceを設定して、都道府県を 表示させるまでは良いのですが、市区町村に複合キーを投げる方法が分からず。 仕方がないのでテーブルアダプタにWHERE 都道府県コード=@都道府県コードみたいなメソッドを用意して、 データテーブルを取得するようにコードを書いたのですが、もっとスマートなやり方ってないもんですか? : デフォルトの名無しさん [sage] 2010/11/09(火) 00:22:51 javascriptを含むhtmlのソースをダウンロードして表示したいです。 ttp://dobon.net/vb/dotnet/internet/webclientopenread.html ここの方法でダウンロードは出来たのですが、javascriptがソースコードのままになってしまいます。 javascriptによってhtmlが生成された後のhtmlをダウンロードするにはどうすればいいでしょうか? : デフォルトの名無しさん [sage] 2010/11/09(火) 01:57:19 またドボン!か・・・。 いい加減、ドボンはもういいよ。 俺なんか、7年前に買ったものを大事に使うあまり、 流行から取り残されていってるんだぞ? 7年以上も続けているドボンを見てるとイライラしてくる。 そろそろ身を引いたらどうなのよ、って。 ドボンはアーカイブ(過去ログ)だけ残して、 後は若い奴らに譲ろうぜ? 若い奴らに新しいVBサイトを構築させていこうぜ。 : デフォルトの名無しさん [sage] 2010/11/09(火) 07:15:46 そうは言っても若い奴らが好き好んでVBなんか使うと思うか? : デフォルトの名無しさん [] 2010/11/09(火) 09:04:25 こんにちは。スレチでこちらに飛んできました。 ディスプレイが省電力モードに移行をしたかを知るために、下記のように作ってみました。 <System.Runtime.InteropServices.DllImport("user32.dll")> Shared Function MonitorFromPoint(ByVal x As Integer, ByVal y As Integer, ByVal dwFlags As Integer) As IntPtr End Function <System.Runtime.InteropServices.DllImport("kernel32.dll")> Shared Function GetDevicePowerState(ByVal hDevice As IntPtr, ByVal pfOn As Integer) As Integer End Function Public Shared Sub PowerState() Dim hWnd As IntPtr Dim Ret As Integer Dim Pw As Integer hWnd = MonitorFromPoint(&H0, &H0, &H2) Ret = GetDevicePowerState(hWnd, Pw) MsgBox(Pw) End Sub こんな感じにやりましたが、ダメでした。 そもそも、ハンドルが取得できない。 何かよい方法はないでしょうか?? : デフォルトの名無しさん [sage] 2010/11/09(火) 10:30:53 MonitorFromPointの引数は2つになってるね。 ttp://msdn.microsoft.com/ja-jp/library/cc410472.aspx : デフォルトの名無しさん [sage] 2010/11/09(火) 11:40:35 そんなの無理じゃね? : デフォルトの名無しさん [sage] 2010/11/09(火) 11:54:15 javascriptのdocument.writeなどで書き出すhtmlを展開したいと言ってるの? WebBrowserコントロールにいったん読み込んで、 それのdomから取得すればできるかもしれないな。 : デフォルトの名無しさん [sage] 2010/11/11(木) 10:28:36 データベース接続で質問です。 こんなやり方と SqlConnection conn = new SqlConnection(); conn.ConnectionString = "接続文字列"; SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = sqlStr; こっちのやりかた 何が違うのでしょうか。 SqlConnection conn = new SqlConnection("接続文字列"); SqlCommand cmd = conn.CreateCommand(); cmd.CommandText =sqlStr; : 301 [age] 2010/11/11(木) 10:31:21 なぜこんな質問したかというと、 efreedom.com/Question/1-442465/InvalidOperationException-Executing-SqlCommand-Transaction にスレッド処理でエラーが発生したんだよって報告があったので。 : デフォルトの名無しさん [sage] 2010/11/11(木) 11:50:46 同じです。 : デフォルトの名無しさん [sage] 2010/11/13(土) 09:22:42 しょぼいPCで開発してる奴は死ね : デフォルトの名無しさん [sage] 2010/11/13(土) 21:58:19 LabelのBorderColorを変更出来るようにする 初歩的なことですみません。 Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs) Dim aPen As New Pen(m_BorderColor, 1) Dim aRect As Rectangle() = {New Rectangle(0, 0, Width - 1, Height - 1)} e.Graphics.DrawRectangles(m_Pen, m_Rect) MyBase.OnPaint(e) End Sub 見た目には実装されているのですが、BorderStyleとは無関係に四角を描いてるだけです。 本来のBorderStyleを拡張するにはどうしたら良いのでしょうか? : デフォルトの名無しさん [sage] 2010/11/13(土) 22:46:29 BorderStyleをNoneにする : デフォルトの名無しさん [sage] 2010/11/13(土) 23:38:53 NoneにしてPaddingを全部1とかにするのがやっぱり簡単ですかね : デフォルトの名無しさん [sage] 2010/11/13(土) 23:44:18 「本来のBorderStyleを拡張」ってどういう意味なんだ。 小学生じゃないんだから相手にエスパー能力を期待しているとしか思えないような 質問するなよと。 : デフォルトの名無しさん [sage] 2010/11/14(日) 00:13:24 ControlPaint.DrawBorder/DrawBorder3D : デフォルトの名無しさん [sage] 2010/11/15(月) 01:35:26 Part20にあった質問なんだけど、この答えを知りたいです。 BindingSourceとTextBoxをバインドしています。 BindingSourceのカレントレコードが変更される際に入力をチェックして、 入力のキャンセルや、レコード移動のキャンセルを行いたいのですが、 どうしたらいいでしょうか。 PositionChangedやCurrentChangedイベントで出来るかと思ったのですが、 これらは移動後に発生するみたいですし。 よろしくお願いします。 : デフォルトの名無しさん [sage] 2010/11/15(月) 13:19:24 ハゲ以外で。 : デフォルトの名無しさん [sage] 2010/11/15(月) 22:51:39 >入力のキャンセルや、レコード移動のキャンセル 意味が分からん : デフォルトの名無しさん [sage] 2010/11/15(月) 23:13:58 Gridのセル編集を開始したら保存ボタンを押すまで他の行の編集が出来ないようにしたいって話なんだけど… : デフォルトの名無しさん [sage] 2010/11/16(火) 00:25:02 自己解決しました ttp://www.eggheadcafe.com/software/aspnet/30776891/how-to-cancel-bindingsourcepositionchanged-event.aspx : デフォルトの名無しさん [sage] 2010/11/17(水) 02:34:48 ユーザコントロールをコンボボックス風にドロップダウンで表示させたいんですが、やり方が全く分かりません。 どなたか参考になりそうな日本語サイトをご存じないですか? : デフォルトの名無しさん [sage] 2010/11/17(水) 09:06:22 そういうのはWPFだろ WPFで作ったコンボをVBに読み込むとか。 正攻法は大変だと思う : デフォルトの名無しさん [sage] 2010/11/17(水) 09:07:20 もうどうでもいいからリストボックスでも表示してやれよ : デフォルトの名無しさん [sage] 2010/11/17(水) 21:44:07 初心者スレに行くべきか悩んだんですが、型変換に関して とあるAPIの関数を呼び出しているんですが Public Declare Function ADC_SetConfig Lib "AIOUSB" Alias "VBADC_SetConfig" (ByVal DeviceIndex As UInteger, ByRef pConfigBuf As Byte, ByRef ConfigBufSize As UInteger ) As UInteger これの第2引数、pConfigBuf。ヘルプには以下のような構造体が書かれていました。 ' Config 構造体 <SerializableAttribute()> <ComVisibleAttribute(True)> _ Public Structure TUSBAI1616Config Dim ChannelRange() As Byte Public Sub Initialize() ReDim ChannelRange(0 To &HF) End Sub Dim CalibMode As Byte Dim TrigMode As Byte Dim StartStopCH As Byte Dim Oversample As Byte End Structure この構造体を第2引数のとおり、Byteとして渡したいんですがどう変換したらいいんでしょうか? AllocHGlobal→StructureToPtrで取得したポインタを渡したら0除算云々と怒られました 3日3晩悩んで試行して解決できず、エロい人知識を貸してください : デフォルトの名無しさん [sage] 2010/11/17(水) 22:00:14 そのDeclare宣言は変えられんの? ByRef As TUSBAI1616Config って定義するだけなんだけど : デフォルトの名無しさん [sage] 2010/11/17(水) 22:23:02 Declareの宣言は勝手に変えるな馬鹿と言われて来たせいもあってか、その発想には至りませんでした。 明日試してみます。 オンラインマニュアル無いと思ってたらありましたので一応 ttp://accesio.com/MANUALS/AIOUSB_API_Reference.html#ADC_SetConfig ※サンプルプログラム(VB6)で使用されていた例 Private Type TUSBAI1616Config ChannelRange(0 To &HF) As Byte CalibMode As Byte TrigMode As Byte StartStopCH As Byte Oversample As Byte End Type ADC_SetConfig DeviceIndex, Config, ConfigBufSize これを、.net向けにのように私が構造体を定義しなおしました。 : デフォルトの名無しさん [sage] 2010/11/17(水) 22:49:57 VB6サンプルじゃなぁ… : デフォルトの名無しさん [sage] 2010/11/19(金) 01:09:46 テーブルの数だけテーブルアダプタが作成されてコーディングが非常に面倒なんですけど、 テーブルアダプタの共通化についてサンプルがあるWebサイトかなんかありますか? : デフォルトの名無しさん [] 2010/11/19(金) 20:41:50 俺はデザイナーからコードを引っこ抜いて、簡易的な汎用テーブルアダプタを作った どうせUpdateメソッドしか使わないからねぇ : デフォルトの名無しさん [] 2010/11/21(日) 21:31:09 VB.netでコマンドライン引数を扱いたいのですが 取得する方法がいまいち分りません どのようにすれば良いのでしょうか? : デフォルトの名無しさん [sage] 2010/11/21(日) 21:35:41 Environment.GetCommandLineArgsとか、My.Application.Startupイベントの引数とか : デフォルトの名無しさん [sage] 2010/11/21(日) 21:48:11 自己解決しました 以下の方法で取得できました お騒がせしました Dim returnValue As String() returnValue = Environment.GetCommandLineArgs : デフォルトの名無しさん [sage] 2010/11/21(日) 21:50:47 skshggrksg 起動時のコマンドライン引数を取得する ttp://dobon.net/vb/dotnet/programing/commandline.html @IT:.NET TIPS コマンドライン引数を取得するには? ttp://www.atmarkit.co.jp/fdotnet/dotnettips/030cmdargs/cmdargs.html 【VB.NET】外部から引数を受け取るプログラムを作成する ttp://blog.livedoor.jp/akf0/archives/51333101.html コマンドライン引数の取得 ttp://go2vb.cocolog-nifty.com/blog/2007/04/post_1b46.html .NET 入門 VB.NET - コマンドライン引数を扱うには... (2) ttp://itnandemolab.blog70.fc2.com/blog-entry-2364.html : デフォルトの名無しさん [sage] 2010/11/21(日) 23:22:35 もう解決してるのに嬉しそうに貼らなくていいです : デフォルトの名無しさん [sage] 2010/11/21(日) 23:38:35 なにそれひどい。 : デフォルトの名無しさん [sage] 2010/11/22(月) 09:43:01 vb.net コマンドライン でぐぐれば出てくるのにマジでぐぐる前にここで 質問してるのか いい加減にしとけよ : デフォルトの名無しさん [sage] 2010/11/22(月) 12:43:48 加減は見たつもり : デフォルトの名無しさん [sage] 2010/11/23(火) 17:40:40 Form1の起動時に(チェック処理に引っ掛かった場合には) Form2を起動するコードを次の様に記述したのですが なぜか、Form1が消えません。 ※*_Loadイベントだけでは無く*_Shownイベントでも 試したのですが駄目でした。 どうすればForm1を非表示にした状態で、 Form2を起動する事が出来ますでしょうか? Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' 〜 チェック処理 〜 Dim ins As New Form2 Me.Hide() ins.Show() Me.Show() End Sub : デフォルトの名無しさん [sage] 2010/11/23(火) 18:00:05 ins.ShowDialog(Me) : デフォルトの名無しさん [sage] 2010/11/23(火) 18:00:25 ハライテw : デフォルトの名無しさん [sage] 2010/11/23(火) 18:24:41 RitchTextboxの内容を印刷したいんだけど VB2010でもまだそのまま印刷ってのは実装されてないんだっけ? サンプル探してもシルバーライトの物しか出てこないから なにか良いサンプル有ったら教えて欲しい : デフォルトの名無しさん [sage] 2010/11/23(火) 18:33:20 開発環境のバージョンとは何の関係もない話だと思うが WinFormの話ならEM_FORMATRANGEとか使えば : デフォルトの名無しさん [sage] 2010/11/23(火) 18:45:54 ありがとうございます!!解決しました!! : デフォルトの名無しさん [sage] 2010/11/23(火) 19:11:24 ありがとう 調べてみます : デフォルトの名無しさん [sage] 2010/11/23(火) 19:35:12 Visual Basic .NET または Visual Basic 2005 を使用して RichTextBox コントロールの内容を印刷する方法 ttp://support.microsoft.com/kb/811401/ : デフォルトの名無しさん [sage] 2010/11/23(火) 20:10:27 ありがとう まるまるコピペしてつかってみます : デフォルトの名無しさん [] 2010/11/25(木) 12:43:06 VB2010expressでTextboxを配列化して順に配列の文字を入れたいが どうやってもできない。 NULL扱いされる。 誰か助けて。 : デフォルトの名無しさん [sage] 2010/11/25(木) 13:00:22 エスパーすると、配列をNewした後、TextBoxをNewしてないから。 : デフォルトの名無しさん [sage] 2010/11/25(木) 14:13:11 Controls.OfType(Of TextBox)().ToArray() とかでいいよ : デフォルトの名無しさん [] 2010/11/25(木) 15:06:27 341です。 すみません。補足説明します。 たとえば Dim A as New Arraylist For i As integer = 0 To 4 a.Add(i * 10) TextBox(i).Text = R.ToString ←ここがNull(Nothing)らしい Next 簡単に配列にできないものでしょうか? ネットで色々見ましたが、なぜかうまくできません。 初心者だから・・・? : デフォルトの名無しさん [] 2010/11/25(木) 15:15:02 テキストボックスの名前をTextBox1, TextBox2, …と連番にしておいて Controls("TextBox" & i).Text = R.ToString() のようにすれば配列にしなくても同じことができる 配列にするには一つずつ配列の要素に自分で代入する必要がある あとArrayListなんか捨ててList(Of T)使いましょう : デフォルトの名無しさん [sage] 2010/11/25(木) 15:22:38 どうせ R が Nothing なんだろ : デフォルトの名無しさん [sage] 2010/11/25(木) 15:24:04 それやるくらいなら Dim TextBoxes() As TextBox = {TextBox1, TextBox2, TextBox3 ...} だろ : デフォルトの名無しさん [] 2010/11/25(木) 15:28:37 どうでもいいよ パフォーマンス的にはTextプロパティの設定に比べれば誤差だしVBでコードの良し悪し議論しても仕方ない : デフォルトの名無しさん [sage] 2010/11/25(木) 15:33:17 おいおい、職業プログラマで を許しちゃダメだろ パフォーマンスの問題じゃなくてバグの出やすさ は「"TextBox" & i)」が実在するかどうか実行時にしか評価されない最悪なコーディングだ。 : デフォルトの名無しさん [sage] 2010/11/25(木) 15:36:17 なあに、その行が 「"TextBox" & i)」が実在するかどうか チェックするIfブロックの中に入っていれば問題ない : デフォルトの名無しさん [sage] 2010/11/25(木) 15:39:30 そんなこと言い出したらArrayList使うのも間違いだし4決め打ちもまずいし ToStringの()省略も気になる : デフォルトの名無しさん [sage] 2010/11/25(木) 15:43:13 「チェックするIfブロック」も実行時にしか通らないだろ この手のものは、コーディングミスってもコンパイルで引っかけるように考えてコーディングしないと : デフォルトの名無しさん [sage] 2010/11/25(木) 15:44:49 くだらない所に拘って生産性下げるのが一番最悪 : デフォルトの名無しさん [sage] 2010/11/25(木) 15:48:07 後でTextBox5を追加したときに配列に追加するのを忘れても コンパイル時には分からないし実行時のエラーすら出ないよ が良いとは全く思わないがも万全とはいえない : デフォルトの名無しさん [sage] 2010/11/25(木) 15:52:00 R が何か分からないが Dim A As New Arraylist (個人的には Collection.Genelic 〜 を使いたいが) Dim TextBoxes() As TextBox = {TextBox1, TextBox2, TextBox3, TextBox4, TextBox5} For i As integer = TextBoxes.Lbound To TextBoxes.Ubound a.Add(i * 10) TextBoxes(i).Text = R.ToString Next くらいが最低限だろ : デフォルトの名無しさん [sage] 2010/11/25(木) 15:58:25 の問題が解決できてないじゃん 多重管理するなというのは基本でしょ : デフォルトの名無しさん [sage] 2010/11/25(木) 16:02:01 コントロール名に依存するコーディングというのもなぁ : デフォルトの名無しさん [] 2010/11/25(木) 16:08:04 341=344です。 ご教授ありがとうございます。 配列化、できました。 実は配列化したいTextBoxが200個×3種あって 200ずつをTabで切り替えて見られるようにしようとしています。 TextBoxがTab内にあると、この処理がうまくいかないのですが どういう理由なのでしょうか・・・ : デフォルトの名無しさん [sage] 2010/11/25(木) 16:15:01 ちょフォームに TextBox 600個ってさ 新手の拷問かよ : デフォルトの名無しさん [sage] 2010/11/25(木) 16:15:13 さすがに200はありえない。コードから自動でTextBoxを作るようにするべき。 を使ってるんだろうが、Tab内でうまくいかない理由は、テキストボックスは フォームではなくてタブコントロールのControlsの中に含まれてるから。 : デフォルトの名無しさん [sage] 2010/11/25(木) 16:21:02 とりあえずは コンテナ(フォーム).Controls.Find 〜 で子や孫階層まで Find できるが そもそも Grid 系を検討すべきじゃないのか? : デフォルトの名無しさん [sage] 2010/11/25(木) 17:10:06 ここの人たちは文句言いつつもなんだかんだで優しいな 昔と変わってなくて安心した : デフォルトの名無しさん [sage] 2010/11/25(木) 18:44:51 だってVB.netってだけで他のスレじゃ風当たり強いんだもの : デフォルトの名無しさん [] 2010/11/25(木) 18:51:31 >360,361 358です。 やはりTextBox多すぎですよね・・・ 200個の測定データを1画面(Form内)で見られるようにしたくて その表示する場所としててTextBoxを用意しようとしました。 TextBoxよりも良い方法があればよいのですが・・・ たしかにここの住人の方々は皆さんいい方です。 : デフォルトの名無しさん [sage] 2010/11/25(木) 19:13:01 TextBox200個置くぐらいなら、DataGridViewのセル200個を使うかなぁ。 : デフォルトの名無しさん [sage] 2010/11/26(金) 00:35:56 あははは、今日ちょうどテキストボックスの自動生成をやったよ 改行判定するためにmodなんて演算子を初めて使ったぐらいだ : デフォルトの名無しさん [sage] 2010/11/26(金) 06:34:10 そもそも表示だけなのにテキストボックスって… 普通ラベルだろ で多くなったらListbox(マルチカラム) もっと増えたらListView 最後はDataGridView だな、俺なら : デフォルトの名無しさん [sage] 2010/11/27(土) 13:16:29 同じようなことを得意満面に指摘して悦に入る半可通 : デフォルトの名無しさん [sage] 2010/11/27(土) 13:22:55 保守は不要ですよ : デフォルトの名無しさん [sage] 2010/11/28(日) 14:33:59 コンボボックスのドロップダウンリストってどんな仕組み? 下に配置されたコントロールを隠すようにサイズ拡張されるでしょ もしかしてFormだったりするのかな? 何となく気になっちゃって : デフォルトの名無しさん [] 2010/11/29(月) 15:42:36 DataGridViewを使って、配列を1行10列で折り返して表示していく方法は どうやったら良いですか? : デフォルトの名無しさん [sage] 2010/11/29(月) 15:52:06 バインディング使わずにDataGridViewにデータを表示する方法がわかってるなら 行 = 配列のインデックス / 10 列 = 配列のインデックス Mod 10 で配列のインデックスから行と列を計算するだけ。 バインディングを使いたいならその妙なデータ構造を改めるのが一番簡単だと思います。 : デフォルトの名無しさん [] 2010/11/29(月) 17:08:45 たとえば、これだと縦にAの数値が並んでしまいます。 Dim A As New ArrayList Dim Table As New DataTable Dim Row As DataRow For i As Integer = 0 To 50 A.Add(i) '仮値を入力 Table.Columns.Add(i, GetType(Single)) Table.Rows.Add(A(i)) Row = Table.NewRow Row(i) = A(i) Next DataGridView1.DataSource = Table 何か間違ってるのでしょうか? もうワケがわかりません。 : デフォルトの名無しさん [] 2010/11/29(月) 17:37:12 突然ですが、Focus()の事で教えてください。 フォームにコンボボックス・ラジオボタンなどを貼り付けて、 Enterキーを押した時フォーカスの移動をするように KeyPressイベントにコードを書きました。 実行時、フォーカスを示す点線の□枠が出てきません。 Tabによる移動は□枠が出ます。 どなたか対処方法を教えてください。 : デフォルトの名無しさん [sage] 2010/11/30(火) 00:32:07 Select()だったらどう? : デフォルトの名無しさん [sage] 2010/11/30(火) 09:01:09 AMDのACMLのライブラリを.NETで使う方法無いですかね? C++では使えるようなのですがDLLをインポートしようとしても無理でした : デフォルトの名無しさん [sage] 2010/11/30(火) 10:15:41 普通のC++でラッパーを書いてC向けの関数としてエクスポートしてネイティブdllとしてコンパイルして.NETからdllimport もしくはC++/CLIでラッパーを書く 前者の方がお勧め : デフォルトの名無しさん [sage] 2010/11/30(火) 21:42:23 ありがとうございます C++の勉強がてらチャレンジしてみようと思います : 374 [] 2010/12/01(水) 06:35:33 すみません。自己解決しました。 vista , 7 の仕様だったようです。 >375 返答すみませんでした。 : デフォルトの名無しさん [sage] 2010/12/02(木) 05:49:32 の方法を始めて知った コントロール名を変数使って指定できないかと前から思ってたんだ で、プロパティーはそれで変更できるけど イベントでそういう記述はなんとか出来ないかな? イメージとしては Private Sub Control("Label" & i )_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Control("Label" & i ).Click こんな感じの何かない? : デフォルトの名無しさん [sage] 2010/12/02(木) 05:53:14 あ、前半はどうでもいいか Handles Control("Label" & i ).Click の部分です : デフォルトの名無しさん [sage] 2010/12/02(木) 06:34:08 AddHandler : デフォルトの名無しさん [sage] 2010/12/02(木) 08:41:22 普通にデザイナからそのメソッド選択すれば? : デフォルトの名無しさん [sage] 2010/12/02(木) 12:15:50 AddHandlerだな AddHandler使うならHandles以下はいらん : デフォルトの名無しさん [sage] 2010/12/02(木) 18:12:18 ImmGetCompositionString()を使って入力された漢字のフリガナを取得しています。 普通はフリガナがカタカナで返ってくるはずなのですが、あるときから特定のマシン でだけ全角ひらがなで返ってくるようになってしまいました。 このサンプルを実行しても同じようになってしまいます。 ttp://www.atmarkit.co.jp/fdotnet/dotnettips/875imeyomi/imeyomi.html 環境の問題なのですが、どんな原因が考えられるでしょうか? : デフォルトの名無しさん [sage] 2010/12/02(木) 18:42:41 IMEが変わった : デフォルトの名無しさん [sage] 2010/12/02(木) 18:51:42 KB436842 : デフォルトの名無しさん [sage] 2010/12/02(木) 23:34:46 ちょっと前にVB.NETの開発に参加して思ったんだけど、1ソースファイル(*.vb)に 複数のクラスを記述するのって、可読性が極度に下がって俺は嫌なんだけど、 これって他の開発現場では当たり前? インターフェース定義クラスみたいな使い方なら納得も出来るんだけど、、、 : デフォルトの名無しさん [sage] 2010/12/03(金) 08:56:34 セットで使うクラスなら 同一ソースの中に書くかな : デフォルトの名無しさん [sage] 2010/12/03(金) 09:51:25 ありがとうございます。 : デフォルトの名無しさん [sage] 2010/12/03(金) 11:54:57 このようなエラーが出るのですがどのような原因が考えられますでしょうか? System.Configuration.ConfigurationException: 構成セクション system.data を認識できません。 (c:\windows\microsoft.net\framework\v1.1.4322\Config\machine.config line 4047) 出るPCと出ないPCがあってどうしたものかと。 : デフォルトの名無しさん [sage] 2010/12/03(金) 14:43:11 .net framework 1.1を再インスコしたら出なくなりました。 : デフォルトの名無しさん [] 2010/12/11(土) 17:42:28 小数点第一位を二捨三入・七捨八入して整数と0.5単位の数値にしたいのですが、関数がわかりません : デフォルトの名無しさん [sage] 2010/12/11(土) 17:48:09 ありません 自分で作りましょう : デフォルトの名無しさん [] 2010/12/11(土) 18:06:43 thx ないのかよ 使えねえな : デフォルトの名無しさん [sage] 2010/12/11(土) 18:14:32 必要なもの全部用意されてたら君の仕事無くなるよ? : デフォルトの名無しさん [sage] 2010/12/11(土) 18:22:30 そんな使いようのない関数がわざわざ用意してあっても無駄なだけだしな。 互換性のために残してあるとかなら仕方ねーなと思うが : デフォルトの名無しさん [sage] 2010/12/11(土) 18:25:37 Int(n * 2.0 + 0.5) / 2.0 で計算できるか。 : デフォルトの名無しさん [sage] 2010/12/12(日) 15:11:12 Boolean型の二次元配列をtrueで初期化したいんですがどうすればできますか? : デフォルトの名無しさん [sage] 2010/12/12(日) 15:17:20 すべての要素にtrueを代入します : デフォルトの名無しさん [sage] 2010/12/12(日) 15:27:15 ループさせるんですか? : デフォルトの名無しさん [sage] 2010/12/12(日) 16:28:41 配列の変数名を逆転させてもいいけどね。 : デフォルトの名無しさん [sage] 2010/12/12(日) 17:58:03 もう少し詳しく教えてくれると助かります : デフォルトの名無しさん [sage] 2010/12/12(日) 19:39:44 縦方向にリサイズ出来ないように Me.MinimumSize = New System.Drawing.Size(200, 28) Me.MaximumSize = New System.Drawing.Size(2000, 28)とやっても 何故か縦方向にリサイズ出来るんだけどどうすれば縦方向にリサイズさせないように出来るの : デフォルトの名無しさん [sage] 2010/12/12(日) 20:36:32 イメージを256色PNGで保存するにはどうすればいいんでしょうか : デフォルトの名無しさん [sage] 2010/12/13(月) 10:13:39 Dim IsFirst() As Boolean をやめて Dim IsNotFirst() As Boolean にする : デフォルトの名無しさん [sage] 2010/12/13(月) 12:07:35 DisabledとかUnlockedとか、たまに使っててイラっとするときがある。 オレだけか? : デフォルトの名無しさん [sage] 2010/12/13(月) 23:46:56 簡単にやるならたとえば以下 Dim img1 As Bitmap = New Bitmap("in.jpg") Dim st As IO.Stream = New IO.MemoryStream() img1.Save(st, Imaging.ImageFormat.Gif) st.Seek(0, IO.SeekOrigin.Begin) Dim img2 As Bitmap = New Bitmap(st) img2.Save("out.png", Imaging.ImageFormat.Png) ただし、この例はハーフトーンパレットのディザ描画になるため、あまりきれいではない きれいに減色処理するためには色の量子化などの特殊なテクニックを使って頑張る必要があるが、 これに対する .NET の便利なクラスはない 減色、量子化などのキーワードで検索して、参考になりそうなサンプルを探すしかないと思う また、減色だけでなく、そもそも256色のパレット付き画像の処理自体、.NETではまともなサポートが ないので、細かなピクセル処理を行うには LockBits/UnlockBits などを使ってピクセルをバッファとして 読みだして処理する必要があるが、これも簡単には説明できないので、いろいろ検索して調べてみて欲しい : 408 [sage] 2010/12/14(火) 00:48:59 きれいな減色に対する.NETのサポートはないと思いこんでたけど、 .NET3.0以降だと、 System.Windows.Media.Imaging.GifBitmapEncoder というクラスが追加されてて、簡単にそれなりの減色結果が得られるようです 一応修正版 Dim src As New System.IO.MemoryStream(System.IO.File.ReadAllBytes("in.jpg")) Dim enc As New System.Windows.Media.Imaging.GifBitmapEncoder() enc.Frames.Add(System.Windows.Media.Imaging.BitmapFrame.Create(src)) Dim mem As IO.Stream = New IO.MemoryStream() enc.Save(mem) mem.Seek(0, IO.SeekOrigin.Begin) Dim img As System.Drawing.Bitmap = New System.Drawing.Bitmap(mem) img.Save("out.png", System.Drawing.Imaging.ImageFormat.Png) : デフォルトの名無しさん [sage] 2010/12/14(火) 02:11:07 WPF/WICありならわざわざGifBitmapEncoder使わなくてもFormatConvertedBitmap挟むだけで良いよ : デフォルトの名無しさん [] 2010/12/15(水) 12:58:43 起動中のブラウザの取得がうまくいきません。 IEの取得はできたのですが、Firefoxのウインドウがうまくいかず、原因がわかりません。 Dim ObjShell As Object Dim ObjFF As Object Dim n As Integer Set ObjShell = CreateObject("Shell.Application") Set ObjFF = Nothing Set ObjFF = ObjShell.Windows(0) Set ObjShell = Nothing IEをひとつだけ起動させると、Set ObjFF = ObjShell.Windows(0)がうまくいくのですが、 Firefoxの場合、ObjFFがNothingのままになってしまいます。 解決方法等、わかる方がいたら教えて下さい。 宜しくお願い致します。 : デフォルトの名無しさん [sage] 2010/12/15(水) 13:02:08 Set ObjShell = CreateObject("Firefox.Application") : デフォルトの名無しさん [sage] 2010/12/15(水) 13:07:31 そもそもFirefoxはCOM用の口なんか用意してないっしょ : デフォルトの名無しさん [] 2010/12/15(水) 21:36:40 【C#, C♯, C#】 MonoMac 【MonoDevelop】 ttp://hibari.2ch.net/test/read.cgi/mac/1291602001/ 詳しい奴、ちょっと↑きてくれ : デフォルトの名無しさん [sage] 2010/12/16(木) 19:16:06 ビルドはつかわずにいつもリビルドしかつかわないけどこれでいいの? : デフォルトの名無しさん [sage] 2010/12/16(木) 19:27:37 小規模のプログラムならどっちも一緒だろ : デフォルトの名無しさん [sage] 2010/12/16(木) 20:03:58 修正されたソース、アセンブリのみ対象とするのがビルドだっけ : デフォルトの名無しさん [] 2010/12/18(土) 01:19:39 Color.ToArgbメソッドを使ってcolor型のデータを数値化 しているのですが法則がわかりません。 RGB値で(0.0.255)の場合16776961と変換され≒256^3に なってしまいます。AARRGGBBと並べるのであれば 青の変換値は255になると思うのですが違うのですか? : デフォルトの名無しさん [sage] 2010/12/18(土) 09:11:26 16776961じゃないだろよく見ろ 16進で表示すればもっとわかりやすい : デフォルトの名無しさん [] 2010/12/18(土) 09:36:15 256^3だと16777216になるのかな? 16進ならFF0000FFなので4278190335になってしまうんでしょうか? : デフォルトの名無しさん [sage] 2010/12/18(土) 11:04:13 配列が0からはじまるように RGBも0からはじまるので (0.0.255)も実は 0〜254なので 254を変化すればよろしい : デフォルトの名無しさん [sage] 2010/12/18(土) 17:27:58 16776961じゃなくて-16776961だろ? アルファ値が255なら符号ビットが1で負になる 直感的にわかりやすい値が欲しければConvert.ToUInt32で直接変換してみればいい : デフォルトの名無しさん [sage] 2010/12/20(月) 17:22:48 vb.netを勉強しとけと言われたのですが おすすめのマニュアルをご存知ないでしょうか? : デフォルトの名無しさん [sage] 2010/12/20(月) 20:26:42 .net tipsでググる : デフォルトの名無しさん [sage] 2010/12/20(月) 20:35:37 VB6のコードが一緒に載せてあるサイトは絶対に見ない : デフォルトの名無しさん [sage] 2010/12/21(火) 13:43:49 一緒にのってるとなにか問題あるの? : デフォルトの名無しさん [sage] 2010/12/21(火) 18:43:15 VB6と同じように書く=.NET的には悪い書き方 : デフォルトの名無しさん [sage] 2010/12/22(水) 01:18:19 なんちって : デフォルトの名無しさん [sage] 2010/12/22(水) 04:06:45 Form1に Public i as integer と書いても Form2でiを使えないんだけど : デフォルトの名無しさん [sage] 2010/12/22(水) 13:17:55 Form1はNewしたのか Sharedはいらないのか どんなエラーが出てんのか : デフォルトの名無しさん [sage] 2010/12/22(水) 18:32:48 Form2は Form1からForm2.Show したもの : デフォルトの名無しさん [sage] 2010/12/22(水) 23:17:17 Form2にForm1インスタンスの参照でも渡してなきゃ無理 : デフォルトの名無しさん [sage] 2010/12/23(木) 03:22:08 むずかしす : デフォルトの名無しさん [sage] 2010/12/23(木) 10:25:30 Form1.iで参照できる かもしれない バージョンとかにもよるが、VBには既定のインスタンスってのがあってな ユーザがインスタンス作成しなくても、勝手に作成されて参照できるインスタンスがあるんだ 本来ならの言うようにForm1のインスタンスへの参照もってないとダメなんだが Form1だけでForm1の既定のインスタンスを参照できたりするんだ まあ、既定のインスタンス使うようなコードは書くべきではないと思う : デフォルトの名無しさん [sage] 2010/12/23(木) 10:50:13 VBで使うべきではないとか良くない機能とか言い出したらVBの存在意義って… VBにあってC#に無い機能のほとんど全部じゃん : デフォルトの名無しさん [sage] 2010/12/23(木) 11:17:51 既定のインスタンス使ってたら は発生してないと思う : デフォルトの名無しさん [sage] 2010/12/23(木) 12:10:50 規定のインスタンスはVB6時代から悪者扱いされてたと思うけど。 : デフォルトの名無しさん [sage] 2010/12/23(木) 14:35:09 が何をどうして使えないっていってるかわからんからな だからForm1.iで参照って書いてある .netで1回廃止しようとしたんだけどな いきなり廃止するんじゃなくて、使うか使わないか選べるようにしといて その次ぐらいで廃止すればよかったのにな : デフォルトの名無しさん [sage] 2010/12/23(木) 15:18:28 ルールを逐次変更するなんて最悪のやり方。 : デフォルトの名無しさん [sage] 2010/12/23(木) 15:22:27 2005以降の方針転換は間違ってないと思うよ オブジェクト指向的に良くないというような考えを持ち込むんだったらそもそもVBなんかいらん : デフォルトの名無しさん [sage] 2010/12/23(木) 23:42:53 はじめてVB.NETやろうと思うんだけどとりあえず何を買えばいいの? ttp://www.amazon.co.jp/Microsoft-Visual-Studio-Professional/dp/B003LTZ1VA/ref=pd_sim_b_6 これ買っておけば一応問題ない? : デフォルトの名無しさん [sage] 2010/12/23(木) 23:47:20 買わなくてもフリーのがある。 : デフォルトの名無しさん [sage] 2010/12/23(木) 23:59:26 ありがとう、いろいろあるんだね : デフォルトの名無しさん [sage] 2010/12/24(金) 06:35:35 vb5 vb6 2002 2003 2005 2008 2010 と何回も買わなければならないのでそろそろ考えねば : デフォルトの名無しさん [sage] 2010/12/24(金) 07:49:07 QuickBasic 世代から買ってるんだが・・・ : デフォルトの名無しさん [sage] 2010/12/24(金) 11:10:13 VB6→2005→2010(予定) : デフォルトの名無しさん [sage] 2010/12/24(金) 11:18:58 N-BASICから : デフォルトの名無しさん [] 2010/12/24(金) 11:44:45 > Form1に > Public i as integer > と書いても > Form2でiを使えないんだけど 手抜きしとらんでプロパティでやりとりしろよ : デフォルトの名無しさん [sage] 2010/12/24(金) 12:45:58 そんなことVBで言ってもしょうがないでしょ それを言い出すと、フォームのインスタンスをそのまま子フォームに渡すのも、結合が強くなるので悪い手抜きだし フォームに貼ってあるテキストボックスをむやみに他のクラスに渡したりプロパティで公開したりするのも フォームの実装をさらけ出してて良くないよ : デフォルトの名無しさん [sage] 2010/12/24(金) 13:01:54 手抜きはいいとしても・・・ インスタンス化してない可能性のが高くないか? : デフォルトの名無しさん [] 2010/12/24(金) 14:26:38 VBだからとか、お前アホだろ : デフォルトの名無しさん [sage] 2010/12/24(金) 14:29:35 VB も C# も基本的には一緒だが ここでクダ巻いてるのは VC++ 使いか? : デフォルトの名無しさん [sage] 2010/12/24(金) 14:29:54 プログラミングごときにあんまり真剣になるなよ 気楽に行こうぜ : デフォルトの名無しさん [sage] 2010/12/24(金) 14:37:19 VBだからとか関係なくで悩んでるような段階で善いとか悪いとか気にしてもな どうせ今練習で書いてるものなんて慣れた後で必ず全部捨てて書き直すことになるんだから : デフォルトの名無しさん [sage] 2010/12/24(金) 20:34:51 me.rry=ch(r is math) : デフォルトの名無しさん [sage] 2010/12/24(金) 21:11:26 LINQって便利だな ちょっとしたCSVのデータを加工する案件があったんだけど まさにうってつけの機能だと感じたよ : デフォルトの名無しさん [sage] 2010/12/24(金) 21:22:23 生活がかかってるんだぜ : デフォルトの名無しさん [sage] 2010/12/24(金) 21:31:47 スペルが全然違うのは何か理由が? : デフォルトの名無しさん [sage] 2010/12/24(金) 21:54:29 mathのほうがソースコードに出てきそうな感じだから。それだけ : デフォルトの名無しさん [] 2010/12/25(土) 19:46:17 SetWindowPosを使用して、Form1を最前面に表示したいんですが、 以下のコードを実行して、Button1をクリックすると、 画面の左上にタイトルバーの未表示されるんですが、 何か間違ってるんでしょうか? user32.dllはデフォルトで用意されているんですよね? OSはWindowsXP、 開発環境はMicrosoft Visual Basic 2008 Express Edition SP1 です。 詳しい方よろしくお願いします。 Public Class Form1 Public Declare Function SetWindowPos Lib "user32" _ (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _ ByVal X As Long, ByVal Y As Long, _ ByVal cx As Long, ByVal cy As Long, _ ByVal wFlags As Long) As Long Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click SetWindowPos(Me.Handle, -1, 100, 100, 500, 500, &H40) End Sub End Class : デフォルトの名無しさん [sage] 2010/12/25(土) 21:20:08 「タイトルバーの未表示」意味不明 : デフォルトの名無しさん [sage] 2010/12/25(土) 21:25:59 Form.TopMost=Trureじゃダメなん? : デフォルトの名無しさん [sage] 2010/12/25(土) 21:59:11 タイトルバーのみ表示の間違いです。 最終的には、別exeで表示されているウィンドウを常に最前面に表示させたいんです。 こんな感じで Dim hWnd As IntPtr = FindWindow(Nothing, "別ウインドウのタイトル") If Not hWnd.Equals(IntPtr.Zero) Then SetWindowPos(hWnd , -1, 100, 100, 500, 500, &H40) End If それで、まず自分自身のフォームで試したら、 TopMostにもならずタイトルバーしか表示されない状態で左上に描画されてしまうんです。 どなたか助言お願いします : デフォルトの名無しさん [sage] 2010/12/25(土) 22:03:07 情報の小出しする奴に助言しても、また条件を追加されるからめんどくさい : デフォルトの名無しさん [sage] 2010/12/25(土) 22:48:41 PC98用BasicでPC98ゲーム作るのはどうすれば : デフォルトの名無しさん [sage] 2010/12/26(日) 00:33:07 スレチ : デフォルトの名無しさん [sage] 2010/12/26(日) 02:40:32 引数LongってVB6のやつでしょw : デフォルトの名無しさん [sage] 2010/12/26(日) 09:11:21 SetWindowPos使わなくてもAppActivate使えばいいんじゃないの 別の実行ファイルを常に最前面にしたいなら、そっちに制御任せりゃいいんだよ : デフォルトの名無しさん [sage] 2010/12/26(日) 09:42:56 これで動いたよ Public Class Form1 Public Declare Function SetWindowPos Lib "user32" _ (ByVal hwnd As Integer, ByVal hWndInsertAfter As Integer, _ ByVal X As Integer, ByVal Y As Integer, _ ByVal cx As Integer, ByVal cy As Integer, _ ByVal wFlags As UInteger) As Boolean Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click SetWindowPos(Me.Handle, -1, 100, 100, 500, 500, &H40) End Sub End Class : デフォルトの名無しさん [sage] 2010/12/26(日) 10:21:56 VB2010EEで、インスタンス変数のインテリセンスでSharedメソッドを表示しなくする方法と フォームデザイナが生成するコントロールのアクセス修飾子デフォルトでPrivateにする方法を教えて欲しいです ウザ過ぎて死にそう : デフォルトの名無しさん [sage] 2010/12/26(日) 10:41:23 Modifiresは駄目そうだなあ 全部選択してPrivate指定するしかないと3年前のこのスレの質問が出てきた 誰に合わせた仕様なんだよこれ まぁ分かってるけど : デフォルトの名無しさん [sage] 2010/12/26(日) 13:02:11 ありがとうございます! VB6の構文を使っていたんですね、引数の型を直したらうまく動きました。 AppActivateの存在を知りませんでした。 調べてみます。 : デフォルトの名無しさん [sage] 2010/12/26(日) 13:18:25 気持ちは分かるけど、Formで外から呼ぶパブリックメンバなんてせいぜいShowかShowModalぐらいなんだから インテリセンスに余計なものが表示されても普通は事実上そう困らないはずだと思うけど。>Modifierの件 : デフォルトの名無しさん [sage] 2010/12/26(日) 14:55:29 469の場合、HandleはIntPtr型を返すから変換するか宣言のhwndをIntPtr型にした方がいい それとOption StrictはOnにするクセ付けたほうがいい : デフォルトの名無しさん [sage] 2010/12/26(日) 18:08:38 For i = 0 to 100 intSum = intSum + i i = i +1 Next 0〜100までの足し算の結果がバグってるけどなぜ : デフォルトの名無しさん [sage] 2010/12/26(日) 18:14:35 i = i +1がいらないんじゃ。 それかintSumの初期値が0以外とか。 : デフォルトの名無しさん [sage] 2010/12/26(日) 18:21:14 intSumの初期値が合っててもi = i + 1の行があったらだめだろ : デフォルトの名無しさん [sage] 2010/12/26(日) 20:31:53 0〜100の偶数を足すにしてもそんな摩訶不思議なコードは書かない : デフォルトの名無しさん [sage] 2010/12/26(日) 20:37:12 すごくC言語っぽいコードだなあ、と思ったのでした : デフォルトの名無しさん [sage] 2010/12/26(日) 20:37:21 Dim i As Integer, intSum As Integer intSum = 0 For i = 0 To 100 intSum += i Next : デフォルトの名無しさん [sage] 2010/12/26(日) 20:39:45 intSum = Enumerable.Range(0, 101).Sum() : デフォルトの名無しさん [] 2010/12/28(火) 18:08:04 右クリックや左クリックをしても、奥にあるウィンドウの操作をできるようにする方法ってありますか? クリックした瞬間に最小化や移動→マウスの位置を取得→その位置のウィンドウを左(右)クリック→またウィンドウを元に戻す ということはAPIというものでできるようなのですが、他に簡単な方法は無いでしょうか 具体的にやりたい事は、デスクトップに時計や画像を少し透過で表示させるけど、 作業の邪魔にはならない・・そんな物を考えています よろしくお願いします。 : デフォルトの名無しさん [sage] 2010/12/28(火) 19:36:29 簡単なやり方はありません C++でWin32API使ってやってるサンプルを見つけたのなら それを移植しましょう : デフォルトの名無しさん [sage] 2010/12/28(火) 20:40:12 マウスが乗った時点で裏に回るとか移動して逃げるってのならどう? : デフォルトの名無しさん [sage] 2010/12/28(火) 20:45:06 マウスが乗ったらポインタの周り10ドット位完全透明の穴を開ければ? : デフォルトの名無しさん [sage] 2010/12/29(水) 02:50:10 なんとかなりそうです。ありがとうございました 考えついたものを調べたらAPIであったというレベルなので・・C++も面白そうですね。やってみようかな おー、なるほど、そんなてもあるんですね ttp://www.gizcollabo.jp/vbtomo/log/archive/vbqanda_4324_2.html でイケそうですね こんなことができるんですね!DeleteObjectですか、知りませんでした。ありがとうございます : デフォルトの名無しさん [sage] 2010/12/29(水) 14:34:53 これで実現できるんじゃない? ttp://msdn.microsoft.com/ja-jp/library/ms997507.aspx >ヒット テスト >レイヤード ウィンドウのヒット テストは、ウィンドウの形状と透明度に基づいています。これは、色分けされているウィンドウの領域やアルファ値がゼロの領域は、マウス メッセージが透過することを意味します。 >レイヤード ウィンドウが WS_EX_TRANSPARENT 拡張ウィンドウ スタイルを持つ場合、レイヤード ウィンドウの形状は無視され、マウス イベントはレイヤード ウィンドウの下の他のウィンドウに渡されます。 : デフォルトの名無しさん [sage] 2010/12/29(水) 14:45:08 それをAPIと言ってるんだろ : デフォルトの名無しさん [sage] 2010/12/29(水) 18:03:00 あーでもあれか。透明にしちゃうとポインタの位置分からなくなるから グローバルフックせんといかんのか : デフォルトの名無しさん [sage] 2010/12/29(水) 19:56:04 グローバルフックでポインタ位置を取得 ポインタがフォームの範囲内ならその座標を中心に 適当な色でFillEllipse その色をMakeTransparent そのビットマップを表示 で出来たよ あ、ただそれを抑制する手段作っておかないと一切操作 出来なくなるからねw : デフォルトの名無しさん [sage] 2010/12/29(水) 19:57:41 グローバルフックはググれば適当なdllがあるから : デフォルトの名無しさん [sage] 2010/12/29(水) 20:49:00 言葉でなく ソースコードください : デフォルトの名無しさん [sage] 2010/12/29(水) 20:52:41 ソースコードくださいじゃなくて 調べて試せよ : デフォルトの名無しさん [sage] 2010/12/29(水) 21:55:24 ポインタは写って無いけどこんな感じね 青いトコは壁紙 ttp://www.gazo.cc/up/23223.jpg : デフォルトの名無しさん [] 2011/01/01(土) 12:47:46 今更だけど、下記で参照できる。 My.Forms.form1.i (iがpublic宣言) もちろん、iはコントロールのオブジェクト名でも参照できる。 たとえば、 My.Forms.Form1.TextBox1.Text というような感じです。 : デフォルトの名無しさん [sage] 2011/01/01(土) 20:02:08 Select Case って If があれば存在いぎっがないの? : デフォルトの名無しさん [sage] 2011/01/01(土) 20:07:49 そうです。 : デフォルトの名無しさん [sage] 2011/01/01(土) 20:10:31 列挙体を使った振り分けとかはselect caseの方がずっと便利。caseを自動生成してくれる。 そんなに気にすることじゃないが、select caseの方が一般に処理が速くなる(可能性がある) : デフォルトの名無しさん [sage] 2011/01/01(土) 20:24:17 else if 〜を何度も書くのが面倒じゃなければね : デフォルトの名無しさん [sage] 2011/01/01(土) 22:50:27 >select caseの方が一般に処理が速くなる(可能性がある) どういう意味? IfもSelect Caseも全く同じパフォーマンスになると思うけど VB6ならまだしも、VB.NETからは短絡評価できるようになったわけだし 全く変わらなくなったと思うけど、ILだと結果が異なってたりするの? 具体的な例を挙げて欲しいんだけど : デフォルトの名無しさん [sage] 2011/01/01(土) 22:53:10 select caseの場合、テーブルで評価してたりするのかな? だとしたら分岐が多い場合は単純ifより速くなると思うけど : デフォルトの名無しさん [sage] 2011/01/01(土) 23:25:53 最適化されないなら、Ifの方が微妙に遅いだろうな : デフォルトの名無しさん [sage] 2011/01/01(土) 23:37:54 ILにswitch命令(ジャンプテーブル)は存在するよ : デフォルトの名無しさん [sage] 2011/01/01(土) 23:40:39 select caseのほうが可読性高いだろ。 : デフォルトの名無しさん [sage] 2011/01/02(日) 07:47:43 vb2010Express SQLServer2008 でデータのやりとりがしたいのですが、 ttp://homepage1.nifty.com/rucio/main/dotnet/Samples/Sample033ConnectSQLServer.htm に書かれているようにやっても ステップ イン: 非ユーザー コード 'WindowsApplication1.My.MyApplication.New' をステップ オーバーしています のようなエラーがたくさん出てできません。 これはどういう意味でしょうか? どのようにすればよいですか? 現在 VBでデータソースとして接続はできました。 その際ユーザーインターフェースとマルチアクティブリザルトセットを 変更したのですが、関係ありますでしょうか? 長文で申し訳ないですがよろしくお願いいたします。 : デフォルトの名無しさん [sage] 2011/01/02(日) 09:48:55 do loop do loop exit do loop A loop B はAとBのどこえジャンプかしら : デフォルトの名無しさん [sage] 2011/01/02(日) 11:45:33 Elseif function()= xx Else if function()=yy と羅列していくとpgm上は分岐の数だけ演算を行うのでしょうか? : デフォルトの名無しさん [sage] 2011/01/02(日) 15:26:57 function()が何度も呼ばれるかどうかということかな? ILにコンパイルする段階では何度も呼ばれる状態のまま。 ILからJITされる段階で関数にI/Oやその他の作用がないかどうか、 毎回同じ値を単純に返すだけの関数かどうかを検査して、 まとめても問題ないようなら最適化される。 : 507 [sage] 2011/01/02(日) 15:42:23 thx 関数が毎回演算されるか不確定ならelseif文に羅列すべきではないね。 ありがとう。 : デフォルトの名無しさん [sage] 2011/01/02(日) 15:43:51 話が噛み合ってない気がする.... はたぶんそんな高尚なことは聞いてない。 : デフォルトの名無しさん [sage] 2011/01/02(日) 15:45:44 いや、当たり前だがElseまたはElseIf以降の式は対応するIfで評価された値が Falseの時しか実行されないって。 そうでなきゃ怖くて使えるか。 : 507 [sage] 2011/01/03(月) 15:28:15 分かり難い文章でしたか?本当に知りたかった事は、 If a=100 else if functionA(a,b,c)=100 else if functionA(a,b,c)=50 Else Endif (functionは値渡しで他の変数の数値を変える事はないものとする) という文をかいて、functionA()が1回につき計算が10秒かかった時に 最後のelseに到達するまで10+a秒かかるのか20+a秒かかるのか知りたかったのですが、 回答はJITcompilerで決定されるとのことでした。 最適化されるならどの様に書いても問題はないのでしょうが、 Functionが1回実行か2回実行されるかをプログラマが制御できない様な文章は 書くべきではないなと思っただけです。 直前にif文だけの為に dim a as integer, a=functionA(a,b,c)としてaをif文で評価するのって あまり美しくない気がしていまして、、、。 : デフォルトの名無しさん [sage] 2011/01/03(月) 16:59:21 なんでやってみないんだ。 Visual Basic 2010 Express もインストール出来ないのか? : デフォルトの名無しさん [sage] 2011/01/03(月) 20:32:21 >直前にif文だけの為に dim a as integer, a=functionA(a,b,c)としてaをif文で評価するのって >あまり美しくない気がしていまして、、、。 >else if functionA(a,b,c)=100 >else if functionA(a,b,c)=50 俺から見りゃ、こんな書き方する方がよっぽど美しくないし無駄にしか思えないわ。 : デフォルトの名無しさん [sage] 2011/01/03(月) 20:33:28 If a=100 Else Dim aa as integer = functionA(a,b,c) if aa=100 else if aa=50 EndIf Endif これじゃダメなのか : デフォルトの名無しさん [sage] 2011/01/03(月) 21:13:38 同じメソッドの戻り値を複数評価するなんて気持ち悪すぎだろ SelectCaseならまだしも、ElseIfで逐次実行して連続評価とか センスなさすぎ : デフォルトの名無しさん [sage] 2011/01/04(火) 01:57:23 それよりもJITの段階で最適化されるってのはホントなのか? その段階で最適化されるなら、最適化オンオフ制御できない気がするんだが もし最適化されることによる弊害がでたらどうするんだ?コード修正しかないのか 最適化するかどうかはコンパイルオプションとかで制御できるのが普通だと思うんだが のあたり詳しく説明してるところとかあったら教えてくれ : デフォルトの名無しさん [sage] 2011/01/04(火) 02:03:35 ILDASM使って解析(確認)してみればいいんじゃない : デフォルトの名無しさん [sage] 2011/01/04(火) 11:06:44 基本的に最適化はJITだよ インライン展開なんかもJIT JITの最適化のONOFFは実行時のオプションや属性などで決まる : デフォルトの名無しさん [sage] 2011/01/04(火) 14:46:15 wshスレにも書き込んでしまったのですが、よく見たら過疎っていたし、VB.NETもインストールされているのでこちらでと思います。 ttps://www.miraiz.bz/Template/Index/ にあるテンプレートを一括してダウンロードしたいのですが、可能でしょうか?可能なら誰か作ってくれませんか? : デフォルトの名無しさん [sage] 2011/01/04(火) 15:23:41 >可能かどうか 出来る >可能なら誰か作ってくれませんか? スレ違い つうかベンチャーやる気か知らんが甘えるな ページのリンク抽出して拡張子を条件にしてファイルダウンロードするようなやついくらでもあるだろ それくらい探してみれば? : デフォルトの名無しさん [sage] 2011/01/04(火) 15:27:58 > ページのリンク抽出して拡張子を条件にしてファイルダウンロードするようなやついくらでもあるだろ > それくらい探してみれば? それでは無理なので、相談させて頂いています。 尚、ベンチャーやる気はありません。 今後の様々な応用の為のプログラミングの勉強にもなるとも思っての相談です。 だいぶ前にwshで単純なwebページダウンロードを行うプログラムを組んだ事があったのですが、それもどこかに失ってしまいました。 : デフォルトの名無しさん [sage] 2011/01/04(火) 15:50:42 貴方の相談は作ってもらうことですか? : デフォルトの名無しさん [sage] 2011/01/04(火) 16:41:41 1つずつ質問したり調べたりするよりも合理的に、最も勉強にもなると私は思っていますが。 : デフォルトの名無しさん [sage] 2011/01/04(火) 17:09:29 へー : デフォルトの名無しさん [sage] 2011/01/04(火) 23:49:22 何の会社かしらんけど、減価償却費シュミレーションとか恥ずかしすぎるw : デフォルトの名無しさん [sage] 2011/01/04(火) 23:59:23 プログラムに限らず、1つずつ調べてコツコツ作ったほうが勉強になるに決まってんだろ いきなり参考書の答えみて勉強になるとでも重ってんのかよ : デフォルトの名無しさん [sage] 2011/01/05(水) 13:34:32 あまり程度は良く無いという事でしょうか? 教師有り学習ではそうなりますが、私の様な教師無し学習ではそうとは限りません。 学生時代から他の人のソースで勉強してきましたので。 > いきなり参考書の答えみて勉強になるとでも重ってんのかよ なりますよ。 15秒わからなければ答えを見ろという和田秀樹さんの数学の学習法の書籍なんかも参考にどうぞ。 教師無し学習で仮説実験的思考回路を養うとすごい勢いで学習できる脳になります。。。という話はスレチなのでおいときますが、 自分の思っている事が全てだと思わないことです。 : デフォルトの名無しさん [sage] 2011/01/05(水) 15:09:11 答えがない問題のほうが世の中には多いよ。 そうした場合どうするんだろね。この手の人は? 「くれ!!!」って大声で叫ぶエネルギーがあったら、自分で調べたらいいのに。。。 : デフォルトの名無しさん [sage] 2011/01/05(水) 15:39:09 > 答えがない問題のほうが世の中には多いよ。 本題と無関係の仮定を出して逃げる、、、どこぞのガイドラインのまんまだな : デフォルトの名無しさん [sage] 2011/01/05(水) 15:42:03 能力のない人間の逃げだろ 調べる能力にしろ、作る能力にしろ : デフォルトの名無しさん [sage] 2011/01/05(水) 15:49:27 どうぞ。 この情報の組み合わせだけで十分可能です。 どうぞ組み合わせておつくりください。 ttp://www.google.co.jp/search?hl=ja&source=hp&q=C%23+WEB%E3%83%9A%E3%83%BC%E3%82%B8%E3%82%92%E5%8F%96%E5%BE%97&btnG=Google+%E6%A4%9C%E7%B4%A2&aq=f&aqi=&aql=&oq=&gs_rfai= ttp://www.google.co.jp/search?hl=ja&source=hp&q=C%23+HTML%E3%80%80%E8%A7%A3%E6%9E%90&btnG=Google+%E6%A4%9C%E7%B4%A2&aq=f&aqi=g1g-m1&aql=&oq=&gs_rfai= ttp://www.google.co.jp/search?hl=ja&source=hp&q=C%23+%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89&btnG=Google+%E6%A4%9C%E7%B4%A2&aq=f&aqi=g1g-m1g-r2g-mr6&aql=&oq=&gs_rfai= : デフォルトの名無しさん [sage] 2011/01/05(水) 15:53:56 間にユーザ名とパスを入力するフォームがある : デフォルトの名無しさん [sage] 2011/01/05(水) 16:02:16 そうですか ではこれでどうぞ ttp://www.google.co.jp/search?hl=ja&source=hp&q=C%23%E3%80%80%E8%87%AA%E5%8B%95%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3&aq=f&aqi=g1&aql=&oq=&gs_rfai= : デフォルトの名無しさん [] 2011/01/05(水) 16:12:44 回答できないとgoogleにリンク張るっていうのお決まりパターンだな : デフォルトの名無しさん [] 2011/01/05(水) 16:48:25 質問です。 開発環境:VB2008 Express OS:XP pro SP3 フォームアプリで他のWindowにフォーカスを移さない、という制御は可能でしょうか。 FormイベントのLostFocusの中で、Me.Activate() しても上手く行きません。 MSではあまりLostFocus使うなみたいな記述もあり、 別な方法があるのかと思いましたが見つかりませんでした。 何かヒントだけでも教えて頂けるとありがたいです。 よろしくお願いします。 : デフォルトの名無しさん [sage] 2011/01/05(水) 17:46:30 まんま答えがあるじゃねぇかwww わざわざ答えるようなもんでもない ログインして WEBページのリンク抽出して ダウンロードする たったこれだけだろ? : デフォルトの名無しさん [sage] 2011/01/05(水) 18:40:18 ほっとけよ。煽って回答得るって性格の方なんだから。 : デフォルトの名無しさん [sage] 2011/01/05(水) 19:23:05 VB.NETでASP.NETを書いてサーバーにaspxファイル置いとけばボーダフォンとかドコモ用のページに自動でなるの? : デフォルトの名無しさん [sage] 2011/01/05(水) 20:30:34 ASP.NETでA、Bという機能があって双方の*.aspxはほとんど同じなので画面だけ共用して処理を書く*.vbは別にする事ってできるの? : デフォルトの名無しさん [sage] 2011/01/05(水) 22:14:00 できるよ : デフォルトの名無しさん [sage] 2011/01/06(木) 09:05:28 無理じゃないか? ユーザーエージェントとかその辺使うんだと思うけど : デフォルトの名無しさん [] 2011/01/06(木) 10:22:05 イベントハンドラと処理の解決タイミング?について質問です。 @Form1.Load の後に Form1.Shown が発生するように 同一フォーム内の特定の関数が終了したことを条件として関数を起動させる方法は存在するのでしょうか? 現在 Hide で隠したフォームを AddHandler 【別フォームが閉じた時】, AddressOf 【フォーム表示関数】 という記述で表記し、【フォーム表示関数】内でフォームの更新と表示を行っています。 この更新が非常に遅いので、先にフォーム表示のみを行い、その後更新が出来ないものかと考えています。 Aまた、更新に際してループ処理を行っているのですが、 「X件完了しました」 というアナウンスを 【Xを示すテキストボックス】.Text = 【現在処理した項目数(=ループカウンタ)】(処理Xとする) という形で行おうとした所、処理が完了するまでフォームが表示されないため、途中経過が見れずに アナウンスの体を成しませんでした。 フォームの先表示とともに、処理Xに関しては更新処理中も即表示させることで 『フォームはすぐ表示され、更新中も現在の更新件数が随時表示される』 という機能が実現できるのかなぁ、と考えています。 そもそも発想が間違っている、もっと良い手段があるなどアドバイス頂けると嬉しいです。 : デフォルトの名無しさん [sage] 2011/01/06(木) 10:25:01 非常に遅い処理なんぞはBackgroundWorkerでも使ってろ : デフォルトの名無しさん [sage] 2011/01/06(木) 10:43:50 マルチスレッドがいいよ : デフォルトの名無しさん [sage] 2011/01/06(木) 11:09:07 質問から察するに 純粋なマルチスレッドよりも がウヌヌメ : sage [] 2011/01/06(木) 11:18:54 アドバイスありがとうございます。 >544 さん 早速ぐぐってみましたが、非常にそれっぽい文章が見つかり大喜びです。 現在、必死に内容を解読中です。 最後に DataGridView の表示を更新しようとすると有効でないスレッド間操作って怒られる・・・。 >555 さん 544さんのように、表の処理と BackgroundWorker の裏処理でマルチって事ですかね? 理解に誤りがあったらごめんなさい。 多分Aの進捗アナウンスも検索時に出てきた ProgressChanged あたり調べれば対応できそうなので、 DataGridView の更新手段と BackgroundWorker の理解に取り組んでいます。 取り急ぎお礼のみ : デフォルトの名無しさん [sage] 2011/01/06(木) 11:20:51 さん 入れ違いですがアドバイスありがとうございます。 やりたい事はこれっぽいので、苦戦中です。 ・・・sageさんとか>とかなにこれはずかしい。 : デフォルトの名無しさん [sage] 2011/01/06(木) 12:01:21 >DataGridView の更新手段 これはどういうこっちゃ? 察するに 1.データを取得 2.データをDataGridViewに表示 3.編集させる 4.なんか登録ボタンみたいなものを押すとデータを保存 (この処理が重くて時間がかかるので、画面が固まらないように バックグラウンド処理で行い、進捗だけプログレスバーかなんかで表示したい) こんな感じ? 釣りじゃないとすれば・・・ 2ch sage 2ch アンカー で調べれば幸せになれると思う : デフォルトの名無しさん [sage] 2011/01/06(木) 12:03:45 バックグラウンド処理の最後や途中でDataGridViewにアクセスしたらエラーになったんだろ ProgressChangedやCompletedイベントハンドラはUIスレッドで呼び出されるのでそっちでやる : 543 [sage] 2011/01/06(木) 16:15:29 やっていること 【処理X】 1.メインフォームを隠し、別フォームを開く。 2.別フォームでCSVを指定し、別フォームを閉じる。 3.別フォームが閉じた事にハンドルして、メインフォームを表示し、処理Xを起動。 【処理Y】 1.処理Xで指定したCSVを開き、データを DataTable に取得 2.DataTable のデータを一行ずつ編集し、内容を修正(結合や計算など) 3.2で修正したDataTable の行を DataSet.【テーブル名】DataTable に代入 (2と3をFor文で行数回ループ) 4.DataGridView.DataSource = 4のテーブル と指定してDataGridView を表示(大量データ) @の目的は、処理Yを行う前に処理Xを完了させ画面を表示。その後で処理Yを走らせること だったので、 さんの指摘通り処理Yを BackgroundWorker で行うことで解決しました。 : 543 [sage] 2011/01/06(木) 16:16:27 さんアドバイスありがとうございます! 参考資料:下記URLのVB版コード ttp://www.atmarkit.co.jp/fdotnet/dotnettips/436bgworker/bgworker.html DataGridView については、 さんの指摘通り手順4に対し発生しました。 これについては ’Invoke を利用するためのおまじない?程度の理解です Delegate Sub SetDelegate() ’関数をフォーム側で実行させる Invoke(New SetDelegate(AddressOf 【関数名】)) ’処理内容を関数として作成 Sub 【関数名】() 処理内容 End Sub このような関数を作成し Invoke(New SetDelegate(AddressOf 【DataGridViewへの書き込み(手順4)】)) という形で対応できました。(この行には下記の致命的な問題あり) また、プログラムの開始時に Invoke(New SetDelegate(AddressOf 【Formのロック/プログレスバーなどの表示】)) 終了時に Invoke(New SetDelegate(AddressOf 【Formの開放/プログレスバーなどの非表示】)) を加え『フォームはすぐ表示され、処理は裏で行われる』部分については対応できました。 (・・・Formをロックすると処理中のメッセージもロックされ見えにくくなってしまいますし、 【処理中表示ラベル.Enabled = True】 では駄目なようなので、 Form はロックせず、ボタン などを個別ロックするしかないのかな?と考えています) : 543 [sage] 2011/01/06(木) 16:17:16 A進捗表示については、サンプルページの方法で動いたことは動きました。 ただ、問題が数点あり、現在それに取り組んでいる所です。 A:参考資料の System.Threading.Thread.Sleep(100) 部分に処理Yを全て入れると 参考資料のFor i As Integer = 1 To bgWorkerArg の部分で bgWorkerArg = 0 となり抜けてしまう。 B:そもそも資料の方法では、処理Yの手順3はFor文の『連続した細かい作業』なので対応できるが、 手順4のような『一つの大きな作業』の進捗を表示できない。(と、私が思っているだけかも) C:二度目以降 Invoke(New SetDelegate(AddressOf 【DataGridViewへの書き込み(手順4)】)) を通る際に、フリーズすることが頻繁にあります。 特徴として ・該当行にブレークポイントを挟むと発生しなくなる。 ・進捗表示部分をコメントアウトすると、発生しなくなる。 (現在は手順2・3のFor文部分のみ参考資料の方法で進捗を表示している) ・データ量が小さいCSV読み込み時は、発生しない。 このような症状と見受けられるので、現在はこれの原因を探っています。 凄まじい長さになってしまいましたが、ご意見などいただけるとありがたいです。 なお、未熟なもので内容に誤りがあったらごめんなさい。 : 543 [sage] 2011/01/06(木) 16:22:00 あああ誤記が・・・。 処理Xの手順3は『処理Yを起動』です。 AddHandler 【別フォーム】, AddressOf Me.Show AddHandler 【別フォーム】, AddressOf 【処理Y】 この形だと処理Yが走っている間はフォームが表示されなかったので・・・。 : デフォルトの名無しさん [sage] 2011/01/06(木) 16:36:02 1セルごとにデータをセットしていけばいい : 543 [sage] 2011/01/06(木) 20:03:47 さんアドバイスありがとうございます DataGridView.DataSource = DataSet1.TblAddrListDataTable を DataGridView.DataSource = DataSet1.【テーブル名】DataTable という形にし、Dataset側を毎回初期化することで1行ずつ渡す事は成功しました。 しかし、DataSorce 側に行を追加する機能が見つからず、現状では最後に渡した 行だけが表示されてしまいます。 DataGridView.DataSource『.Rows.Add』 のような機能を探しましたが見つからず、ここで引っかかっています。 もしかして、そもそも方向性が間違っていますか? : デフォルトの名無しさん [sage] 2011/01/06(木) 20:29:39 以前、VB2008でアプリを作ったんですが、その時はDPI設定が100%だったんですけど 今のPCはDPI設定が115%で、文字や画像の表示がずれてしまいます。 自動スケーリングの機能があるみたいなんですが、どこを操作すればよいのでしょうか? : デフォルトの名無しさん [sage] 2011/01/07(金) 09:12:02 もしそうしたいのならDataGridView.DataSource をDataTableにキャストしてやらにゃぁ… 'データソースがテーブルと決め打ちされているんであれば dim temp as datatable = directcast(DataGridView.DataSource) こんな感じだった気がするけど・・・ 今IDEないから構文忘れたが : デフォルトの名無しさん [sage] 2011/01/07(金) 10:19:30 環境 OS:XP SP2 VB:2010express(無料ver) SQLServer2008 PC1 にDBのmdfファイルがある。 PC1とPC2は同じLAN内にあり、PC1の共有ファイルに、VBで発行した windowsアプリケーションがある。 質問 PC2から PC1で発行したアプリケーションを実行すると DBのデータを参照できませんでした。 コードで c:\programfile\〜〜 と書いた場合、 PC1の cドライブを参照するのか PC2のcドライブを参照するのか どちらでしょうか? : デフォルトの名無しさん [sage] 2011/01/07(金) 10:33:56 そりゃローカルだろ・・・・・ \\pc名〜 で書かないといけないと思うんだけど・・・ それ以前にSQLSERVER使うんだったらそういう使い方よりは普通にDBにつないだ方が早いんじゃ? : デフォルトの名無しさん [sage] 2011/01/07(金) 10:49:05 ちょっとやり方違うと思うけど 例えばこんなやり方はどうだろ? ttp://www.dotup.org/uploda/www.dotup.org1344821.zip.html もう見てない可能性のが高いかw : 543 [sage] 2011/01/07(金) 15:19:45 返信遅れすいません、 さん、 さんの手段を調べつつ、別の作業に追われていました。 さん さん アドバイスありがとうございます。 1:DataSet 内に テーブルA を作成 2:DataGridView のプロパティ DataSource として テーブルA を指定 (DataGridView の列構造は、テーブルAと完全一致) 3:CSVの値を DataTable テーブルBに取り、様々な編集を加える 4:テーブルB を テーブル?C(宣言した型:DataSet1.【テーブルAの名前】DataTable)に代入 5:DataGridView.DataSource = テーブルC このような手段で現在は処理を行っています。いっそソース全文載せた方がいいですかね・・・長いですが。 テーブルCを一行取得するごとに手順5を行い、その後テーブルCを初期化する事で、手順5の 段階で常に最新行を取得することができました。 ただ、この場合手順5を行うたびに最新行で上書きされてしまい、最終的な表示が1行のみとなってしまいます。 (初期化を行わないと 1行⇒2行⇒3行・・・・⇒全行)となり、全行最後に代入するならそれ以外の工程が完全に 無駄ですし、そもそもの目的である『全行コピーのような単体(非ループ)の進捗を現す』ことになりません。 現在詰まっているのは、この部分です。 : 543 [sage] 2011/01/07(金) 15:21:58 >> 558 さん directcast は型の強制変換と認識しているのですが、この場合ですとテーブルCを DataTable に変換するという 解釈で間違っていませんか? Dim テーブルD As DataTable = directcast(テーブルC , DataTable) DataGridView.DataSource = テーブルD この形では上手くいかなかったので、他にも色々調べましたが上手い手段が見つかりませんでした。 >> 561 さん 参考URLを見ましたが、パスワードがかかっているようで落とせませんでした。すいません。 (追記) の最も致命的な問題Cについて 相変わらず意味不明で未解決ですが ttp://www.pctec.2chmatome.info/?p=767 ここの 393 さんと似た症状だったのでビルドしてみたら、完成品では全く発生しませんでした。 原因不明なのが非常に気がかりですが、一応表面上は解決です。 : デフォルトの名無しさん [sage] 2011/01/07(金) 15:32:17 むしろこちらがすみません。 ごめんパス書き忘れてた PASS:vb : 543 [sage] 2011/01/07(金) 15:46:48 なにこれすごい・・・。 ありがとうございます!読解する作業に勤しみます!! : 559 [sage] 2011/01/07(金) 20:19:16 自宅からすいません ありがとうございます。 普通のつなぎかたがわかりませんが、複数台でアプリを使いたかったので、 PC1以外での動作確認をするために、行いました。 : デフォルトの名無しさん [] 2011/01/08(土) 18:56:59 皆様!たすけてください。 DataGridView関連なのですが、 起動時にDataGridViewをアクティブにしているのですが、 Form.Load イベントでImeModeをonにしているのですが、、 Windows Vista では日本語入力になり、 Windows7 ではなりません。 くぐっても解決方法が見つかりませんでした。 どなたかアドバイスを宜しくお願いします。 : 567 [] 2011/01/08(土) 18:59:01 すみません。 Visual Basic 2008 Pro です。 : デフォルトの名無しさん [sage] 2011/01/09(日) 00:30:51 普通てのはDBサーバとしてSQLSERVERを使うことじゃないかな? ファイルを共有して使うようなやり方ではないて事。 ただ、複数でやる場合クライアントOのライセンスの問題もあるので注意が必要 それはムとは関係ない別件か : デフォルトの名無しさん [] 2011/01/09(日) 17:22:04 TextBoxを右クリックした時に表示されるコンテキストメニューに 右から左に読むやUnicode制御文字の表示というメニューがありますが、 これらを選択できないようにする方法はあるでしょうか? TextBoxのContextMenuプロパティを見てもNothingとなっており、 どこを修正していいか分かりません。 やはり自作するしかないのでしょうか? : デフォルトの名無しさん [sage] 2011/01/09(日) 17:51:16 dobonさんのところに解答があるよ : デフォルトの名無しさん [sage] 2011/01/09(日) 19:16:02 ありがとうございます。 コンテキストメニュー自体を表示しないようにする方法は見つかったのですが、 コンテキストメニュー内の一部を選択できないようにする方法は見つかりませんでした。 よろしければ詳しい場所を教えていただけませんか? : デフォルトの名無しさん [sage] 2011/01/09(日) 22:08:07 環境 OS:XP SP2 VB:2010express(無料ver) SQLServer2008 PC1 にDBのmdfファイルがある。 PC1でデバッグしていますが、 接続文字列が、 c:\programfile〜 だと接続できるのですが \\pc1\c$\programfile〜 とすると接続できません。 TCP/IPは有効 SQLサーバーのリモート接続は許可 ファイヤーウォールはポート開放済み(現在無効にしてます) 書き方がまずいのか、サーバーになってるPC1からは接続できないのか 設定が何かたりないのか、誰かエスパーお願いします インスタンス名も .\インスタンス名 だといけますが \\PC1\インスタンス名,ポート番号 にすると、接続できなくなります。 こちらについても誰かエスパーお願いします。 : デフォルトの名無しさん [sage] 2011/01/10(月) 15:12:53 ttp://msdn.microsoft.com/ja-jp/library/xf8k2h6a.aspx : 543 [sage] 2011/01/11(火) 11:08:44 休日を挟んだため遅くなりましたが、お陰様で問題が解決したのでお礼を。 サンプルを組んで下さるとか感激しました。 現在参考にしているコードは巨大すぎ、私のスキルでは必要な情報を探すことが非常に困難でしたが 561さんの洗練されたコードを見て、とても理解の助けとなりました。 質問部分以外でも『Useing』等の使い方など参考になる点が多く、ぜひ味わいつくそうと思います。 動け!動けよ!!と半ギレ状態でキーボードを叩く作業から開放されました。 結局 ・CSVの取り込みとDataGridViewへの書き込みは BackgroundWorker にお願いする ・元フォームの全コントロールへのEnable設定により、ロックとロック解除を行う ・更新状況は ProgressBar 及び 進捗状況を表すラベル.Update() による表記で現す ・DataTable 上に CSV データを書き込む際は、Castをループさせると便利。 以上により 『フォームを先に表示し、裏で重い作業を行う。かつ、その進捗状況を随時表示する。』 という目的が達成されました。 アドバイスくださった方ありがとうございます。 聞ける相手がおらず困っていたため、とても助かりました。 : デフォルトの名無しさん [sage] 2011/01/11(火) 11:20:10 PGはどうかしらんが、少なくともスポークスマンの才能はあると思う : デフォルトの名無しさん [sage] 2011/01/12(水) 04:09:27 環境はOSはXPのsp3、VB2008EEです 正規表現を使い、二行以上の文章から検索し、抽出したいと思いました 一度変数に入れて改行を置換したらできたのですが、こういう時は他にやり方はありますか? : デフォルトの名無しさん [sage] 2011/01/12(水) 13:06:56 >改行を置換したら この辺が意味不明 二行以上の文章からどの部分を抽出すればいいの? : デフォルトの名無しさん [sage] 2011/01/12(水) 23:53:51 メモ帳にさえついてるんだから消す必要ないだろ : デフォルトの名無しさん [sage] 2011/01/13(木) 11:00:24 返事が遅くなってすいません Sub Main() Dim hoge As String = "abc" & vbNewLine & "de" hoge = System.Text.RegularExpressions.Regex.Replace(hoge, "b.*d", "ghj") Dim moga As String = "abcde" moga = System.Text.RegularExpressions.Regex.Replace(moga, "b.*d", "qwert") End Sub このような感じです。hogeだとうまく行くのですが、mogaだとうまくいきません。 作っているプログラムは、ブラウザのNGワードなんです(練習用に作っています)。 "氏ね"をNGにしたいとき、"氏"と"ね"の行がまたがってるとうまく置換出来ませんでした。 : デフォルトの名無しさん [sage] 2011/01/13(木) 11:21:34 RegexOptions.SingleLine : デフォルトの名無しさん [sage] 2011/01/13(木) 12:16:59 いくら考えても上のif文でtrueにならない理由がわかりません、助けてください・・・ Substringは一文字ずつ取り出すといくつかのサイトに書いて会ったのですが、 このコードだと1バイトずつ見てる感じがします。私が何を間違えてるんでしょうか それとも第一引数は文字数、第二引数はバイト数ということなんでしょうか? Sub Main() Dim khonbun As String = vbNewLine If khonbun.Substring(0, 1) = vbNewLine Then '偽 MsgBox("vbNewLine") End If If khonbun.Substring(0, 1) = vbCr Then '真 MsgBox("vbCr") End If If khonbun.Substring(0) = vbNewLine Then '真 MsgBox("vbNewLine") End If End Sub : デフォルトの名無しさん [sage] 2011/01/13(木) 12:20:56 vbNewLine = vbCrLf = Chr(13)+Chr(10) = キャリッジリターンとラインフィードの二文字 : デフォルトの名無しさん [sage] 2011/01/13(木) 13:04:49 うおおおおすべての疑問が解けました!!ありがとうございました! : デフォルトの名無しさん [sage] 2011/01/13(木) 16:32:21 【困っていること】 @某DLLファイルが参照する辞書ファイル(.DEC)の指定方法 もしくは参考URLを理解する上で有効な書籍など。 参考URL ttp://codezine.jp/article/detail/444?p=1 ADataGridViewへの『追記』方法 【詳細&経緯】 @某DLLファイル内の関数α(値Xを代入すると、辞書ファイルβからXに対応する値Yを返す) を使う際に「新辞書と旧辞書を同時に使いたい」という指定がありました。 DLLファイルの中身をいじることは不可能そうなので、フォルダを辞書別に用意して プログラムで呼び出すDLLのパスを指定することはできないかと考えています。 (DLLが操作できないなら、参照する辞書ファイル名βもいじれないと予想。フォルダを辞書 ごとに作成し、フォルダにDLLと辞書を一対ずつ用意、参照する予定。) (作成元メーカー曰く、新辞書は旧辞書と同名で更新の際には上書きする仕様らしい。) 一応参考URLは発見したのですが、ちょっと私のレベルでは意味不明なので、理解するうえで 必要な知識などアドバイスいただければうれしいです。 : デフォルトの名無しさん [sage] 2011/01/13(木) 16:33:33 A現在は 1:CSVなりDBの中身を『空の』 DataTable に保存。 2:上記 DataTable を 『空の』 DataSet.TblAddrListDataTable に1行ずつ保存。 3:DataGridView.DataSource = 上記 DataSet.TblAddrListDataTable で表示を変更する。 という手法によって DataGridView の中身を表示してています。 ただ、この方法だと手順2を行うたびに表示内容が更新されてしまうので、手順2を 『現在の DataGridView の中身をコピーした DataSet に対して、追加で』 一行ずつ保存。 とできないものかと考えています。 (扱うデータ量が多大なので、なるべく処理が早いほうが望ましい。) そもそも発想が間違っている、もっと良い手段があるなどアドバイス頂けると嬉しいです。 よろしくおねがいします。 : デフォルトの名無しさん [sage] 2011/01/13(木) 16:41:14 こないだの人? @むしろメーカーにといあわせたほうがいいんじゃない? そう言う使い方を想定していない場合、ライセンス違反になる可能性もあるだろうから Aはわけわかめ : デフォルトの名無しさん [sage] 2011/01/13(木) 16:49:26 DataGridViewは捨てて自前で描画すればいいのでは? いくらでも早くできるよ : デフォルトの名無しさん [sage] 2011/01/13(木) 17:00:02 @はここを読めばおk ttp://dobon.net/vb/dotnet/links/extractarchive.html : 585 [sage] 2011/01/13(木) 19:37:29 ものすごく早いレスありがとうございます。 度々お世話になります、こないだの人です。 @については問い合わせてみたところ、技術の方が調べてくれました。結果 『参照する辞書ファイルのパスを指定する』 という素晴らしい関数が存在することを知り、解決です。 ・・・さっさとサポートに電話しろって話でした、ありがとうございます。 Aについても Dim DataSet As New DataSet1.TableName If DataGridView1.RowCount > 0 Then DataSet = DataGridView1.DataSource Else 'なにもしない End If 以下、DataSet.AddTableName = (追加したい行) を行数回繰り返し DataGridView1.DataSource = DataSet これでOKでした、お騒がせしてすみません。 : 585 [sage] 2011/01/13(木) 19:39:07 アドバイスありがとうございます。 解決はしましたが、後学のためにキーワードだけでも落としていってもらえると とても嬉しいです。 DataGridView 以外に描画方法を知らないだけなので・・・。 実はそこも調査中に見つけて途中で良く判らなくなって困ってたURLの一つでした・・・。 でも、これが知識として基本になっているようですし、まずはそのURLから理解できるよう 読み進めていこうと思います。 : デフォルトの名無しさん [sage] 2011/01/14(金) 01:15:40 使用されてないローカル変数です ってのを言ってこないようにするには : デフォルトの名無しさん [sage] 2011/01/14(金) 09:01:38 使うか初期値入れれば? 宣言して初期値が入ってないものを条件分岐などで使うとそう言われるね dim i as integer if i== 0 then dim i as integer = 0 なら怒られないんじゃね? : デフォルトの名無しさん [sage] 2011/01/14(金) 15:14:15 >宣言して初期値が入ってないものを条件分岐などで使うとそう言われるね それは元々言われないだろ : デフォルトの名無しさん [sage] 2011/01/14(金) 17:09:18 ごめん、C#でしかも未割当の変数で怒られる 疲れてるな俺 : デフォルトの名無しさん [sage] 2011/01/14(金) 18:07:26 警告を抑止する方法があったはずだけど、詳しくはわすれた Visual Studioのスレで聞け : デフォルトの名無しさん [sage] 2011/01/14(金) 20:47:54 >宣言して初期値が入ってないものを条件分岐などで使うとそう言われるね 俺もあったと記憶してたが…違ったかな? : デフォルトの名無しさん [sage] 2011/01/14(金) 21:40:38 型によっては割り当て前変数使用の警告が出るな : デフォルトの名無しさん [sage] 2011/01/15(土) 00:21:18 プロジェクトのプロパティの「コンパイル」タブで「未使用のローカル変数」の 通知を「なし」にすればいいだけじゃないの? : デフォルトの名無しさん [sage] 2011/01/15(土) 06:28:27 次の数式は、いずれも "a Mod b" と同じ意味になります。 a - (b * (a \ b)) a - (b * Fix(a / b)) ↑がなぜ おなじ なのかわけわかめ : デフォルトの名無しさん [sage] 2011/01/15(土) 18:18:29 a \ b と Fix(a / b) が同じなのがわからないのか? a Mod b が下の二つの式で計算できるのがわからないのか? どっちにしても演算子と関数の意味を理解できればあとは算数の世界なんだが : デフォルトの名無しさん [sage] 2011/01/15(土) 18:39:24 負の数についても同じなんだっけ? Intってやつもあるよね : デフォルトの名無しさん [sage] 2011/01/15(土) 19:42:09 そもそも余りってのはなんなのか : デフォルトの名無しさん [sage] 2011/01/15(土) 19:56:24 余り=ぼっち : デフォルトの名無しさん [sage] 2011/01/15(土) 20:06:54 余り=やればできる子 : デフォルトの名無しさん [sage] 2011/01/15(土) 20:12:59 やってできないから余ってんだよ : デフォルトの名無しさん [sage] 2011/01/15(土) 20:24:42 まだチャンスはある : デフォルトの名無しさん [sage] 2011/01/15(土) 20:31:30 そんなものはない : デフォルトの名無しさん [sage] 2011/01/21(金) 14:16:28 二つ手に負えない問題が出てきたので、ヒントをいただけると嬉しいです。 【困ってること】 ○「種類 'System.OutOfMemoryException' の例外がスローされました。」というエラーの発生。 ○Try & Catch を用いた場合にファイルが閉じられない。 【やりたいこと】 ○DataGridView に表示された一覧表のうち 『選択した行』の『特定の列(予め指定)』のみをCSVに書き出す。 【やっていること】 長すぎるため次レスで投稿 【詳細】 下記プログラムで、一応動きはしました。 ただ、データが10万件とかあると凄く心許ないです。20万件とかあるとほぼ確実にエラー吐きます。 20万件だと進捗チェックαの95%完了前後でエラー、10万件でもβの98%前後で稀にエラー。 安定性を高めるため、メモリに優しい改善案を募集しています。(原因をメモリが溢れているためと想定) また、手順1〜11は全て Try 内で行われており、エラー時は Catch に飛ぶのですが 手順11前に Catch に飛んだ場合、CSVが開きっぱなしになってしまいます。 (Dim sr As New System.IO.StreamWriter(csvPath, False, enc)で宣言、sr.close() で閉じていますが Catch 内に sr.close() と書いても無効でした・・・。) エラー時でもきちんと閉じる方法を教えていただきたいです。 宜しくお願いします。 : デフォルトの名無しさん [sage] 2011/01/21(金) 14:18:02 【やっていること】 (変数の中身については、10行の DataGridView の奇数行を選択した場合として例示) 0:書き込み先CSVを指定 (以下 bgWorker) 1:指定されたCSVを開く。 2:全行をループさせ、選択されていた場合行番号を変数 X に確保、","を繋げる( X = ,1,3,5,7,9) 3:X の最初の一文字目(不要な "," )を削除し、文字列配列である XX に代入する。(XX() = 1/3/5/7/9) ★進捗チェックα (大ループ(列ごと)) 4:For Each Y In XX() によって、XX(選択行の個数)分ループさせる。(選択行) 5:DataGridView の DataSorce に対し、 DataSorce.Rows(Y) で書き込むべき列を取得 6:取得行に対し、さらに列数Z回ループを行う。(カウンタは i とする) (小ループ(セルごと)) 7:DataSorce.Columns(i).Caption にて、列ヘッダ HeaderName を取得。 8:HeaderName を条件に Select 文で分岐、『書き出すべき列か』を判定。 9:書き込む場合、 "," & row(i).ToString を変数 XXX に追記。列項目に編集が必要な場合は、適宜行う。 (小ループ完了) 10:XXX の最初の一文字目(不要な "," )を削除し、CSVに XXX の内容および改行を書き込む。 ★進捗チェックβ (大ループ完了) 11:CSVを閉じる。 : デフォルトの名無しさん [sage] 2011/01/21(金) 15:57:38 つうか、また君かwwww 先に書き出す列をどっかに保持ってから行ごとに処理していけばループの回数は減るんじゃない? 晒せるならソースとデータ(データを差し支えないように置換するなんかして)晒した方が早いんじゃないか? : デフォルトの名無しさん [sage] 2011/01/21(金) 16:52:48 処理2と3は不要だろ 処理4で全行ループさせて、該当行かどうかチェックすればいいだけ 最後にまとめてファイルに書くんじゃなくて、行単位で書き出せ 書きだす内容を変数にためると、サイズチェックしないといずれ入りきらなくなる : デフォルトの名無しさん [sage] 2011/01/21(金) 17:51:23 もうコテハンな乗れよww : デフォルトの名無しさん [sage] 2011/01/21(金) 18:56:46 コテハン名付けてやろうぜ : 609 [sage] 2011/01/21(金) 19:14:43 三度目ですねお世話になります。 早速アドバイスありがとうございます。 A:DataGridView のデータを取捨選択して書き込み用 DataTable に取る ⇒DataTable の中身をCSVに直接書き出す B:ループカウンタあたりを作成し、DataGridView.Rows(カウンタ).Selected で判別 ⇒True のみ手順5以下を行う こう解釈してただいまソースと格闘中です。 うーん・・・。スレ人口?的にその方が判りやすいですかねいっそ。 自分なら「人恋し」とか付けそうですw : デフォルトの名無しさん [sage] 2011/01/21(金) 19:26:19 StreamReaderやStreamWriterをUsingで使やいいんでね? : 609 [sage] 2011/01/21(金) 20:55:52 アドバイスありがとうございます。 ・・・そういえばそんな便利なものありましたね、忘れてました。 折角以前 で素晴らしいサンプルを貰ったのに。OTZ ・・・以前ついでに コミュ障の気があるので、実は物凄く嬉しかったです。 雑談でレス数を延ばすのが申し訳なかったから自重しただけなんですよ! : 609 [sage] 2011/01/21(金) 21:06:24 お陰様で問題が解決しました、ありがとうございます。 困りごと@ 今回は の手法を使いました。 を試していて「DataTable.newrow = DataGridView.rows(行番号)」と書いたところ 型が違うと怒られてシフトしましたごめんなさい。 結局 ・手順4の行ループの直後にカウンタ(cnt)を設置 ・『if DataGridView.Rows(cnt).Selected = true のみ処理を行う』指定(手順5の位置) ・Else までの間に手順6〜10を行う ・End if の後ろでカウントアップと進捗チェックを行う。 この手順で動かしたところ、CPU/メモリ共に使用率は50%前後をキープ。 安心して動かせる(放置できる)ようになりました。 困りごとA Dim sr As New System.IO.StreamWriter(csvPath, False, enc) の行を Using sr As New System.IO.StreamWriter(csvPath, False, enc) で宣言 手順11の位置に End Using を入れると、エラー時にもきちんとファイルを閉じてくれました。 こっちも明らかに11飛ばして Catch に直行してるのに何故・・・。 お世話になりました、ありがとうございます。 聞く相手の居ない環境なので、真面目な話このスレの人が師匠です。 : デフォルトの名無しさん [sage] 2011/01/23(日) 14:16:27 帳票を作成したいんだけど、コードで少しずつ調整するんじゃなくて、 視覚的にリストを配置したり、ラベルを置いたりすることって無理? 検索すると 有料ソフトばっかヒットするしやたら高いし・・・ : デフォルトの名無しさん [sage] 2011/01/23(日) 14:55:15 バージョンは? Crystal Reportsじゃだめなの? : 619 [sage] 2011/01/23(日) 15:26:05 サンクス ちょっと頑張ってみる ちなみにVB2010express(新しくて無料の奴) 日本語版が最近でたみたいだけど、導入方法載ってるページがないっす : デフォルトの名無しさん [sage] 2011/01/23(日) 20:55:23 最近登場したUsingとは? : デフォルトの名無しさん [sage] 2011/01/23(日) 21:00:17 最近でもないだろ・・・ : デフォルトの名無しさん [sage] 2011/01/25(火) 14:27:01 C#はpublic static classとできますが VBはpublic shared classとするとエラーが出ます VBの対応物はないんですか? : デフォルトの名無しさん [sage] 2011/01/25(火) 14:38:59 > 有効期間 > Visual Basic は静的クラスをサポートしません。 > 静的クラスと同等の機能はモジュールで実現されます。 > 詳細については、「Module ステートメント」を参照してください。 : デフォルトの名無しさん [sage] 2011/01/25(火) 15:03:28 なるほど、モジュールなのか、ありがとうございますた : デフォルトの名無しさん [sage] 2011/01/25(火) 21:33:18 モジュールは旧VBから引き継いだレガシーだから使わない方がいいよ。 VBでは静的クラスはコンストラクタをprivateにして実装するのが普通。 : デフォルトの名無しさん [sage] 2011/01/25(火) 21:39:19 MustInherit+Abstract(無理だけど)にしないとC#から正しく認識できる静的クラスにはならないよ : デフォルトの名無しさん [sage] 2011/01/25(火) 21:39:24 拡張メソッド涙目 : デフォルトの名無しさん [sage] 2011/01/25(火) 21:40:10 間違えた MustInherit+NonInheritable : デフォルトの名無しさん [sage] 2011/01/25(火) 21:53:57 を実際試してみるとエラーでした moduleをコンパイルしてReflectorすると internal sealed class Aや .class private auto ansi sealed A って出ますね 普通のクラス+shared sub newで動きました、ありがとう : デフォルトの名無しさん [sage] 2011/01/27(木) 13:20:14 バインドしていないDataGridViewで、列を作って DefaultCellStyle.Format を指定しても反映されないのは仕様なんでしょうか。 対応方法ってないでしょうか。 : デフォルトの名無しさん [sage] 2011/01/27(木) 15:56:04 バインドしてないんだったら値を設定する前にString.Formatしてやればいいだけのことなんじゃないでしょうか : デフォルトの名無しさん [sage] 2011/01/28(金) 00:51:32 Me.DataGridView1.Columns(0).DefaultCellStyle.Format = "#,0" Me.DataGridView1.Rows(0).Cells(0).Value = 12345D でできる。 書式にあわないデータを設定しているとかじゃないの? Me.DataGridView1.Columns(0).DefaultCellStyle.Format = "#,0" Me.DataGridView1.Rows(0).Cells(0).Value = "12345" ' ←数値用の書式設定なのに文字列を設定してる とかだとダメ。 : デフォルトの名無しさん [sage] 2011/01/29(土) 20:08:34 TableAdapterって 正規化されていないDBを受け取って 正規化されたDataSetやDataTableを返すような用途に使えますか? : デフォルトの名無しさん [] 2011/02/01(火) 11:10:13 ExcelシートのユーザーインターフェースをVBのフォーム上にロード する方法ってどうやればいいんでしょうか? SPREDやGridを使わずにExcelの機能をロードして使えないのかな? って事です。 単純にコントロールとして追加できらと Dim xlSheets As Microsoft.Office.Interop.New Excel.Sheets Controls.Add(xlSheets) みたいな感じやりましたが当然のように例外でます。 VSTOソリューションで近い事ができそうなんだけど、あれだとEcxel ブックに実装って感じですよね。 あくまでWindowsフォームアプリにExcelのユーザインターフェース だけ引っ張ってくるのを望んでいます。 情報持ってる方お願いします。 : デフォルトの名無しさん [sage] 2011/02/01(火) 11:25:50 まあ無理だろね : デフォルトの名無しさん [sage] 2011/02/01(火) 11:54:12 WebBrowserでNavigateする手は一応ある Excelの設定によっちゃダウンロードしちゃうとかいろいろ問題はあるが : デフォルトの名無しさん [sage] 2011/02/01(火) 12:52:52 おれもExcelと同等のスプレッドシート製品かExcelを取り込む方法知りたい 前調べた感じだと無理そうだったけど の方法だとExcel固まっちゃうんだよね : デフォルトの名無しさん [sage] 2011/02/01(火) 12:58:10 むかしはOLEオブジェクトってのがあったんだが、なくなったか? : デフォルトの名無しさん [sage] 2011/02/01(火) 13:06:58 [INFO] Visual Studio .NET の Windows フォームに OLE コンテナ コントロールがない ttp://support.microsoft.com/kb/304562 Visual Basic .NET で、WebBrowser コントロールを使用して Office ドキュメントを開く方法 ttp://support.microsoft.com/kb/304643 : デフォルトの名無しさん [sage] 2011/02/01(火) 19:17:55 AxSOActiveXってどうやって使うん? : デフォルトの名無しさん [sage] 2011/02/01(火) 23:30:34 dim cn as NpgsqlConnection = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=test;Password=test;Database=a") cn.Open() cn.Close() これだけのプログラムを実行して、postgresqlのログに could not receive data from client: No connection could be made because the target machine actively refused it. unexpected EOF on client connection というエラーが出るんですが何ででしょうか このエラーを無視してDataTableにAdapter経由で値をFillすると何故かDBの中身は表示出来ます ただ、もう一つ接続を用意してNpgsqlCommandBuilderを使って値を書き換えるコードを書いても データは更新されませんでした : デフォルトの名無しさん [sage] 2011/02/02(水) 00:17:12 データソースにデータテーブルを指定しているDataGridView上で データテーブル内のデータを直接書き換えた直後、DataGridViewの 表示が書き換えた内容にならない場合があります。 表示が出来てないだけで、スクロールなどして対象セルを表示しなおさせると きちんと書き換えた内容になっているのですが、 ちょっとなんとかしたいです。 指定セルの表示を更新させるとか、そういった対処法は 何かないでしょうか? : 人恋し [sage] 2011/02/02(水) 00:42:47 【やりたい事】 テーブルA:No,固有値,値1,値2 テーブルB:No,固有値,値B テーブルC:No,固有値,値C テーブルD:No,固有値,値D このような4つのテーブルを結合して テーブルX:No,固有値,値1,値2,テーブルB.固有値,テーブルC.固有値,テーブルD.固有値 という項目数6のテーブルXを DataTable で作成、DataSet にセットしようとしています。 なお、DataSet 上では No はキーとして設定されており、重複はNGです。 また、固有値は全テーブルで共有しており、固有値に対して値1,値2,値BCDが存在します。 (ある固有値は、テーブルAのみに存在。別の固有値は、全テーブルに存在など。) データベースは Oracle を使用しています。 : 人恋し [sage] 2011/02/02(水) 00:46:29 【困っていること】 SELECT A全部とB/C/Dの固有値 FROM テーブルA LEFT JOIN テーブルB ON テーブルA.固有値 = テーブルB.固有値 LEFT JOIN テーブルB ON テーブルA.固有値 = テーブルC.固有値 LEFT JOIN テーブルB ON テーブルA.固有値 = テーブルD.固有値 WHERE あれこれ という文を書いた時、取得できるテーブルは テーブルX: No1,固有値X,値1,値2,テーブルB.固有値X,DBNull,DBNull No2,固有値Y,値1,値2,テーブルB.固有値Y,テーブルC.固有値Y,DBNull No2,固有値Y,値1,値2,テーブルB.固有値Y,テーブルC.固有値Y,DBNull No3,固有値Z,値1,値2,テーブルB.固有値Z,テーブルC.固有値Z,テーブルD.固有値Z No3,固有値Z,値1,値2,テーブルB.固有値Z,テーブルC.固有値Z,テーブルD.固有値Z No3,固有値Z,値1,値2,テーブルB.固有値Z,テーブルC.固有値Z,テーブルD.固有値Z と、複数テーブルに存在するデータが分裂してしまいます。 このまま書き込むと3行目で「キーが重複していますよ」と怒られるのですが、 DataTable の行を『重複したものは、一つ残して削除する』といった便利な SQLの命令文は存在しないものかと困っています。 命令文、対処法などアドバイスいただけると嬉しいです。 : デフォルトの名無しさん [sage] 2011/02/02(水) 01:57:24 UpdateとかRefreshとかでできないかな? とか想像で言ってみる A・B・C・Dがどういうのかよくわかんない キーはNo?固有値? 固有値で結合してるなら固有値がキーな気もするけど、DataSetはNoがキーなんだよね そもそも固有値がキーなら、結合しても分裂しないか キーが同じテーブルを結合するなら分裂しないだろうから、 そもそもテーブル構成自体がおかしいんじゃないかなー 結果セットの重複を消したいだけなら、SQLのSELECT句ににdistinctを書けばいいけど でもやっぱり問題はそこじゃない気がする : デフォルトの名無しさん [sage] 2011/02/02(水) 03:26:30 VB.NETまったく関係ない質問だな そのSQLの3行目と4行目のテーブルBはCとDの間違いだよな? その結果が本当なら、テーブルAに No2,固有値Y や No3,固有値Z の行が複数あるんだが 出力でNoをキーにしたいなら、複数行をどうまとめる気なんだ? データセットのキーをNoにするのが理解できん 固有値に対して値1,値2,値BCDが存在 なんだから、固有値をキーにするべきじゃないのか? 固有値をキーにするならまず重複のない固有値の一覧つくって、それにテーブルA-Dをouter joinすればいい まあどっちにしろテーブル設計とSQLの問題だから、これ以上はDB関係の板できけ : デフォルトの名無しさん [sage] 2011/02/02(水) 05:07:30 ねぇねぇみんな、どうしてC#やらないんですか? VB.NETとか終わコンでしょww : デフォルトの名無しさん [sage] 2011/02/02(水) 07:39:47 ここはVB.NETスレだから SQLの質問はこっちで SQL質疑応答スレ 10問目 ttp://hibari.2ch.net/test/read.cgi/db/1274791771/ : デフォルトの名無しさん [sage] 2011/02/02(水) 15:08:21 DISTINCTすればいいよ : デフォルトの名無しさん [sage] 2011/02/03(木) 13:19:55 PrintDocumentを使った印刷で 全ページに総ページ数を印字したい場合って、 PrintPageを発生させる前に 事前に総ページ数を数えておくしかやり方はないでしょうか? PrintPageで印字時に総ページを示すタグの様な物を 印字しておいて、最後に全ページのタグを置き換え みたいな事を妄想してましたが、そんな方法は可能ですか? : デフォルトの名無しさん [sage] 2011/02/03(木) 14:06:07 最後まで印刷終わった後でPagesつかっていじれへんの? : デフォルトの名無しさん [sage] 2011/02/03(木) 14:56:57 すみません、Pagesというのが判らないです。 どうやって呼び出すんでしょうか? : デフォルトの名無しさん [sage] 2011/02/03(木) 15:35:36 SP3とかインストールの問題と同じ可能性があるからそっち調べてみたら幸せになれるかも : デフォルトの名無しさん [sage] 2011/02/03(木) 15:36:16 ごめん、誤爆した : 人恋し [sage] 2011/02/03(木) 22:41:03 返信が遅れてすいません、体調(精神?)不良で倒れてました。 お陰さまで解決です、DISTINCT が私の探していた魔法の言葉でした。 そして皆さまスレ違い失礼しました。 テーブルAとDataSetのキーはNo テーブルBCDのキーは固有値ですね。 固有値はBCD各テーブル間ではユニークですが、複数テーブルに同じ固有値が存在する 可能性があり得る、という状況です。 説明下手ですいません、問題はそこでした。 SQLは誤字ですごめんなさい。 まさにその「複数行をどうやって纏めるんだ?」という部分で詰んでました。 適切なスレの紹介ありがとうございます。 それが答えでしたありがとうございます。 毎回迅速かつ完璧なアドバイスありがとうございます。 : デフォルトの名無しさん [sage] 2011/02/04(金) 04:30:04 スレ違いなんであんまりあれなんだが テーブルAの主キーがNoで結合結果に同じNoが2行でるには、 結合条件でテーブルAの1行に対して相手のテーブルが2行必要 結合条件が相手テーブルの主キーならこれはあり得ない Distinctなんてする必要ない。説明のどこかに間違いがある : 人恋し [sage] 2011/02/05(土) 17:30:59 ありがとうございます。 まずキー設定が間違ってました、Aは固有値(Noはユニーク)、BCDはNoがキーですごめんなさい。 色々と残念すぎる質問でごめんなさい。 : デフォルトの名無しさん [sage] 2011/02/06(日) 03:56:07 フォーム上でクリックした点の座標を配列に格納するために、MouseClickのイベントプロシージャで x(n)=e.Xと書いたのですが、NullReferenceExceptionエラーが出てしまいます。 eクラスの使い方自体よく分からない上に VB2002の本を読みながらVB2010を使っているので…アドバイスお願いします。 : デフォルトの名無しさん [sage] 2011/02/06(日) 09:05:13 根拠もなくeを疑う前に、デバッガでブレークポイント張って何がNothingなのか確認すれ : デフォルトの名無しさん [sage] 2011/02/06(日) 09:26:58 このスレに質問で妥当かどうか迷っていますが、間違っていたらご指摘の程 以前VB(DOS版〜)を使っていました。確かVB5前後まで 現在見るとVB.NETとなっていますが、違いを説明しているページ・書籍等ありますか? またVBナンバーを辞めた理由をご存知の方は理由を教えてください。 プログラムと言うより言語の歴史で恐縮ですが、1つよろしくお願いします : デフォルトの名無しさん [sage] 2011/02/06(日) 09:35:29 ちょっとステートメントの書き方が似てるだけの別言語だから 違いとか言われても困る と言いつつ言語バージョンは引き継いでるんだけどな。今VB10。開発環境の名前にはなってないけど : デフォルトの名無しさん [sage] 2011/02/06(日) 09:35:54 名前が変わったのは .net frameworkというC#,VB,J#,F#他多数の言語で共通のライブラリが使える基盤に移行したから そのため文法は似ているもののVB6以前とは互換性も無い : デフォルトの名無しさん [sage] 2011/02/06(日) 10:14:45 ,664 なるほど、ありがとう ちょっと凝った事遣り出すと「おろ?」って感じなのね イベントドリブンな構造は窓の仕組み上変えようがないだろうが ライブラリまわりやコンポーネント関係流用は要検討か… 逆にC#やJ#との親和性は良くなったのかな? : >>660 [sage] 2011/02/06(日) 10:27:06 学びはじめたばかりでブレークポイントも知りませんでした。雑な質問かもしれませんがお付き合いお願いします。 1行目がx(n)=e.Xで、この行を実行するとe.Xに赤二重下線が引かれて「オブジェクト参照がオブジェクトインスタンスに 設定されていません」と出ます。 だからe.XがNullなのかなと思って質問したのですが、試しにx(n)=2に書き換えて実行しても2の下に下線が出て 同じ文章が出ます。x(n)はIntegerで定義していますし、2がNull扱いになる理由もまったく想像できず困っています。 : デフォルトの名無しさん [sage] 2011/02/06(日) 10:31:19 じゃあ、e.XがNothingかどうか調べてみようよ それがNothingじゃなかったら、x(n)の方があやしい : 667 [sage] 2011/02/06(日) 10:33:50 > > 設定されていません」と出ます。 > だからe.XがNullなのかなと思って質問したのですが、試しにx(n)=2に書き換えて実行しても2の下に下線が出て > 同じ文章が出ます。x(n)はIntegerで定義していますし、2がNull扱いになる理由もまったく想像できず困っています。 ちゃんと見てませんでしたすみません それなら、x(n)が何も参照してないんじゃないだろうか : デフォルトの名無しさん [sage] 2011/02/06(日) 11:05:30 デバッグ中は自動変数とかそういうウィンドウ出てるから (出てなかったらメニューのデバッグ>ウィンドウで) それでそれぞれの変数の状態を確認する : デフォルトの名無しさん [sage] 2011/02/06(日) 11:07:08 おっしゃるとおり配列の宣言をよく理解していなかっただけの単純なミスでした。恥ずかしい。 それよりブレークポイントや、おかしい値のチェックを知れたことのほうがずっと有益でした。 デバッグって大事ですね。どうにか初めてのプログラムが完成しそうです。 重ねて回答くださってありがとうございます。 : デフォルトの名無しさん [sage] 2011/02/06(日) 11:52:18 今日来たやつが偉そうに言うのもなんだが、こんなサイトを見つけた ttp://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard34.htm 「4.値型と参照型の違い」が今回のエラーの原因だと思われる 数多情報とみんなのアドバイスと熱意?で完成目指して頑張って欲しい : デフォルトの名無しさん [sage] 2011/02/07(月) 00:44:38 VBの関数辞典みたいな本でおススメ教えてくだぱい : デフォルトの名無しさん [sage] 2011/02/07(月) 00:48:23 MSDN with Google : デフォルトの名無しさん [sage] 2011/02/07(月) 00:48:35 MSDNライブラリ。 .NETライブラリのリファレンスは書籍化されてたはずだけど、 アホみたいに高いし東京都全部の電話帳ぐらいのボリュームがある。 : デフォルトの名無しさん [sage] 2011/02/07(月) 00:52:27 なるほど本は必要ないんですね。サンクス! : デフォルトの名無しさん [sage] 2011/02/07(月) 09:20:17 ヘルプにヘルプが必要だったりするけどな : デフォルトの名無しさん [sage] 2011/02/07(月) 09:27:58 おまえMSDNは10年ぶりか、力抜けよ : デフォルトの名無しさん [sage] 2011/02/07(月) 10:07:20 あれって全部機械翻訳なんでしょ : デフォルトの名無しさん [sage] 2011/02/07(月) 10:55:58 よほど評判が悪かったのか、最近のは人間が翻訳してないところは英語のまま : デフォルトの名無しさん [sage] 2011/02/07(月) 20:15:45 昔からMSDNライブラリに機械翻訳なんかないってw KBと勘違いしてるんじゃないの : デフォルトの名無しさん [sage] 2011/02/07(月) 20:18:44 ニッチなライブラリだと機械翻訳まんまなのはあるぞ : デフォルトの名無しさん [sage] 2011/02/07(月) 22:55:53 人間がやってるのか。 機械翻訳の割には普通の文書だなって思ってた。 : デフォルトの名無しさん [sage] 2011/02/08(火) 01:18:56 そのサイト罠に見えるぞ : デフォルトの名無しさん [sage] 2011/02/08(火) 01:44:29 値型と参照型についてなら、普通にMSDNでそれなりに説明している 次ページも一緒に見とくといい ttp://msdn.microsoft.com/ja-jp/library/dd314344.aspx : デフォルトの名無しさん [sage] 2011/02/08(火) 01:47:30 VB中学校は俺解釈と俺用語が多すぎ 書いてる人はそれなりにきちんと理解してはいるんだろうけど いかにもVBしかわからないの丸出しな感じ : デフォルトの名無しさん [sage] 2011/02/08(火) 02:42:45 ボタンにフォーカスがある状態でリターンキーを押しても ボタンが押されるアニメーション が起こらないんだけど : デフォルトの名無しさん [sage] 2011/02/08(火) 05:21:11 それに気付けば「卒業」する場なんじゃないかな。「中学校」だし。 俺はdobonがまだ理解不能な頃にけっこうお世話になったんで悪く言いたくなかったり。 : デフォルトの名無しさん [sage] 2011/02/08(火) 19:50:56 そんなに俺用語多かったっけあそこ。 あまり真面目に読んだことないけど、そこそこちゃんと分かってる人が書いてる印象だったが : デフォルトの名無しさん [sage] 2011/02/08(火) 21:03:25 オブジェクト指向が絡んでくると怪しくなる クラスが消滅するまで とか意味不明な言葉が出てくる : デフォルトの名無しさん [] 2011/02/08(火) 21:27:38 vb.net2010expressです form_main(スタートアップフォーム)にボタンが3つ有り 1つめはデータ入力フォームを、他の2つは検索用フォームを開く ようにしてあります。form_a,form_b,form_c ここで、入力フォームが開いているときは他のフォームは閉じておきたい また、検索用フォームが開いているときは他のフォームを閉じておきたいですが、どうすればいいのでしょう? Form_a_Loadプロシージャで If Form_b.Visible=true then Form_b.Close() End if としてみたんですが駄目でした : デフォルトの名無しさん [] 2011/02/08(火) 22:49:42 フォームはShowかShowDialogで制御するのが基本だからな : デフォルトの名無しさん [sage] 2011/02/08(火) 23:09:43 ShowDialogとHideな : デフォルトの名無しさん [sage] 2011/02/08(火) 23:12:58 しかしこたえるきになれないしつもんだな : デフォルトの名無しさん [sage] 2011/02/08(火) 23:18:21 と言っても、小難しい質問だと答えられないのが、このスレのクオリチー : デフォルトの名無しさん [sage] 2011/02/08(火) 23:22:53 単純にメインフォームから閉じるんじゃダメなの? 子フォームから閉じなきゃダメなの? : 690 [] 2011/02/08(火) 23:41:57 メインフォームの検索ボタンを押したときにでも勿論構いません。 検索フォームと入力フォームが同時に開いているのが嫌なだけですから。 : デフォルトの名無しさん [sage] 2011/02/08(火) 23:43:56 開いたフォームはメインフォームのフィールドに入れとけ : デフォルトの名無しさん [sage] 2011/02/09(水) 00:50:08 インスタンスとかイベントとか、基本的な概念が分かってなさそうだから 手を動かす前に勉強した方がいい段階かもしれんね。 : デフォルトの名無しさん [sage] 2011/02/09(水) 01:11:04 どうやればできるのかは知ってるけど、そんな糞設計をするようじゃ 迷惑でしかないから教えない : デフォルトの名無しさん [sage] 2011/02/09(水) 09:06:51 じゃぁこんな時はどんな風な遷移設計がいいのですか?せんせい!! : デフォルトの名無しさん [sage] 2011/02/09(水) 10:38:26 メールの送信時に 送信済みトレイに送信メールを残しておくために、 SmtpClientを使用せず MAPIを利用してメール送信プログラムを作成しています。 メーラーはOutlookExpressを使用しており、 複数メールアドレスがアカウントとして設定されています。 @yahoomail(既定) Ahotmail Aのアドレスからメールを送信したい時に MAPIにて AのログインID,パスワードにてログインを行い、 メールの送信を行うと 送信元アドレスが@の既定のアドレスのほうに なってしまいます。 既定のアカウントが@の状態でAでログインした場合に 送信元アドレスをAのアドレスををすることは できないのでしょうか? : デフォルトの名無しさん [sage] 2011/02/09(水) 10:50:20 OutlookExpress ってMAPIはサポートしてないような。 OutlookはMAPI対応だけど。 : デフォルトの名無しさん [sage] 2011/02/09(水) 10:58:25 expressでも簡易MAPIクライアントにはなれるみたい。は忘れてね。 : デフォルトの名無しさん [sage] 2011/02/09(水) 15:48:28 関数に静的クラスを渡すことってできないでしょうか? sub hoge(kurasu as class) end sub call hoge(kurasu) みたいに。 : デフォルトの名無しさん [sage] 2011/02/09(水) 15:55:15 渡してどうすんのさ 静的メンバで多態したいとか言うの? : デフォルトの名無しさん [sage] 2011/02/09(水) 16:19:20 やめときます。 : デフォルトの名無しさん [] 2011/02/09(水) 20:33:32 いいかげん、なんの行動もしてないくせにやたら高飛車な キチガイでドボンだのの解説サイトに粘着してるカス() を何とかしてほしいわ : デフォルトの名無しさん [sage] 2011/02/09(水) 20:39:04 なんだ唐突に。 これがアスペ脳か。 まあ、みたいな奴がカスなのだけは同意するけどね。 : デフォルトの名無しさん [sage] 2011/02/09(水) 22:22:00 MSDNのチュートリアル入門やった後は何がおススメですか? : デフォルトの名無しさん [sage] 2011/02/09(水) 22:43:41 いちいち人に指示されなきゃならんのか? : デフォルトの名無しさん [sage] 2011/02/09(水) 23:12:40 指示されるつもりはないが、効率よく進みたいので、参考までに聞いてみただけだよ : デフォルトの名無しさん [sage] 2011/02/09(水) 23:32:47 じゃあ指示しない : デフォルトの名無しさん [sage] 2011/02/10(木) 00:09:01 答える気ないカスは黙っとけ : デフォルトの名無しさん [sage] 2011/02/10(木) 00:16:23 そのカスとやらに見下される気分ってさぞかし快感なんだろうね 理解できないけど : デフォルトの名無しさん [sage] 2011/02/10(木) 11:55:02 理解できないけどね : デフォルトの名無しさん [sage] 2011/02/10(木) 14:31:03 進みたい方向もゴールもわからん 必要なのは占い師か?だったらスレ違いだな : デフォルトの名無しさん [sage] 2011/02/11(金) 10:51:54 TAB区切りのTSVデータをTABで分割し配列に格納したところ 配列には3要素のみが格納されると思っていたらなぜか 4要素が格納されてしまうのですがどこに見落としがあるのでしょうか? (TABでsplitしているのだから行末の改行文字は無視されると思っているのですが) 1 武田1 営業部1(改行) 2 武田2 営業部2(改行) 3 武田3 営業部3(改行) line には、 1 武田1 営業部1(改行) という読取ったデータの1行分が入っているとします。 vec_tab = Split(line, vbTab) 'TABで分割 を実行すると vec_tab の要素数は3では無く 4となり vec_tab(4)の中身は "" (空文字)となっています。 : デフォルトの名無しさん [sage] 2011/02/11(金) 10:59:43 ソースを見せろ : デフォルトの名無しさん [sage] 2011/02/11(金) 11:01:36 readData ← TSVを丸ごとメモリに読取ったデータが入ってます。 vec_line = Split(readData, vbCrLf) '1行分のデータで分割 For Each line As String In vec_line vec_tab = Split(line, vbTab) 'TABで分割 Next : デフォルトの名無しさん [sage] 2011/02/11(金) 11:03:23 問題ない じゃあtsvファイルをバイナリエディタで見せろ : デフォルトの名無しさん [sage] 2011/02/11(金) 11:26:37 サンクス 解決しました。 : デフォルトの名無しさん [sage] 2011/02/11(金) 11:32:24 えー : デフォルトの名無しさん [sage] 2011/02/11(金) 12:18:17 DataGridView 内の特定のセルがクリックされた場合に その列定義がTextBoxか否かという判定を行いたいのですが どういうコードを書けばよいでしょうか? Private Sub dgv_test_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv_test_list.CellClick If e.ColumnIndex >= 0 Then If dgv_test.Columns(e.ColumnIndex).CellType Is DataGridViewTextBoxCell Then End If End If End Sub このコードを書くと DataGridViewTextBoxCellは型です。有効な式ではありません。 というエラーが出てしまいます。 : デフォルトの名無しさん [sage] 2011/02/11(金) 12:29:44 まさかケツにタブが付いてたとか言わないよな 頼むからそう言ってくれ : デフォルトの名無しさん [sage] 2011/02/11(金) 12:46:53 if typeof hoge is fuga then end if : デフォルトの名無しさん [sage] 2011/02/11(金) 13:04:29 試してみましたがエラーが出てしまいます。 どうすれば正常に判定することが出来ますか? If TypeOf dgv_test.Columns(e.ColumnIndex).CellType Is System.Windows.Forms.DataGridViewTextBoxCell Then 'ここで色々やりたい End If ○エラー 'System.Type' の式を型 'System.Windows.Forms.DataGridViewTextBoxCell' にすることはできません。 : デフォルトの名無しさん [sage] 2011/02/11(金) 13:14:17 If TypeOf dgv_test.Columns(e.ColumnIndex) Is System.Windows.Forms.DataGridViewTextBoxCell Then : デフォルトの名無しさん [sage] 2011/02/11(金) 13:30:41 Typeオブジェクト関連のMSDNの説明は相変わらず不正確でわかりにくいな。 : デフォルトの名無しさん [sage] 2011/02/11(金) 14:23:07 の記載の様に修正したところやはり下記のエラーが出てしまいます。 なぜ!? 型 'System.Windows.Forms.DataGridViewColumn' の式を型 'System.Windows.Forms.DataGridViewTextBoxCell' にすることはできません。 : デフォルトの名無しさん [sage] 2011/02/11(金) 14:24:27 本当に頭の悪いやつだなw : デフォルトの名無しさん [sage] 2011/02/11(金) 14:34:28 If TypeOf dgv_test.CurrentCell Is System.Windows.Forms.DataGridViewTextBoxCell Then でどうだ : デフォルトの名無しさん [sage] 2011/02/12(土) 17:20:05 型付きデータセットの中のテーブルアダプタを配列にする方法を教えてください Object型に入れても、メソッド使うときに遅延バインディングになってしまいます : デフォルトの名無しさん [sage] 2011/02/12(土) 23:20:48 Componentから派生したクラスを作成して TableAdapterのBaseClassプロパティをそれに変更 後は野となれ山となれ : デフォルトの名無しさん [] 2011/02/12(土) 23:58:36 天才だな : デフォルトの名無しさん [sage] 2011/02/13(日) 10:14:44 のんびり開発してたらなんか冒険の書?とかで書けないし 罠サイトか?気をつけるわのページ見ておく : デフォルトの名無しさん [sage] 2011/02/13(日) 15:32:19 ある文字列からCrやLfやCrLfを排除する関数わ? : デフォルトの名無しさん [sage] 2011/02/13(日) 17:27:29 Replace : デフォルトの名無しさん [sage] 2011/02/15(火) 00:03:10 楽○の懸賞用のプログラムをWebBrowser作ってるのですが、 どうも画像認証の所で詰まってしまいます。 これはどうしたら処理できるのかご存知の方おられますか? できれば、教えていただけませんか? : デフォルトの名無しさん [sage] 2011/02/15(火) 00:07:06 処理させないための画像認証だからなぁ : デフォルトの名無しさん [sage] 2011/02/15(火) 00:26:41 画像認証は大変アルヨ とりあえずOCRとかで検索すればいいんじゃない : デフォルトの名無しさん [sage] 2011/02/15(火) 01:01:46 遅くなったけどうまくいきました。ありがとう! : 738 [sage] 2011/02/15(火) 23:58:36 教えていただきありがとうございます。 OCRっていうやつを使えばできるのか。 なんとかやってみますww : デフォルトの名無しさん [sage] 2011/02/16(水) 00:39:39 仮に出来たら相当だけどな であり、が何故中国かを考えた方が良いアル つかあんまりやらんで欲しい 画像がどんどん難解にひん曲がっていって普通に視認できねーよ : デフォルトの名無しさん [sage] 2011/02/16(水) 22:22:27 テンプレート文字を作って、認証文字の輪郭を抽出して、そのテンプレートと どれぐらい一致(=テンプレート内に収まるドットの数)を見るかって、 そういう感じらしいよ テンプレート多ければ多いほど信頼性が上がるってやつ : デフォルトの名無しさん [sage] 2011/02/21(月) 10:12:35.83 折れと曲がりさえ区別できれば難しくない気がする : デフォルトの名無しさん [sage] 2011/02/21(月) 10:22:51.17 まずノイズ除去からかな? 走査線みたいなのだったり色のついた水玉だったりとかの その辺除去して白黒の変な文字だけにすれば少しなんか見えてきそうな気がする。 : デフォルトの名無しさん [sage] 2011/02/21(月) 11:57:43.15 実はOpenCV使えば簡単だけどな。 : デフォルトの名無しさん [] 2011/02/21(月) 16:36:54.08 DataGridViewの一番左の行に行番号入れたいんだけど 簡単にできる方法ないですか? : デフォルトの名無しさん [sage] 2011/02/21(月) 16:51:11.77 datagridview 行番号でそっこう出てくる 好きなの選べば? : デフォルトの名無しさん [sage] 2011/02/23(水) 22:32:14.40 ?2BP(3300) 現在実行しているファイル hoge.exe のビルドした日付をhoge.exe内から取得する方法はありますか? ビルドしたバージョンを取得する方法は分かったのですが : デフォルトの名無しさん [sage] 2011/02/24(木) 05:48:29.81 そもそも「ビルドした日付」なんて持ってるのか? : デフォルトの名無しさん [sage] 2011/02/24(木) 06:10:45.81 更新日時で茶を濁すぐらいしかなかろう。 : デフォルトの名無しさん [] 2011/02/24(木) 13:21:26.03 PEヘッダ解析で : 750 [sage] 2011/02/25(金) 00:37:41.25 簡単には取得できないようですね なんか別の方法を考えてみます (もしくはあきらめる) : デフォルトの名無しさん [] 2011/02/25(金) 13:27:03.86 ボタンを押すとマウスカーソルが移動する単純なプログラムを作っているのですが、 縦方向には移動するものの、横方向に移動することができません。 対処方法がよく分からないのですが、ご教示頂きたいと思います。 宜しくお願いします。 ------------宣言--------------- Private Declare Sub mouse_event Lib "user32" _ (ByVal dwFlags As Long, ByVal dx As Long, _ ByVal dy As Long, ByVal cButtons As Long, _ ByVal dwExtraInfo As Long) Private Const MOUSE_MOVED = &H1 'マウスを移動する(相対座標) ------------実行--------------- Call mouse_event(MOUSE_MOVED, 300, 0, 0, 0) ←縦方向に正常に動きます。 Call mouse_event(MOUSE_MOVED, 0, 300, 0, 0) ←横方向に全く動きません。 : デフォルトの名無しさん [sage] 2011/02/25(金) 16:24:59.42 Long => Integer : デフォルトの名無しさん [sage] 2011/02/25(金) 23:08:25.34 Dim Dt As New DataTable("Creature") Newはいったいどんな効果が? : デフォルトの名無しさん [sage] 2011/02/25(金) 23:30:53.30 Dim Dt As DataTable = New DataTable("Creature") の略 Newはコンストラクタを呼び出している ちゃんと理解するならオブジェクト指向勉強してこい : デフォルトの名無しさん [sage] 2011/02/25(金) 23:36:13.06 むむ : デフォルトの名無しさん [sage] 2011/02/26(土) 01:49:26.75 11/02/26(土)00:42:12 これをWindowsフォルダ名に使える文字列に書きかえるプログラムかいて ↓ : デフォルトの名無しさん [sage] 2011/02/26(土) 05:58:41.11 宿題は自分でやれ : 760 [sage] 2011/02/26(土) 11:24:00.06 URLエンコードとHTMLエンコードとSQLエンコードはあるのに なんでWindowsエンコードはないんだよ : デフォルトの名無しさん [sage] 2011/02/26(土) 13:31:41.24 知ってるがお前の態度が気に入らない : デフォルトの名無しさん [] 2011/02/26(土) 15:35:58.73 md "\\?\c:\temp\11/02/26(土)00:42:12" : デフォルトの名無しさん [sage] 2011/02/26(土) 15:55:45.34 いまどきVS2005で開発してる俺ってどう? 古いか? : デフォルトの名無しさん [sage] 2011/02/26(土) 16:01:56.62 まあ唐突にスレ違いな雑談を始めるセンスはかなりおかしいと思うよ。 Win2kに対応可能なセットアップを作れるのは2005までだから、 そういう事情で2005を使ってるところはまああるでしょ。 それに、某川俣氏みたいにMSマンセーな人は最新版の優位性をやたら煽るけど、 C#にろしVBにしろ、2005より後に追加された機能なんてなけりゃなくてもなんとかなるし。 : デフォルトの名無しさん [sage] 2011/02/26(土) 16:33:22.66 は金持ちになれないタイプ : デフォルトの名無しさん [sage] 2011/02/26(土) 16:42:16.13 確かにな。 WPFやSilverlightアプリ作りたいなら別だが WinFormなら最新版である必要ないな。 : デフォルトの名無しさん [sage] 2011/02/26(土) 17:08:56.54 コピペのマジレスされても・・・ : デフォルトの名無しさん [sage] 2011/02/26(土) 20:28:51.63 DataGridViewで指定した行をアクティブにするにはどうすれば良いのでしょうか? 例えば、10行のデータが存在しているとして 3行目をアクティブにしたいのですがやりかたがわかりません。 : デフォルトの名無しさん [sage] 2011/02/26(土) 21:46:01.27 「某川俣氏」みたいな表現する奴ってなんなの? 特定してるのにあえて某ってつけるのが面白いと思ってるの? : デフォルトの名無しさん [sage] 2011/02/26(土) 22:13:35.87 まあ少なくとも「奴ってなんなの?」とか書いてる奴が言えた義理じゃない。 っていうか、ガイジンじゃないなら婉曲表現ぐらい分かれよ。 : デフォルトの名無しさん [sage] 2011/02/26(土) 22:32:49.75 C#, C♯, C#相談室 Part64 ttp://hibari.2ch.net/test/read.cgi/tech/1294734221/743 マルチなんで放置推奨 : デフォルトの名無しさん [sage] 2011/02/26(土) 22:36:39.69 ですが誘導されたので質問しました。 エスパーの方お教え下さい。 DataGridViewで指定した行をアクティブにするにはどうすれば良いのでしょうか? 例えば、10行のデータが存在しているとして : デフォルトの名無しさん [sage] 2011/02/26(土) 22:39:41.81 C#スレ見たけど誘導なんてされてなくね? 甘えんなよカス : デフォルトの名無しさん [sage] 2011/02/26(土) 23:06:51.28 774 自己解決 : デフォルトの名無しさん [sage] 2011/02/27(日) 23:47:42.16 oracleのDB8iと10gへ、9i(9.2.0.1)のクライアントを使用して接続したいんですが、 ODACだと9iクライアントに対応するものがなくて困ってます。 どのミドルウェアを使えば出来るでしょうか? : デフォルトの名無しさん [sage] 2011/02/27(日) 23:52:21.02 JDBC : デフォルトの名無しさん [sage] 2011/02/28(月) 00:10:37.03 そもそも9iクライアントで繋ごうとしてる時点で無理 JDBCってJava以外から使えるの? : 人恋し [sage] 2011/02/28(月) 02:02:50.00 【困っていること】 Private Sub UpdataMaintLoad(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _DataGridView.CellDoubleClick If 『ダブルクリックされたセル(場所)がヘッダである』 Then 'イベントは起こさない Else'(=ヘッダではなく、表の中のセルがダブルクリックされている。) イベント(sender, e) End If End Sub この『』に入れるべき条件式が判らない。 【背景】 ・セルの詳細を表示する関数が、ヘッダのクリック時に暴発してしまうことを防ぎたいです。 ・ヘッダをクリック禁止にする対策法は、ソート機能が使えなくなるためNGです。 度々お世話になりますが、宜しくお願いします。 : デフォルトの名無しさん [sage] 2011/02/28(月) 02:47:03.88 EventArgsじゃなくてちゃんとDataGridViewCellEventArgsで受けるか、 eをDataGridViewCellEventArgsにキャストして if e.ColumnIndex<0 or e.RowIndex<0 then で行けるかと : 人恋し [sage] 2011/02/28(月) 22:50:06.79 レスが遅れすみません。 朝一で確認したのですが、会社が掲示板書き込み禁止だったので・・・。 ありがとうございます、ご指摘の方法でばっちり解決しました。 いつも素早く素晴らしいアドバイスをいただきとても助かっています。 : デフォルトの名無しさん [] 2011/03/03(木) 01:23:55.93 DataGridViewの使いにくさは異常 : デフォルトの名無しさん [sage] 2011/03/03(木) 01:29:09.12 具体的にどういうとこ? : デフォルトの名無しさん [sage] 2011/03/03(木) 11:29:45.09 使いやすすぎだろ : デフォルトの名無しさん [sage] 2011/03/03(木) 12:37:33.44 別になれればどうということはない : デフォルトの名無しさん [sage] 2011/03/03(木) 12:47:55.70 DataGridView で質問があるんだけど セルをエクセルに見立てて質問する。 A〜Dまで列があって、C1の次はB2に移動させたい。 「次」とはタブキーもしくはエンターキーを押したときの動作 KeyDown イベントで書くと正しく動作するように見えるけど セルを編集してて編集終了の意味でエンター押すと KeyDown イベントが起きなくて D1 に行ってしまう。 仕方なく CellEditEnd にも KeyDown と同じように CurrentCell を変更するコードを書いてみるが 一瞬B2に移動する挙動を示しつつも、D1へ移る内部処理が生きてて、C1→B2→D1 となってしまう。 最終的に、CellEditEnd の中で SendKeys "{Right}{Right}" として所望の動作にはなったんだが セル列の増減に自然対応できない強引すぎるコードで嫌いだ。 なにか良い手はないのか : デフォルトの名無しさん [sage] 2011/03/03(木) 12:54:33.86 古いシステム入れ替えの場合だいたいいつもEnterで横と言われるんだが Excelだってデフォルトで下に移動するでしょ といって左右使わせることにしている フォーカスも同じ Tabでいどうしてくれ WEBフォームなんかでもどこでもTABでいどうでしょ? て見せて無理やり納得させてる 古い産物いつまで引きずるつもりなんだよカス : デフォルトの名無しさん [sage] 2011/03/03(木) 13:09:47.63 CellLeaveイベントじゃだめ? : デフォルトの名無しさん [sage] 2011/03/03(木) 16:40:00.85 論点はエンターをタブ化する部分ではないんだが。 編集中の内容を確定するときはエンター押すだろ? C1の編集が終わって、そのエンターでB2にしたいだけよ : デフォルトの名無しさん [sage] 2011/03/03(木) 16:40:41.92 カーソルキーが使えなくならないか : デフォルトの名無しさん [sage] 2011/03/03(木) 23:16:40.03 MSDNにはこう書いてあるけど、関係あるだろうか? Control.KeyDown イベント Tab キー、Enter キー、Esc キー、方向キーなどは、コントロールによって自動処理されます。 これらのキーで KeyDown イベントを発生させるには、フォーム上の各コントロールで IsInputKey メソッドをオーバーライドする必要があります。 : デフォルトの名無しさん [sage] 2011/03/03(木) 23:22:52.84 datagridviewってソートすると選択していたレコードがどっかいっちゃうけど、 Excelみたいに選択レコードそのままにソートってできないの? : デフォルトの名無しさん [sage] 2011/03/04(金) 04:36:24.52 お前の家ぐらい覚えとけ。 とっとと家に帰れ。 : デフォルトの名無しさん [sage] 2011/03/04(金) 05:54:40.14 シネ : デフォルトの名無しさん [sage] 2011/03/04(金) 16:05:35.83 のせいですっかり場が寒くなってしまいました : デフォルトの名無しさん [sage] 2011/03/06(日) 12:27:29.81 Excelと同じ事したいなら最初からExcelでいいじゃん。 わざわざVB.NetでExcel紛い作る意味あるの? : デフォルトの名無しさん [sage] 2011/03/06(日) 12:57:21.09 何言ってんだお前 : デフォルトの名無しさん [] 2011/03/06(日) 18:05:02.27 .txtで2011-03-04と2011/3/4が混在してるデータで20110304(数値)に変換して読み込む場合 Dim MyDate1 As DateTime = DateTime.Parse("2011/3/4") Dim MyDate2 As Integer = Integer.Parse(MyDate1.ToString("yyyyMMdd")) これでいいの?もっとスマートな方法ある? : デフォルトの名無しさん [sage] 2011/03/06(日) 18:47:49.19 Dim MyDate1 As Integer = Integer.Parse(DateTime.Parse("2011/3/4").ToString("yyyyMMdd")) : デフォルトの名無しさん [sage] 2011/03/06(日) 18:47:59.85 正規表現で "-" と "/" をブランクに置換する : 801 [sage] 2011/03/06(日) 18:49:02.72 "/"の方は頭0無しだったか、忘れてくれ : デフォルトの名無しさん [sage] 2011/03/06(日) 18:52:16.39 のコードを見ると、なんか「スマート」の定義が俺と違う気がするんだよね。 : デフォルトの名無しさん [sage] 2011/03/06(日) 19:29:25.31 何故に日付を数値にしたいんだ? その後何したいのか気になるんだけど : デフォルトの名無しさん [sage] 2011/03/06(日) 20:39:48.17 DBに格納するとか? 文字型でやってる所もあれば数値型でやってる所もあるだろう : デフォルトの名無しさん [sage] 2011/03/06(日) 20:43:55.44 Dim dt = DateTime.Parse("2011/3/4") Dim idt = dt.Year * 10000 + dt.Month * 100 + dt.Day スピードはこっちのほうが速そうだけど、コードのスッキリさでは かな。 : デフォルトの名無しさん [sage] 2011/03/06(日) 20:57:44.89 スッキリも糞もParseの例外を考えていない糞コードだろ : デフォルトの名無しさん [sage] 2011/03/07(月) 01:51:34.54 単にParseをTryParseに変えればええだけやん : デフォルトの名無しさん [sage] 2011/03/07(月) 13:08:56.36 例外が出てくれた方が良い場合もあるよね : デフォルトの名無しさん [sage] 2011/03/07(月) 14:33:13.98 来る文字列が DateTime.ToString("yyyyMMdd")なりでやってればその例外は無視するほうがきれいだろ それ失敗するとかあくまでもホントの例外になるんだから やり方次第だから反射レスで 例外考えない糞コードてのは言いすぎじゃないか? : デフォルトの名無しさん [sage] 2011/03/07(月) 14:48:48.04 Integer.Parseの例外はまだしも、 DateTime.Parseの方は考えるべきだろ。 : デフォルトの名無しさん [sage] 2011/03/07(月) 18:19:31.05 例外処理なんて、プログラム全体で考えるべきで 単体の命令とってみて例外処理してないからどうこうって言えるわけがない 子の場合はデータ読み込みなんだから、不正なデータがあったときに どうするのかっていうプログラム仕様を考えた上で例外処理すればいいだけ : デフォルトの名無しさん [sage] 2011/03/07(月) 18:33:08.35 当たり前のことをドヤ顔で言うな お前はすっ込んでロリ : デフォルトの名無しさん [sage] 2011/03/07(月) 18:59:47.09 Try Cach EndTry しかつかったことないけどFinalyってなに? : デフォルトの名無しさん [sage] 2011/03/07(月) 19:03:36.63 ggrsk : デフォルトの名無しさん [sage] 2011/03/07(月) 19:50:02.06 例外が発生しようが発生しまいが行いたい処理を書く場所 主にファイルを閉じたりDispose呼んだりするのに使う でも上の場合はUsing使ったほうがいい : デフォルトの名無しさん [sage] 2011/03/07(月) 22:25:56.47 VBでコンストラクタから、ほかのコンストラクタを呼ぶのはどうするの? C#の public void Hoge(int n) : this(n, 0) {・・・} みたいなやつ。 : デフォルトの名無しさん [sage] 2011/03/07(月) 22:45:10.00 Access <-> .netで通信する事になりました コマンドライン引数 or プロセス間通信(Accessにできるの?)以外に良い接続方法が思い浮かびません 何方かヒントをよろしくお願いします : デフォルトの名無しさん [sage] 2011/03/07(月) 22:54:42.64 Newすりゃそのクラスのコンストラクタが呼ばれる 継承元のコンストラクタを呼ぶならMyBase.New : デフォルトの名無しさん [sage] 2011/03/07(月) 23:02:04.09 C#みたいにオーバーロードされたコンストラクタの呼び出し専用の構文はない。 あたかもNewっていう名前のメソッドがあるかのように書くだけ。 ただもちろん、別のコンストラクタ呼び出しの前に他の処理を書けない点はC#と同じ。 っていうか、MSDNライブラリに普通に解説があるんじゃないかと... : デフォルトの名無しさん [sage] 2011/03/07(月) 23:15:48.86 MyBase.New()の継承元を呼び出す説明はそこかしこに書いてあるけど、 自分のコンストラクタを呼ぶ方法が書いてあるところは見つけられない。 ttp://msdn.microsoft.com/ja-jp/library/2z08e49e(v=VS.90).aspx ためしにideoneで、コンストラクタの一行目でNew(…)とか書いて 自分以外のコンストラクタを呼ぶコードを試してみたけど、やっぱり コンパイルエラー。 書き方が悪いからか、monoだからなのかよくわからない。 : デフォルトの名無しさん [sage] 2011/03/08(火) 00:37:50.20 共通部分をカプセル化して呼び出しゃいいんじゃないの まぁReadOnly付いてるのは無理だったりするけど : デフォルトの名無しさん [sage] 2011/03/08(火) 02:14:08.41 Try Cach EndTry しかつかったことないけどFinalyってなに? : デフォルトの名無しさん [sage] 2011/03/08(火) 02:25:54.54 ggrks : デフォルトの名無しさん [sage] 2011/03/08(火) 05:09:40.41 Try Catch抜ける前に必ずとおる処理を書く : デフォルトの名無しさん [sage] 2011/03/08(火) 20:02:35.81 ぐたいれいもあげてくれないとしょうがくせいにわはかんない : デフォルトの名無しさん [sage] 2011/03/08(火) 20:52:12.65 不正解だ よく見るんだ : デフォルトの名無しさん [sage] 2011/03/08(火) 22:34:37.67 いちいちタイポ指摘すんのめんどくせ : デフォルトの名無しさん [sage] 2011/03/13(日) 11:42:24.44 質問させてください。 文字列として"82A083A282A482A682A8"と格納されている値を "あいうえお"と変換したいのですが方法がよく分かりません… いい方法ございますでしょうか。 : デフォルトの名無しさん [sage] 2011/03/13(日) 13:12:21.43 "82A0"を"あ"と察するにS-JISなんだと思うが他が分からん 2文字目と思われる"83A2"は"82A2"の間違い? : デフォルトの名無しさん [sage] 2011/03/13(日) 13:17:53.17 返答ありがとうございます。 すみません…"82A2"の間違いです。 : デフォルトの名無しさん [sage] 2011/03/13(日) 13:27:54.14 4文字ずつ区切って DirectCast(Int32.Parse("82A2", NumberStyles.AllowHexSpecifier), Char) でいけるかな : デフォルトの名無しさん [sage] 2011/03/13(日) 13:34:36.54 駄目に決まってるだろwChar/StringはUTF-16だぜ 普通に2文字ずつByte.Parseしてって配列化して最後にEncodingでGetString : デフォルトの名無しさん [sage] 2011/03/15(火) 10:02:22.57 その前に仕様かなんかがあるんだろ? 確認してきたらどうなのよ? : デフォルトの名無しさん [sage] 2011/03/15(火) 22:24:51.79 技術検証のためにspreadのトライアル版をインストールしようと思ったが、 地震の影響か、grapecityのサイトに繋がらん・・・ オフィシャル以外で配布されてたりするんだっけ? 知ってる方いたら教えてください>< : デフォルトの名無しさん [sage] 2011/03/15(火) 23:30:48.98 グレープシティのサービスは全て停止している ttp://codezine.jp/article/detail/5838 : デフォルトの名無しさん [sage] 2011/03/16(水) 09:03:50.31 こういうとき アクティベーションを要求されるソフトは最悪だな : デフォルトの名無しさん [sage] 2011/03/17(木) 04:04:53.97 このスレであってるかどうか解らないんですが・・・、 VisualBasic 2010 Expressでフォームmainformの背景色を変更したくてmainformと言うフォーム上で mainform.BackColor = Color.Purple と言う命令を使いましたが、 'WindowsApplication1.mainform'は 規定のインスタンスからそれ自体を参照できません。'Me'を使用してください。 とのエラーメッセージが出ました。そこで、 Me.BackColor = Color.Purple と言う命令を使うとエラーが出なくなりましたが、mainformの背景色が変わりません。 どのようなコードを書けば背景色が変わるのか教えてください。 : デフォルトの名無しさん [sage] 2011/03/17(木) 10:13:17.67 どこでそのコードを記述してるのか : デフォルトの名無しさん [sage] 2011/03/17(木) 10:54:52.63 プロジェクトの中で、フォームはmainformだけであります。 : デフォルトの名無しさん [sage] 2011/03/17(木) 12:09:15.92 フォームのどのタイミングなのかじゃないかな? hogehoge_Load とか InitializeComponent() とか書かれた部分の前だとか ソースコピペで晒してみれば? : デフォルトの名無しさん [] 2011/03/18(金) 09:48:24.43 プロジェクトのフォルダで bin/Releaseと、 obj/x86/Release は何が違うのでしょうか? : デフォルトの名無しさん [sage] 2011/03/18(金) 10:27:33.36 ページネーション処理が出来ないって本当? よくあるページ移動をこういうリンクにしたいのが ↓ <<最初 <前 1 2 3 次> 最後>> これしか出来ないと。(涙 1 2 3 実装段階になって先方にコントロールが無いから出来ないって言われた。 信じられん。 : デフォルトの名無しさん [sage] 2011/03/18(金) 10:35:22.67 obj binは全く違う binはコンパイルされた結果が入るんで開発者側でも使うけどobjはVSがコンパイルしたりいろいろやってるときの作業用に使うんだったはず ふつうobjは意識しないだろ・・・とおもうんだけど俺だけ? : デフォルトの名無しさん [sage] 2011/03/18(金) 10:36:29.03 ページング位自前で実装させろ やったことないとか言ったらその会社経験なさすぎ : デフォルトの名無しさん [sage] 2011/03/18(金) 11:34:59.54 ですよね。 自分で他言語では、やってるので泣きそうになった。 これから交渉してきます。 ありがとう。 : デフォルトの名無しさん [sage] 2011/03/20(日) 08:15:15.43 例外が起きるまえに例外をcatchできないかな? URLをもとに某SNSサイトから動画みたいなのをダウンロードするプログラムを作ってる。 このプログラムはそのページでないとArgumentExceptionを吐いてくるから、それを阻止したいなー って思って。 一応、 try ダウンロード処理 catch ex as ArgumentException Exit sub end try みたいな感じで纏めてるけど… もっとスマートな方法を知りたいです。 よろしくお願いします。 : デフォルトの名無しさん [sage] 2011/03/20(日) 09:42:36.33 > そのページでないとArgumentExceptionを吐いてくる そのページってのを事前にチェックすればいいだけじゃないの 例外は言葉通り、事前に対処できるなら出来る限り発生させない設計のほうがいい : デフォルトの名無しさん [] 2011/03/20(日) 15:44:01.07 textboxに入っている文字列をHTMLで表示したいのですが、どうしたらいいでしょうか。 : デフォルトの名無しさん [sage] 2011/03/20(日) 16:31:09.89 ttp://msdn.microsoft.com/ja-jp/library/system.web.ui.htmltextwriter.aspx : デフォルトの名無しさん [] 2011/03/20(日) 16:46:51.07 すいません、WebじゃなくてWindowsformです : デフォルトの名無しさん [sage] 2011/03/20(日) 16:53:21.11 じゃあこっち ttp://msdn.microsoft.com/ja-jp/library/system.windows.forms.htmlelement.aspx あと無暗に上げなさんな : デフォルトの名無しさん [sage] 2011/03/20(日) 17:07:46.27 有難うございます。 こいつを使用してWebBrowserコントロールに表示する感じであっていますでしょうか : デフォルトの名無しさん [sage] 2011/03/25(金) 21:14:25.43 DataGridviewのとある列だけ太字にしたいんだけど、どうすればいいの? BoldプロパティがReadonlyでいじれません : デフォルトの名無しさん [sage] 2011/03/25(金) 22:36:52.50 "2000/02/01"など文字列型のデータが変数Aに入っていて、それをDateAddを使用し+3ヶ月するよう、以下のようにしてみたした A = DateAdd("M",3,CDate(A)) なぜか、Aの値が「#05/01/2000#」と返ってきます 一体なぜなのかわかりません…Aに"2000/05/01"と設定する上手い方法がありませんでしょうか? : デフォルトの名無しさん [] 2011/03/25(金) 22:53:50.19 間違えました B = DateAdd〜 でした BはDate型です 変な値が返ってくるのも、上手く設定したいのもBです : 507 [sage] 2011/03/25(金) 23:00:08.23 Date型が#mm/dd/yyyy#という形になってるからそれであってるよ Format関数で適当に整形すれ : デフォルトの名無しさん [sage] 2011/03/25(金) 23:19:49.65 !! ありがとうございます : デフォルトの名無しさん [sage] 2011/03/25(金) 23:56:37.07 Font自体をBoldで作って割り当てたらいいんじゃないの。 : デフォルトの名無しさん [sage] 2011/03/26(土) 00:13:15.00 columnsコレクションのdefaulecellstyleが? : デフォルトの名無しさん [sage] 2011/03/26(土) 00:17:00.26 テキストボックスをクリックしたとき、テキストボックス内のクリックした場所にカーソルを出すのでなく、 テキストボックスの中を選択状態にしたいのですが、これはプロパティで設定するものなのでしょうか? (わかりにくくてすみません…) : デフォルトの名無しさん [sage] 2011/03/26(土) 03:18:27.99 ヘルプによると MyString = String(10, "ABC") ' "AAAAAAAAAA" を返します。 というのがString関数の仕様だけど これをABCABCABCABCABCABCABCABCABCABC のようにABCを10回書きたい場合はどうすれば : デフォルトの名無しさん [sage] 2011/03/26(土) 07:34:07.06 そりゃVB6のString関数だろ : デフォルトの名無しさん [sage] 2011/03/26(土) 07:51:16.16 ついでに文字列を繰り返すメソッドはなかったと思うから適当に次のような 拡張メソッドでも定義すりゃいい <System.Runtime.CompilerServices.Extension()> Public Function Repeat(ByVal s As String, ByVal count As Integer) As String Dim buff As New System.Text.StringBuilder For i = 0 To count - 1 buff.Append(s) Next Return buff.ToString End Function : デフォルトの名無しさん [sage] 2011/03/26(土) 08:11:35.46 一行で目的を果たせる便利さが関数どすえ? : デフォルトの名無しさん [sage] 2011/03/26(土) 08:12:39.62 関数とか言ってる馬鹿はVB6でも使ってろよ : デフォルトの名無しさん [sage] 2011/03/26(土) 11:21:45.46 マスクが99/99と設定したテキストボックスに以下のように入れても、実際のテキストに入る文字列が" /"になって、最後の二桁がなぜか取得できません テキストボックス = " / " なにか設定が足りないのでしょうか? : デフォルトの名無しさん [sage] 2011/03/26(土) 12:03:01.87 テキストボックスのマスクってのは何? PasswordCharプロパティのこと? : デフォルトの名無しさん [sage] 2011/03/26(土) 12:18:05.85 いえ、MaskedTextBoxのMaskプロパティです : 867 [sage] 2011/03/26(土) 12:44:33.38 すみません! テキストボックスには" / "と表示されていました ただ、以下のようにした場合、IF文が真になりません テキストボックス.text = " / " IF テキストボックス.text = " / " Then Exit Sub Else 処理 End If : デフォルトの名無しさん [sage] 2011/03/26(土) 12:56:25.99 Maskの9は数字または空白を許可する要素 せっかくMaskしてんのに" / "を代入する意味が分からんが 99/99でMaskした場合は" /"になる " /"で比較すりゃTrueになんだろ : デフォルトの名無しさん [sage] 2011/03/26(土) 12:58:01.10 ああそうだった 連続した半角スペースは2chだと潰れるんだった 半角スペースの代わりにアンダーバーで表すと"__/" : デフォルトの名無しさん [sage] 2011/03/26(土) 13:03:02.08 出来ました…ありがとうございます ちなみになぜ" /"になるのでしょう? 違ってたら申し訳ないんですが、確か.net化する前は" / "の比較がいけたと思うのですが : デフォルトの名無しさん [sage] 2011/03/26(土) 13:21:20.26 後ろが切り詰められるのはMaskedTextBoxの仕様だと思う 例えばMaskを9999にして"123 "をセットした場合は、"123 "ではなく"123"と 後ろが切り詰められる 厳密には切り詰められる訳じゃなく、後方の任意数のスペースは 無かったものと見なされてるっぽい .NET可する前ってのはVB6だと思うが、そもそも標準でMaskedTextBoxみたいな コントロールがあったか覚えていない : デフォルトの名無しさん [sage] 2011/03/26(土) 15:02:42.97 866 ショボスギ : デフォルトの名無しさん [sage] 2011/03/26(土) 16:31:48.03 gridviewのcellのvalueをrowindexとcolの名前で取得することは出来ますでしょうか? : デフォルトの名無しさん [sage] 2011/03/26(土) 17:33:54.28 visualstudioでソフトを作ったんですが、これをデバッグ以外で起動するにはどうしたらいいでしょうか binの中のexeとexe.configを別フォルダに移して実行してもconfigで設定した内容が反映されません : デフォルトの名無しさん [sage] 2011/03/26(土) 17:53:45.34 リリースビルドしろ : デフォルトの名無しさん [sage] 2011/03/26(土) 18:07:31.22 そういう問題じゃないでしょw とりあえず@itのアプリケーション設定関係の記事を一通り読めと。 話はそれから。 : 【東電 92.8 %】 [sage] 2011/03/26(土) 19:57:45.72 DataGridView.Rows(rowindex).Cells("colの名前").Value ってことかえ : デフォルトの名無しさん [sage] 2011/03/26(土) 20:09:53.59 そういやMaskedTextBoxだとSelectAllやSelectionStartが 効かないのは何故? : デフォルトの名無しさん [sage] 2011/03/26(土) 20:38:00.79 一応読んでみましたが、特にそれっぽい情報がなかったです。 シャットダウン時にMy.Settingを保存する。にチェックが入っているのに保存されないとはどのようなことでしょうか。 configファイルに保存されるってことはconfigファイルとexeファイルのみがあれば正常に動作するはずなんですけどね・・・ : デフォルトの名無しさん [sage] 2011/03/26(土) 20:49:01.67 データテーブルのあるセルを選択するときは なぜ Dt.Rows(i)("フィールド名") であって Dt.Rows("フィールド名")(i) でわないの? だれが まず行indexを指定して それからフィールドを指定する という順番にしたはったん? : デフォルトの名無しさん [sage] 2011/03/26(土) 20:54:11.97 頭大丈夫か? rowsつーたらまず行選ばんとフィールドもへったくれも無いだろうが : デフォルトの名無しさん [sage] 2011/03/26(土) 20:56:40.39 構うなよ。うつるぞ : デフォルトの名無しさん [sage] 2011/03/26(土) 20:58:53.34 Dt.Rows("フィールド名")(i)のほうが感覚的には自然 : デフォルトの名無しさん [sage] 2011/03/26(土) 21:03:08.51 その感覚がおかしい 構造体の配列として捉えれば行が先の方が自然 : デフォルトの名無しさん [sage] 2011/03/26(土) 21:07:15.40 感覚的には自然<キリッ : デフォルトの名無しさん [sage] 2011/03/26(土) 21:41:59.61 Dt.Rows(i)=Dt.Rows.Item(i)のItemが省略されたもの フィールドはItemに含まれてるのだから、Itemなしに指定することはできない : デフォルトの名無しさん [sage] 2011/03/26(土) 22:22:15.97 (1)アプリ起動→(2)アプリ内で設定変更→(3)アプリ終了→(4)再度アプリ起動、で変更が保存されていないってことか? とりあえず、上の流れを試してみて保存されていれば正常(で、に戻ると) ああ、当たり前だけど3、4の間に移動/コピーやリビルドなんかするなよ : デフォルトの名無しさん [sage] 2011/03/26(土) 23:00:26.83 デバッグフォルダ内で起動した場合は普通に保存されます。 exeとconfigファイルのみ別のフォルダに移動して上記の流れで操作した場合のみ、保存されません : デフォルトの名無しさん [sage] 2011/03/26(土) 23:06:53.25 だから、こんなところでグダグダ言ってる暇に@ITの記事をちゃんと読めって。 アプリケーション設定がどこに保存されるとか、configの意味とかちゃんと書いてあるから。 : デフォルトの名無しさん [] 2011/03/26(土) 23:34:46.07 テキストボックスに A222BあああA555BえええAおおおB55A454B と入っていたとします。 この文字列の AとBとその間の文字を1セットにして、AとBの間の文字に5が入っていたときだけ、AとBを削除する このようなロジックをつくっていただけないでしょうか? : デフォルトの名無しさん [sage] 2011/03/26(土) 23:38:24.82 宿題スレでどうぞ : デフォルトの名無しさん [sage] 2011/03/26(土) 23:46:35.81 つまり、 デバッグフォルダで起動して設定した内容は、デバッグフォルダでもう一度起動すると保存されている 移動先のフォルダで起動して設定した内容は、移動先のフォルダでもう一度起動すると保存されていない ということか? : デフォルトの名無しさん [sage] 2011/03/26(土) 23:53:05.32 そういうことです。 exeとconfig以外に必要なファイルがあるか探してみます : デフォルトの名無しさん [] 2011/03/27(日) 01:16:07.10 ヒント Contains IndexOf Remove : デフォルトの名無しさん [sage] 2011/03/27(日) 01:27:54.00 たぶん1文字ずつ舐めたほうが簡単 : デフォルトの名無しさん [sage] 2011/03/27(日) 02:01:13.75 Windowsアプリを作成し、インストーラを作成しました。 インストーラ自体は作成されるのですが、いざsetup.exeを実行すると インストール中にエラーが発生し、デバッグすると パス 'C:\Users\○○\AppData\Local\Apps\2.0\D4T01EYC.LQB\ico\ico1.ico' の一部が見つかりませんでした。 と例外が発生します。 同様の現象が出たことある方がいらっしゃいましたら、どうか解決方法をご教示くださいませ。 VS2010でOSはVISTA SP2です。 : デフォルトの名無しさん [sage] 2011/03/27(日) 06:09:24.12 iの初期化はi=0 Sの初期化はS="" でわ 日付変数の初期化は? : デフォルトの名無しさん [sage] 2011/03/27(日) 08:33:35.29 その通りなんだろ 大体アイコンとか埋め込みリソースにするもんじゃね? : デフォルトの名無しさん [sage] 2011/03/27(日) 11:35:54.79 変数の初期化を定義しろ : デフォルトの名無しさん [sage] 2011/03/27(日) 11:45:12.35 もし定義しただけで自動的に初期化されてると思うなら 定義しただけの変数参照してみろよw : デフォルトの名無しさん [sage] 2011/03/27(日) 11:48:31.67 型のデフォルト値のことなら、 Int32は0 Stringは参照型だからnull DateTimeは西暦0年1月1日0時0分0秒 : デフォルトの名無しさん [sage] 2011/03/27(日) 11:58:31.01 Dim dt As New DateTime とか Dim dt = DateTime.Now とか Dim dt = DateTime.MinValue お好きなように。 : デフォルトの名無しさん [sage] 2011/03/27(日) 12:07:18.42 A〜Bの〜を消すなら(?<=A)[^B]+5[^B]+(?=B) A〜BのA、Bだけを消すならA(?=[^B]+5[^B])|(?<=[^A]+5[^A])B まぁ試してないから間違っているかも : デフォルトの名無しさん [sage] 2011/03/27(日) 12:11:56.03 ああ2番目のは確実におかしいね 正規表現より文字列舐めたほうが楽かな : デフォルトの名無しさん [sage] 2011/03/27(日) 12:15:15.61 一応2番目のはA(?=[^B]*5[^B]*B)|(?<=A[^A]*5[^A]*)Bかな 906の1番目も+は*じゃないと漏れちゃうね : デフォルトの名無しさん [sage] 2011/03/27(日) 17:45:14.21 Dim S as string は=nothingも=""もTrueになる不思議! : デフォルトの名無しさん [sage] 2011/03/27(日) 17:55:02.82 VBの仕様です。 不思議でも何でもない : デフォルトの名無しさん [sage] 2011/03/27(日) 17:57:11.26 泥棒したら逮捕される不思議 と同じ : デフォルトの名無しさん [sage] 2011/03/27(日) 18:30:11.92 頭悪いたとえだな。 : デフォルトの名無しさん [sage] 2011/03/27(日) 18:36:20.84 どこが? : デフォルトの名無しさん [sage] 2011/03/27(日) 18:39:10.92 ちゃんとMSDNでも説明されているだろ ttp://msdn.microsoft.com/ja-jp/library/ms233957.aspx ここら辺ちゃんと読んどけ ttp://msdn.microsoft.com/ja-jp/library/hzcd8ze0.aspx : デフォルトの名無しさん [sage] 2011/03/27(日) 19:00:42.36 enputyとnoghingとnullと""の4つは同値 : デフォルトの名無しさん [sage] 2011/03/27(日) 19:18:00.86 そんな力んでいうような事か? カルシウム足りないんじゃないの? まあちゃんとMSDNライブラリの参照先を貼ってる点は買うけどさ。 それは違うよ。 Nothingは空文字として扱うが、逆は成立しない。 : デフォルトの名無しさん [sage] 2011/03/27(日) 19:30:32.95 Visual Basic.NETが Visual Basic という名前に戻っちゃったから ヘルプ見てもわからないんだよ! : デフォルトの名無しさん [sage] 2011/03/27(日) 19:31:41.78 どこが力んでんだよw 突っ込むにしてもここは初めてか?力抜けよくらいのネタで返しとけよ : デフォルトの名無しさん [sage] 2011/03/27(日) 19:39:19.47 俺はそういう気色の悪いノリは大嫌いなんだよ君と違って : デフォルトの名無しさん [sage] 2011/03/27(日) 19:41:14.95 あらあら^^ : デフォルトの名無しさん [sage] 2011/03/27(日) 20:50:31.65 exeとconfigのみを移動させれば大丈夫ということがわかりました。 移動先でも保存されました、でもその2ファイルを別のとこに移動するとsettingが初期化されてしまいます。 あと保存後でもconfigの内容に一切変化がないんですが、基本的にどこのファイルに保存されるのでしょうか? どこかの隠しファイルとかでしょうか? : デフォルトの名無しさん [sage] 2011/03/27(日) 20:58:46.69 だから機能から@ITの記事読めと何度も言ってるだろうに..... アンタが知りたいことは全部書いてある。 必用なのは記事を読む時間と少しの根気だけだ。 しかしどっか足りない奴に限って妙に頑固だな。 : デフォルトの名無しさん [sage] 2011/03/27(日) 21:18:31.44 一通り読めで用が足りるなら粘着はしないとw つーか怒る位ならアドレス全部書いとけよ それで読まないならいくら怒ってもいいから : デフォルトの名無しさん [sage] 2011/03/27(日) 21:23:04.96 : デフォルトの名無しさん [sage] 2011/03/27(日) 21:25:02.58 読みましたが、よくわかりませんでした。 ので訊きに来ました : デフォルトの名無しさん [sage] 2011/03/27(日) 21:28:04.59 OK. とりあえず↓から芋づる式に関連する記事を一通り読めばいいと思う。 ttp://www.atmarkit.co.jp/fdotnet/dotnettips/558appsettings/appsettings.html そんな難しい話じゃないから読めば分かるはず。 : デフォルトの名無しさん [sage] 2011/03/27(日) 21:54:10.92 有難うございます 読んでみましたが、結局のところexe.configには初期設定のみが記載してあり、 settingを保存するところはuser.configということは理解できました。 使い勝手があんまりよくないので、同一フォルダの別ファイルに設定を保存したいのですが、 それにはiniファイルなどを使用するしかないのですか? 初期値を設定するためだけにexe.configを使うんならexeに組み込んじゃったほうがいいと思うのですが、気のせいでしょうか。 : デフォルトの名無しさん [sage] 2011/03/27(日) 22:04:16.94 My.Settingsを使って実行ファイルと同じディレクトリに 設定値を保存することはできません。 自前で実装してください。 : デフォルトの名無しさん [sage] 2011/03/27(日) 22:20:15.26 今更iniファイルとか、それこそ使い勝手がよくないだろ .NETはXMLを簡単に操作できるクラスやLINQとかの機能まで用意してんだから xml形式のconfigファイルで十分だと思うんだけどなぁ iniファイル使うくらいならRegistryKeyクラスがある分レジストリいじるほうが まだマシなもんだろ : デフォルトの名無しさん [sage] 2011/03/27(日) 22:22:25.66 論点ずれてますよ : デフォルトの名無しさん [sage] 2011/03/28(月) 06:12:47.99 rs.movenext のメソッドが無くなったので助けてくだしぃ : デフォルトの名無しさん [sage] 2011/03/28(月) 12:00:31.81 DataTable.CreateDataReader() はどう? : デフォルトの名無しさん [sage] 2011/03/28(月) 17:21:18.19 おk : 507 [sage] 2011/03/28(月) 18:53:26.17 XAML(WPF)慣れない 検索してもC#ばっか出てくるから C#勉強したほうが良いかなあ? : デフォルトの名無しさん [sage] 2011/03/28(月) 18:55:48.70 C#のコードも大体読めるようになっておくとたまに便利 : デフォルトの名無しさん [sage] 2011/03/28(月) 20:01:47.06 初心者すぎて申し訳ないですが、質問です… レコードの中に数値項目がいくつかあっていて、それらをCSVに落としたのですが、負数だけなぜかCSVに出力すると空になってしまいます (値は.textで取得してます) これは一体なぜなのでしょうか? ※ちなみにvalueで取得してもだめでした : デフォルトの名無しさん [sage] 2011/03/28(月) 20:15:32.69 1回tostringして取得したら? : デフォルトの名無しさん [sage] 2011/03/28(月) 20:48:17.67 警察が郵便局長を牢屋にぶちこんだ ファイル作成日を変更するプログラムはどうかけば : デフォルトの名無しさん [sage] 2011/03/28(月) 22:11:27.69 ttp://msdn.microsoft.com/ja-jp/library/system.io.file.setcreationtime.aspx : デフォルトの名無しさん [sage] 2011/03/28(月) 22:35:32.32 パソコンの日付変更してコピーしたら良いんじゃないか? : デフォルトの名無しさん [sage] 2011/03/29(火) 04:19:28.23 了解 : デフォルトの名無しさん [sage] 2011/03/29(火) 19:47:16.09 NullってのはDB.Nullしかないんだよね? : デフォルトの名無しさん [sage] 2011/03/29(火) 20:27:10.79 どこでNullって出てきたのか解らんから、それだけではなんとも VBではNothingってのもあるからな : デフォルトの名無しさん [sage] 2011/03/29(火) 20:32:12.19 C#→NullはNull VB.NET→NullはNothing DBNullは別の物 DBNull≠Null : デフォルトの名無しさん [sage] 2011/03/30(水) 03:02:48.01 なるほろ : デフォルトの名無しさん [sage] 2011/03/30(水) 22:34:41.00 この直線をx軸に4並行移動すると っていう表現変だと思うんだけど この直線をx軸に4並行移動させると が ただしくないかぃ? : デフォルトの名無しさん [sage] 2011/03/30(水) 23:35:19.85 質問です 画面にテキストボックスが10個ありまして、そのテキストボックスすべてクリックした時のイベントを統一しています クリックしたときセルの中身を選択状態にするという統一されたイベントを、一つのプロシージャでなんとか処理できないでしょうか? 今のところ各テキストボックスのクリックイベントが一つずつ存在してますが、長いし同じ処理なのにすごく効率悪く感じます クリックしたテキストボックスの名前を取得する方法などがあればいいのですが… 効率化するにはどうすればよいでしょうか? : デフォルトの名無しさん [sage] 2011/03/30(水) 23:46:36.14 DirectCast(sender, TextBox) : 947 [sage] 2011/03/30(水) 23:46:39.50 あああああああ… 自分で書き込んでおいてアレですが、senderの存在を忘れてました すみませんでした : デフォルトの名無しさん [sage] 2011/03/31(木) 00:05:40.89 例えば abc ; xyz ; あいう というデータがあるとします。 このうち;毎にデータを区切ってそれぞれコレクションに追加する、のようなプログラムはどのように書けばいいなでしょうか。 : デフォルトの名無しさん [sage] 2011/03/31(木) 00:08:15.51 Dim collection As List(Of T) = New List(Of T)() collection.AddRange(str.Split(";")) : 951 [sage] 2011/03/31(木) 00:09:39.18 別に関係ないけどTではなくStringの間違い : デフォルトの名無しさん [sage] 2011/03/31(木) 00:12:06.02 サンクス : デフォルトの名無しさん [sage] 2011/03/31(木) 00:17:51.73 設定保存手法として My.Settings(内部ファイル) ini レジストリ xml(外部ファイル) とかあるけどどれが一番いいの? 俺は分かりやすいiniが好きなんだが知り合いにバカにされた : デフォルトの名無しさん [sage] 2011/03/31(木) 00:24:47.61 バカにする奴は放っておけばいい。 俺はXMLファイルに保存してる。単に好みってだけだけど。 : デフォルトの名無しさん [sage] 2011/03/31(木) 00:28:44.55 My.SettingsはXMLと同列な扱いとして.NETの恩恵が受けられるのは XML>レジストリ>INIの順かな 規模によっちゃDBにするだろうけど、まぁ好きにすりゃいい : デフォルトの名無しさん [] 2011/03/31(木) 11:33:54.05 すみません。 keyDownイベントで F1キーを押したらボタンを押された処理をできるよにしたいのですが、 vbkeyF1はVB2010Exp.edでは使えないのでしょうか? : デフォルトの名無しさん [sage] 2011/03/31(木) 13:45:22.36 Keysで比べたら良いんじゃないの If e.KeyCode = Keys.F1 Then : デフォルトの名無しさん [] 2011/03/31(木) 13:59:32.15 です。 区切り文字が2文字の場合はどうすればいいでしょうか []毎に区切りたいです : デフォルトの名無しさん [sage] 2011/03/31(木) 14:21:45.09 ttp://msdn.microsoft.com/ja-jp/library/system.string.split(v=VS.100).aspx : デフォルトの名無しさん [sage] 2011/03/31(木) 22:34:41.92 Dim hoge As String = "abc[]xyz[]あいう" Dim fuga = Strings.Split(hoge, "[]") Array.ForEach(fuga, Sub(s) Console.WriteLine(s)) それとも[]ってのは"[abc][xyz][あいう]"こういうの言ってる? : デフォルトの名無しさん [sage] 2011/04/02(土) 14:56:47.91 俺は.NETではXML(ユーザー別に設定を保存したい時はMy.Settings)、WIN32APIではINIを使ってる レジストリはなるべく使わない : デフォルトの名無しさん [sage] 2011/04/02(土) 19:33:05.51 iniはMSが使うなって言ってるから使わないほうがいい。 レジストリのほうが楽だし。 : デフォルトの名無しさん [sage] 2011/04/02(土) 21:34:44.78 MSの話は信じないほうがいい。 裏切られた事しかないだろう? : デフォルトの名無しさん [sage] 2011/04/02(土) 21:51:44.20 そろそろソフトバンク携帯などのアプリをVB.NETでつくれるようにしてもらわないと : デフォルトの名無しさん [sage] 2011/04/02(土) 22:46:08.71 WP7はVBサポートしてるけど XNAやMFのように、新しいプラットフォームのVB対応にMSは消極的で切り捨てられつつあるので そういうのに興味があるならC#に移行するべき : デフォルトの名無しさん [sage] 2011/04/02(土) 23:19:53.81 VBもC#も同じ.NET Frameworkっていうプラットフォームで動作していると思ってんだが WindowsPhone7上では違うんか? : デフォルトの名無しさん [sage] 2011/04/02(土) 23:28:01.16 同じだけど開発環境(Visual Studio)が対応してないと作るの難しいでしょ 基本的にC#優先でVBは遅れて対応するかそのまま放置 : デフォルトの名無しさん [sage] 2011/04/02(土) 23:30:37.39 レジストリかiniかって行ったらiniが危ないだろ。ダントツで。 : デフォルトの名無しさん [sage] 2011/04/02(土) 23:34:40.63 理由は? : デフォルトの名無しさん [sage] 2011/04/02(土) 23:41:37.32 16bitの互換性のために残してあるから使うなって書いてある。 : デフォルトの名無しさん [sage] 2011/04/02(土) 23:46:14.18 vistaのときに動かなくなったソフトが続出したときも、 msが悪いみたいな感じで、作り方が悪いって言ってるやつは少なかったから ini使ってて動かなくなっても「まーたmsに裏切られたw」とか言ってれば まあ体面はたもてるな。 : デフォルトの名無しさん [sage] 2011/04/02(土) 23:57:14.26 普通に考えればファイルの形式なんか問題じゃない。 MSもそんなことに口ばしを挟んでいた記憶はないけどね。 MSが問題にしてたのは設定値の保存先だけじゃなかったのかな。 バイナリと同じディレクトリとか、下手するとシステムフォルダとか、 もっと最悪なのはCドライブの決め打ちのパスとかに、しかもマルチユーザーを 意識せずに保存する悪い習慣は止めてねって言ってただけでしょ。 : デフォルトの名無しさん [sage] 2011/04/02(土) 23:59:07.48 C#が優先されているわけじゃなくて、もともとMSの.NET戦略として新規に作られた言語がC#な訳で 新しい機能を試験的にも組み込みやすいからVBよりも先に対応されてんだよ だから後続のVSバージョンでVBにも機能が追加されてる(ジェネリック、ラムダ式、LINQ、自動プロパティとか) VB6から無理して.NET対応したくらいだし、急にMSがVBを見捨てるとは思えんけどな : デフォルトの名無しさん [sage] 2011/04/03(日) 00:02:50.67 くちばしを挟むっていうか、iniじゃなくてレジストリ使えって書いてある。 : デフォルトの名無しさん [sage] 2011/04/03(日) 00:06:11.34 iniファイルの読み書きルーチン自作して、マルチユーザー対応も しっかりしてればiniでも独自形式もなんでも問題ないわな。 まあ、おれは使わないけど。 : デフォルトの名無しさん [sage] 2011/04/03(日) 00:13:45.33 XMLやレジストリよりINIファイルを好むってのはエンドユーザとかSEが簡単に設定の追加・変更・確認が しやすいからだと思ってるんだが、まぁ設定管理画面くらい別に実装しろって言うとそれまでだけど : デフォルトの名無しさん [sage] 2011/04/03(日) 00:26:59.27 むしろ.NET立ち上がり時にレジストリはもう使うな、という話はあった。 ファイルの形式については問題にする意味がわからない。 常識的に言って大きなお世話だろう。 せっかくあるシリアル化等の機能を使った方が生産性が高いですよ、というのなら話はわかる。 : デフォルトの名無しさん [sage] 2011/04/03(日) 00:47:44.44 XNAのVB切捨てとか明らかにサポートコスト削りだよ : デフォルトの名無しさん [sage] 2011/04/03(日) 01:16:20.45 対応するみたいだけど ttp://blogs.msdn.com/b/lisa/archive/2011/03/28/xna-is-coming-to-visual-basic.aspx そもそもXNAってVB対応してたっけ? : デフォルトの名無しさん [sage] 2011/04/03(日) 01:31:16.05 問題にする意味って、APIは使うなってアナウンスがあるし、 iniの読み書きルーチンでも独自に作ればいいけどそんなことを するほうが意味が分からない。 物好きで、もうiniファイル関連のライブラリを作ってしまってるなら それでも使ってればいいだろうけど、初心者がiniとレジストリのどっちが いいですかって聞いてたらレジストリを勧めとけばいい。 : デフォルトの名無しさん [sage] 2011/04/03(日) 10:43:42.77 明らかにC#の方が検索してても情報量多い。 しかし社内便利屋の俺としてはVBの方が角が立たなくて良い。 C#じゃ爺さんはメンテしてくれなさそうだし。 : デフォルトの名無しさん [sage] 2011/04/03(日) 11:00:51.31 そりゃC系怖くてVBしか使えないような人がwebで有用な情報を発信できるとは思えない : デフォルトの名無しさん [sage] 2011/04/03(日) 11:26:24.68 C#もVBもそんな変わんないんだから脳内変換すりゃいい : デフォルトの名無しさん [sage] 2011/04/03(日) 12:04:14.86 文字列の最大値について質問します stringの最大値は何になるのでしょうか? Char.MaxValueが解となるように思えますが 文字数も定義せずにChar.MaxValueが最大になるということが 今ひとつ納得できません。 : デフォルトの名無しさん [sage] 2011/04/03(日) 12:10:51.86 文字列の最大値 の意味がわからない Char型の値はUnicodeの文字コードの数値で、Char.MaxValueはその最大値 文字数は全く関係ない : デフォルトの名無しさん [sage] 2011/04/03(日) 12:13:34.26 先進機能をC#で実験的に実装、安定化・普及後にVBにも実装 やっぱVBでいいや : デフォルトの名無しさん [sage] 2011/04/03(日) 13:30:19.72 文字列の最大長のことかね。 2Gとか4Gとかそのあたりだろうけど、そんな限界まで使わないから分からないな。 : デフォルトの名無しさん [sage] 2011/04/03(日) 13:33:27.40 何の話をしてるんだよ... : 985 [sage] 2011/04/03(日) 15:46:39.66 色々検索してみたけど "aaa"と"a"を比較するときは [0x0061 0x0061 0x0061] と [0x0061 0x0020 0x0020]を 左から順番に評価していくから string型もchar型も文字数は関係なく最大値はChar.MaxValue[0xFFFF] であるという認識で宜しいのでしょうか。 それなら納得いく : デフォルトの名無しさん [sage] 2011/04/03(日) 15:57:37.93 だから最大値って何のこと言ってるんだよ。 頭おかしいのか? : デフォルトの名無しさん [sage] 2011/04/03(日) 15:58:32.14 意味わかんね "a" は { 0x0061 } であって後ろに半角空白なんか付かない 比較するなら2文字目で 0x61 と「存在しない」を比べることになる で最大値って何よ : デフォルトの名無しさん [sage] 2011/04/03(日) 16:06:13.75 …いろいろ検索してその内容ってどこを検索してきたんだよ : デフォルトの名無しさん [sage] 2011/04/03(日) 16:20:42.43 文字列を比較演算子とかCompareTo()とかで比較したとき、どの文字列よりも 大きいって判定される文字列ってことだろうか > 最大値 コミュ力に難のある人みたいだから、こういう質問しても答えかえってこないと思うけど。 : 985 [sage] 2011/04/03(日) 16:29:03.88 だいたいさんの説明でわかりました。 まさに私が質問したかったことです。 私の表現と知識が足りずにうまく伝わらなかったようですが。 : デフォルトの名無しさん [sage] 2011/04/03(日) 16:34:16.22 文字列の最大値は、Char.MaxValueのCharが、文字列の最大長まで 入ってる文字列だよ。 Dim s as new string(Char.MaxValue, Int32.MaxValue) みたいなやつ。 (実際にInt32.MaxValueの長さの文字列を作れるかどうかは知らんけど) : デフォルトの名無しさん [sage] 2011/04/03(日) 19:21:34.37 Char同士の比較は文字コードの数値比較だけど 文字列の比較は通常カルチャ依存だから絶対的な最大値はないよ : デフォルトの名無しさん [sage] 2011/04/03(日) 19:46:29.60 まあ、Char.MaxValueを使ってる文字列なんてなさそうだから、 実用上は new string(Char.MaxValue)でよさそうな感じだけど > どの文字列より大きい文字列 : デフォルトの名無しさん [sage] 2011/04/03(日) 19:53:54.14 何の実用だよ : デフォルトの名無しさん [sage] 2011/04/03(日) 19:59:00.14 番兵とかHIGH_VALUE的な使い方とか。 : 1001 [] Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。
凡例:
レス番
100 (赤) → 2つ以上レスが付いている
100 (紫) → 1つ以上レスが付いている
名前
名無しさん (青) → sage のレス
名無しさん (緑) → age のレス
ID
ID:xxxxxxx (赤) → 発言が3つ以上のID
ID:xxxxxxx (青) → 発言が2つ以上のID
このページは2ch勢いランキング が作成したアーカイブです。削除についてはこちら 。