[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 05/28 05:52 / Filesize : 155 KB / Number-of Response : 699
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C#, C♯, C#相談室 Part55



1 名前:デフォルトの名無しさん [2010/02/04(木) 20:32:55 ]
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

前スレ
ふらっとC#,C♯,C#(初心者用) Part54
pc12.2ch.net/test/read.cgi/tech/1264236247/

関連スレ
C#, C♯, C#相談室 Part55(実質56)
pc12.2ch.net/test/read.cgi/tech/1260111240/

WPF(XAML, XBAP, .Net3.5)GUIプログラミング Part5
pc12.2ch.net/test/read.cgi/tech/1261879110/

281 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 17:38:14 ]
実際には中でXmlReaderの派生クラスのインスタンスを作って返してる
staticメソッドを使ったファクトリメソッドパターンってやつ

282 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 17:44:45 ]
>>281
やはり内部で派生クラス作ってるんですか
コンストラクタから作るのじゃなければ、言語規約としては矛盾しないのかな…

デザインパターンの知識ってこういうとこでも役に立つんですね、勉強してみます

283 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 17:47:29 ]
>>282
c#は本筋で関係してそうなクラス(Objectなど)以外にxxBaseとか元になってる似たような
名前のもあるしReaderが作ってことは内部でxxReaderを使ってるってことだしねえ

284 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 17:48:18 ]
>Readerが作って
Readerが名前に使われてるって

285 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 18:18:51 ]
C#というよりVisualStudioの話になるんですが、
同一ソリューションの中の
複数プロジェクト(アプリケーション)の
同時デバッグってどうやるんですか?


286 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 18:22:19 ]
開発環境のデバッグ機能って使ったこと無い

287 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 18:23:55 ]
System.Diagnostics.Debugger.Break()とか

288 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 18:25:13 ]
msgboxとprintfしか使ったこと無い

289 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 18:28:25 ]
ご冗談を



290 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 18:29:06 ]
>>286
どうやってデバッグやられているんですか?


291 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 18:30:59 ]
ソースをプリントして脳内で追う

292 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 18:54:26 ]
dynamic myClass = IronPythonなどでクラスを表すオブジェクト;
dynamic myClassObj = new myClass(); //エラー
C#ではdynamicにnew使えないのはなんで?
dynamicの仕組み上は可能なはずだけどどういう意図で制限してるんだろ

293 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 18:54:56 ]
ソリューションのプロパティでマルチスタートアップ

294 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 19:01:54 ]
>>292
DLRのdynamicがC#のクラス用でないというだけ。

295 名前:292 mailto:sage [2010/02/18(木) 19:19:56 ]
>>294
たとえばSilverlight4ではこんなことができる
HtmlPage.Window.Eval("function f() { alert('エラー'); }");
dynamic func = HtmlPage.Window.GetProperty("f");
func();
もちろんHtmlPage.Window.GetProperty("f")の戻り値はデリゲートじゃなくて変なラッパーだけどちゃんと動く
よく考えたら、C#ではnewの右は型名と決まってるから>>292をやろうとしたら文法に手を入れないといけなくなるね

296 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 19:23:40 ]
>>295
分かってるなら聞くなよ。
わざわざ書き込みに来て何がしたいんだ?

297 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 19:48:29 ]
>>293
おー、素晴らしい。
ありがとうございます。

298 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 21:36:07 ]
.NETで作ったソフトって配布するとVisual Studioを登録した名前がバレちゃう?

299 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 21:44:51 ]
>>298
pdbファイルののフルパスが入ってることがあるから気になるならオプションで外しておけばいい。



300 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 21:52:05 ]
アセンブリ情報の中に著作権者は含まれるが、デフォルトで設定されるのは会社の方だけだったかな

301 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 22:14:23 ]
>>292
これはだめ?
dynamic myClassObj = Activator.CreateInstance(((object)myClass).GetType());

302 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 22:15:55 ]
DllImportで引数がC/C++でLPCSTR/LPCWSTRの型の関数を使う時にC#側ではstringとして宣言してるんだけど
C/C++ではNULLを渡す場面が発生するみたいで、C#も同様にnullを引数に入れるとコンパイル時にエラる。
どうやって同様の値を表せばいいの?

303 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 22:17:57 ]
>>301
それだとDLRの仕組みが考慮されない
>>302
IntPtr.Zero

304 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 22:20:55 ]
(string)IntPtr.Zeroが変換エラー

305 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 22:27:33 ]
string として宣言せずに、IntPtr として宣言しとけばいいだけ。

306 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 22:28:13 ]
どうもありがとう!

307 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 06:36:13 ]
いえいえ。次回のお礼時は贈り物をよろしくね。

308 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 10:55:03 ]
えっ
昨日も贈り物送ったんだけど届いてない?

309 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 11:48:27 ]
独自パケットを使った通信で
パケットの中身をXMLにして
XmlSerializer使ってらくに通信したいんですけど
参考サイトとかないですか



310 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 11:50:45 ]
>>309
わけた方がいいんじゃねーの?

通信で送受信する内容はメモリにおいて置けるし
XmlSerializerの方はMemoryStreamで読み書きできるはずだし

311 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 12:04:07 ]
・・・

参考サイトとかないですか!

312 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 12:07:22 ]
そもそも独自パケットなんてできるのか?

313 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 12:41:33 ]
独自パケットといってもTCP/UDPの上に載せる部分を独自にしたいだけです。

var ns = new NetworkStream(new TcpListener(11111).AcceptSocket());
var obj = new XmlSerializer(typeof(Packet)).Deserialize(ns);

こんな感じでやってみると、Socketが閉じるまでシリアライズし続けるみたいなので。
こういうことをやる楽な方法はないかなと思いまして。

314 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 12:43:24 ]
>>310
見落としてました。
やっぱりいったんメモリに溜めてからですかね。
うーん。

315 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 13:07:07 ]
Girl nagisa = new Girl("凪沙", 13, 148.0F, 43.0F, Attribute.Twintail | Attribute.Magical);
while(true) nagisa.Insert(new Stick(Material.Hard));


316 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 13:08:53 ]
↑は面白いと思ってやってるらしい

317 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 14:27:07 ]
素直にWCF使えばいいのに

318 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 15:09:18 ]
何でわざわざ自作すんのかねぇ

319 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 15:50:23 ]
WCF試してみます。



320 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 16:33:55 ]
お礼くらい言え

321 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 16:49:36 ]
お礼は三行以上でお願いします

322 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 16:59:52 ]



とうございません

323 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 17:29:22 ]
WCFってさぁ

324 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 17:50:38 ]
WCF地味に凄いんだよな。
地味なんだけど。

325 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 19:26:32 ]
WCF自演乙

326 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 21:40:36 ]
人工知能かよ
WCFすげえなおい

327 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 21:43:33 ]
expressだと使えない・・・。


328 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 22:00:10 ]
VWD2008Expressなら使える

329 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 22:03:35 ]
Express使うならVC#よりもVWDの方がいいよ
VC#からテンプレート抜き出せばVC#のスーパーセットになる



330 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 22:42:29 ]
VWDええの?
ASP.NETやる時だけ使ってて、C#はVC#EX使ってたよ。

331 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 23:28:43 ]
プロジェクトとアイテムのテンプレートをVC#から持ってくれば
VWDでWinFormsもWPFもコンソールも使えるようになるよ

332 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 01:07:31 ]
Windows Formに数個のRadioButtonと1個のButtonを並べておいて、
適当なタイミング(例えばButtonのクリックイベント)でButtonのEnabledをfalseにすると、
(たぶんTabOrderが一番若い)RadioButtonのClickイベントがクリックしてもいないのに
発火するようなんだけど、これバグでなければどう理解したらいいんだろう?

333 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 01:18:26 ]
Enableとかしなくても貼り付けてフォーム表示するだけで普通に発生するね
ラジオチェックしてボタンをEnable=falseにしたらチェックの入ってるラジオのクリックイベントが発生したわ

クリックなんか使わないから初めて知った・・・





334 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 01:24:56 ]
ラジオボタンにフォーカスが移る=クリック扱いのようだな
カーソルキーでぐりぐりとフォーカス移動させるとクリックイベント発生しまくる


335 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 01:51:25 ]
>>334
なるほど。
でもTabキーでフォーカス移動したときには発生しないようだし、
なんだか妙な仕様に感じるなあ。

しかし、AutoCheckをtrueにできない用途(通信がらみとか)だと、Clickイベントを
使わざるを得ないわけでこういう仕様は困るなあ。

MouseClickを使えってことなのか。
でもそれだとSpaceキーとか拾えないしなうーん。

336 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 07:59:45 ]
ボタンにフォーカスがあるのにEnterキーでクリックにならない。
で、カーソルキーを← →と押して、フォーカスを一端外してまた戻してやると
なぜかこんどはEnterが使えるようになる。
.Netのコントロールはなんかおかしい。
そんなんプログラマが意識しなくてもデフォルトでそうなってくれてるもんだよな。

337 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 08:24:29 ]
確かにEnterキーでクリックイベントは起きないな
> で、カーソルキーを← →と押して、フォーカスを一端外してまた戻してやると
> なぜかこんどはEnterが使えるようになる。
でもこれは再現しない
Enterじゃなくてスペースキーなら使えるよ

結局、フォーカスが移るのは関係なくて、ラジオボタンの○が◎になったときに
クリックイベントが発生してるみたいだから、別に問題ないじゃん
タブで移動やEnterで○のままならクリックしてないのと同じだし
カーソル移動やスペースで◎になるならクリックしたのと同じだし

338 名前:デフォルトの名無しさん [2010/02/20(土) 11:08:51 ]
え?

339 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 11:25:12 ]
>329,331
bluewatersoft.cocolog-nifty.com/blog/2009/05/visual-web-deve.html
プロジェクトに関してはこういう記載ありましたが、
テンプレートの抜き出しとは何をすれば良いのでしょう



340 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 12:42:54 ]
何をすれば良いのでしょう

341 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 14:26:48 ]
comboBox1.Items.Add("hoge");
comboBox1.Text = "HOGE";

とすると Text の値が "hoge" の方になってしまうのですが、
大文字・小文字を区別して"hoge"が選択されないようにするには
どうしたらいいでしょうか?


