トップページ⇒tech
1001コメント323KB

C#, C♯, C#相談室 Part74

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2012/07/14(土) 13:52:30.23
前スレ
C#, C♯, C#相談室 Part73
http://toro.2ch.net/test/read.cgi/tech/1338512087/

Visual Studio 2010 Express
http://www.microsoft.com/japan/msdn/vstudio/express/default.aspx
0153デフォルトの名無しさん2012/07/25(水) 21:37:25.09
this.Text = dgv[3,3].Style.BackColor.ToString();
0154デフォルトの名無しさん2012/07/25(水) 21:47:56.40
>>151
this.Text = Color.FromArgb(dgv[3, 3].Style.BackColor.ToArgb()).ToString();
0155デフォルトの名無しさん2012/07/25(水) 21:50:37.39
しぃしゃあぷって、adv[3, 3]みたいな書き方できるんだ
なにそれw
0156デフォルトの名無しさん2012/07/25(水) 21:54:52.74
インデクサも知らない奴は初心者スレに行けば
0157デフォルトの名無しさん2012/07/25(水) 22:02:20.28
(´・ω・`)
0158デフォルトの名無しさん2012/07/25(水) 22:55:14.72
>>150 >>152 >>153 >>154
ありがとうございます。出来ました。
0159デフォルトの名無しさん2012/07/25(水) 23:04:43.98

パラメータに半角スペースを含めた文字列を入れた場合に
どうもおかしな事になってしまいます。
スペースも含めてパラメータとして一つの配列のセルに
格納するにはどうすれば良いでしょうか?

★外部アプリより起動する場合のコード
Process.Start("tasiro.exe", "syabu taiho zannen");

★パラメータを受ける側のコード
[STAThread]
static void Main(string[] str_ary)
{
}

★デバッグした時のパラメータ
【期待しない値】
str_ary[0] "syabu"
str_ary[1] "taiho"
str_ary[2] "zannen"

【期待する値】
str_ary[0] "syabu taiho zannen"

0160デフォルトの名無しさん2012/07/25(水) 23:08:07.72
空白を含む場合は""でくくるってコマンドライン引数の基本だろう?
0161デフォルトの名無しさん2012/07/25(水) 23:10:20.02
>>159
コマンドラインの引数の仕様は古くから半角スペースはセパレータと
して機能するから「期待しない値」が正常な動作だよ
仕様を理解してないだけ
0162デフォルトの名無しさん2012/07/25(水) 23:11:26.76
Process.Start("tasiro.exe", "\"syabu taiho zannen\"");
これじゃあ駄目?
0163デフォルトの名無しさん2012/07/25(水) 23:40:30.10
やってみろ
0164デフォルトの名無しさん2012/07/25(水) 23:40:59.02
>>163
質問者じゃないしw
0165デフォルトの名無しさん2012/07/26(木) 00:51:13.92
>>139-141
ありがとう
>>140でやってみるわ
0166デフォルトの名無しさん2012/07/26(木) 01:00:27.07
>>160
おおっ!!見落としてました。


>>161
ありがとうございます。
仕様だったのですね。 "" で括ります。

>>162
あざーす。試してみます。


しっかし、俺の作成した tasiro.exe に誰も突っ込みを入れてくれなかったなw
0167デフォルトの名無しさん2012/07/26(木) 01:16:31.23
マーシーは消えて時間たつしネタとしては弱い
0168デフォルトの名無しさん2012/07/26(木) 01:19:12.85
解決した途端文体が変わったw
0169デフォルトの名無しさん2012/07/26(木) 01:44:02.32
マーシーでジョークソフト作ってたんどす。
0170デフォルトの名無しさん2012/07/26(木) 07:36:37.19
スイスに極右政権が誕生!! 外国人の生保受給者・軽犯罪者を永久追放、祖国強制送還へ
http://engawa.2ch.net/test/read.cgi/poverty/1343227547/


スイス、外国人犯罪者を追放へ 生活保護の不正受給も対象

スイスで28日、特定犯罪をおかした外国人を自動的に
国外追放する法改正の国民投票が行われ、賛成52.9%で承認された。反対は47.1%だった。

特に、スイス人口の大半を占めるドイツ系住民の賛成票が多く、全26州のうち否決はわずか6州だった。

今回の国民投票は極右政党「スイス国民党(SVP)」が主導したもの。現行法では、
有罪となった外国人に対しては判事の個別判断で国外追放処分とすることができたが、
改正新法では、特定の犯罪で有罪判決を受けた外国人は自動的に国外永久追放となる。

対象となる犯罪行為には、強姦、深刻な性犯罪、強盗などの暴力行為、麻薬密輸のほか、
生活保護の不正受給も含まれる。
www.afpbb.com/article/politics/2776977/6517971
0171デフォルトの名無しさん2012/07/26(木) 16:25:36.14
DataGridView 上で Control + c
Control + v を出来る様にしたいのですがどうしたらいいですか?
0172デフォルトの名無しさん2012/07/26(木) 19:31:31.20
コピーは出来るはず
ペーストは自分で作る
0173デフォルトの名無しさん2012/07/26(木) 22:43:10.86
datatableの内容をxmlにしてwebに公開することは簡単にできますか?
あと、datatableを受信することもできますか

iis <---- XML(datatable) -----> 他の言語
0174デフォルトの名無しさん2012/07/26(木) 22:45:24.39
http://msdn.microsoft.com/ja-jp/library/system.data.datatable.writexml%28v=vs.110%29
http://msdn.microsoft.com/ja-jp/library/system.data.datatable.readxml%28v=vs.80%29
好きなのを使いたまえ
別に明示的に変換しなくても出来るけど
0175デフォルトの名無しさん2012/07/26(木) 22:46:38.76
datatableは使ったことないけどxml(テキスト)としてアウトプットは簡単だよ
0176デフォルトの名無しさん2012/07/26(木) 22:57:20.71
WCFでいいじゃん
DataSetは使えなくなるけど型付きなら別に扱い変わらないし
01771732012/07/27(金) 00:01:23.62
WCFって動的SQL文に相当するやつ作れるんですか?
例えば、
if ( isXXX ) {
sb.append("and ID = '1'");
}
みたいな
0178デフォルトの名無しさん2012/07/27(金) 00:04:59.48
WCFは基本的に通信技術
DbCommandの組み方なんて関知するわけがない
0179デフォルトの名無しさん2012/07/27(金) 00:10:53.92
Entity Frameworkを使うなら、.NET4以降ではObjectContextに対して普通にSQL実行できる
0180デフォルトの名無しさん2012/07/27(金) 12:03:57.13
すんません、C#でこういうことできますか?

this.txtbox1.text="fuga";

a="this.txtbox1"; //または a="this.txtbox1.text";
&a.text="hoge"; //または &a="hoge";

b=this.txtbox1.text;
//b 出→ hoge

これの名称もわからず直な質問ですが理解できた方おしえてください。
0181デフォルトの名無しさん2012/07/27(金) 13:09:48.57
できないと答えておく
0182デフォルトの名無しさん2012/07/27(金) 13:42:43.01
>>180
こういう方法もあるけどさ
http://ideone.com/rTef0

これはあくまでデザイナがコントロールの参照の名称と同じ文字列を
コントロールが持ってるName(string)に設定してるからできることなんだよね
0183デフォルトの名無しさん2012/07/27(金) 15:04:42.36
変に希望を持たすのは教えたがりの悪い癖だぞ
0184デフォルトの名無しさん2012/07/27(金) 15:35:25.83
>>180
動的なParseというかExecというかは、できなくはないけど、文字列から直接実行ってのは結構大変。
0185デフォルトの名無しさん2012/07/27(金) 15:37:42.30
これだからLL出身者は
0186デフォルトの名無しさん2012/07/27(金) 17:37:11.08
【画像】キュゥべえの白パンも登場!ローソン×劇場版『魔法少女まどか★マギカ』キャンペーン
http://engawa.2ch.net/test/read.cgi/poverty/1343317989/


http://otajo.jp/files/2012/07/madomagi01.jpg
http://otajo.jp/files/2012/07/madomagi02.jpg

http://otajo.jp/p/5901
0187デフォルトの名無しさん2012/07/27(金) 18:16:20.19
DataGridView 上のボタンを自動でクリックしようとしているのですが
どうしたらよいでしょうか?


↓こーいう事をやりたいです。

dgv_query[5, 0].click();
0188デフォルトの名無しさん2012/07/27(金) 18:21:15.66
やり方よりどうしてそういう処理が必要なのか・・・
0189デフォルトの名無しさん2012/07/27(金) 18:29:16.37
選択状態にしたいだけじゃ
01901872012/07/27(金) 18:34:17.43
自己解決しました。

日本語で紹介しているページはないですね。
stack over flow で調べました。
0191デフォルトの名無しさん2012/07/27(金) 20:20:13.60
アプリをずっと回しているとメモリをガンガン消費しやがるな。

0192デフォルトの名無しさん2012/07/27(金) 20:21:06.40
GC.collect();

ってやっても意味が無いのか?
0193デフォルトの名無しさん2012/07/27(金) 21:12:21.63
>>191
環境と再現コード
0194デフォルトの名無しさん2012/07/27(金) 21:45:59.56
>>192-193
99%釣りだから触るな
0195デフォルトの名無しさん2012/07/27(金) 21:47:39.01
コードに問題があるんでしょ

解放出来ないオブジェクト一覧とか出せればいいのにね。
そーゆーの無いの?
問題となる操作の前後で比較すれば簡単に分かりそう
0196デフォルトの名無しさん2012/07/27(金) 22:16:45.26
>>193
timerイベントの中でガリガリやってるので・・・
もうちょっとあたりをつけてみます。

>>194
釣りじゃねーよ。はげ。
0197デフォルトの名無しさん2012/07/27(金) 22:19:58.17
CLRプロファイラみたいな奴?
01981932012/07/27(金) 22:21:36.59
>>196
そういう情報は最初に書け。
そんなだから釣りだと言われるんだ。阿呆。

メモリプロファイラ使えば、メモリ消費してるオブジェクトがどこで作られてるかすぐ分かる。
無料のCLR Profilerでいいから、ログ取って調べてみろ。
0199デフォルトの名無しさん2012/07/27(金) 22:24:52.25
>>197 198
thank you .i use it.
0200デフォルトの名無しさん2012/07/27(金) 22:26:21.34
あんな一言で自分のバグ以外に原因を追求しようとするなんて
釣りじゃなかったらただの初心者だろw
0201デフォルトの名無しさん2012/07/27(金) 22:51:12.82
>>200
Webbrowser Navigate でメモリを消費してるっぽい。
調べてみたらどうも既知の問題みたいだな。

まいった。どうしようか。チックイベントでやってんだが。
0202デフォルトの名無しさん2012/07/27(金) 22:54:11.32
>>201
適度に自作アプリその物を再起動すればいいんじゃね?
さすがにアプリを一端落とせば解放されるでしょ
0203デフォルトの名無しさん2012/07/27(金) 22:59:07.36
>>202
やはりそれしかないですかねぇ。
XPの貧弱なハード上で動かしているので
高頻度で再起動をしなくちゃなりません。
0204デフォルトの名無しさん2012/07/27(金) 22:59:52.98
つーかなにやってるのよ
0205デフォルトの名無しさん2012/07/27(金) 23:08:03.02
>>201
http://support.microsoft.com/kb/893629
というわけで仕様。対策としてはこの辺。
http://stackoverflow.com/questions/8302933/how-to-get-around-the-memory-leak-in-the-net-webbrowser-control
0206デフォルトの名無しさん2012/07/28(土) 01:14:16.16
>>196
画面描画とか定期的なイベントみたいに
呼ばれる回数が多いメソッドの中では毎回オブジェクトを生成しない方がいい
生成は初めだけにして出来る限り使いまわしたりプリミティブ型で済ませるといい
0207デフォルトの名無しさん2012/07/28(土) 01:34:05.46
生成コストが重いやつはそうだけど
寿命の短いオブジェクトを作り捨てる分にはGen0で回収されて問題にならない。
中途半端に長生きしてGen1/Gen2に行っちゃうようなのが多いなら影響が出てくる。

その辺の最適化は徒労に終わる場合が多いから、ちゃんとプロファイラ使ってボトルネックを確認してから取り掛かるべき
0208デフォルトの名無しさん2012/07/28(土) 01:44:01.37
>>205
プロセス落としてあげるしかないみたいですねぇ。

>>204 >>206
そーいう感じで書いてるつもりですけど
チックイベントで一定間隔で欲しいページのデータを拾おうとしています。
なのに1回ループする事に数Mバイトずつ増えており困ってます。

自プロセスで メガンテ して死亡したらザオリクで復活させて
まるでウィルスの様な動きをさせるしかなさそうですね。
0209デフォルトの名無しさん2012/07/28(土) 01:47:12.55
もしかしてWebBrowserクラス使ってる?
0210デフォルトの名無しさん2012/07/28(土) 01:47:54.49
って既に言ってたね
0211デフォルトの名無しさん2012/07/28(土) 01:49:25.03
>>208
なぜそれを先に言わない…
HttpClientかHttpWebRequest使え
0212デフォルトの名無しさん2012/07/28(土) 01:49:49.54
>>208
データ収集が目的で閲覧までは必要ないなら使わない方がいい
他のクラスがあるし
0213デフォルトの名無しさん2012/07/28(土) 01:52:29.70
あ、HttpClientじゃなくてWebClientだったわ。スマン
0214デフォルトの名無しさん2012/07/28(土) 02:51:42.18
>>211 >>212
WEBページの内容を解析して
特定の値だけ取得してます。

例えば <h1></h1>とか
0215デフォルトの名無しさん2012/07/28(土) 03:02:17.05
WebClientかHttpWebRequestでhtmlを取得すればリークしない。
後は正規表現とか適当なスクレイピング用のライブラリ作って抜き出すだけ。
0216デフォルトの名無しさん2012/07/28(土) 08:39:40.68
>>180 に答えてくれた方ありがとうございましたー
メニューやFormなどをDBから組み込み立ち上げできるようなんできないかなーって
思ってたんです。メンテ→コンパイル→鬱〜なんで楽かなおもて。。
0217デフォルトの名無しさん2012/07/28(土) 08:53:55.35
それなら別に動的コントロール生成でできるじゃないか
0218デフォルトの名無しさん2012/07/28(土) 09:14:32.91
>>180です、メニューとかはメインFormを動的に作成させるよう仕込んだらDBのデータ元でメニュー管理や作成はできました。
ただFormなのですが、、説明が。。ぶっちゃけると
FormHoge.cs
FormHoge.Designer.cs
ってファイルをディレクトリから拾ってきて動的に実行したいって事なんです。。MDIFormで例をあげると
親だけはプロジェクトからコンパイルなどを行い。子Formらはコンパイルせず、えっと。。ファイルから立ち上げる。。みたいな?
説明むりスマソ
phpクラス読み込んでるんと似たような感じです。。
またはForm単一でコンパイルしたファイルみたいなのあるんですかね?

たぶん何いってんだこいつって思いでしょうが、説明がうまくできません、すまん
0219デフォルトの名無しさん2012/07/28(土) 09:27:49.95
ファイルがあるんなら実行時コンパイルは容易だよ
CodeDOMでググれ

設計としては全くお勧めしない
0220デフォルトの名無しさん2012/07/28(土) 09:49:45.72
>>218
もっと根源の要求は何?
動的にやるにしても、ソースコード読み込みである必要はないわけで、
プラグイン的なことがしたいだけならMEFってのの利用推奨。
動的にdllを読み込む。
0221デフォルトの名無しさん2012/07/28(土) 10:29:42.72
>>219
調べて見ます、ありがとう
>>220
えとシステム営業中でも、とあるモジュール(というのかな)、たとえば顧客管理A(Form)
の急な変更を要求された場合、メンテしてexeをコンパイルしなおす間、全システムをオフにしなくてもメンテができるんじゃないかな
と考えております。のちに共同開発などする場合、貴方は在庫管理Bをつくってくれ、なんて頼んでそれだけに没頭してもらえるかなぁとか。。
浅はか?
MEF調べて見ます、ありがとう。
0222デフォルトの名無しさん2012/07/28(土) 10:46:09.67
変更は厳しいんじゃないかな
クラス追加してく形になると思う
0223デフォルトの名無しさん2012/07/28(土) 10:49:38.56
そんな急な変更がしたいならWebにすればいいのに
exeなら自動更新機能を付けるとかさ
0224デフォルトの名無しさん2012/07/28(土) 11:02:45.56
モジュール同士のIFが変化しないなら行けるだろう
「見た目だけの違い」ならば
0225デフォルトの名無しさん2012/07/28(土) 11:04:36.59
phpの経験はあるようだからphpでやればいいよね
ダイナミックなデプロイはLL言語お得意のはずでしょう
0226デフォルトの名無しさん2012/07/28(土) 11:16:47.13
ASP.NETでもファイルコピーだけでデプロイできるよね
0227デフォルトの名無しさん2012/07/28(土) 12:02:00.86
>>221
全システムをオフっていつの時代だよ
0228デフォルトの名無しさん2012/07/28(土) 12:02:17.39
ASP,NETはとっつきにくかったのであまりわかりません。
たしかに今自分がやりたい事はLLが手っ取り早い気もしますが、そこは目瞑ってC#で。
とりあえずMEFが近いんかな?って見ています、Form等をDLL→読み込めるんですね。
こんなやり方は変態なのかな。。
0229デフォルトの名無しさん2012/07/28(土) 12:15:57.35
うん。完全に厨二病の類
0230デフォルトの名無しさん2012/07/28(土) 12:28:29.94
http://code.msdn.microsoft.com/windowsdesktop/17-c3491bd5 この記事が
なんとなくそれに近い気がします。
>>227 全システム、ん〜逆に聞くと皆さんシステムのメンテ/変更を要求された場合
どういう流れなんですか?自分はその使用中のシステムのプロジェクトSolution開いて
変更してコンパイルしてexeを本番フォルダに上書き。。じゃないの?ww恥ずかしい質問でわるいけど
0231デフォルトの名無しさん2012/07/28(土) 12:38:41.91
そのシステムとやらはずっと起動しっぱなしなの?
毎日朝起動するタイプなら起動時に新バージョンがあったら
自動的にダウンロードして更新するようにしておくよね。
起動しっぱなしならまあ定期的にバージョン確認をして
更新してたら再起動を促すとかすればいいのでは。
WindowsUpdateみたいに。
0232デフォルトの名無しさん2012/07/28(土) 12:57:45.41
いいや変更要求はこれこれここはこうしようと
がんがん来るのです。今やれ、さぁ今、なうなうなう です
つけっぱじゃないけど、バージョン確認とか鬱
その場で瞬時に対応型です、糞上司め
0233デフォルトの名無しさん2012/07/28(土) 13:08:04.68
ClickOnceを使おう(提案)
0234デフォルトの名無しさん2012/07/28(土) 13:21:25.99
プラグインて怖くない?
有料機能解除されたり、内部情報丸裸にされたり
バックドアじゃん、セキュリティどうなってんの?
0235デフォルトの名無しさん2012/07/28(土) 13:46:59.84
webでやれw
0236デフォルトの名無しさん2012/07/28(土) 14:06:18.16
TDD見たいな形態で開発しとるんか?
それとも客先で運用しながら随時更新ってことか?
危険すぎるな
0237デフォルトの名無しさん2012/07/28(土) 14:12:43.51
>>232
それを本番環境でやるの?
どうでもいいシステムなんだなw
0238デフォルトの名無しさん2012/07/28(土) 17:29:41.27
どう見ても自殺行為です…。

>>230
更新のためのアプリの再起動が許されるならClickOnce使っとけ
起動時や一定間隔で更新チェックしたり、通知出したり
古いバージョンで繋げなくするようなのが簡単にできる。
0239デフォルトの名無しさん2012/07/28(土) 18:48:19.28
さすがにスキーマの変更はないと思いたいw
0240デフォルトの名無しさん2012/07/28(土) 19:43:44.27

Application.Restart(); で自分自信のWindowを再起動する事が出来るみたいなんですけど、
この時に、パラメータを受け取った上で再起動する方法とかってありますか?

色々と調べてみたんですけどちょっと見つかりませんでした。
最悪、外部ファイルにパラメータを設定しておき、
FormLoadイベントにてその値を読もうかと思っています。
0241デフォルトの名無しさん2012/07/28(土) 20:12:07.85
Application.Exitをコールしてから自分自身をProcessStartInfoで起動すればいいのでは
0242デフォルトの名無しさん2012/07/28(土) 20:29:45.48
>>241
ありがとうございます。
そんなの用意されていたんですね。
02432302012/07/28(土) 21:38:39.34
いいえTDD運営してるわけではありません、一応ちゃんと確認上での更新をしてますよ。
スキーマの変更までは行きません。
プラグインは特定の条件を充たさないと立ち上げないって事でそこんとこは回避できそです。
ClickOnceもちょっと勉強して自分のそれに理想なのか見てみます。。
ホントPhpとMysqlでやったほうがメチャ近道なんだろうけど。。
やっぱココはC#でこういう作りで行きたいんですw誰がなんと言おうと
意地っ張りな厨二病ですね
0244デフォルトの名無しさん2012/07/28(土) 22:09:08.12
javaよりc#の方がプログラミング楽な気がする
javaだとインターフェイスとかの実装が面倒だし、クラスライブラリ以外のframeworkが多すぎる
意義ある人いるー?ノシ
0245デフォルトの名無しさん2012/07/28(土) 22:13:24.53
まったく意義なし
0246デフォルトの名無しさん2012/07/28(土) 22:21:02.09
その至れり尽くせり環境になれてしまうと
プログラマとは廃人同様

0247デフォルトの名無しさん2012/07/28(土) 22:26:22.73
win2kのソースコードが流出した際は大変な問題になったのに
MSはなぜ、.netを推すの?
0248デフォルトの名無しさん2012/07/28(土) 22:30:36.44
>>247
基礎を抑えつつも餌で釣ることで抜け出せなくする作戦だよ

IDEの支援でC#サイコーなやつ量産しておけば企業向けのアプリはC#採用するかとか
なるかもしれないじゃん

大学などの学生にはドリームスパークでただで配ってるし

OSやofficeで利益確保しつつ開発などで囲い込む作戦
0249デフォルトの名無しさん2012/07/28(土) 22:31:06.39
逆コンパイルが容易というのはパクってもすぐばれるということでもある
0250デフォルトの名無しさん2012/07/28(土) 23:45:57.65
↑
いいこといった。
0251デフォルトの名無しさん2012/07/29(日) 00:35:37.92
別にソースなんか公開しても金稼ぐ方法があるし(RedHatやMySQLを見ろ)
0252デフォルトの名無しさん2012/07/29(日) 02:27:32.31
mysql は oracle だろ。

あと↑らの糞コードなんて
自分のコードが汚くなるだけだから見る価値もねーよ。うぬぼれんな。雑魚。
■ このスレッドは過去ログ倉庫に格納されています