342 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 14:39:31 ]
>>339
Program Files\Microsoft Visual Studio 9.0\Common7\IDE\VCSExpress\ItemTemplates\1041フォルダを
ドキュメントフォルダのVisual Studio 2008\ItemTemplates\Visual Web Developperにコピー
同様にItemTemplatesのところをProjectTemplatesに読み替えてコピー
WPFアプリケーションのプロジェクトはちょっとだけvstemplateファイルを弄らないといけなかったような気もする

343 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 14:41:37 ]
内部で LB_FINDSTRING してるところを無視する。

344 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 15:21:34 ]
無視するんですね

345 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:22:29 ]
C++/CLIでC/C++の標準ライブラリをラップに包んでC#で利用しようとしているのですが
C#で利用できる名前空間をC++/CLIで定義するにはどうすればいいか教えてくだされ。

346 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:24:56 ]
C++のスレの範囲じゃないの

347 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:27:39 ]
そもそもC#からC++製のマネージドなアセンブリ使う場合/clr:pureでコンパイルしないと使えないんじゃないか?

348 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:29:15 ]
>>345
普通にC++の名前空間にする
>>347
そんなことはない

349 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:30:45 ]
>>348
どうもありがとう!!できました!!!!

>>346
C#から参照してるからC#関係あるだろうが適当な事いうな分からないなら黙ってろクズ

>>347
知ったかぶりはやめましょうね^^



350 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:32:51 ]
TcpClient使ってアクセスしてるならWebAPIの使い方聞いていいって事になるな。
こいつはこじつけが楽でいい。

351 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:33:25 ]
そうだね^^

352 名前:345 mailto:sage [2010/02/21(日) 15:35:13 ]
>>349
成りすましはやめてください。

353 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:35:48 ]
C#使って351を殺す方法を教えてくださいもOKだね

354 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:37:38 ]
多分同一人物だろうけど、勝手に「自己解決しました。」って発言するやつとか>>349みたいなのがいるからこの板もIDつきにして欲しいな。

355 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:41:17 ]
何度も却下されてるから考えるだけ無駄

356 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:42:33 ]
「なりすましされたくなければ鳥付けて質問しろ」
と次から書いとけ。

357 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:44:13 ]
ム板の花だから

358 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:56:06 ]
>>353
回答したら、幇助になる可能性はあるけどな。

359 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:01:31 ]
動的に生成したPanelにラベルやらピクチャーボックスやらを載せているんですが、
panel.MouseClick += panelClick;
とした場合には、パネル上の他のコンポーネント(ラベルやらピクチャーボックス)
がクリックされた場合は反応しませんよね。
上に載っているラベルとかも含めてパネルがクリックされたら反応させるってことできませんか?



360 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:02:40 ]
そっちのイベントをPanelのイベントに関連づければいい。

361 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:03:08 ]
鳥つけるのもいいけど、ここをよく利用する人にとっても面倒だしなあ
ましてや2ch利用者の多くはテンプレ読まないの多いのにそんなルール
作っても・・・とか思うわ

IDつけてくれとかどこかに要望だしてやってくれるのかな?

362 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:04:12 ]
>>359
panelってむき出しになってる部分あるの?

363 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:05:12 ]
>>360
関連付けってなんです?
panel.MouseClick += panelClick;
label.MouseClick += panelClick;
pictureBox.panelClick += panelClick;
みたいなことをしろってことですか?

364 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:06:58 ]
>>363
うん。

365 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:07:04 ]
>>362
あります
パネルの部分をクリックすると反応します

>>363
panel.MouseClick += panelClick;
label.MouseClick += panelClick;
pictureBox.MouseClick += panelClick;
でした

366 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:09:08 ]
>>364
わかりました、そうします
ありがとうございました

367 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:09:34 ]
>>365
デザイナーが用意するイベント処理関数はいかにも・・という名前付くけど
実際のところは共通の処理にしても問題ないよ
ただそうなると実際どのコントロールでイベントが発生したかわからなくなるので
コントロールのNameで工夫するかTagがあいてるので識別に使うとかすれば
いけるでないの?

368 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:27:32 ]
>>367
こういうときはその方法(NameかTagで区別する)が定石なんですか?

private void panelClick(object sender, MouseEventArgs e)
という関数で
sender instanceof Panel
ってやれるといいんですがinstanceofないんですね
sender.GetType().ToString() == "System.Windows.Forms.Panel"だといけそうですが
ちょっと冗長ですよね

369 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:31:07 ]
as



370 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:36:47 ]
>>368
上にでてる
>panel.MouseClick += panelClick;
>label.MouseClick += panelClick;
>pictureBox.MouseClick += panelClick;
こういう共通関数で処理する場合
object senderで送られてくるのはpanelだけじゃなくなってるので
どこかで識別しないとたぶんキャストでこけるよ

panel.MouseClick += panelClick;
panel.Tag = 1;

label.MouseClick += panelClick;
label.Tag = 2;

pictureBox.MouseClick += panelClick;
pictureBox.Tag = 3;

といった感じで識別コードでも用意して

int ControlCode = (int)sender.Tag;

371 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:41:36 ]
>>370
一部訂正

private void panelClick(object sender, MouseEventArgs e)
{
    int ControlCode = (int)sender.Tag;
//どのコントロールから来たか判断

    //instanceofの代わりにキャストすればいい
    Panel panel = (Panel)sender;
}
それかイベントハンドラの入り口だけはきっちりわけちゃって

そこから共通の処理関数を呼び出すとか
private void panelClick(object sender, MouseEventArgs e)
{
  Panel panel = (Panel)sender;
  commonfunc(panel.hoge1,panel.hoge2);
}
//labelやpictureBoxも同じようにする

372 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:44:57 ]
>>370-371
Tag使ったほうが比較も早そうですね
ありがとうございます

373 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:47:46 ]
>>372
Tagはobjectなんでなんでもぶら下がるからいいよ〜

374 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:48:09 ]
TagなんてVB6かよ・・・

375 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:52:28 ]
>>374
グローバルでフラグ持ったりするよりはいいんでないの?
他にコントロール間の関連付けとかいい方法あったっけ?

376 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 17:12:32 ]
そもそも、まとめてやりたいはずだったのに、わざわざ区別するのもわからん。
それなら、別のイベントプロシージャでやればいいんじゃね?

で、わざわざTagなんぞ使わなくても、is なり == なりで判定すればいいだけ。

377 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 17:12:40 ]
>>374
C#って過去の言語の寄せ集めみたいな設計だから
Java臭がしてVB6.0臭がするC/C++ぽい言語ってところだよ

378 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 17:45:34 ]
それ言い始めたら代入文(=)って全てFORTRAN臭がするってことになるしな。
「・・・かよ」は罵倒にすらならないね。

379 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 17:48:02 ]
キチガイが来ました−。



380 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 18:51:25 ]
お前のDNAから猿臭がする

381 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 19:44:39 ]
MemoryStream ms = new MemoryStream();
XmlTextWriter xtw = new XmlTextWriter(ms, Encoding.UTF8);

xtw.WriteStartDocument();
xtw.Formatting = System.Xml.Formatting.Indented;
xtw.WriteStartElement("HAGE");
xtw.WriteElementString("HOGE","HOGE");
xtw.WriteEndElement();
xtw.WriteEndDocument();

で、msにXMLを書き込めると思ったら書き込めないんです
何か間違ってるんでしょうか・・・。

382 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 19:48:17 ]
XmlWriterをClose/Flushしてない

383 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 19:54:27 ]
Tagは便利だけど、これはどうなんだ?って思いながら使ってる。
もっとスマートな方法ないのかね。

384 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 20:01:22 ]
Dictionaryなり使って外から管理する手もある

385 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 20:03:16 ]
>>383
ないんじゃね?
2ch専ブラのスレ覧のタブ部分とListViewの連動とか
スレッドのタブ部分とブラウザー部分の連動はTag使った方が
スマートにかけるし、動的生成でとちらない限りはバグを仕込まないしねえ

386 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 20:04:22 ]
>2ch専ブラのスレ覧のタブ部分とListViewの連動とか
>スレッドのタブ部分とブラウザー部分の連動はTag使った方が
>スマートにかけるし、動的生成でとちらない限りはバグを仕込まないしねえ
これは割りと見慣れてるGUIの実装の例ってことで・・

387 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 20:19:07 ]
専ブラの例なら、データ構造内に持つのが素直じゃね?

388 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 20:28:26 ]
>>387
内部構造は別途持つよ
最終的なそれぞれのリンクの話

目印つけたりして判断ロジック入れるのもいいけど
動的にオブジェクト作るときは関連については全部
わかってるんだから、イベント受けた側で条件式使
わないで何をすればいいかわかるようにすればいい


controls.Addでの関連(表示だけの関連)
上panel <-Button
下panel <-ListView

Button.Tag
└ListView.Tag
  └内部のデータ構造への関連

ListView
└ListViewItem.Tag
  └内部のデータ構造への関連

内部のデータ構造
・・・・

こうすればキャスト数回ですぐに処理可能になる

389 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 20:49:05 ]
ごめん。全然意味がわからん。



390 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 20:51:44 ]
俺は28%ぐらい理解した

391 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 21:01:19 ]
そもそも動的にパネルを生成するのはいいとして、その上のコントロールまで
動的に生成する、などという泥臭いやり方に問題があると思うんだけどね。

上にのっけるコントロールの種類や配置を状況によって変える必要がある、
とかでなければ、UerControlを使うべきじゃないのか。

392 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 21:41:59 ]
Tag使うくらいならIExtenderProvider


393 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 22:14:10 ]
>>392
やるじゃん

394 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 23:13:44 ]
TcpListenerが気がついたら破棄されてるんですが何ででしょう・・・orz
変数としてはずっと保持してるはずなんですが・・・意味がわからん

395 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 23:20:23 ]
変なことしてるからだろう

396 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 23:21:59 ]
設定画面用のフォームを作成してXMLファイルから設定を読み込み。
メニューから設定画面を呼び出すと1度目は表示されるのですが2度目からは破棄されたオブジェクトとなってしまいます。
FormをClose()しているのですがClose()すると破棄されてしまうんでしょうか?

397 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 23:25:37 ]
フォームが閉じると、オブジェクト内で作成されたすべてのリソースが閉じ、フォームが破棄されます。

398 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 23:25:39 ]
うん。

399 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 23:36:28 ]
ああ・・・そうだったんですね・・・orz

1から作り直してきます



400 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 00:33:34 ]
モードレスならHideでも行けるぜ


401 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 00:40:15 ]
C#って画像を任意の三角形で切り抜いて表示とかできる?

402 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 00:44:31 ]
できる

403 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 00:45:17 ]
unsafe使わないと遅い

404 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 01:15:28 ]
例えば単にClip領域を設定して描画するだけの話で、そう遅いとも思えんけどね。

405 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 03:54:01 ]
>>391
まあサンプルが2ch専ブラの話だしねえ
既存の2ch専ブラを模倣するとそういう実装になるってことじゃないの?

406 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 08:44:15 ]
//  Form: DoubleBuffered = true
 private void Form1_Resize(object sender, EventArgs e) { this.Invalidate(); }
 Image im = Properties.Resources.画像;
 FontFamily fontf = new FontFamily("Times New Roman");
 StringFormat stringf = new StringFormat();
 private void Form1_Paint(object sender, PaintEventArgs e) {
  Graphics g = e.Graphics;
  using (GraphicsPath path = new GraphicsPath())
  using (Brush ib = new TextureBrush(im)) {
   path.AddPolygon(new[] { new Point(200, 50), new Point(50, 250), new Point(250, 250) });
   path.AddString("Drawing", fontf, (int)FontStyle.Bold, 72, new Point(0, 0), stringf);
   float sc = this.ClientSize.Width / 300.0f;
   path.Transform(new Matrix(sc, 0, 0, sc, 0, 0));
   g.SmoothingMode = SmoothingMode.AntiAlias;
   g.Clear(Color.Black);
   g.FillPath(ib, path);
 }}


407 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 09:05:55 ]
>>406
そのコードは何をしたいんだ

408 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 09:11:51 ]
>>401への回答だろ。流れ的に

409 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 10:31:07 ]
>>406
アンカーくらいつけろよ、くちべた君(笑)



410 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 11:58:37 ]
必死に考えて、ケチつける所が「アンカー付いてない」だけなんてwww

411 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 12:11:54 ]
しかも「くちべた君」w

412 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 12:16:59 ]
C##

413 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 12:27:08 ]
>>401-408で何事か起きたわけでもないのに>>409でなぜ罵倒に至ったのか…

414 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 13:19:07 ]
>>406
やってみたらできました
ありがとうございます

415 名前:デフォルトの名無しさん [2010/02/22(月) 16:01:42 ]
C#初心者です。
以下のようにタイマー割り込みが来るたびに
newでインスタンスを上書きするような記述はおかしいでしょうか?
なんかどんどん処理が重くなってる気がするんですが・・・
原因がここじゃないかと思って質問しました。
よろしくお願いします。

class hoge1
{
public hoge1(int i)
{
//コンストラクタ
}
}

class hoge2
{
timer割り込み()
{
myHoge1 = new hoge1(i);
i++;
}

hoge1 myHoge1;
int i=0;
}

416 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 16:04:24 ]
>>415
そのnewをやめて軽くなるならそれが原因じゃね?

417 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 16:15:00 ]
DisposeやFinalizeがあるクラスでなければ、
ほとんど問題にならないと思うよ。

418 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 16:17:40 ]
何がどれぐらい重くなるのかも調べずに「気がする」って言われてもなぁ

419 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 16:17:49 ]
ほとんど問題にならないと思うよね。



420 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 17:01:54 ]
問題は毎回 new する必要が本当にあるのかどうか

421 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 18:02:57 ]
普通に考えると、この程度で体感できるほど重くなる筈がない。
勘違いか見当違いの所探してるだけだろ。

422 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 18:33:36 ]
へえ

423 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 18:35:44 ]
別の場所かコード端折ったとこに原因があるか

424 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 19:11:50 ]
newしてるクラスがかなり小さく、かつ内部でアンマネージ捕まえてたりすると重くなるかも

425 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:41:19 ]
たしかに

426 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 22:41:00 ]
適当に重くなったときにCGに強制回収させてみて、それっから処理が軽くなったら・・・とかで調べてみるとか

427 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 05:18:54 ]
>>408
>>406だけ見ると>>401が試行錯誤してコード書いたけどうまくいかなくて質問
来た様にも見えるしなあ

結論とすれば>>409のいうことだよ

428 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 07:22:45 ]
くちべた君(笑) これははやるかもしれん

429 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 19:21:55 ]
某フォーラムで提供されているライブラリー(mmf.codeplex.com/releases/view/40043)を使って、
メモリーマップドファイル版のListのジェネリッククラスを作った。
www6.atpages.jp/~autonomydoll/object/files/VaribleList.zip
15MBのテキストファイルで実験したら、31MBぐらいディスクスペースを消費して、プロセスのワーキングセットが80MBを超えた。
おまけに、読み終わるまで3分近くかかって、使い物にならない。
構築がこれよりも早いデーター構造はない?



430 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 19:28:28 ]
CLRでファイルマッピングがサポートされるのはV4からだっけ?
どういう構造のライブラリーか知らないが、普通にP/InvokeでファイルマップのAPIを使うと、
ネイティブのViewからマネージドメモリへマーシャリングが起きると思うんだけど。

431 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 19:44:04 ]
SQL Server Compact Editionでも使えばと言いたくなるのだけれど

432 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 23:32:17 ]
自宅でgoogleで「C#」で検索してもCしかかからないんだけど
会社で検索するとちゃんと出る…
なんか設定とかあるのかねこれ

433 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 23:43:30 ]
アドレスバーにq=C%23って出てるか?

434 名前:デフォルトの名無しさん mailto:sage [2010/02/25(木) 00:37:45 ]
他のキーワードとあわせてC#検索したらその後からC#単独で検索しても
引っかかるようになった。
どんなロジックなんだgoogle…

>>433
出てるよー

435 名前:デフォルトの名無しさん mailto:sage [2010/02/25(木) 01:50:33 ]
FILE_ATTRIBUTE_TEMPORARY指定の一時ファイルを使って、
擬似MemoryStreamを作ったことならある。


436 名前:デフォルトの名無しさん mailto:sage [2010/02/25(木) 01:55:40 ]
>>429
よく見てないがそれ以前にシリアライザなんか使ったら遅いに決まってる。


437 名前:デフォルトの名無しさん mailto:sage [2010/02/25(木) 12:50:48 ]
>>434
普通に前回までの検索結果が反映されてただけじゃないの?

438 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 22:31:57 ]
>>430
P/Invokeってそんなにコストがかかるの?
ライブラリーのソースを調べたら、思いっきり使いまくってるんだが・・・

439 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 22:41:59 ]
P/Invokeのセキュリティチェックと、場合によってマーシャリングはそれなりにコストはかかるが、
メモリマップした後の単なるポインタアクセスじゃそんなの関係ないからそう影響はない。
もちろん、例えばタイトなループ内でP/Invokeを繰り返したら影響はでかい。
それとは別に、カーネルモードへの移行が必要となるようなAPIでは、
P/Invokeとは関係なくかなり負荷が高い。
カーネルオブジェクトの操作する場合など。




440 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 22:44:20 ]
セキュリティチェックを省いたり、bittableなやり取りだけになるように工夫すれば、大した負荷はない。


441 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 22:44:23 ]
メモリーマップドファイルて普通の業務アプリ使ってて何に使うのかぱっとおもいつかん・・
DBとかだと有効かもしれんが普通DB使うだろうし・・・
ん〜・・・
だれかおいしい使い道教えてくれ

442 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 23:16:01 ]
>>441
エディターの類。
巨大なファイルもファイルマッピングで編集すると、効率がいいらしい。

443 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 23:34:08 ]
巨大なファイル使う時ぐらいでしょ。
業務アプリでは考える必要ないと思う。

444 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 23:34:25 ]
プロセス間である程度大きいデータを共有したいときとか。
で、かつ、ファイルやDBとか使えないときに使ったことがある。

445 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 23:48:51 ]
どなたかDelphi使いでC#に乗り換えた方いますか?

DelphiでのTGraphicControlみたいに簡単にグラフィック系のコンポーネントを作るには
C#だとなんてクラスを使うんですかね?

C#でメータとかグラフとかのコンポーネントを作りたいんだけど・・・



446 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 23:50:51 ]
WPFつかえばらくちんぽんで出来るYO!

447 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 23:53:45 ]
Controlから直接派生してOnPaintをオーバーライド
まあWPF使えばコード一行も書かずに何でも描けるけどね

448 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 00:01:16 ]
あら、即効で・・・

WPFですか。
ちょっと勉強してきます。

ありがとうございます。


449 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 00:23:36 ]
>>442-444
サンクス
なるほど・・・勉強になった




450 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 01:13:25 ]
SqlCommandにパラメータ付のSQL文を設定した場合、プロファイラでトレースすると
exec sp_executesql N'SELECT * FROM TAB WHERE COL = @VAL',N'@VAL char(1)',@VAL='a'
上記のような文字列(上記は例)が取得できます。
この文字列をプログラム上からログに落としたいと思っています。
どうにかして文字列を取得することはできないでしょうか?
SqlCommandのパブリックなメンバでは取得できないので
リフレクションとか使えば取得できるかと思ったのですが、
この文字列を保持しているプライベートなプロパティが見つかりませんでした。

451 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 02:14:01 ]
むしろSQLクライアントでログ取ればいんじゃね?
少なくともOracleのにはあったハズ

452 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 08:56:17 ]
パケットキャプチャすればいいよ

453 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 11:43:51 ]
俺はparametersを自力で展開してたけど、いいやり方あるのかな
Nullの扱いと’のエスケープをちゃんとすればログのSQLをコピペして使えたけどどうなんだろう

454 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 13:29:17 ]
オレもいい案があれば知りたい

455 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 18:57:02 ]

bool createPanel(){
  ...
  bodyLabel.Text = "テスト";
  bodyLabel.Width = this.Width - 20;
  bodyLabel.BorderStyle = BorderStyle.FixedSingle;
  ...
  panel.Controls.Add(bodyLabel);
  return panel;
}

こういう関数を繰り返し呼び出して、
出来たパネルを、別のメインとなるパネルに縦に並べていっているんですが、

メインパネルのサイズ以上に並べたあたりから(メインパネルはAutoScrollをtrueにしてあります)
bodyLabelの見た目の長さが違ってくるんですが、なぜでしょう?

見た目としては↓みたいな感じです。

[テスト ]
[テスト ]
[テスト  ]
[テスト  ]
[テスト  ]

デバッガで止めてみると、bodyLabel.Widthの値自体は同じものでした。

456 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 19:41:08 ]
きちんと切り抜きして出直し。
boolのControlsプロパティにAdd?
問題はpanelの方だろさ。

457 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 19:51:39 ]
>>456
すいません

bool createPanel(){
  Panel panel = new Panel();
  Label bodyLabel = new Label();
  ...
  bodyLabel.Text = "テスト";
  bodyLabel.Width = this.Width - 20;
  bodyLabel.BorderStyle = BorderStyle.FixedSingle;
  ...
  panel.Controls.Add(bodyLabel);
  return panel;
}
パネルとパネル上のラベルは関数内で生成してます。

458 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 19:56:42 ]
>>457
ふざけてるのかw

459 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 20:02:22 ]
>>458
え、なんでしょう?まじめなつもりです



460 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 20:13:40 ]
これ、コンパイル通るのか?

461 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 20:18:14 ]
どうやったらコンパイル通るんだろう
using bool = System.Windows.Forms.Panel;は通らないね
Panelは質問者自身が作ったクラスで、boolへの暗黙の型変換演算子をオーバーロードしてるのか

462 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 20:33:18 ]
あああすみません、今気付きました;
関数の戻り値のほうですか
もちろんboolではなくてPanelです

463 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 23:29:59 ]
うん、で、panelのプロパティ設定には問題ないのか?という話。

464 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 00:03:14 ]
というかまあ、問題が再現可能なコードを書いてそのままコピペしてない時点で、
言っちゃ悪いけどもう「問題」は質問者自身の問題解決能力にあることがはっきりしてる。

こういう人ってどういう思考回路してるんだろう。
マジで理解不能。

465 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 01:14:54 ]
多分だけど、まるごとコピペすることが手抜きに思えたりするんじゃない?
だから手動でわかりやすく抜粋しているつもりなんだよ。
はた迷惑だけどね。

466 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 10:59:02 ]
抜粋じゃなくて隠蔽だけどな

467 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 13:21:57 ]
.NET 2.0のlistviewで質問です。
View=Details、オーナードロー、仮想モード、MultiSelect=true、HideSelection=falseにしています。
カラムをクリックしたらソートするようにしてるんですが、選択行が変化しません。
たとえば3行目が選択されていたとして、ソートの結果3行目のデータが2行目に移動しても
相変わらず3行目のみ選択された状態になります。
このあたりの処理も何となく自分でやらなきゃとは思うんですが、どうしたらいいでしょうか?

468 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 14:49:58 ]
オーナードローなんだから自分で描画が必要でしょう。
OnDrawColumnHeader、OnDrawItem、OnDrawSubItemのイベントを自分で記述する。

469 名前:467 mailto:sage [2010/02/28(日) 15:10:36 ]
>>468
それらのハンドルは記述していて、ソートを行わなければ正常に表示されます。
問題は、ソート後に描画しようとしているデータがソート前に選択されていたかどうかを
どうやって知るか、ということだと思うんですが。



470 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 15:11:11 ]
オナニードロー

471 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 15:33:11 ]
>>467
それはオーナードロー関係ないんじゃねーの?
ソートをかけるタイミングで行の位置じゃなく選択行のデータを覚えてて
ソート後にそのデータに対して選択をセットする・・・とかだろ

472 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 15:34:53 ]
VirtualModeの場合、
まず、各アイテムの選択状態も自分で保持しておく必要がある。
で、ソートが終わった後でそれに従ってSelectedIndicesをクリアして追加したりする。

473 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 15:59:24 ]
SubItemごとに固有のtag値を持って描画時に判断すればいいんじゃないのか?

474 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 16:12:32 ]
ソート前のSelectedItemsから項目コピーしといて、
ソート後にSelectedIndices.Clearして、Itemsの各itemを
コピーしといた項目にあるかどうかContainsしてSelectedIndices.Add
じゃないかなー?試してないけど。

475 名前:467 mailto:sage [2010/02/28(日) 17:09:14 ]
>>471-474
ありがとうございます。
なるほど SelectedIndicesがポイントですね。
ちょっと試してみます。

476 名前:デフォルトの名無しさん mailto:sage [2010/03/01(月) 00:07:41 ]
Assertに引っかかるとダイアログが出る。
だが、そのダイアログが大きすぎで画面からはみ出てしまう。
このままじゃあ、ボタンすら満足に押せないんだが、どうにかする方法はない?

477 名前:デフォルトの名無しさん mailto:sage [2010/03/01(月) 00:19:11 ]
ARIのどれかキーボードで押せばいいんじゃね

478 名前:デフォルトの名無しさん mailto:sage [2010/03/01(月) 00:56:19 ]
出力するメッセージを減らす

479 名前:デフォルトの名無しさん mailto:sage [2010/03/01(月) 01:51:37 ]
なんでAssertでそんな膨大なメッセージが要るんだ…




480 名前:デフォルトの名無しさん mailto:sage [2010/03/01(月) 04:17:51 ]
>>479
普通にAssertさせたら、ものすごい行数のスタックログが表示されて…以下略

481 名前:デフォルトの名無しさん mailto:sage [2010/03/01(月) 07:35:13 ]
ダイアログにフォーカス映してCtrl+C

482 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 21:29:24 ]
mouse enterで設定したテキストを表示させたいんだけど、その表示のさせ方が、htmlでいうaltタグとか画像のtitleタグ
みたいに説明を出したい。

483 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 21:30:41 ]
ああ途中送信してしまったわかりにくい説明で申し訳ない


484 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 21:33:38 ]
ToolTip

485 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 21:49:29 ]
ありがとう



486 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 22:52:20 ]
WCFのシリアライズ便利だな
XmlSerializerよりもずっと使いやすい

487 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 23:15:13 ]
>>486
プロレス団体みたいな名前がついた技術は今だにまったく使ったことないやw
XMLシリアル化と比べて特にどんな点が便利なの?

488 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 23:18:16 ]
教えない♥

489 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 23:41:16 ]
プロパティだけではなくフィールドもシリアライズ可
メンバや型がpublicでなくてもいい
Dictionaryもおk
循環参照対応
速い軽い
SerializableAttribute, ISerializableにも対応

欠点
XMLのフォーマットはほとんど制御できない。既存のXML文書の読み取りには使えない。



490 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 23:42:38 ]
連続して申し訳ない。

Accessと繋いでデータグリッドビューにデータを表示させてる。
データセットでselect * fromテーブル名 でやってるから主キーまでdgに表示されちゃうんだよね。

編集の時に主キーが一致するものを・・・にしてあるから主キーは絶対取得したい。けどdgにはでてこないでほしい・・・


あとでボタンを押したら選択されてる行の中身を全部からにしたいんだけどうまくいかない。
currentRowsさん調べたけどわからなかった。



491 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 23:43:37 ]
要するにSoapFormatterの出力を普通のXMLに変更したようなもんか

492 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 23:50:34 ]
>>490
デザイナでデータソース設定してないの? 列の編集とかできるのに
どうしてもコードでやらなきゃ気が済まないってんならLoadイベント辺りでDataGridView.ColumnsからRemoveすればいいけど
現在行とか使うならデータソースにはBindingSource使うのがベター

493 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 23:55:42 ]
>>489
なるほど。
型がpublicでなくてもいいのは魅力かも。
XMLSerializerだと、設定値を保存するための他からは用のないインナークラスを
publicにする必要があったから。

バージョントレランスはどうなのかね。
メンバーが増えたり減ったりしてもそのまま読めるんだろうか。

494 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 23:57:59 ]
何をシリアライズするかはあくまで明示的に決めるのでXmlSerializerに近いかな
型にDataContract属性を付けた場合はDataMember属性が付いたメンバ(private可)だけがシリアライズされて
DataContract属性を付けない型についてはパブリックメンバのみがシリアライズされるようになってる

495 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 00:04:02 ]
>>492
dg部分は他人が作ったんだけどめちゃくちゃなソース書いてて、ソース書けないのにデザイナ使わずに設定してた。

removeタメしてみます。感謝。

496 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 00:24:58 ]
>>493
とあるゲームで使ってるけど、増えても減っても大丈夫だよ。
ないバージョン→あるバージョンの場合は、エラーにならないが追加されたフィールドは初期値
なので自分で初期化しないと駄目。
特に a= new hoge()とか書いているやつは、newされていないので自分で生成する必要がある。
今OS再インスコしたばかりで手元にないけど、確かデシリアライズされた時に呼ばれるメソッドが
あるのでそこで初期化すればいい。

あるバージョン→ないバージョン
シリアライズされたフィールドは無視してくれる。
特に処理必要なし。

497 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 00:26:44 ]
ごめん、WCFのシリアライズじゃなくて.Netのシリアライズの話だったorz

498 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 06:24:13 ]
Webプログラムしか経験がなく動画処理に手を出してみたくてC#はじめました
ttp://support.microsoft.com/kb/436361/ja
これを見てソースをコピペして適当な動画にさしかえて実行したところ
音声がなるのみで映像がでてきませんでした
何を追加したらよいのでしょう?
コメントもないし何をしてるかよくわかりませんが
一応実行できるソースをいただければ後は頑張って調べてみたいと思うので
どうかよろしくお願いします
しかしMSDNのドキュメントは読みづらいですねIDE(VC#)も使いにくいし・・・
なれるまで時間かかりそうorz

499 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 06:41:24 ]
MSDNが読みづらいってのは同意するけど、VS以上のIDEって存在するか?



500 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 08:30:41 ]
月蝕

501 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 09:00:39 ]
eclipse も VS も似たようなもんだと思うけどなぁ。

シコシコ書くなら emacs ちゃん!

502 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 09:35:05 ]
>>498
うちはXPだけど、再生するファイルを以下にしてちゃんと表示された
objMC.RenderFile( @"C:\WINDOWS\clock.avi" ); //このファイル何のためにあるんだろ
映像codecの問題じゃないかな
その映像が出ない動画、エクスプローラからダブルクリックで表示される?

503 名前:デフォルトの名無しさん [2010/03/03(水) 09:37:42 ]
>>502
windows98くらいからの名残じゃなかったっけ?
//このファイル何のためにあるんだろ
システムフォルダに結構昔からの名残があったりするよ

504 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 10:29:44 ]
Win3.1のVideo for Windowsにもあったな。

505 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 13:33:08 ]
>>496
それは問題ないとは言わないだろうw
XmlSerializerやDataContract(WCF)では中身を丸々保存するんじゃなくて
外から見て書き写すので実装がごっそり変更されてもかまわない

506 名前:498 mailto:sage [2010/03/03(水) 16:57:24 ]
レス遅れてすみません。
>>502さんのファイルにしたら再生することができました。
他のaviで試してみたところ正常に動作したので
最初に実験に使ったファイルがmpgだったのがいけなかったようです。
コーデックはffdshowが使われているようです。
wikipediaの説明を見るかぎりコーデックが入ってればなんでも再生できそうな雰囲気だったのですが、
何か勘違いしているのかもしれません。
再生できましたのでソースの意味をこれから調べてみたいと思います。
レスいただいた方ありがとうございました。

ちなみに普段使ってるのはEclipseです。
似たようなもんなんですけど何かが違う・・・
何がおかしいのかよくわからないけど細かいところで違和感が・・・
とそんな感じです。

507 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 22:21:12 ]
ボタン押したらパネルのbackground imageを無くして初期状態にしたんですがどうすればいいでしょうか

508 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 22:38:11 ]
したんだったらそれでいいじゃないか
したいんだったらnull入れとけ

509 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 07:54:54 ]
メモ帳なんかで保存しないで閉じた時になるようなサウンドなんですが
こういうWindows専用のプログラムって
Windowsフォルダ内にそういうファイルがあると踏んでプログラムするもんなんでしょうか?



510 名前:デフォルトの名無しさん [2010/03/04(木) 07:58:48 ]
>>509
あれはwindowsのシステムサウンドを鳴らしてるだけでしょ

windows システム サウンド
とかでググルとわかるよ

511 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 08:33:00 ]
>>510
ありがとうございます
鳴らすための専用のプロパティまで用意されていたんですね
簡単に鳴らすことができました

512 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 00:52:45 ]
>>511
それぞれの時に鳴る音はWindowsの設定で変更できるよ

513 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 05:18:19 ]
普段まったく見えないコンポーネント群の中で
どれがどういう奴か網羅してるサイトとかってある?


514 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 06:19:50 ]
> 普段まったく見えないコンポーネント群

ってなんだよ?

515 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 08:57:49 ]
.NETでコンポーネントっつったらIComponent継承してる奴全部だと思うけど
全部網羅してる奴なんてMSDN以外にないだろうな

516 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 10:11:43 ]
正規表現で、

Hoge(Hoge(Hoge("unko","unko2"),"hogehoge"),"syobo-n")

みたいのを解析したいとしたらHoge(xxx,xxx)のような感じでかつなかにHoge(xxx,xxx)を含まないものでマッチさせて、
それを取得するとともに適当な文字、たとえば###にReplaceしてその上の階層をマッチさせて…みたいな感じになるのかの.


まんどくせorz


517 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 10:12:12 ]
WPFのコンポーネントはIComponent使わないよ

518 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 10:15:48 ]
>>516
一番いいのは解析しなくて済む方法を考えることだお

519 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 10:21:15 ]
>>516
ちゃんとソースコードの解析とかDSLとかやりたいんだったら
伝統的なコンパイラ製作の手法を使ったほうがいいよ
C#ならGPPGとか使ってパーサを生成する



520 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 10:21:17 ]
こんなの解析したとしてもしれてるだろ

521 名前:デフォルトの名無しさん [2010/03/05(金) 10:22:11 ]
>>516
こちらへ
正規表現 Part6
pc12.2ch.net/test/read.cgi/tech/1241537764/

c#の独自の機能ってわけじゃないので

522 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 10:51:58 ]
入れ子のある構造は正規表現向きじゃないな

523 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 11:38:15 ]
>>514

ツールボックス右クリック アイテムの選択で出てくるリストで
チェックされて無いやつ全部

524 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 11:43:44 ]
MSDN以外にあるわけねえだろ

525 名前:デフォルトの名無しさん [2010/03/05(金) 11:45:33 ]
なんかでるなあ
グレーアウトというか半透明で後ろの色と重ねてあるというか・・・そんな表示で

部品の名前見てるとVB6.0時代の名残?

526 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 11:58:23 ]
引数の形式を>>516の(再帰, "文字列")に限るなら
(?<id>[\w\W]+)\((?<r>.*),"(?<str>[^"]*)"\)
で最長一致でキャプチャしてrについて繰り返せばいけそう
一般的にやるのは.NETの正規表現だけではたぶん無理

527 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 13:28:13 ]
.NETにはじめから付いてるコンポーネントの中でデフォルトで
ツールボックスに表示されてないものは実際あんまり使うことないと思うよ
VB6っぽいのはたぶん.NETじゃなくてCOMのコンポーネント
COMの方はどうしてもというわけでなければなるべく使わない

528 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 15:53:32 ]
>>527
乗り物全集の中で、デフォルトが自家用車だらけなのに
裏ではこっそり1輪車からアポロとか回天とかあったらさ・・・
必死なときは回天使ってみたい場合もあるじゃん

知らなきゃ自動車を容器で包んで見た目潜水する特攻≠自沈機械つくらなきゃならん

529 名前:デフォルトの名無しさん [2010/03/05(金) 15:56:14 ]
何が言いたいかわかりにくいよw

理解したけどw



530 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 17:16:04 ]
で、誰もメンテできない、糞アプリが出来上がると

531 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 18:26:00 ]
System.Drawing.BitmapをDIBSectionみたいにピクセルにポインタで
高速にアクセスしたいんですけどどんな感じで実現できますか。
ゲームで利用するためにαブレンドとか加算合成とかを実装したいです。


532 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 18:59:21 ]
LockBitsでググれ
でもどっちにしろGDI+でゲーム作るのはやめたほうがいいと思う
DirectXやWPF使えば全ての努力が虚しくなるくらいの圧倒的な速度が簡単に得られる

533 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 19:03:08 ]
LockBitsしてBitmapDataに書き込みしてUnlockBitsで書き戻し
ただしコピーが入る

WPFでPixelShader使った方が早いかも知れない

534 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 19:47:14 ]
なるほどやっぱりメモリ直接触れないのがネックですね。
WPFってコントロールをXML経由で制御するイメージがあって
遅いと思い込んでたんですけどちょと試してみようかな…
C++ではDIBSection使ってたからDirectXはちょっと今更感が…
ありがとうございました。


535 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 20:54:30 ]
WPFもDirectXベースだからな
αブレンドや加算合成などは自分では一切実装せずに全てハードウェアに丸投げするのが基本

536 名前:516 mailto:sage [2010/03/05(金) 22:40:20 ]
いろいろレスあり。
正直ANTLRでも使いたいところだけど、ほんの一箇所の機能のためにランタイムDLLがいくつも増加するのがなぁ…

537 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 00:19:13 ]
字句解析 & 構文解析は書いてみると想像してるより結構簡単だから
限定された部分だけなら自前で書いちゃうのもありだと思うよ。

538 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 00:32:22 ]
今の時代PCでもCPUとメモリのリソースが滅茶苦茶多いしブーストラップの必要も全くないから
字句解析と構文解析なんてあんまり神経質にならなくても適当な資料当たって組めば良いと思うよー

539 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 00:38:32 ]
ANTLRはランタイムライブラリの出来が悪いんだよなあ
Ironyなんか面白そう



540 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 01:59:45 ]
GDI+はラスタオペレーションなくなったのか
殺してやる

541 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 05:17:04 ]
>>540
つうほうしました

542 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 11:24:10 ]
時代はピクセルシェーダだよ
WPFはもちろんSilverlightでもサポートされてる

543 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 00:19:54 ]
やっぱWPFやんなきゃダメだな orz

544 名前:デフォルトの名無しさん [2010/03/07(日) 00:30:38 ]
C#の文法的なことを聞きたいのですが、

Button のClickイベントにプラスするdelegateの匿名メソッドの中でthisって書いてもこのthisはButtonでなくFormをさすんでしょうか?

ちなみに、Form1の中にButton1があり、Form1.cs(class名:Form1)のファイルに書いています。

545 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 00:32:49 ]
うん
JavaScriptとは違うというかJavaScriptが異端

546 名前:544 mailto:sage [2010/03/07(日) 00:35:47 ]
>>545 ありがとうございます。
JavaScriptだと逆の結果になるんですね。

とりあえず、C#の場合はFormをさすということがわかり、ありがたいです。

結構長い間疑問だったんで・・ありがとうございました。

547 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 08:30:37 ]
>>546
>C#の場合はFormをさすということがわかり
ちょっと違う
>>544の例としてはそうだけどね

正確には今コード書いてるクラスのことになる
IDEでコード書く場合はFormクラスを継承したForm1にコードを書くことが多いので
thisがForm1をさしてるけど
buttonを継承したクラスを作ってその中でthisを使えば
buttoを継承したクラスをさす

class MyButton : Button
{
public MyButton()
{
//この場合はMyButtonのこと
this.size = new Size(120,30);
}
}

548 名前:544 mailto:sage [2010/03/07(日) 16:24:51 ]
>>547
どうもありがとうございます。今書いてるクラスが主?っていうかthisの主体になるんですね。

よ〜く、わかりました。勉強になりました。ありがとうございました。

549 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 19:48:15 ]
クラスというよりはインスタンスだな
staticメソッドでは使えないから



550 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 22:48:55 ]
ちょいと質問
SELECT Format([日付テーブル]![日付],"yyyy/mm/dd") AS 年月, スケジュール.タイトル, スケジュール.メモ帳 FROM スケジュール ORDER BY Format([日付テーブル]![日付],"yyyy/mm/dd");

これC#で使いたいんだけど、yyyy/mm/ddのところどう書いたらちゃんと動いてくれる?


551 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 23:42:30 ]
>>550
LINQでってこと?
これでいける。
using (var context = new MyDBDataContext())
{
var rows = context.Order
.Select(r => string.Format("{0:d}", r.transactTime));

foreach (var row in rows)
Console.WriteLine(row);
}

552 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 23:45:40 ]
>>550
これC#というよりSQLだよね
FROMに指定されてないテーブル参照してるよ
使ってるDBとエラーメッセージくらい書こうね

あと自動で作成されたSQLそのまま使うより
もう少し簡潔にした方が良いよ

553 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 01:37:00 ]
そうか、春休みか。

554 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 12:35:42 ]
なぜかMSDNの字が小さく変更されたような

555 名前:デフォルトの名無しさん [2010/03/09(火) 13:10:44 ]
ライトウェイトがすばらしい

556 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 15:42:17 ]
・構造体では、インターフェイスを実装できます。

なんか意味あんのかなこれ

557 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 15:43:42 ]
なぜ意味が無いと思ったのか聞きたい

558 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 16:31:51 ]
IComparable<T>とかIEquatable<T>とかは知らないうちに恩恵にあずかってる

559 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:38:10 ]
1/1
Type.GetTypeで希望のTypeを取得出来なくて困っています。

取得したいTypeはアプリケーションのプロジェクトとは違う、
ライブラリ用プロジェクトで作成されたアセンブリ内のclassのものです。

アプリケーションのプロジェクトにて、ライブラリ用の
プロジェクトをインポートして使用しています。

テストコードでは下記のようにしてみました。

System.Reflection.Assembly asm = System.Reflection.Assembly.LoadFrom( "Lib.dll" );
var _targetType = typeof( KML.FileFormat.PseudoXML.ASDASD );

Type _type = Type.GetType( _targetType.FullName, true, false );

症状は TypeLoadException が発生します。




560 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:41:17 ]
2/2
そこで、アセンブリ名を指定して

Type _type = Type.GetType( _targetType.FullName + ",Lib.dll", true, false );

とした場合は、GetType内で、

System.IO.FileNotFoundException: ファイルまたはアセンブリ
'Lib.dll'、またはその依存関係の 1 つが読み込めませんでした。

との事、なので

Type _type = Type.GetType( _targetType.FullName + @",C:\aa\bb\cc\Lib.dll", true, false );

とし、アセンブリへのフルパスを指定した場合は、
System.IO.FileLoadException: 指定されたアセンブリ名またはコードベースは無効です。

となり、いずれも目的を果たせませんでした。

ITMediaやリフレクションの記事を掲載しているブログなどは、
簡単に実現できるような感じで書いているのですがなかなか上手くいきません。

どなたか問題点をお教えいただければ幸いです。
よろしくお願いします。

561 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:43:35 ]
作業環境は、
OS:VISTA32bit
VisualStudioC#2008ExpressEdition
対象フレームワークの設定は3.5です。


562 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:45:49 ]
何をしたいのか分からん
アセンブリを動的ロードするならAssembly.GetTypeとか使えばいい

563 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:53:48 ]
最終的にやりたいことは設定ファイル(text)に基づいて、
指定のclassをインスタンス化する事です。

その前段階で指定したclassのTypeが必要なようですので、
Type.GetTypeで得ようと試みていたところです。

564 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:57:36 ]
> その前段階で指定したclassのTypeが必要なようですので、
そのTypeはLoadしたAssemblyオブジェクトからAssembly.GetType等で取得するもの

565 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 18:00:50 ]
どうでもいいけど 1/1、2/2じゃなくて1/2、2/2じゃないのか?

566 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 18:14:51 ]
>>562>>564
ご指摘ありがとうございます。
Assembly.GetTypeで上手く取得できました。

>>565
たしかに・・・。
申し訳ない。

567 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 23:22:48 ]
> その前段階で指定したclassのTypeが必要なようですので、
くそわろた。


568 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 00:50:15 ]
1/1,2/2が地味にきくわ

569 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 14:30:19 ]
すみません。質問です。
XMLの件なので、こちらで聞くか迷ったんですが、こちらでお願いします。

weather.livedoor.com/forecast/rss/warn.xml

上記のXMLを解析しようと思い、Byte配列に受信しました。
そのByte配列をEncoding.UTF8.GetCharsに入れてやるとエラーになります。
原因を調べると、「〜で質問してみましょう」の「質」の字が
e8 0d 0a 35 61 38 0d 0a b3 aa
となっており、「質」の字の間に改行コード(0d 0a)とよくわからない文字列(35 61 38)が入っていました。
(ちなみに「質」はUTF8でe8 b3 aa)

XMLの処理は初めてなので、よくわかっておりません。
こういった経験や、対処された方がおられましたらいい対処法をご教授ください。


環境は.NetMicroFramework、VisualStudio2008Express、WindowsXPProです。



570 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 14:56:31 ]
>>569
Byte配列に格納する時点で失敗してる可能性が大。

571 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 15:19:35 ]
これで問題なく読めることが分かる。
using System;
using System.Xml;
class Program {
 static void Main() {
  var xrdr = XmlReader.Create("weather.livedoor.com/forecast/rss/warn.xml");
  var xdoc = new XmlDocument();
  xdoc.Load(xrdr);
  xdoc.Save(Console.Out);
}}


572 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 15:37:17 ]
35 61 38 -> 5a8 -> 1448
TCPのデータ長がこんなんだっけ?

573 名前:デフォルトの名無しさん [2010/03/10(水) 15:40:56 ]
受信の際のエンコードはxmlの中にかかれてるので自動で認識した後
勝手にucs-2に変換されてない?

xmlとかの問題じゃなく文字コードの扱いを分かってないような

574 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 15:50:52 ]
すみません。
エラーが出たURLは
weather.livedoor.com/forecast/rss/earthquake.xml
こっちでした


>>570
ちょっと調査してみます。

>>571
丁寧にコードまで書いていただきありがとうございます。
一度Byteに格納しないほうがいいんですかね。
ネットワークが不安定なので、一度ローカルに持って行きたかったんです・・・

>>573
ありがとうございます。
正直文字コードの扱いよくわかってないです。
ローカルにByte配列で持ちたかったので、こういう形になっています。

575 名前:デフォルトの名無しさん [2010/03/10(水) 15:52:28 ]
>上記のXMLを解析しようと思い、Byte配列に受信しました。
Byte配列に受信しました。
この部分のコード晒せる?

576 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 15:55:18 ]
バイト配列取得以降の問題かもしれない。
Socketクラスを参考にしていた場合、そのサンプルはバグというか不親切。
do {
bytes = s.Receive(bytesReceived, bytesReceived.Length, 0);
page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes);
}
をUTF8に変更しただけじゃダメ。これは多バイト文字の途中だろうとお構いなし。
文字の境界を判断するか、それとも全部バッファに取ってから変換する必要がある。

577 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:01:22 ]
あ、 0d 0a 35 61 38 0d 0a の理屈が付かないからそれは無いか・・・

578 名前:デフォルトの名無しさん [2010/03/10(水) 16:02:19 ]
>>577
うむ
エスパーしてもしかたないので
>>575なんだよw

579 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:03:04 ]
WebClient.DownloadDataあたりだったら問題ないのかしらん



580 名前:デフォルトの名無しさん [2010/03/10(水) 16:05:10 ]
>>579
というか通信にしろファイルにしろエンコード指定しておけば指定したエンコードで読み込んだあと
ucs-2に勝手に変換してくれるはずなんだけどな・・・

581 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:10:56 ]
>>575 そのままコピペなんで無駄なコードあるかもしれませんが・・・
一番下のwhile文で1024バイトずつ読み込んで、大きな配列につないでます。
      String Server = "weather.livedoor.com";
String URI = "/forecast/rss/earthquake.xml";
const Int32 HttpPort = 80;
const Int32 BufferSize = 1024;
using (Socket requestSocket = ConnectSocket(Server, HttpPort))
{
String request = "GET " + URI + " HTTP/1.1\r\n";
request += "Host: " + Server + "\r\n";
request += "Connection: Close\r\n";
Byte[] requestData = Encoding.UTF8.GetBytes(request);
Byte[] recBuffer = new Byte[BufferSize];
Byte[] recBufferFull = new Byte[BufferSize * 100];
requestSocket.Send(requestData, requestData.Length, 0);
DateTime timeoutAt = DateTime.Now.AddSeconds(30);
while (requestSocket.Available == 0 && DateTime.Now < timeoutAt)
{
System.Threading.Thread.Sleep(100);
}
Int32 bytesRead = 0;
Int32 bytesReadBefore = 0;
while (requestSocket.Poll(10 * 1000000, SelectMode.SelectRead))
{
Array.Clear(recBuffer, 0, recBuffer.Length);
bytesRead = requestSocket.Receive(recBuffer);
if (bytesRead == 0)
{ break;}
recBuffer.CopyTo(recBufferFull, bytesReadBefore);
bytesReadBefore += bytesRead;
}

582 名前:デフォルトの名無しさん [2010/03/10(水) 16:15:56 ]
Socketとかhttpの練習とか学習?
単純にrssリーダーぽいことができればいいとかなら
WebClientでデータとってきてxmlに投げるとかすればいいだけだよ

583 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:24:36 ]
応答のHTTPヘッダがなんて言ってるのかも気になる

584 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:33:30 ]
>>582
WebClientググったら便利そうですね。
ただ、MicroFrameworkにはないみたいなので、同じような機能のライブラリ提供している方がおられるので、それを利用してみたいと思います。
もしくはHttpWebRequestでいいんでしょうか?

>>583
HTTP/1.1 200 OK\r\nDate: Wed, 10 Mar 2010 07:24:48 GMT\r\nServer: Apache/1.3.41 (Unix) mod_perl/1.30\r\nPragma: no-cache\r\n
Cache-Control: private\r\nVary: User-Agent\r\nContent-Type: text/xml; charset=utf-8\r\nConnection: close\r\nTransfer-Encoding: chunked\r\n\r\n4ac\r\n
ヘッダのstring変換後はこんな感じです。

585 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:35:04 ]
chunked

586 名前:デフォルトの名無しさん [2010/03/10(水) 16:36:45 ]
>>584
ここのサンプルコードを書き換えたけど問題なく受信できたな
dobon.net/vb/dotnet/internet/downloadusesocket.html

codepad.org/NVeXkER1

最後のtextboxだけ用意してくれ

587 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:41:33 ]
0d 0a 35 61 38 0d 0a
は長さ5a8バイトということか

588 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:42:11 ]
>>585でFAじゃまいか
こういうのは透過的に扱ってくれるライブラリ使わないと面倒くさいね

589 名前:583 mailto:sage [2010/03/10(水) 16:42:17 ]
>>585
ああやっぱり



590 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:46:10 ]
>>586
丁寧に書いてもらってありがとうございます。
MicroFramework用に変更して使ってみます。

>>587
どうやらそうっぽいです・・・そのバイトずつわけて受信すればいいんですかね?

>>588
chunkedググってみます

591 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:49:22 ]
HTTP/1.1 は chunked で送られてくるからめんどくさいよね

592 名前:デフォルトの名無しさん [2010/03/10(水) 16:49:38 ]
>>590
いや・・・
データ本体がそのサイズってことだろ
>>586で受信したテキストデータ

HTTP/1.1 200 OK
Date: Wed, 10 Mar 2010 07:46:23 GMT
Server: Apache/1.3.41 (Unix) mod_perl/1.30
Pragma: no-cache
Cache-Control: private
Vary: User-Agent
Content-Type: text/xml; charset=utf-8
Connection: close
Transfer-Encoding: chunked

4ac
[rssの一つ]
5a8
[rssの一つ]
5a8
[rssの一つ]

以下略
こんなパターンでくるのか

593 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:52:33 ]
もうこの程度ですら自力で実装するのを億劫に感じててヤバイ

594 名前:デフォルトの名無しさん [2010/03/10(水) 16:54:02 ]
>>593
そりゃIDE+VC#って人間を退化させるよ

パソコン上でIMEになれてしまって咄嗟に漢字がかけない感覚に似てる

595 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:55:45 ]
MicroF/WはCompactF/WよりさらにAPIが少ないの?

596 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:59:00 ]
>>591
そうなんですか。勉強になります。

>>592
書いていただいたソースは、1024バイトずつ受信してて、resSizeが0になったら受信終わりですよね?
どうやってデータ本体毎にわけるのかよくわからないです。
いただいたソースだと4acとか5a8のような不要な情報も入りそうな気がするのですが。

597 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:59:56 ]
>>595
そうです。かなり少ないです。
しかも英語ページしかないのでなかなかとっつきにくくて・・・

598 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 17:01:17 ]
>>592
一部訂正
HTTP/1.1 200 OK
Date: Wed, 10 Mar 2010 07:46:23 GMT
Server: Apache/1.3.41 (Unix) mod_perl/1.30
Pragma: no-cache
Cache-Control: private
Vary: User-Agent
Content-Type: text/xml; charset=utf-8
Connection: close
Transfer-Encoding: chunked

4ac
[4acバイト分のデータ(文字コードはどれか不明)]
5a8
[5a8バイト分のデータ(文字コードはどれか不明)]
5a8
[5a8バイト分のデータ(文字コードはどれか不明)]

以下略
5a8
[5a8バイト分のデータ(文字コードはどれか不明)]
0
最後は0で終わってる
こんなパターンでくるのか

599 名前:デフォルトの名無しさん [2010/03/10(水) 17:04:56 ]
>>596
いやそんなに難しくないでしょ

4ac 5a8でバイト数(文字数?)を見て行けばいいだけだし
0d0aは単なる改行コードだしね

>>586のコードをMicroじゃないFrameworkで動かしてみて受信データを見てみなよ



600 名前:デフォルトの名無しさん [2010/03/10(水) 17:06:20 ]
面倒なんでcodepad使わせてもらった
codepad.org/hXtU8pZp

601 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 17:08:29 ]
流れぶった切ってちょい質問

struct A {
int x;
int xsize;
}

int sx = 0;
List<A> alist = new List<A>();
alist.ForEach(delegate(A a) {
a.x = sx;
sx += a.xsize;
}

こういう感じで、構造体リストのある項目を全書き換えしたいんだけども、
forループするしか手はない?
いちいちコピー&書き戻しが発生するからできればしたくない・・・

602 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 17:12:38 ]
>>599
全部受信してからそれ毎に区切っていく感じでいいんですね。
それなら簡単そうです。
ちょっとFramework変えてやってみます。
ありがとうございます。

603 名前:デフォルトの名無しさん [2010/03/10(水) 17:51:06 ]
>>601
どこかで見た流れだ

604 名前:デフォルトの名無しさん [2010/03/10(水) 17:52:37 ]
ふらっとC#,C♯,C#(初心者用) Part56
pc12.2ch.net/test/read.cgi/tech/1267348401/356-
こっちだった

605 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 18:10:11 ]
まだ効率だけにこだわっているのか

606 名前:601 mailto:sage [2010/03/10(水) 18:10:45 ]
いや別にループ怖いって話じゃなくてwww
構造体コレクションの実体に直接アクセスしたいってだけ

607 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 18:11:03 ]
そっちはループ処理したくないというアホ
こっちは多分一時コピー(ry

var tmp = alist[i];
// tmpを変更
alist[i] = tmp;

608 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 18:16:55 ]
なんで構造体なんだ?
クラスにしちゃえばいいじゃない

609 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 18:35:40 ]
仕方なく構造体のコレクションを使うときに
効率は別にしてもなんか気持ち悪いのはよくわかる



610 名前:601 mailto:sage [2010/03/10(水) 18:49:47 ]
>>608
実体コピー前提の使い方するから>構造体な理由
むしろ間違って参照渡ってしまった時のバグが怖い

>>609
そう
値型専用のコレクション操作メソッドとか用意されてないかと思って聞いてみた

611 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 19:37:42 ]
無限ループって怖くね?(棒読み)

612 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 21:47:24 ]
>>610
delegate void RefAction<T>(ref T arg);
static void ForEach<T>(this IList<T> source, RefAction<T> action) {
for (int i = 0; i < source.Count; i++) {
var item = source[i];
action(ref item);
source[i] = item;
}
}
効率は知らん

613 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 22:12:02 ]
そんなことするくらいなら、(サイズが確定した時点で)配列にして普通にfor使う方がまし

var array = list.ToArray();
for(int i=0; i<array.Length; i++) array[i].x = 10;

614 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 00:40:16 ]
>>602
いまさらだけど、
 チャンクのサイズを見て、そのサイズ分読む
 チャンクのサイズが0なら終わり
という風にしたほうが楽だし速いよ

615 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 00:42:56 ]
wavファイルを数値データとして見たいのですがどうすればいいですか?

616 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 00:43:48 ]
大して難しいフォーマットじゃねえし
www.kk.iij4u.or.jp/~kondo/wave/
でも読め

617 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 16:09:08 ]
VC#に、クラスとか関数の関連を表示するナビとかハイパーリンクとかの機能ありますか?
いわゆるなんちゃってフローチャート的なやつ

618 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 17:23:17 ]
よくわからんが IDE の話か?
VisualStudio のクラスビューとかのことかね?

619 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 17:28:56 ]
クラス図(クラスとか関数の関連を表示するやつ)と、流れ図(フローチャート)は全く別物だが。
クラスビューにはリンク機能は無いけど。一度使ってみれば。



620 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 17:31:54 ]
HSPみたいなもの言ってるのでは

621 名前:デフォルトの名無しさん [2010/03/12(金) 17:35:50 ]
フローって作れるか?

VC++だったら確か関数の上で右クリックすると関連が見得たりしたけど
VC#の場合基本ネームスペース、クラス、メンバ関数とか
なのでそんなフローが必要になることってあんまり無いような

622 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:26:25 ]
TextBoxを普段非表示にしておいて、マウスオーバーで表示されるようにしたいんだけども
Hide()使うとイベント受けてくれない
何かいい手はありますか?

623 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:27:30 ]
表示位置覚えといて親コンテナのマウス移動で表示するかどうか決めるとか?



624 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:28:26 ]
>>622
透明にすればいいんじゃない

625 名前:デフォルトの名無しさん [2010/03/12(金) 19:31:30 ]
>>624
textboxは透明にするのは難しいんじゃないかな?
なんかこのスレかふらっとC#でバックカラーとかをいじっても透明にできなかった
とか書き込みがあった記憶が

626 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:33:03 ]
GDI+を使えばいいと思うよ

627 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:27:14 ]
今日気がついたんだけど、Windows Form上のコントロールのアプリケーション設定
(プロパティバインディングって言った方がいいのかな)ってローカライズに
対応してないのかな。

何が言いたいかというと、FormのLanguageで設定する各言語ごとに
プロパティバインディングされたプロパティのデフォルト値を設定する方法がないものかと。

とりあえずリソースと同じようにSettings.settingsをコピーしてSettings.en.settings
とかやってみたがダメだった。

628 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:38:29 ]
>>622
普通に誰でも思いつく泥臭い法でいいんじゃない?
つまりFormのMouseMoveイベントでマウスの座標を監視して、(hideしてある)
TextBoxの場所にマウスポインタが来たらShow()すると。

629 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 22:36:28 ]
同じ座標に無地のピクチャーボックスを置いて
そっちでイベントを受け取ってみるとか



630 名前:622 mailto:sage [2010/03/12(金) 23:35:19 ]
WPFのトンネルイベントみたいなのがあるかと思ったらそんなことはなかったぜ!と言う事かあ
見た目だけじゃなく存在自体が消えてしまうのは何とかならないのかなあ>Hide()

631 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 23:38:19 ]
>>630
Visible=false;

632 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 00:13:56 ]
派生クラスで適当に幾つかオーバーライドするだけじゃないの

とりあえず、OnPaint, OnMouseEnter(OnMouseHover), OnMouseLeave あたり
もしかしたら、OnPaintBackground も必要かも

633 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 00:26:36 ]
マウスオーバーでテキストボックス出てくるとか使いにくすぎるw
どういう使い道なんだ

634 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 00:31:33 ]
>>622
作ってみた。でもかなり対症療法的なコードなのであまり真に受けない方がいいかも。
class TextBoxEx:TextBox
{
  private bool SuppressesPaint { get; set; }

  private bool mIsTransparent = false;
  private bool IsTransparent
  {
    get { return mIsTransparent; }
    set
    {
      if (value != mIsTransparent)
      {
        mIsTransparent = value;
        if (IsTransparent)
        {
          SetVisibleCore(false);
          SuppressesPaint = true;
          SetVisibleCore(true);
        }
        else
        {
          SuppressesPaint = false;
          SetVisibleCore(false);
          SetVisibleCore(true);
        }
      }
    }
  }

635 名前:634 mailto:sage [2010/03/13(土) 00:32:35 ]
  protected override void OnMouseEnter(EventArgs e)
  {
    base.OnMouseEnter(e);
    IsTransparent = false;
  }

  protected override void OnMouseLeave(EventArgs e)
  {
    base.OnMouseLeave(e);
    IsTransparent = !Focused;
  }

  protected override void OnEnter(EventArgs e)
  {
    base.OnEnter(e);
    IsTransparent = false;
  }

  protected override void OnLeave(EventArgs e)
  {
    base.OnLeave(e);
    IsTransparent = true;
  }

636 名前:634 mailto:sage [2010/03/13(土) 00:34:10 ]
  protected override void WndProc(ref Message m)
  {
    const int WM_PAINT = 0x000F;
    const int WM_NCPAINT = 0x0085;
    switch (m.Msg)
    {
      case WM_PAINT:
      case WM_NCPAINT:
        if (SuppressesPaint) return;
        break;

      default:
        break;
    }
    base.WndProc(ref m);  
  }
}

- 以上 -

637 名前:634 mailto:sage [2010/03/13(土) 00:50:28 ]
親がアクティブじゃない時の挙動がおかしいな。
コントロール関係はいろいろ面倒臭いなやっぱりw
思いもよらないところに落とし穴が潜んでたりするし。

638 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 01:15:19 ]
VC#に最初から入ってるコントロールはイベント処理が微妙なのが多い気がする。
やりたいことがなかなかできなくて、結局自前でフラグ立てながら状態遷移を管理するハメになったり。

639 名前:デフォルトの名無しさん [2010/03/13(土) 07:05:42 ]
配列構造体で、
struct vector
{
public int x;
public int y;
}
private void method{
vector[,] point = new vector[100, 100];
for (int i = 0; i < 100; i++)
{
for (int j = 0; j < 100; j++)
{
point[i, j].x = i;
point[i, j].y = j;
}
}
}
private void exchange()
{

}
このプログラムで、exchangeでmethodで定義したpoint[,].xを使いたいですけれども、どうすればいいんだ



640 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 07:14:17 ]
無理だろ。引数で渡すとかスコープを変えるとかせんと。

641 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 08:09:02 ]
関数の戻値か同じクラス内ならメンバーに持てばいいだろ。
private vector[,] method() {
  :
 return point;
}

642 名前:デフォルトの名無しさん [2010/03/13(土) 11:23:51 ]
それじゃまだ実現不可能。

643 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:27:49 ]
一応>>634がいい奴だってことはわかった


644 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:48:19 ]
認識しないからといってインデントに全角スペースを使う男の人って…


645 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:57:19 ]
>>644
やめて〜!!

646 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 12:03:13 ]
2ちゃんねるではよく使うなぁ

647 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 12:16:55 ]
全角スペース便利
みんなこれからもどんどん使おうね

648 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 12:17:39 ]
むしろ2ちゃんだと先頭の半角とかは無視されなかった?

649 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 12:54:23 ]
無視はされない。datでもcgiでもちゃんと残っている



650 名前:デフォルトの名無しさん [2010/03/13(土) 13:02:08 ]
codepadとか使えよ
codepad.org/

C#は選択肢にないけどCにしておいて右下のRun Codeのチェックはずしてsubmitボタン押すだけじゃねーか
codepad.org/HfKzapzv

651 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:02:29 ]
2ちゃんビューワとかブラウザで見ると無視されるな

652 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:14:46 ]
通常WWW UAは連続するホワイトスペースは一つの半角スペースに置き換えて表示するからね
こういった利用者が書式を指定できない掲示板では仕方がない

653 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:19:46 ]
preタグを認識してくれればいいんだけどな

654 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:58:19 ]
nbsp使えよ

655 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 16:18:37 ]
 nbsp使ったら、>>レス番 でポップアップしたときに
 nbspって文字列でてこなかったっけ?

656 名前:655 mailto:sage [2010/03/13(土) 16:19:39 ]
でてきませんでした。

657 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 16:44:27 ]
test
\s
\t
%89
test
 test

658 名前:デフォルトの名無しさん [2010/03/13(土) 17:44:29 ]
C#4.0も良いけど、C#からC++のクラスや関数をC++/CLIを経由すること
なしに簡単に(透過的に)呼び出せるようにしてほしい。

C++/CLIなんていらない。文法がややこしくなるだけだ。VC++は
.Net Frameworkと同じインターフェースをもったNativeなGUI
ライブラリの開発に専念してほしい。

C++0xが正式に確定していない現在、動きがとれんだろうけど
以上の事をMSがやってくれたらC#を使う気になる。

659 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:46:58 ]
使わなくていいよ。



660 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:49:08 ]
>>658
使う気になるとか
C#しか使えない人に失礼だろw

661 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:57:45 ]
そんなに使いたくないなら使わなければいいのに
他にも選択肢はあるよ

662 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 18:11:53 ]
自分の好みやわがままで言語を選べるなんて、ずいぶんと恵まれた職場だな

663 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 18:19:57 ]
>662
それなんの社畜自慢?

664 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 18:27:50 ]
一生その職場にいて自分だけがメンテするならなんでも選べます

665 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 18:34:30 ]
既存のシステムがあったら大きく外れられないだろ
というかコンベンションというかガイドラインくらいどこにでもあるだろw

666 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 18:36:56 ]
うちはむしろ特別な事情(ユーザーの指定とか旧環境との兼ね合いとか)
がないかぎり Windows アプリは C# にするってことにしたけどな

667 名前:デフォルトの名無しさん [2010/03/13(土) 18:38:19 ]
制約なければwindowsはc#で書きたいなあ
部分的にC/C++は入れたとしてもGUIはC#だわ

668 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 18:42:36 ]
「チッ.NET入れるのかよ」
というお客様も最近は減ってきました

669 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 18:44:21 ]
Vista以降で入ってるしね。



670 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 19:41:48 ]
とりあえず、意味不明のダイアログを表示して落ちるのもアレなので、
.NETが必要だというメッセージを表示するぐらいの配慮はするべき。

671 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 19:44:11 ]
デフォルトで出る様になってなかったっけ?
ただ英語なのでアホは読んでくれない

672 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 19:46:47 ]
確かにあれはいただけないな

673 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 19:52:50 ]
まあバイナリを裸で配布するのは邪道、っていう前提に立ってるんでしょう。
イストーラで配れと。

それにしても、.NET Frameworkは単独でアンインストール可能なわけだから、
そういうケースをもう少し想定すべきとは思うけど。

674 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 22:07:38 ]
ちっ、うっせーな

675 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 23:04:13 ]
うっ、ちっせーな

676 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 23:08:52 ]
C++のクラスとか旧時代のゴミ持ち込むなよ

677 名前:デフォルトの名無しさん [2010/03/13(土) 23:54:40 ]
C#もろくに使えねぇ癖に

黙ってろカス

678 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 01:59:46 ]
反省してまーす

679 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 02:10:53 ]
>>617-621
クラスやそれ以上の粗さ(アセンブリなど)でよければ、
Visual Studio 2010の依存関係グラフというやつで、図にしてくれるぞ。
www.microsoft.com/japan/msdn/vstudio/2010/product/architecture_new.aspx



680 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 03:12:02 ]
doxygenもいいぞ

681 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 07:10:37 ]
コンボボックスのドロップダウンリスト部で右クリックが押されたことを検知するには
どうしたらいいでしょうか?
MouseClickやMouseDownで見張っていても呼ばれないようです

682 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 07:25:31 ]
そんなマニアックなイベントは無いと思う
一番簡単そうなのはドロップダウン部分のウィンドウハンドルを
NativeWindowに食わせることかなぁ
ハンドルはGetComboBoxInfoで取れる

683 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 08:32:47 ]
2010またソリューションとか変わるんだよな…
2008と混在できるけど、いまやってるプロジェクトまわりのやつは皆が2010に切り替えるまで2010でいじれないよね。
依存関係グラフで見たいのあるけど、なんかうまいやりかたある?


684 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 08:33:39 ]
>>682
ドロップダウン部分をサブクラス化してメッセージを自前で処理ですか・・・
ちょっと敷居が高そうですが頑張ってみます
ありがとうございました

685 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 11:05:03 ]
そんなアメリカンなUI、使う方にも敷居が高そうだ。

686 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 11:43:24 ]
>>679

2010か

687 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 21:45:42 ]
Visual C# ExpressEditionのエディタで、
半角スペースを可視化する設定はありませんか?

688 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 21:50:36 ]
>>687
編集→詳細→スペースの表示
ショートカットはCtrl+R→Ctrl+W

689 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 22:00:28 ]
>>688
ありがとうございます。
続いて質問ですが、半角スペースと全角スペースを区別する方法はありませんか?
見た目の幅が微妙に違うだけで、一目で判断するのは難しいのですが



690 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 22:17:13 ]
>>689
微妙っていっても表示される点の位置がずれるのでそれで区別しかないと思う。
インデントをタブにして普段は半角スペースを入れない方が判りやすいと思うんだけどね。

691 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 22:19:48 ]
全角が混ざったかわからないときはプロジェクトで考えるより
普通のテキストとみたてて置換した方が早くない?

692 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 22:23:42 ]
全角を気にしないというのはどうか?

693 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 22:26:18 ]
開発環境が何かしらないけど
スペースの可視化くらいできるだろ

694 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 22:26:58 ]
って上に書いてあったか

695 名前:689 mailto:sage [2010/03/14(日) 22:36:44 ]
皆様回答ありがとうございます。
>>690-692辺りを参考に、使い勝手を試しながら使いやすい設定を探していこうと思います。

696 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 22:43:42 ]
まあリテラル文字列中以外は、全角スペースは勝手に半角に修正されるんですけどね
違ったっけ。

697 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 13:30:35 ]
全角スペースも空白として扱われる、だろう

698 名前:622 mailto:sage [2010/03/15(月) 16:17:26 ]
>>634
亀ですがありがとう
参考にさせてもらいます






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<155KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef