ふらっとC#,C♯,C#(初心者用) Part52

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

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

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

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

WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part4
http://pc12.2ch.net/test/read.cgi/tech/1245384489/
2デフォルトの名無しさん:2009/12/26(土) 13:27:18
3デフォルトの名無しさん:2009/12/26(土) 13:43:09
>>1おちゅでちゅ
4デフォルトの名無しさん:2009/12/26(土) 14:12:18
CA1031に汎用的な例外をキャッチしないで下さいってのがあります
キャッチしないように書きたいのですが、ExceptionもSystemExceptionも
規約でキャッチしていい例外のスーパークラスなのでcatch(XXX ex)で取り除けず面倒です

何か手はないですか
5デフォルトの名無しさん:2009/12/26(土) 14:33:53
Exceptionを引数に取る拡張メソッドでも書けば。
6デフォルトの名無しさん:2009/12/26(土) 15:06:08
どうしたいの?
面倒だからまとめてキャッチしたいということならそもそも
その考え方自体が規約違反なのでどうしてもそうしたいんだったらCA1031なんか無視すればいい
7デフォルトの名無しさん:2009/12/26(土) 15:15:37
コンボボックスにBindingSourceを指定しているときの、データ連結表示について

コンボボックスに、下記の2列のデータセットをBindingSourceとして指定しています。
このデータセットは、レンタルサーバー内のSQLサーバーにバインドしています。

TITLE PRICE
りんご 100円
みかん 50円
なし 75円

このとき、TITLE列とPRICE列を連結して、
コンボボックスに
「TITLE + " " + PRICE」(例:「りんご 100円」というように表示させたいのですが、
BindingSourceを指定している時にも、その連結は可能でしょうか。
よろしくお願いいたします。
8デフォルトの名無しさん:2009/12/26(土) 15:29:52
>>7
やったこと無いけどオーナードローにしたら?
9デフォルトの名無しさん:2009/12/26(土) 15:44:46
オーナードローはできませんw
10デフォルトの名無しさん:2009/12/26(土) 15:45:56
コンボボックス継承して動作弄れば
11デフォルトの名無しさん:2009/12/26(土) 15:47:10
SQLサーバーからの取得時にくっつけとくとか
12デフォルトの名無しさん:2009/12/26(土) 15:52:01
軟弱者C#厨の巣窟を発見(≧▽≦)
13デフォルトの名無しさん:2009/12/26(土) 15:53:17
>>11で解決しました。ありがとうございます。
14デフォルトの名無しさん:2009/12/26(土) 15:54:44
>>11
いえいえ
15デフォルトの名無しさん:2009/12/26(土) 16:30:20
Visual Basic.net VS C#
16デフォルトの名無しさん:2009/12/26(土) 16:44:06
はじめてプログラミングするんですが
VBとC#とC++とJAVAだとどれがいいですか><;;
17デフォルトの名無しさん:2009/12/26(土) 16:45:24
c#
18デフォルトの名無しさん:2009/12/26(土) 16:46:34
>>16
その辺だったらどれでも、
だがここはC#スレだ
19デフォルトの名無しさん:2009/12/26(土) 16:49:47
>>16
C++
20デフォルトの名無しさん:2009/12/26(土) 16:50:05
>>16
ruby
21デフォルトの名無しさん:2009/12/26(土) 16:51:10
>>16
Java
22デフォルトの名無しさん:2009/12/26(土) 16:51:58
いっそ全部平行して覚えるのもいいかもね。
23デフォルトの名無しさん:2009/12/26(土) 16:52:35
>>16
PHP
24デフォルトの名無しさん:2009/12/26(土) 16:55:37
つ F#
25デフォルトの名無しさん:2009/12/26(土) 16:55:54
>>16
Brainfuck
26デフォルトの名無しさん:2009/12/26(土) 16:58:11
>>16
BASIC
27デフォルトの名無しさん:2009/12/26(土) 16:58:42
おまいら暇すぎ
28デフォルトの名無しさん:2009/12/26(土) 16:58:43
Whitespaceマジオススメ
29デフォルトの名無しさん:2009/12/26(土) 16:58:47
>>25Brainfuckにしました><
ありがとうございました><
30デフォルトの名無しさん:2009/12/26(土) 17:00:09
昨日一昨日あたりからずっと脱線しっぱなしな気がする
31デフォルトの名無しさん:2009/12/26(土) 17:01:24
画像認証を行いたいのですが、
例えば、123 という数字を画像にし、
この画像を数字として読み込む、ということがしたいのです。
どうすればいいでしょう?
32デフォルトの名無しさん:2009/12/26(土) 17:02:48
>>31
そんな事も知らないんでちゅか?よくそんなんで生きてられまちゅね?
33デフォルトの名無しさん:2009/12/26(土) 17:03:04
(;゚;ё;゚;)←C#厨
34デフォルトの名無しさん:2009/12/26(土) 17:04:58
>>31
ググった方がはやい。
.NETにはそれをしてくれるAPIはたぶん存在しない。
真面目にやろうと思うならここで聞いてもたぶん解決しない。

出力する画像のパターンがわかってて遅くてもいいなら
単純にバイト列の比較でいいんじゃないの?
35デフォルトの名無しさん:2009/12/26(土) 17:05:12
>>31
OCRでググれ
36デフォルトの名無しさん:2009/12/26(土) 17:06:40
>>31
やりたいのはこういうの?
http://www.johnmwillis.com/other/top-10-worst-captchas/
37デフォルトの名無しさん:2009/12/26(土) 17:07:26
ググりたくないので質問したのですが。。。
38デフォルトの名無しさん:2009/12/26(土) 17:17:44
>>37
数字を画像にして、それを数字として読み込むといいんじゃないかな
3931:2009/12/26(土) 17:17:50
>>34
APIは無いだろうと思いました。
バイト列で比較していってもいいのですが、数十桁x複数列となるとかなり時間がかかってしまい・・・
ググっても、画像認証は初めてで
>>35
OfficeにはOCRソフトがついてるみたいで、そのソースも参考にしたいと思います。
>>36
そうですね、ただ、スパム防止画像認証を突破するほどのものではなく、
単純に文字を画像化したものなのですが、フォントが数種類に分かれてて…

40デフォルトの名無しさん:2009/12/26(土) 17:47:08
>>6
>面倒だからまとめてキャッチしたい

えー
tryブロック中でABCDEFと5種類発生する可能性があって
進行上問題がある例外はABCだけであり、DEFに関してはスルーしたい
メソッドは成功か失敗かだけを要求しているので汎用例外以外は再スローする気はない

この時
catch(A){}
catch(B){}
catch(C){}
catch(D){}
catch(E){}
catch(F){}
って書きたくない(どうせDEFのcatchブロックは空で冗長なので)
スルーする奴に関してはExceptionでキャッチしたいがCA1031に引っかかる
で、DEFを省略できないか?ということです
Javaは次版でマルチキャッチ(catch(D,E,F)とか書ける)導入するらしいですが、そんな感じの奴
41デフォルトの名無しさん:2009/12/26(土) 17:47:55
諦めたほうがいい
OCRライブラリ買うかCOMでOfficeのOCRコンポーネント動かすか
42デフォルトの名無しさん:2009/12/26(土) 17:49:11
>>40
JavaSE7を待てば解決するよ
43デフォルトの名無しさん:2009/12/26(土) 17:50:30
>ABCDEFと5種類

まず、数の数え方から勉強しよう。
44デフォルトの名無しさん:2009/12/26(土) 17:51:19
煽りは結構です^^;
45デフォルトの名無しさん:2009/12/26(土) 17:51:32
やりたいのは画像認証じゃなくて、画像認証破りか・・・。
46デフォルトの名無しさん:2009/12/26(土) 17:51:36
Windowsから送られてくるイベントを取得するにはどうすればいいですか
WM_GETMINMAXINFO
とか。
47デフォルトの名無しさん:2009/12/26(土) 17:52:33
WndProc をオーバーライド。
4831:2009/12/26(土) 17:53:25
>>41
やはり複雑そうなりますか・・・
バイト列比較でやってみようと思います;
49デフォルトの名無しさん:2009/12/26(土) 17:54:06
>>47
もう少し詳しく解説してるホームページなどはありませんか?
50デフォルトの名無しさん:2009/12/26(土) 17:54:09
ワロタ
51デフォルトの名無しさん:2009/12/26(土) 17:55:19
52デフォルトの名無しさん:2009/12/26(土) 17:57:52
位置もフォントの形も画像にしたとき1ピクセル違わず決まってるなら
単純なバイト列比較でも全く時間かからないだろ
ある程度自由度があるなら画像認識が入ってくるので諦めろ
53デフォルトの名無しさん:2009/12/26(土) 18:03:27
>>40
今の所そういうことができる機能はねぇと思うます。
CA1031の項目を見ると「もしくはブロックの最後に再スローしてください」とあるので、

if(ex.GetType==typeof(Exception) || ex.GetType==typeof(SystemException)){ throw; }

とでも書いておけば良いんじゃないでしょうか。
一応試した所これでCA1031は消えましたよ。
54デフォルトの名無しさん:2009/12/26(土) 18:07:05
画像処理でやるなら2値化すりゃ簡単そうだけどな
55デフォルトの名無しさん:2009/12/26(土) 18:10:28
>>53
再スローせずにスルーしたいって言ってるだろ
56デフォルトの名無しさん:2009/12/26(土) 18:12:08
だから無理って言ってんだろキチガイ
57デフォルトの名無しさん:2009/12/26(土) 18:17:09
>>55
私の考えてることを勝手に代弁しないで下さい
58デフォルトの名無しさん:2009/12/26(土) 18:24:00
偽物が最近多いな
59デフォルトの名無しさん:2009/12/26(土) 18:27:24
>>7
ですが、どなたか教えていただけないでしょうか
(>_<)
60デフォルトの名無しさん:2009/12/26(土) 18:31:11
知ってるがお前の態度が気に入らない
61デフォルトの名無しさん:2009/12/26(土) 18:31:25
>>7
はい。可能です。
62デフォルトの名無しさん:2009/12/26(土) 18:37:12
>>60
(>_<)バーカ
63デフォルトの名無しさん:2009/12/26(土) 18:48:12
>>60
お前の態度が気に入らない
64デフォルトの名無しさん:2009/12/26(土) 18:54:27
>>63
一理ある
65デフォルトの名無しさん:2009/12/26(土) 18:57:31
教えてください
(T_T;)。
66デフォルトの名無しさん:2009/12/26(土) 18:58:46
(・∀・)イヤダ!!
677:2009/12/26(土) 19:04:27
自己解決しまシタ(゚∀゚)
68デフォルトの名無しさん:2009/12/26(土) 19:06:40
良かったな。二度と来んなよ。
69デフォルトの名無しさん:2009/12/26(土) 19:06:46
平気で成りすますヤツが多いスレだな
70デフォルトの名無しさん:2009/12/26(土) 19:09:29
ひゅ〜ひゅ〜
71デフォルトの名無しさん:2009/12/26(土) 19:09:56
ここまで自演。
72デフォルトの名無しさん:2009/12/26(土) 19:12:02
、、、、、、、、、、、、、((((( ^ω^)もそもそ
73デフォルトの名無しさん:2009/12/26(土) 19:15:49
1000なら次スレからID出る
74デフォルトの名無しさん:2009/12/26(土) 19:55:04
IDが出たら確実につまらなくなる
75デフォルトの名無しさん:2009/12/26(土) 20:05:52
ちょっと…
教えてください(>_<;)。
コンボボックスのバインディングについて…。
767:2009/12/26(土) 20:07:39
>>75
騙りは死んでください(>_<)
77デフォルトの名無しさん:2009/12/26(土) 20:07:48
includeってどうやるんですか?
78デフォルトの名無しさん:2009/12/26(土) 20:10:22
自己解決しました。
79デフォルトの名無しさん:2009/12/26(土) 20:15:32
ホントにこの板の連中は引き際を知らなくて白けるな
80デフォルトの名無しさん:2009/12/26(土) 20:15:55
C#にはヘッダファイルがないので、include はできないし、意味がありません。
81デフォルトの名無しさん:2009/12/26(土) 20:36:37
テキストファイル内の、指定した行の内容を書き換える方法を教えてください。
82デフォルトの名無しさん:2009/12/26(土) 20:38:29
その行だけ書き換えて、残りの行はそのまま出せばいい。
83デフォルトの名無しさん:2009/12/26(土) 20:40:08
>>81
1 . 全行読込
2 . 指定行の値を変更
3 . 全行書込

簡単だろ?
84デフォルトの名無しさん:2009/12/26(土) 20:40:25
自己解決しました。
85デフォルトの名無しさん:2009/12/26(土) 20:43:58
誰が自己解決したのかわからんw
86デフォルトの名無しさん:2009/12/26(土) 21:35:50
COMコンポーネントと.net frameworkコンポーネントって何がどうちがうの?
87デフォルトの名無しさん:2009/12/26(土) 21:38:25
いろいろ違う。
88デフォルトの名無しさん:2009/12/26(土) 21:45:27
そりゃ違うんだろうけどどういう点が違う
89デフォルトの名無しさん:2009/12/26(土) 21:51:21
自分で調べろ
90デフォルトの名無しさん:2009/12/26(土) 21:53:08
COMコンポーネントは、VCとかVCとか.NETとかいろいろなモノで作れるし、いろいろなモノで呼べる。
.NETコンポーネントは.NETだけ。
91デフォルトの名無しさん:2009/12/26(土) 21:53:30
あ。VCとかVBとか、の間違い。
92デフォルトの名無しさん:2009/12/26(土) 21:55:48
やっぱり自分で調べた方がいいぞ
簡潔かつ明快に説明出来るやつはここにはいない
93デフォルトの名無しさん:2009/12/26(土) 21:56:13
COMの規格とNETのアセンブリの規格
94デフォルトの名無しさん:2009/12/26(土) 22:00:29
そうだね。
95デフォルトの名無しさん:2009/12/26(土) 22:20:03
だな
96デフォルトの名無しさん:2009/12/26(土) 22:27:26
ちょっと質問なんですが、
マネージドなexe1つとDLLがいくつかあってひとつのアプリケーションを構築するとして、
DLL側のアセンブリに改ざん防止のキーを設定したうえでexeに参照設定を通してリンクすることで
DLLの改ざんを防止することができますが、
同じ要領でexe側の改ざんを防止するための方法はあるんでしょうか?
97デフォルトの名無しさん:2009/12/26(土) 22:28:39
もし可能だったとして
exe改竄するやつは
防止機能も改竄しそうだけどな
98デフォルトの名無しさん:2009/12/26(土) 22:34:34
なるほど
99デフォルトの名無しさん:2009/12/26(土) 22:35:25
マネージドでもリバースエンジニアリングできないわけでもないしなぁ。


100デフォルトの名無しさん:2009/12/26(土) 22:45:34
>>96
どうしても改ざんを防止したいんだったら、
証明書がついている公開キーでアセンブリを署名するしかないでしょう。
101デフォルトの名無しさん:2009/12/26(土) 22:50:57
つうかマネージドの方が圧倒的にしやすいだろ
102デフォルトの名無しさん:2009/12/26(土) 22:51:40
署名したって無駄だぜ。
実行そのものを阻止する手はないから。
103デフォルトの名無しさん:2009/12/26(土) 22:54:09
「このアセンブリは改竄されてないから安心してご使用ください」は可能だけど
「このアセンブリのここ気にくわねえ書き換えてやるか」に対応するのはね
104デフォルトの名無しさん:2009/12/26(土) 22:56:50
究極的にはクラサバにして弄られてこまる処理はぜんぶサーバで行なうとかするしかないよな。
105デフォルトの名無しさん:2009/12/26(土) 22:58:21
>>102
もちろん、クライアントには適切なポリシーを設定して頂かないと。
改ざんされても大丈夫というのは不可能なので、改ざん防止をするしかない。
106デフォルトの名無しさん:2009/12/26(土) 23:00:40
ついでに言うと、.NET3.5SP1からは
デフォルトでは厳密名の署名確認もしないから気をつけろよ。
改ざんされてたって何も言わずに実行できるからな。
107デフォルトの名無しさん:2009/12/26(土) 23:04:35
Enum.ToString()ってまだクソ仕様直してないの?
108デフォルトの名無しさん:2009/12/26(土) 23:05:05
改竄されて困るようなものに.net使わない方が・・・
109デフォルトの名無しさん:2009/12/26(土) 23:05:29
直ってませんw
110デフォルトの名無しさん:2009/12/26(土) 23:10:11
クソ仕様って何?
111デフォルトの名無しさん:2009/12/26(土) 23:10:23
>>108
改ざんされて困らないものってなんだ…?
112デフォルトの名無しさん:2009/12/26(土) 23:12:00
ほとんどの物は改竄されても困らないだろ
113デフォルトの名無しさん:2009/12/26(土) 23:13:39
まあ商用の連中だけだな
114デフォルトの名無しさん:2009/12/26(土) 23:13:52
ネイティブのほうが改ざんされやすいと思うが。
115デフォルトの名無しさん:2009/12/26(土) 23:13:55
困らないな
116デフォルトの名無しさん:2009/12/26(土) 23:14:18
>>110
Enum.ToString()がメタデータテーブルをいちいち検索に行くせいで超遅いとかいう奴じゃね。
117デフォルトの名無しさん:2009/12/26(土) 23:20:36
>>107
Enum.ToString() なんて、デバッグの時しか使わないだろ。
118デフォルトの名無しさん:2009/12/26(土) 23:21:19
私は楽器店を経営していますが、顧客や商品管理システムを外注で頼んだら1人・1日あたりいくらくらいが相場ですか?
119デフォルトの名無しさん:2009/12/26(土) 23:21:37
>>114
そうなの?よく知らないんだが。
120デフォルトの名無しさん:2009/12/26(土) 23:22:42
>>117
お前の主観で物事語ってんじゃねえよ調子乗るなクソが。
121デフォルトの名無しさん:2009/12/26(土) 23:23:07
>>118
会社の規模にもよるけど今なら6000円/hじゃね
大きなところに頼むと10000/hぐらい?
122デフォルトの名無しさん:2009/12/26(土) 23:24:03
商用で.NET使ってるソフトでショボイエラーとか例外吐かれると
マジでイライラすることがある
積極的に例外使ってる奴は本当にムカツク
123デフォルトの名無しさん:2009/12/26(土) 23:30:42
普通は一番最後にログに落し込むもんなんだけどな。
素の例外が外にでるのは流石に問題ありだ。
124デフォルトの名無しさん:2009/12/26(土) 23:34:11
人月60万〜200万くらい。
125デフォルトの名無しさん:2009/12/26(土) 23:41:33
へえ
126デフォルトの名無しさん:2009/12/26(土) 23:50:40
小規模な店なら
顧客管理/商品管理はOffice買うかOpenOfficeダウンロードして
適当なDBなり表なりに記入でもしたほうが安上がりなんじゃないかなあって気もするけどな。
127デフォルトの名無しさん:2009/12/26(土) 23:54:02
顧客管理と商品管理だけならAccessとExcelだけで十分だろ
POSと連動させて単品売上管理までするとなるとOfficeだけじゃ無理だけどな
128デフォルトの名無しさん:2009/12/26(土) 23:55:10
パッケージなら2〜30万くらいであるんじゃね?
129デフォルトの名無しさん:2009/12/26(土) 23:58:45
POSと連動するソフトとかって幾らぐらいするんだろね?
130デフォルトの名無しさん:2009/12/27(日) 00:01:56
>>129
こんなん見つけたよ

フリーソフトでPOSレジスターを制作
ttp://pcposregister.com/
131デフォルトの名無しさん:2009/12/27(日) 00:02:09
POSと連動って何?
132デフォルトの名無しさん:2009/12/27(日) 00:04:12
>>131
はやい話、レジで処理したらDBに販売結果が反映されること。
133デフォルトの名無しさん:2009/12/27(日) 00:06:50
あー。POSの定義がおかしいのね。了解。
134デフォルトの名無しさん:2009/12/27(日) 00:09:35
ググるとその手のソフト結構引っかかるけど
普通にパッケージ買うのとどっかの会社に作ってもらうのどっちが安くすむだろねぇ。
135デフォルトの名無しさん:2009/12/27(日) 00:09:47
昔VB.NETで作ったなぁ。
PCにバーコードスキャナ、レシートプリンタ、キャッシュドロワとかつないで。
136デフォルトの名無しさん:2009/12/27(日) 00:10:09
おかしいか?
POSって言うのは販売時点情報管理として独立したシステムだし
使っているPOSが顧客管理システムを実装していなければ
別なシステムと連動させる必要があるだろ
137デフォルトの名無しさん:2009/12/27(日) 00:10:26
パッケージの方が全然安い。
138デフォルトの名無しさん:2009/12/27(日) 00:11:35
ある程度の汎用品と特注品でコスト同じだったら笑えるがな(´・ω・`)
139デフォルトの名無しさん:2009/12/27(日) 00:17:40
普通の小売だと汎用品でもたりるよね、たぶん・・・
よくわからんけど今時の汎用POSソフトって独自のポイントカードぐらい標準で処理できたりすんのかな。
140デフォルトの名無しさん:2009/12/27(日) 00:28:28
フリーのPOSソフトがむちゃくちゃ高機能でワロタw
まぁパッケージで会社がなりったてるから高機能なのは当たり前なんだけど…
141デフォルトの名無しさん:2009/12/27(日) 00:31:46
>>130で紹介されてる商品スタッフUってソフトは
顧客管理システム実装してるな
これがフリーなら俺も自分で作ろうなんて思わんわ
ポイントカードシステムくらい自分でつくればいい
142デフォルトの名無しさん:2009/12/27(日) 00:37:25
顧客管理ってどういう風にやりたいの?
143デフォルトの名無しさん:2009/12/27(日) 00:38:41
画面数この数でフリーとか狂ってるとしか思えんわ
144デフォルトの名無しさん:2009/12/27(日) 00:38:55
今時のフリーソフトはすごいなぁ。
145デフォルトの名無しさん:2009/12/27(日) 00:40:58
お前らもこういう才能発揮しろよな…
146デフォルトの名無しさん:2009/12/27(日) 00:43:14
こんなんやったら近くの同業者にマジで刺されるぞ…。
147デフォルトの名無しさん:2009/12/27(日) 00:44:21
IT業界ってほんと土建屋チックだなw
148デフォルトの名無しさん:2009/12/27(日) 00:45:38
どう高機能か動画みてみたらマジですごかった件orz
149デフォルトの名無しさん:2009/12/27(日) 00:46:14
フリーソフトのカスタマイズも商売になるんだからいいじゃないか。
150デフォルトの名無しさん:2009/12/27(日) 00:46:48
>>118
結論:商品スタッフUのスタンドアロン版使え
151デフォルトの名無しさん:2009/12/27(日) 00:49:30
POSの購入代行をオークションでやりますって所がいかにも個人だなw
152デフォルトの名無しさん:2009/12/27(日) 00:50:54
フリーで会社って事は最低でもJaneStyleレベルって事か。
153デフォルトの名無しさん:2009/12/27(日) 00:53:38
(´・ω・`)←ウンコ臭いw
154デフォルトの名無しさん:2009/12/27(日) 01:03:23
何か作ろうかって思っても既に高機能なものがフリーで提供されてて
萎えることって結構あるよね。
155デフォルトの名無しさん:2009/12/27(日) 01:04:27
スレ的にはPOS for .NETくらい挙げて欲しいな
ただし、Application Programmer's Guideが1400頁超(しかもWord)で
検索すらままならないし、まさしく悪夢としか言いようがないが
156デフォルトの名無しさん:2009/12/27(日) 01:06:12
ε( υ´-∀-)
157デフォルトの名無しさん:2009/12/27(日) 01:27:26
where from
158デフォルトの名無しさん:2009/12/27(日) 01:32:59
( ゚-゚)ボー
159デフォルトの名無しさん:2009/12/27(日) 07:33:51
Dim a As Integer
と書いてもエラーします。なぜでしょうか?
160デフォルトの名無しさん:2009/12/27(日) 07:35:15
自己解決すました。
161デフォルトの名無しさん:2009/12/27(日) 08:02:28
こうゆう人ってなかなか成長しないよね
162デフォルトの名無しさん:2009/12/27(日) 08:58:00
var pugyaa;
と書いてもエラーします。なぜでしょうか?
163デフォルトの名無しさん:2009/12/27(日) 09:10:53
>>162
ネタでやってるのか?
164デフォルトの名無しさん:2009/12/27(日) 09:11:25
エラーしますって斬新な日本語だなぁ
165デフォルトの名無しさん:2009/12/27(日) 09:16:33
1-1000.Dispose();
と書いてもエラーします。なぜでしょうか?
166デフォルトの名無しさん:2009/12/27(日) 10:29:44
>>165
166以降が存在しないから
167デフォルトの名無しさん:2009/12/27(日) 11:33:20
>>166
カツラがずれてますよ
168デフォルトの名無しさん:2009/12/27(日) 12:09:54
C#でPCのマスタ音量を変える(ボリュームコントロール)機能を実現したいのですが、
いい方法やクラスをお知りの方がいましたら、ご教授おねがいします。
169デフォルトの名無しさん:2009/12/27(日) 12:27:18
>>168
>239 名前: デフォルトの名無しさん [sage] 投稿日: 2009/12/27(日) 12:24:13 
>んなこといったって初心者用スレはごく一部の上級者とほぼ全員初心者しかいないから、たまにしかまともな回答えられないし 
>両方で相談するしかないじゃん。 
170デフォルトの名無しさん:2009/12/27(日) 12:27:42
>>168
マルチまでして聞いてきたわけだし俺が教えてやるよ。
カーソル操作API使って画面右下のボリュームコントロールの操作をエミュレートすればいい。
171デフォルトの名無しさん:2009/12/27(日) 12:45:30
>>168
マジレスするとIMMDeviceEnumerator.GetDefaultAudioEndpointでサウンドデバイスを取得して
RenderのIMMDeviceCollectionを取ってIMMDeviceを取ってIAudioEndpointVolumeを取って
ようやくマスタボリュームが弄れる

あなたに使うことができるかどうかは知らない
私は相手の実力が判断できない初心者なので
172デフォルトの名無しさん:2009/12/27(日) 13:14:45
Formでコンソールから呼ばれたときに、コンソールに結果を返すにはどうしたらいい?
単に、処理の最後に、
Console.WriteLine(processMessage);
Close();
と書けばいいかと思ったら、コンソールから起動しても処理してみたら、なにも戻ってこないんだけど。
173デフォルトの名無しさん:2009/12/27(日) 13:21:08
結果を返すって何?

終了コードを返したいなら、Application.Exit()とかEnvironment.Exit()だけど。
174デフォルトの名無しさん:2009/12/27(日) 13:24:25
処理結果よ。処理結果。
string processMessage = いろいろ処理後のstring;
Console.WriteLine(processMessage);
Close();
175デフォルトの名無しさん:2009/12/27(日) 13:27:21
なんでえらそうなの?
176デフォルトの名無しさん:2009/12/27(日) 13:28:10
Windowsフォームアプリだと、Consoleクラス使ってもコンソールには出力できなかったような。
Console系のAPI使え。
177デフォルトの名無しさん:2009/12/27(日) 13:34:07
>>174
プロジェクトのプロパティのアプリケーションの項で
出力の種類をコンソールアプリケーションにすればOK

馬鹿ばっか
178デフォルトの名無しさん:2009/12/27(日) 13:34:56
179デフォルトの名無しさん:2009/12/27(日) 13:35:30
質問させてください。
WindowsXP,Visual Studio2008で開発をしています。

サーバーエクスプローラにてMysqlのデータベースを読み込み、DataGridViewに表示をさせるといったことをしているのですが、
データベースに接続はできても、DataGridViewの表示の段階で躓きます。
どこで躓いているかというと、
デザインにてDatagridViewを張り付けて、そこからデータベースを関連付けるところで、

予期しないエラーが発生しました。
エラー メッセージ:アセンブリ'Microsoft.VisualStudio.DataDesign.SyncDesigner.DslPackage, Version=9.0.0.0, Culture=neutral, PublicKey Token=***************'
から型'Microsoft.VisualStudio.DataDesign.SyncDesigner.SyncFacade.SyncManager'を読み込めませんでした。

とでました。
google先生に聞いてもHITしないし、エラーの原因がよくわかりません。
これはどういったことなのでしょうか。ご指南よろしくお願いします。
180デフォルトの名無しさん:2009/12/27(日) 13:44:58
>>175
えらそうだったですか? すまん。ごめんなさい。

>>177
おお。これです。ありがとうございます。
ただ、これだと問題があります。
このアプリケーション、Formアプリケーションなのです。
出力の種類をコンソールにすると、実行時に必ずコンソールが開いちゃいます。

・ふつうはFormとして実行。
・if (args[1] == "console") {
string processMessage = "いろいろ処理後のstring";
Console.WriteLine(processMessage);
Close();
}
としたいのです。
181デフォルトの名無しさん:2009/12/27(日) 13:47:14
ごめんなさい。自己解決しました。
182デフォルトの名無しさん:2009/12/27(日) 14:13:02
どっちが解決したんだろう?w
183デフォルトの名無しさん:2009/12/27(日) 14:15:42
>>182
コンソール出力は未解決です〜。
184デフォルトの名無しさん:2009/12/27(日) 14:26:25
185デフォルトの名無しさん:2009/12/27(日) 15:07:18
186デフォルトの名無しさん:2009/12/27(日) 15:13:50
>>185
それはないわ
187デフォルトの名無しさん:2009/12/27(日) 15:23:35
パネルのオートスクロールをオンにしているとき
そのパネルにスクロールバーが表示されているか否かを知るプロパティはありますか?
188デフォルトの名無しさん:2009/12/27(日) 15:24:39
ありません
189デフォルトの名無しさん:2009/12/27(日) 15:27:34
>>187
自前でフォントサイズで計算して・・・
190デフォルトの名無しさん:2009/12/27(日) 15:31:23
ごめんなさい
質問を取り消します
191デフォルトの名無しさん:2009/12/27(日) 15:32:04
どれが取り消されたんだろう?w
192デフォルトの名無しさん:2009/12/27(日) 15:34:56
http://www.pinvoke.net/default.aspx/user32/GetScrollBarInfo.html
こいつでスクロールバーサイズ求めたらいける
193デフォルトの名無しさん:2009/12/27(日) 15:37:40
Panelを使うとき、スクロールバーが出てるかどうかは確かに調べたいな。
どちらかというと強制的に出しっぱなしにしたいんだけど。
194デフォルトの名無しさん:2009/12/27(日) 16:22:37
C#は小学生向けの言語というのは本当ですか?教えてちょo(´∀`)oワクワク
195デフォルトの名無しさん:2009/12/27(日) 16:25:41
そうだな
196デフォルトの名無しさん:2009/12/27(日) 16:28:21
どちらかというと何かと白黒を付けたがって
世の中のすべてのものがはっきり決まっててほしいと思いたがるような
中学・高校生向きかもしんない。
197デフォルトの名無しさん:2009/12/27(日) 16:29:10
小学生のおじちゃんたち、教えてくれありがとーo(´∀`)o
198デフォルトの名無しさん:2009/12/27(日) 16:31:51
中高生はたしかに極端なこと言うの多いよな。
199デフォルトの名無しさん:2009/12/27(日) 16:32:33
一面だけ見てわかった気になっちゃうからね
C#関係ねーよバカ
200デフォルトの名無しさん:2009/12/27(日) 16:35:36
小学生でも使える素晴らしい言語です。
次は、英語を使えるようになりましょう。
201デフォルトの名無しさん:2009/12/27(日) 16:35:48
で、小学生には、案外lispとかSqueakやPythonのほうがいいのかも。
Rubyでもいいけど、イディオムが多くて教えるのが大変そう。
202デフォルトの名無しさん:2009/12/27(日) 16:44:45
小学生向きの言語はLogoと昔から相場がきまっておる
203デフォルトの名無しさん:2009/12/27(日) 16:47:27
しかし小学生に教える先生達はVBしか使えないのであった
204デフォルトの名無しさん:2009/12/27(日) 16:50:12
間を取ってSmallBasicだな
205デフォルトの名無しさん:2009/12/27(日) 16:51:09
オッサンどもはいつになったらスレタイが読めるようになるの?
206デフォルトの名無しさん:2009/12/27(日) 16:59:42
>>182
なるほど〜。Mainのなかで引数で条件わけするんですね。
すごい。目からうろこが落ちました。
ありがとうございました。
207デフォルトの名無しさん:2009/12/27(日) 18:14:59
コンボボックスで表示されるリストのうち、
どれかをマウスでクリックしたら、
次のタブオーダーの項目に遷移するようにしたいとき、
どのイベントを使用するものなのでしょうか。
Clickイベントだと、リストを表示しようとコントロール上の▼をクリックした瞬間に移動してしまいます。
また、SelectedIndexChangedに記述しても同様です。
教えていただけないでしょうか。よろしくお願いいたします。
208デフォルトの名無しさん:2009/12/27(日) 18:20:03
>>207
マウスでクリックしてるのに勝手に別のコントロールに
フォーカスが移動しちゃったら却って不自然だろ?
209デフォルトの名無しさん:2009/12/27(日) 18:32:13
>>207
やったこと無いけどBeginInvoke 使えば出来るかもよ
210デフォルトの名無しさん:2009/12/27(日) 20:37:08
自己解決しました!
211デフォルトの名無しさん:2009/12/27(日) 21:02:29
自己解決できません。どうしたらいいですか
212デフォルトの名無しさん:2009/12/27(日) 21:08:29
だからどれだと聞いているだろ
213デフォルトの名無しさん:2009/12/27(日) 21:09:53
データグリッドビューに、データセットをバインドして、
3項目表示させるようにしていますが、
ある1行をクリックすると、
BindingSource_PositionChangedが3回起きてしまいます。
なぜ、1行を1回クリックするだけで、
BindingSource_PositionChangedが3回起きるのでしょうか…。
214デフォルトの名無しさん:2009/12/27(日) 21:14:24
>>207
SelectionChangeCommitted ではどう?
215デフォルトの名無しさん:2009/12/27(日) 21:19:03
>>213
ごく単純なのを書くと一回しか発生しなかったので多分どっかでなんかやってる
Enterやカーソルで行変えた場合はどうなの?
216デフォルトの名無しさん:2009/12/27(日) 21:35:16
>>170さん
>>171さん
>>178さん

参考になりました!ありがとうございます。
217デフォルトの名無しさん:2009/12/27(日) 22:15:51
せめて全イベント試してから聞こうぜ・・・
218デフォルトの名無しさん:2009/12/27(日) 22:21:45
>>217
検討します。
219デフォルトの名無しさん:2009/12/27(日) 22:34:41
質問があります。
<People>
<Person IsReal="true" Name="坂本竜馬" Age="35">
</Person>
<Person IsReal="false" Name="明智小五郎" Age="39">
</Person>
<Person IsReal="true" Name="勝海舟" Age="18">
</Person>
<Person IsReal="true" Name="西郷隆盛" Age="52">
</Person>
</People>
というXMLから、LINQ to XMLでAgeが38より大きい値のPersonを抜き出したいと思っています。

XDocument xdoc = XDocument.Parse(People);
var query = from text in xdoc.Root.Elements()
where text.Element("Person").(int)Person.Attribute("Age") >= 38
select (int)Person.Attribute("Age");
としてみたのですが、ぜんぜんだめです。
Elementの下はAttributeだと思うんですが、どこがどうだめなんでしょうか?
220デフォルトの名無しさん:2009/12/27(日) 22:36:51
自己解決しました。
221デフォルトの名無しさん:2009/12/27(日) 22:40:10
自己解決できませんでした。
222デフォルトの名無しさん:2009/12/27(日) 22:42:27
と思わせて自己解決しました。
223デフォルトの名無しさん:2009/12/27(日) 22:43:00
こんなカスしかいないところで質問した私がバカでした。
質問は取り下げます。
224デフォルトの名無しさん:2009/12/27(日) 22:44:35
やーいやーい
こんな質問も答えられないのかよゴミ!視ねや!
225デフォルトの名無しさん:2009/12/27(日) 22:46:30
どうしようもないな・・・
226デフォルトの名無しさん:2009/12/27(日) 22:47:06
単純に文字を印刷する場合
DrawStringが良いんですかね?
DrawStringだと、2行印刷しようとした場合
座標を文字の大きさを読み取って、足していかないといけないので
座標を打ち込まなくても、文字を印刷する方法ってないんですかね?
教えて下さい
227デフォルトの名無しさん:2009/12/27(日) 22:47:27
ないお
228デフォルトの名無しさん:2009/12/27(日) 22:47:54
>>226
AddStringのほうが良い
229デフォルトの名無しさん:2009/12/27(日) 22:48:16
同じく
230デフォルトの名無しさん:2009/12/27(日) 22:49:52
あるね
231デフォルトの名無しさん:2009/12/27(日) 22:50:23
ないあるよ
232デフォルトの名無しさん:2009/12/27(日) 22:50:39
質問は取り下げます。
233デフォルトの名無しさん:2009/12/27(日) 22:51:00
どれが自己解決したんだかわかんねーよw

>>219
var query = from text in xdoc.Root.Elements() where (int)(text.Attribute("Age")) > 38 select text;
234デフォルトの名無しさん:2009/12/27(日) 22:51:15
>>219
RootがPeople要素なんだから、そのElements()は各Person要素になるっしょ
Personの子要素にPerson要素は存在しないからtext.Element("Person")は当然失敗する
あとtextじゃなくてpersonにすべきだと思うな
235デフォルトの名無しさん:2009/12/27(日) 22:53:57
>>226
意味がよく分からん
DrawStringでRectangleFを指定すれば、横幅を超えた分は自動改行してくれるが
そうでなければまあMeasureStringとかで計測するのが妥当だな
236デフォルトの名無しさん:2009/12/27(日) 22:54:08
むかしAPIスレにいた頃こういうの流行ってたわ。
237デフォルトの名無しさん:2009/12/27(日) 23:03:36
あるお
238デフォルトの名無しさん:2009/12/27(日) 23:07:03
あるお)キリッ
239デフォルトの名無しさん:2009/12/27(日) 23:14:22
>>219
people より persons の方が好き
240デフォルトの名無しさん:2009/12/27(日) 23:15:47
>>226
確認してないけど StringFormat で折り返しできなかったっけ?
241デフォルトの名無しさん:2009/12/27(日) 23:25:39
>>240
できません
242デフォルトの名無しさん:2009/12/27(日) 23:40:36
できるだろw

>>226
普通に改行コードいれても改行できるし、文字を描画する矩形領域を指定してやれば
折り返しの改行もできる。

まあまあできてもあまりやらない気がするけど。

っていうか、MSDNライブラリぐらい読もうよ。
243デフォルトの名無しさん:2009/12/27(日) 23:45:29
できますん
244デフォルトの名無しさん:2009/12/28(月) 00:00:21
>>233
>>234
早速ありがとうございます。
テストデータでは動くのを確認できました。
ただ、実際のデータはもうすこし複雑で、数が多くエラーが出ています。

<People>
<Person IsReal="true" Name="坂本竜馬" Age="35"><birthday="1836/01/03">
</Person>
<Person IsReal="false" Name="明智小五郎" Age="39">
</Person>
<Person IsReal="true" Name="勝海舟" Age="18">
</Person>
<Person IsReal="true" Name="西郷隆盛" Age="52">
</Person>
<Person IsReal="true" Name="坂本龍一" Age="57"><birthday="1952/01/17">
</Person>
</People>

から、「坂本」でAgeが38より大きい値のPersonの名前と年齢をセットで抜き出すにはどうしたらよいでしょう?
245デフォルトの名無しさん:2009/12/28(月) 00:05:57
テキストファイルに文字を出力したいとき
FileaAllWriteとStreamWriterってどっち使うほうがいいい?
246デフォルトの名無しさん:2009/12/28(月) 00:17:41
>>244
birthdayタグが閉じてないから整形式XMLじゃないぞそれ
whereにNameの条件追加してselectで匿名クラス作ればいい new { Name = text.Attribute("Name"), Age = (ry
whereの前でletでnameやageを確保しとくと楽だな
whereは||でつないでもいいしwhereを二個書いてもいい

>>245
どっちでもいいよ
手軽だけど細かい操作ができないかその逆かだ
247233:2009/12/28(月) 00:34:45
初めから実際のデータ書けば二度手間にならないのになあ
ハァ…
248デフォルトの名無しさん:2009/12/28(月) 00:45:21
そういうない
249デフォルトの名無しさん:2009/12/28(月) 00:49:15
xmlから自作のクラスのリストに放り込んでからselectするとインテリセンスも効いて楽かもしれない
250デフォルトの名無しさん:2009/12/28(月) 01:06:18
>>244>>246
整形式とか言う以前に、birthday要素(?)が滅茶苦茶だし
251デフォルトの名無しさん:2009/12/28(月) 01:08:03
一分間に100万行、改行をスペースに変換するソフトを作りたいのですが、
できません。どないしたらいいですか?
252デフォルトの名無しさん:2009/12/28(月) 01:09:38
まずLANケーブルを抜きます
253デフォルトの名無しさん:2009/12/28(月) 01:19:16
せやな
254デフォルトの名無しさん:2009/12/28(月) 01:30:14
常駐ソフトなどを止めて
CPUをより高性能なものにします
255デフォルトの名無しさん:2009/12/28(月) 01:30:55
せやせや
256デフォルトの名無しさん:2009/12/28(月) 01:36:10
楽しい?
257デフォルトの名無しさん:2009/12/28(月) 01:37:30
個人的には既存のUnEditerとかじゃ駄目なの?
という疑問と
環境がわからないのにそんなことできるかぁ〜というのと
258デフォルトの名無しさん:2009/12/28(月) 01:39:17
分からない人はレスしなくていいです
259デフォルトの名無しさん:2009/12/28(月) 01:52:52
ですね
260デフォルトの名無しさん:2009/12/28(月) 01:54:11
C#でPC本体のビープを鳴らすにはどうすればいいですか
261デフォルトの名無しさん:2009/12/28(月) 01:55:16
分からない人はレスしなくていいです
262デフォルトの名無しさん:2009/12/28(月) 01:55:58
>>260
文字コード0x07を出力してみればいいんじゃね?
263デフォルトの名無しさん:2009/12/28(月) 01:56:56
いいね
264デフォルトの名無しさん:2009/12/28(月) 02:21:53
コメントありがとうございます。
>>246
whereの前? let。うう。使ったことがない。
っていうかLINQそもそも初めての初心者なのです。

いまこんな感じ。
var query = from person in xdoc.Root.Elements()
select new{
Name = person.Attribute("name").Value,
Age = (int)person.Attribute("Age") > 38
};
contents = "";
foreach (var q in query)
if (q.Name.Contains("坂本")) contents += q.Name + "\t" + q.Age + "\r\n";

とかで見よう見まねでコンパイルは通ったのですが、whereなくなってるし。…。
実行すると、「オブジェクト参照がオブジェクトインスタンスに設定されていません」のエラーだし。
やっぱりwhereですかね。

>>248
ほんとに、すみません。
質問するときには頭が混乱していて、うまく質問を整理できていませんでした。

>>249
初見の言葉が多すぎてちと自分では無理です。
265デフォルトの名無しさん:2009/12/28(月) 02:27:33
>>264
取り敢えずforeachとif文から始めた方がいいかもしれんね
266デフォルトの名無しさん:2009/12/28(月) 02:29:03
>>265
お断りします。
267デフォルトの名無しさん:2009/12/28(月) 06:45:31
型 'App1.Form1' は 'menuItem7' の定義を既に含んでいます。

こんなのが、3くらい出てデバッグ出来ません;どうすればいいですか?
268デフォルトの名無しさん:2009/12/28(月) 06:54:04
menuItem7を多重定義してる
var menuItem7 = …
〜なんかいろいろあって
var menuItem7 = …

ってなってるところを探せばいい
269デフォルトの名無しさん:2009/12/28(月) 10:12:13
>>264
そういうことなら、質問する前にLINQを基礎から勉強しろよ。
それが終わるまでは質問する資格すらない。
270デフォルトの名無しさん:2009/12/28(月) 12:47:48
StreamReader @in = new StreamReader(fileName);
string line = @in.ReadLine();

これで読み込ませるとマルチバイト文字が
文字化けします。Shift-JISのテキストも読ませたいです…
271デフォルトの名無しさん:2009/12/28(月) 12:49:47
>>270
StreamReader @in = new StreamReader(fileName,Encoding.GetEncoding("Shift-JIS"));
272270:2009/12/28(月) 12:53:20
事故解決。System.Text.Encoding.GetEncoding(932) を第二引数に付けるべし
乙乙
273デフォルトの名無しさん:2009/12/28(月) 12:54:45
>>271
おぉ…"Shift-JIS"でもいいんか
便利だ…
274デフォルトの名無しさん:2009/12/28(月) 12:57:15
@inってなに?
275デフォルトの名無しさん:2009/12/28(月) 13:01:42
Orz→@rz→@in
276デフォルトの名無しさん:2009/12/28(月) 13:22:51
>>274
あんまり推奨はされないけど、@ を付ければキーワードを変数名に使える。
in は foreach ( in ) で使われるキーワード。
277デフォルトの名無しさん:2009/12/28(月) 13:30:30
>>276
ありがとう。
278デフォルトの名無しさん:2009/12/28(月) 13:56:44
ようするに、@inなどという変数名は気色悪すぎるということだな。
_in などのほうがよほどマシ。
279デフォルトの名無しさん:2009/12/28(月) 14:01:51
>>278
それは.Netが内部で使ってるから〜
280デフォルトの名無しさん:2009/12/28(月) 14:06:42
>>276
やっぱり今回は礼は言わないでおく。
281デフォルトの名無しさん:2009/12/28(月) 14:08:30
@ は基本的に、他の言語との連携用。

まあ、他の言語で使われることが想定されるなら、
そっちの言語でもキーワード限り避けるのが作法だけど。
282デフォルトの名無しさん:2009/12/28(月) 14:12:44
ローカル変数にそれを(@)使うというのはどうかと思う。
283デフォルトの名無しさん:2009/12/28(月) 14:13:22
>>281
  ヘ_ヘ
 ミ ・ ・ ミ  < はつみみです
  (  ° )〜
284デフォルトの名無しさん:2009/12/28(月) 15:35:29
C#、テキストボックスの中身をStreamWriterなどを使って、テキストファイルに一行ずつ書き出してるんだけどc互換の \n 改行コードではき出すにはどうしたらいいでしょうか?
エンコーディングとか変えてみたんだけどうまくいかない
285デフォルトの名無しさん:2009/12/28(月) 15:39:23
WriteLineとかEnvironment.NewLine使うとか。
286デフォルトの名無しさん:2009/12/28(月) 15:43:54
>>283
C# 言語仕様 2.4.2 識別子
287デフォルトの名無しさん:2009/12/28(月) 17:31:09
VOIDさんって今どうしてるんだろ?
288デフォルトの名無しさん:2009/12/28(月) 18:17:23
Form上に配置したラベルの上にポインターを持っていくとメッセージが出るようにするにはどうしたらいいんでしょうか?
289デフォルトの名無しさん:2009/12/28(月) 18:21:30
ToolTipのこと?
290デフォルトの名無しさん:2009/12/28(月) 18:31:42
>>289
ありがとう、名前が出てこなくってどうやるんだっけって悩んでた・・・。
291デフォルトの名無しさん:2009/12/28(月) 18:33:45
>>290
そりゃ教えた甲斐が有ったわ。ヨイヨイっと。
292デフォルトの名無しさん:2009/12/28(月) 18:38:01
>>287
No.2?
293デフォルトの名無しさん:2009/12/28(月) 18:51:48
>>292
え?
294デフォルトの名無しさん:2009/12/28(月) 18:52:21
ということにしたいのですね
295デフォルトの名無しさん:2009/12/28(月) 19:07:16
へみ猫・・・
296デフォルトの名無しさん:2009/12/28(月) 19:59:52
>>287
fjで活躍したあの人は今、って特集やらないかな
297デフォルトの名無しさん:2009/12/28(月) 20:09:46
マ板にずっとスレがあったような・・・
しかし、アンチ脳にしろ信者脳にしろ、人に執着する奴って気色が悪いな。
精神分析の対象としか思えん。
298デフォルトの名無しさん:2009/12/28(月) 20:16:01
>>297
なんかその反応も病的だぞ?
299デフォルトの名無しさん:2009/12/28(月) 20:19:07
怪物と戦う者は、その過程で自分自身も怪物になることのないように気をつけなくてはならない。
深淵をのぞく時、深淵もまたこちらをのぞいているのだ。
                                                                 〜 ニーチェ 〜
300デフォルトの名無しさん:2009/12/28(月) 20:20:43
>>297
君のレスがまさに・・・
301デフォルトの名無しさん:2009/12/28(月) 20:28:21
Symbian上でもC#って使えるんですか?
302デフォルトの名無しさん:2009/12/28(月) 20:39:16
へみ猫・・・
303デフォルトの名無しさん:2009/12/28(月) 21:28:23
C#ソーステキストを読み込んで、自動でHTML用にfontタグ付加してくれるツール無いかな

using System; //for form だと
<font color="blue">using</font> System; <font color="green">//for form</font>

みたいなの。
304デフォルトの名無しさん:2009/12/28(月) 21:33:31
Blog用ツールとかであるな。俺は Emacs の csharp-mode でやって、face2html で出力してるけど。
305デフォルトの名無しさん:2009/12/28(月) 21:35:01
http://manoli.net/csharpformat/ とかってのがあった。
306デフォルトの名無しさん:2009/12/28(月) 22:36:47
いろいろあるねぇ
ただ残念なのはほとんどのWebサービスが海外製ということ
307デフォルトの名無しさん:2009/12/28(月) 22:41:10
ワードに貼り付け→WEBページとして保存、で出来るな。
COMコンポーネント呼び出しでなんか出来るんじゃないの。
308デフォルトの名無しさん:2009/12/28(月) 23:10:17
いろいろあるね
309デフォルトの名無しさん:2009/12/28(月) 23:29:08
>>296
一時期職場からpostできなくなったlalaとか懐かしい
310デフォルトの名無しさん:2009/12/29(火) 00:48:04
C#はクラスや関数内じゃなくても並列処理されるんだな。

C言語だと完全に上から見ていくから

int main(){
func();
}

func();

これだとプロトタイプ宣言だかがないとかでエラーになるけど
C#だと

ClassOne{
//ClassTwoを使ったメソッドなど
}

ClassTwo{
}

これがエラーにならなくて便利だな。
311デフォルトの名無しさん:2009/12/29(火) 00:52:18
へえ
312デフォルトの名無しさん:2009/12/29(火) 01:03:41
ふう
313デフォルトの名無しさん:2009/12/29(火) 01:07:08
そういうの並列処理って言うのか.....?
314デフォルトの名無しさん:2009/12/29(火) 01:14:01
言わないね。
315デフォルトの名無しさん:2009/12/29(火) 01:20:14
static void
316デフォルトの名無しさん:2009/12/29(火) 01:25:29
ああ、2期か
誰が買うんだよこんなのw
317デフォルトの名無しさん:2009/12/29(火) 02:56:31
(゚∀゚)!
318デフォルトの名無しさん:2009/12/29(火) 09:50:31
volatile void
319デフォルトの名無しさん:2009/12/30(水) 00:18:36
コンボボックスに、Valueメンバー、Displayメンバーとして
(Value,display)=
(1,イヌ),
(2,ネコ),
(3,スズメ)
と3種類を設定します。

そして、隣にテキストボックスAを設置し、例えばAに
「イヌ」と入力されたときは、コンボボックスに存在するのでValueの"1"を、別のラベルに表示。
「スズメ」と入力されたときも同様、Valueの"3"を、別のラベルに表示。
「ニワトリ」と入力されたときはコンボボックスにないので、別のラベルに"なし"と表示。
と、したいのですが、
あるテキストが、コンボボックスのリストに存在するかどうかを調べるにはどうすればよいのでしょうか。
よろしくお願いします。
320デフォルトの名無しさん:2009/12/30(水) 00:24:53
FindStringとか
321319:2009/12/30(水) 00:25:53
自己解決しました。
322デフォルトの名無しさん:2009/12/30(水) 00:27:08
よかったね。死ねハゲ
323デフォルトの名無しさん:2009/12/30(水) 00:33:43
Form2から、Form1のメソッドにアクセスしようとしても、
メソッド自体が見つからないみたいで使えないんです。
どうやれば使えるようになりますか?それとも、Form2にそのメソッドをコピーするしかないですか?
324デフォルトの名無しさん:2009/12/30(水) 00:36:35
Publicにする。
325デフォルトの名無しさん:2009/12/30(水) 00:37:43
変数とかもpublicにすれば使えるようになるんですか?
というか、publicにしたら使えるのなら、何故始めから全部publicにしないのですか?
326デフォルトの名無しさん:2009/12/30(水) 00:40:07
したきゃすればいい
止めない
327デフォルトの名無しさん:2009/12/30(水) 00:40:17
使わせたくないから。
328デフォルトの名無しさん:2009/12/30(水) 00:58:11
関数型プログラミング的に
匿名クラスやラムダ式が使えるのは大きい。

いちいちクラスを別の場所にごちゃごちゃ書いてから

MyClass mc =new MyClass();
とかかくより
var mc = new {Name="Kobayashi",age=17,};
このほうがすっきりしてはるかに読みやすいな。マジ最強
329デフォルトの名無しさん:2009/12/30(水) 00:58:38
>>327
いや、使わせたくないってのは想像付きます
だけど、何で駄目なんですか?ミスがおきやすくなるから?とかですか?
330デフォルトの名無しさん:2009/12/30(水) 01:01:06
使えると、モジュール結合度が高くなるから。
あとは、カプリングとコヒージョンについて書かれた文書でも読んでください。
331デフォルトの名無しさん:2009/12/30(水) 01:05:24
モジュール結合度が高くなったらまずいんですか?
便利だと思うんですが
332デフォルトの名無しさん:2009/12/30(水) 01:06:31
なんで便利なの?
333デフォルトの名無しさん:2009/12/30(水) 01:06:55
分かってて書いてる人のようですよ
以下スルーでよろしく
334デフォルトの名無しさん:2009/12/30(水) 01:08:52
とりあえず、みんなに使ってもらいたいもの*だけ* public にすると思ってください。
335デフォルトの名無しさん:2009/12/30(水) 01:09:18
まったくわかってない「どちて坊や」な可能性もあると思われ。
336デフォルトの名無しさん:2009/12/30(水) 01:10:08
全く分かってなけりゃモジュール結合度って何ですかと聞くよ。
高くなったらなぜまずいのか?は墓穴掘ってます。
337デフォルトの名無しさん:2009/12/30(水) 01:11:58
わざとらしさプンプンだよなw
338デフォルトの名無しさん:2009/12/30(水) 01:12:44
んじゃ、それで。
339デフォルトの名無しさん:2009/12/30(水) 01:15:36
とりあえず>>334で覚えておきます
別フォームから使いたくなったメソッドと変数はpublic付ければ良いんですね

モジュール結合度ってそんなに重要なものですか?
そんなに意識して開発したことは無いのでよく分からないです。
340デフォルトの名無しさん:2009/12/30(水) 01:17:28
次の方どーぞー。
341デフォルトの名無しさん:2009/12/30(水) 01:24:55
ぷぅ〜、スッキリした
342デフォルトの名無しさん:2009/12/30(水) 08:36:15
めんどくさいのが増えるよね、この時期は。
343デフォルトの名無しさん:2009/12/30(水) 08:55:23
internal ってなんですか?
344デフォルトの名無しさん:2009/12/30(水) 09:14:16
公開範囲を決めるキーワードで”同アセンブリ内へ公開”を示す
345デフォルトの名無しさん:2009/12/30(水) 09:15:35
staticとどう違うんですか?
346デフォルトの名無しさん:2009/12/30(水) 09:18:43
ぜんぜん違うじゃん・・・教科書読むところからやりなおしたら?
347デフォルトの名無しさん:2009/12/30(水) 09:19:11
教科書無いんですがどうすればいいですか?
348デフォルトの名無しさん:2009/12/30(水) 09:21:14
買え。
349デフォルトの名無しさん:2009/12/30(水) 09:35:29
お金無いんですがどうすればいいですか?
350デフォルトの名無しさん:2009/12/30(水) 09:43:07
自己解決すました
351デフォルトの名無しさん:2009/12/30(水) 09:55:38
自己解決してないです。
お金が無いんですがどうすればいいですか?
352デフォルトの名無しさん:2009/12/30(水) 10:22:44
ヘルプ読めよ。
353デフォルトの名無しさん:2009/12/30(水) 10:59:37
InfernalDispose(351);
354デフォルトの名無しさん:2009/12/30(水) 15:07:48
マウスを監視して、放置状態を一定時間ごとに確認する常駐プログラムを作りたく思っているのですが、
マウス位置を10分ごとに比較するとして、
そのような処理は、Timerで600000msでポーリングかければ良いのでしょうか?
他に良い方法ありますか?常時起動しておくものなので、CPU負荷は最小にしたく思います。
355デフォルトの名無しさん:2009/12/30(水) 15:22:38
C#でできるRoboCodeのようなものってないでしょうか?
以前から探しているんですがそういったものは見つかりません。
やはりないのでしょうか。よろしくお願いします。
356355:2009/12/30(水) 15:34:29
ちなみにイメージしているのは以前あったTerrariumのようなものです。
お願いします。
357デフォルトの名無しさん:2009/12/30(水) 16:30:24
10分なら、タスクスケジューラでもいいんじゃね?
358デフォルトの名無しさん:2009/12/30(水) 16:40:35
a
359デフォルトの名無しさん:2009/12/30(水) 16:42:06
>>357
タスクスケジューラのほうが軽いでしょうか。
というより、タスクスケジューラなるものを始めて知りました。
一度も使ったことが無かったです・・・
ちょっと調べてみます。出来そうならそれでやろうと思います。
360デフォルトの名無しさん:2009/12/30(水) 16:44:45
そんな神経質になるほどCPU使わないよ
361デフォルトの名無しさん:2009/12/30(水) 16:55:35
タスクスケジューラは、呼び出したときに、以前保存したマウス座標と比較して、
マウス座標をファイルに書き込んで、って処理を行うって事で良いのでしょうか?
出来ればそのように、常駐じゃなく10分に一度走らせる、のほうが良いのですが…

でも、出来るだけ同時実行するファイルは少ない方が良いですし・・・
負荷出来るだけ無くしたいじゃないですか。そこまで気にする人は少ないんですかね

362デフォルトの名無しさん:2009/12/30(水) 17:00:21
もしフリーソフトかなんかで不特定多数が使うなら,タスクスケジューラなんて得体の知れないものは嫌われるよ
363デフォルトの名無しさん:2009/12/30(水) 17:01:36
常駐の方が、負荷は少ない。
364デフォルトの名無しさん:2009/12/30(水) 17:16:07
起動終了繰り返す方が常駐より負荷高いよな
365デフォルトの名無しさん:2009/12/30(水) 17:18:38
Console.SetWindowPosition(0,0);
ってやってもコマンドプロンプトの位置が変わらないんだけどなんで?
366デフォルトの名無しさん:2009/12/30(水) 17:19:54
「得体の知れない」って、タスクスケジューラが?
OSが提供してるサービスなんだけどな。
367デフォルトの名無しさん:2009/12/30(水) 17:22:54
負荷を下げたいならC#もやめないと
368デフォルトの名無しさん:2009/12/30(水) 17:31:17
369デフォルトの名無しさん:2009/12/30(水) 17:32:18
ハァ?
370デフォルトの名無しさん:2009/12/30(水) 17:40:06
>>366
中途半端に知識がある非プログラマにとっての話だよ
371デフォルトの名無しさん:2009/12/30(水) 18:19:07
>>370
低能乙
372デフォルトの名無しさん:2009/12/30(水) 18:28:31
勝手に登録されたら気持ちわるいけど
インストーラーで説明入るなら別にかまわない
373デフォルトの名無しさん:2009/12/30(水) 18:51:35
かまわないですね
374デフォルトの名無しさん:2009/12/31(木) 01:15:19
やはりそうですね、タスクスケジューラは嫌う人が居ると思うので、
常駐起動にして、普通に10分ごとにポーリングすることにします。
簡単なプログラムならC++でも出来るので、そっちでやろうかとも悩んでます。
とりあえずありがとうございました。
375デフォルトの名無しさん:2009/12/31(木) 02:08:43
「人間が操作をやめたか」を調べるなら根本的に方法が間違ってるけどね。
検知したいなら「マウスが動きを止めてから10分間経過したら」だよ。キーボードだって調べないと。
376デフォルトの名無しさん:2009/12/31(木) 02:27:36
WebBrowserクラスもしくはmshtmlでjavascriptが使われてるページの情報
を取得したいと考えています。

ajaxでDOMを書き換えたとき、それをイベントとしてハンドルすることは
できませんか?(OnDocumentCompletedじゃないですよね)
また、書き換えた差分を抽出するのはdiffをとるしかないでしょうか?
377355:2009/12/31(木) 02:29:53
>>368
2.0が出てたんですね。散々探してたくせに全然知りませんでした。
さっそくやってみます。ありがとうございました。
378デフォルトの名無しさん:2009/12/31(木) 02:33:33
379デフォルトの名無しさん:2009/12/31(木) 02:35:47
>>375
操作をやめたか、なんですが、そこまで正確にする必要は無いんです。
それに、無駄に複雑にして重くするのも嫌ですし、出来るだけ軽くしたいので最低限の処理でやろうと思います
380デフォルトの名無しさん:2009/12/31(木) 04:23:10
まあ思うとおりに組んでみなよ。実際に組んでみたら自分の考えてる最低限の動作もしないことがわかるよ。
381デフォルトの名無しさん:2009/12/31(木) 05:25:26
>>380
たま〜に良いこと言うな
382デフォルトの名無しさん:2009/12/31(木) 06:05:04
うむ。このスレの住人ってたま〜に良いこと言うな
383デフォルトの名無しさん:2009/12/31(木) 06:14:17
ありがとう
384デフォルトの名無しさん:2009/12/31(木) 06:26:35
素朴な疑問なんですが

this.WindowState = FormWindowState.Maximized;
は何故
this.WindowState = WindowState.Maximized;
こうじゃないんですか?

this.FormBorderStyle = FormBorderStyle.None;
とかはプロパティ名=列挙型なのに。
385デフォルトの名無しさん:2009/12/31(木) 07:08:28
windowsstate列挙体はWPFが使ってるから
386デフォルトの名無しさん:2009/12/31(木) 07:09:42
なにそれこわい
387デフォルトの名無しさん:2009/12/31(木) 07:15:11
こわいですね。
388デフォルトの名無しさん:2009/12/31(木) 07:24:30
おまいら大晦日に暇だな
389デフォルトの名無しさん:2009/12/31(木) 11:07:31
そういえばなんでWinFormsはSystem.WindowsじゃなくてSystem.Windows.Forms名前空間にしたんだろうな
今はWPFがSystem.Windowsを使ってるが.NETの初期のバージョンの開発時にそんなことを予期してたとは思えないし
390デフォルトの名無しさん:2009/12/31(木) 11:38:53
.NET Framework1.0が2002年だった
そのころにはAvalonって言葉はあったと思うけど?
391デフォルトの名無しさん:2009/12/31(木) 12:11:24
CLRの開発がいつから始まったと思ってんだ
392デフォルトの名無しさん:2009/12/31(木) 12:13:31
VS2010って何が変わるの?
393デフォルトの名無しさん:2009/12/31(木) 12:13:48
2000年にはベータが配られてたな。確か。

つーか、MSのやることなんて、昔から全然一貫性ないじゃん。
臨機応変といえば、その通りなのかも知らんけど。
394デフォルトの名無しさん:2009/12/31(木) 12:20:11
というか、.NET Frameworkってやっと2.0が普及したところなのに、
4.0なんて入れてくれる環境あるか?w
395デフォルトの名無しさん:2009/12/31(木) 12:24:26
>>394
そのうちMicrosoft Updateで自然と入るだろ。
396デフォルトの名無しさん:2009/12/31(木) 12:49:18
3.5までは自然に入るよね
397デフォルトの名無しさん:2009/12/31(木) 13:05:52
WPFの開発計画の発表は2001年らしいから、それくらいから考慮していても不思議じゃない
398355:2009/12/31(木) 13:13:15
たびたびすみません。

教えていただいたterrarium2.0をいじってるんですが
現在はオープンソース化したとのことでMSのマニュアル等がないようなので
つたない英語力でwiki等も調べてみたものの、APIのマニュアルが見つからないのですが
これについてはやはり古い書籍等を参考にするしかないでしょうか?
399デフォルトの名無しさん:2009/12/31(木) 13:15:26
俺は始めたばっかだから
3時間9分54秒だった・・
惜しい
400デフォルトの名無しさん:2009/12/31(木) 13:16:20
誤爆スマソ
401デフォルトの名無しさん:2009/12/31(木) 13:22:25
>>400の謝罪は撤回します・・・
402デフォルトの名無しさん:2009/12/31(木) 13:31:16
撤回するなw
403399:2009/12/31(木) 13:34:13
自決しました
404デフォルトの名無しさん:2009/12/31(木) 13:43:28
Terrarium-2.0-SDK.zip にドキュメントがあるんじゃないの?
405355:2009/12/31(木) 13:50:29
>>404
忘れていました。確かにありました。
ありがとうございました。
406デフォルトの名無しさん:2009/12/31(木) 14:08:55
本来、以下のように記述すべきところを
string str;
for(〜){
str = 〜〜;
}
以下のようにforループ内で毎回ローカル変数を定義しては無駄が多いですよね。
for(〜){
string str = 〜〜;
}
でもこのように記述すれば1行減ってソースはスマートになります。
この程度ならC#のコンパイラは最適化してくれますか。
だとしたらこのように記述したいのですが
407デフォルトの名無しさん:2009/12/31(木) 14:12:48
forの内と外で宣言するとスコープ範囲が違うけどそれはわかってる?
408デフォルトの名無しさん:2009/12/31(木) 14:19:09
前に調べた限りじゃ、ILへのコンパイル時に、その手の最適化はしてくれなかったような気がする。
409デフォルトの名無しさん:2009/12/31(木) 14:22:33
>>406
for の中で string のインスタンス作って、for の中だけで使うんなら
どっちで書いてもパフォーマンス変わらないと思うけど。

string str; ってやっただけだと何も起きないよ。
410デフォルトの名無しさん:2009/12/31(木) 14:23:42
最適化はしてくれませんか。
いちいちループ内でのみ使う変数を宣言だけループの外でするのは面倒だけど、最適化してくれないなら
そう記述したほうが処理的には効率が良いということですね。
しかしループ回数が少ないなら殆ど影響ないかも。
411デフォルトの名無しさん:2009/12/31(木) 14:29:18
>>409
でもループ内で毎回string str;とすると、stringクラスインスタンスのアドレスを確保する領域が
毎回そのつど確保されるんじゃないですか。
412デフォルトの名無しさん:2009/12/31(木) 14:41:38
いいえ
ローカル変数は一つの宣言につき静的に一つ確保されるだけ
ループでも同じ
413デフォルトの名無しさん:2009/12/31(木) 14:44:21
>>411
コンパイルしたら、forの外にいようと中にいようと、
吐かれるコードは ldloc (load local) だからなぁ。
一緒。

今、IL Disasm してみたけど、for 内でしかインスタンス作ってないなら
コンパイル結果寸分たがわず完全一致してたよ。
Debug コンパイルですら全く一緒。
414デフォルトの名無しさん:2009/12/31(木) 14:49:56
一つのメソッドで使われるローカル変数の領域っていうのは完全にコンパイル時に決まるんだよ
ループ内で宣言しようが全く関係ない
415414:2009/12/31(木) 14:57:20
誤解されそうなこと言ってるな
もちろん実際に確保されるのはメソッドに入る時だけど
そのときのレイアウトや必要なサイズはコンパイル時に確定しているということ
416デフォルトの名無しさん:2009/12/31(木) 15:24:07
>>412-415
皆さんありがとうございます。
ローカル変数の領域確保の仕組みがよく分かりました。
417デフォルトの名無しさん:2009/12/31(木) 15:57:33
クラスのnewとかならそりゃヒープ確保とかインスタンス作成とかでオーバーヘッドはかかってくるが、
ローカル変数自体なんて
単なるスタック領域にすぎないんだからどっちにしても普通は変わらん。

418デフォルトの名無しさん:2009/12/31(木) 16:38:59
スコープとか関係なかったんだね。これは良いことを聞いた。
419デフォルトの名無しさん:2009/12/31(木) 18:42:17
WndProcってなんですか?
420デフォルトの名無しさん:2009/12/31(木) 18:54:04
ggrks
421デフォルトの名無しさん:2009/12/31(木) 19:23:01
System.String str = new System.String("");

string str = "";
422デフォルトの名無しさん:2009/12/31(木) 19:40:54
自作しました。
423デフォルトの名無しさん:2009/12/31(木) 20:47:58
はあ?
424デフォルトの名無しさん:2010/01/01(金) 00:16:21
自炊しました。
425 【凶】 :2010/01/01(金) 00:46:08
てst
426デフォルトの名無しさん:2010/01/01(金) 16:03:32
趣味でC#を勉強中なのですが
ネット上で紹介されているプロの方の書いたコードサンプルを見ていて
継承元クラスのフィールドなどにアクセスする際
通常は「base.」と付けないような印象を受けたのですが
こういう記述の仕方にセオリーといったものはあるのでしょうか?
よろしくお願いします。
427デフォルトの名無しさん:2010/01/01(金) 16:14:53
baseは、自分のメンバーに親と同じ名前付けちゃって、明示しないと親のメンバーにアクセスできないときしか使わないなぁ。
428デフォルトの名無しさん:2010/01/01(金) 16:20:59
なるほど。そういう時は確かに明示する必要がありますね。
実際、明示の必要がある時だけ書く方がわかり易いですね。
ありがとうございました。
429デフォルトの名無しさん:2010/01/01(金) 16:30:36
class A : B{
}
って書くより

class A{
B b =new B();
func(){
b.func();
}
}
でおk、baseいらね
430デフォルトの名無しさん:2010/01/01(金) 16:55:51
>>429
継承元クラスって書いてあるだろ
ちゃんと見ようぜ
431デフォルトの名無しさん:2010/01/01(金) 16:59:37
まあどうしても継承でなければならない理由がない限りは>>429の下の方が望ましいのは確か
432デフォルトの名無しさん:2010/01/01(金) 17:04:04
継承するより委譲しろってことだろうけど
それは今回の問題とはまた別の話
433デフォルトの名無しさん:2010/01/01(金) 18:48:38
base.Hoge
変数・メソッドにアクセスなら普通付けない
: base(Hoge)
継承元のコンストラクターをコールするときは付ける
434デフォルトの名無しさん:2010/01/01(金) 20:54:24
VC#2008で開発しています

ツールボックスに登録されているbuttonを継承したクラスを作った場合
IDEのデザイン機能の恩恵を受けることはできないのでしょうか?
435デフォルトの名無しさん:2010/01/01(金) 20:56:30
1回ビルドすればツールボックスに登録されるはず
436デフォルトの名無しさん:2010/01/01(金) 21:10:23
できました
ありがとうございます

グーグル先生に拾ってもらうメモとして

ソリューションエクスプローラーを開いてbutton継承クラスを追加
using System.Windows.Forms;
using System.ComponentModel;
を継承クラスに追加

下記のように設定

class ExButton : Button
{
public ExButton()
{
base.SetStyle(ControlStyles.Selectable, false);
}

}

まさに上の質問も参考になりました。
たぶんそれがなければその辺でもはまったかも

437デフォルトの名無しさん:2010/01/01(金) 21:12:41
あと関係ないかもしれないけどC#でぐぐるとVB.NETの方が多く出てくるケースが
あったのでこのサイトの変換機能は重宝しました。

C#<->VB.NET相互変換
http://www.developerfusion.com/tools/convert/csharp-to-vb/
438デフォルトの名無しさん:2010/01/01(金) 21:22:30
とあるbyte配列にbyte,byte,short,longとデータが並んでるとして、
それぞれの値を別の変数に格納するにはどうすればいいですか?
439デフォルトの名無しさん:2010/01/01(金) 21:27:52
>>438
unsafeにして、ポインタ使うのが楽じゃね?
440デフォルトの名無しさん:2010/01/01(金) 21:30:51
byte配列ならBitConverterか
自前で合成

short配列に byte[3]*256+byte[2]

のような感じで(エンディアンは自分で考えてください
441デフォルトの名無しさん:2010/01/01(金) 21:30:55
>>439
ポインタ厨以外の方に教えてほしいです
442デフォルトの名無しさん:2010/01/01(金) 21:31:06
アホかbitconverter使えよ
443デフォルトの名無しさん:2010/01/01(金) 21:54:39
>>406

遅レスだけど、
ILでは、
.locals(...)
で関数の最初で確保される。(確か)
444デフォルトの名無しさん:2010/01/01(金) 22:33:34
以前スクリーンキーボードの件で相談した物です。

ある程度形になったのですが一つ困った挙動があります。

スクリーンキーボードの性質上なるべく最前面で表示させておきたいので、
TopMost=trueにしてアクティブにならないように制御して自前ツールが
アクティブにならないように動くようになりました。
しかし、ツール以外のウインドウのタイトルバーをダブルクリックした場合
の挙動が死んでいるようで、一般的な「ウインドウの最大化」、「もとのサイズに戻る」
が渡っていないようです。

この場合の対策方法はありますでしょうか?

右上の並んでいる□が今回製作中のツールです
http://uproda.2ch-library.com/201727nKr/lib201727.png
わかっている範囲ではタイトルバーのダブルクリックだけ受け付けず
その他は問題ないです
445444:2010/01/01(金) 22:41:46
すみません
非表示の際にTopMost=flaseとしてみましたが結果は同じでしたので
TopMostは関係ないようです。
446デフォルトの名無しさん:2010/01/01(金) 22:42:45
知ってます
447444:2010/01/01(金) 22:46:59
おそらくこの辺が関係してるんですかね?
//アクティブにならないウインドウに
//するためのオーバーライド
protected override void WndProc(ref Message m)
{
const int WM_MOUSEACTIVATE = 0x21;
//const int MA_ACTIVATE = 1;
//const int MA_ACTIVATEANDEAT = 2;
const int MA_NOACTIVATE = 3;
//const int MA_NOACTIVATEANDEAT = 4;
if (m.Msg == WM_MOUSEACTIVATE)
{
m.Result = (IntPtr)MA_NOACTIVATE;
return;
}
base.WndProc(ref m);
}
448デフォルトの名無しさん:2010/01/01(金) 22:48:47
タイトルバー、どこにあんの?
449デフォルトの名無しさん:2010/01/01(金) 22:52:09
>>448
あ、わかりにくくてすみません
ツールじゃないほかのウインドウのタイトルバーのダブルクリック制御です

その他ウインドウに影響を及ぼさないツールとして作りたかったのですが
今回のスクリーンキーボードが起動していると他所のウインドウの
タイトルバーのダブルクリック挙動が効かない状態になるんです
450デフォルトの名無しさん:2010/01/01(金) 22:56:12
ん? 自アプリじゃなくて、別のアプリの話?

あんたのアプリを実行中に、他のアプリのタイトルバーをダブルクリックしても、反応がない、ってこと?
451デフォルトの名無しさん:2010/01/01(金) 22:58:14
勿論、>>447を追記しただけのフォームで再現できるんだよな?
452444:2010/01/01(金) 22:59:35
>>450
そうです

名前がないと面倒なのでスクリーンパッドと仮名をつけます

メモ帳やブラウザなどを任意のウインドウサイズから最大に広げる際に
右上のボタン以外にタイトルバーのダブルクリックでも同じことが行えま
すがスクリーンパッド起動中にそれができなくなるのでそれを回避する
方法が知りたいと思いまして・・・
453444:2010/01/01(金) 23:02:26
>>451
formクラスは>>447でオーバーライドします。
それとは別にタイマーを使って一定サイクルで下記処理を動かします。

private void timer1_Tick(object sender, EventArgs e)
{
int ThreadProcessId = GetWindowThreadProcessId(this.Handle, IntPtr.Zero);
IntPtr OldWindowHandle = IntPtr.Zero;
IntPtr targetWindowHandle = GetForegroundWindow();
if (targetWindowHandle == this.Handle && OldWindowHandle != IntPtr.Zero)
{
SetForegroundWindow(OldWindowHandle);
}
else
{
if (targetWindowHandle != OldWindowHandle)
{
int targetThreadProcessId = GetWindowThreadProcessId(targetWindowHandle, IntPtr.Zero);
AttachThreadInput(ThreadProcessId, targetThreadProcessId, true);
OldWindowHandle = targetWindowHandle;
}
}
}
454デフォルトの名無しさん:2010/01/01(金) 23:06:19
うーん。オレの環境じゃ再現できないな。

Vista SP2 x64 + Visual Studio 2008 SP1
455444:2010/01/01(金) 23:14:27
あ、すみません
書き込んだらなんとか・・・がきちゃいました

メッセージ処理などが他に居るのかと思い込んでたのですがどうも違ったようです。
タイマー内のIntPtr OldWindowHandle = IntPtr.Zero;の位置が悪かったようです
これをタイマー処理のスコープから出したら問題なく動きました

>>454
お付き合いしていただいて済みませんでした
456デフォルトの名無しさん:2010/01/02(土) 03:15:48
AES暗号なんかを使う場合に鍵長なんかの指定はどうやればいいんでしょうか?
457デフォルトの名無しさん:2010/01/02(土) 03:21:32
SymmetricAlgorithm.KeySize Property とかで指定。
458デフォルトの名無しさん:2010/01/02(土) 04:04:46
>455
そんな面倒なことせずにWS_EX_NOACTIVATEを使えばいいのに
459デフォルトの名無しさん:2010/01/02(土) 04:10:41
こんなサンプルあるじゃん。

http://msdn.microsoft.com/ja-jp/library/cc440905.aspx
460444:2010/01/02(土) 04:58:39
いろいろ実装してたら朝に・・・

>>458>>459
そっちを入れてみました。
簡単すぎますorz
461デフォルトの名無しさん:2010/01/02(土) 07:07:13
おかしな挙動ではまってるのでアドバイスいただければと思います。

デスクトップ上の始点と終点を指定するとその範囲だけを
スクリーンショットとして保存するソフトです。

半透明で表示するフォームにラベルx4とpictureBoxを使っています。
ラベルx4の内、x2には始点と終点のXY座標を表示しています。
問題の挙動というのがpictureBoxをフォームにドッキングしてしまうと
ラベルのテキストがまったく更新されないという物です。

pictureBoxのドッキングを解除してフォームより小さいサイズに
するとラベルのテキストが更新されます。

対処方法とか何かありますでしょうか?
462デフォルトの名無しさん:2010/01/02(土) 13:10:13
このスレからクソ内容の書き込みを特定するLINQつくってみた

var a = from L in このスレ where 内容がクソ select 数値

a = 462
463デフォルトの名無しさん:2010/01/02(土) 13:11:29
>>461
再現できるコードplease
464デフォルトの名無しさん:2010/01/02(土) 15:18:43
>>461
windows付属のsnipping toolを使う
465デフォルトの名無しさん:2010/01/02(土) 16:20:56
今、業務用Windowsフォームアプリケーションを作成しています。
その中で、ローカルPCの所定の場所に、重要データをテキストデータで保存できるようにしたいのですが、
個人情報はないものの、機密データでもありますので、テキストデータ保存時に暗号化したいと考えています。

C#で、そのような暗号化の機能はありますでしょうか。

ご教示ください。
466デフォルトの名無しさん:2010/01/02(土) 16:23:15
System.Security.Cryptography.Rijndaelとか使えば

↓暗号化したって無駄だとかそういう突っ込みはいい
質問者が良いって言ってるんだから話をこじらせようとすんな黙れ
467デフォルトの名無しさん:2010/01/02(土) 16:24:46
はい、ありますよ。
468デフォルトの名無しさん:2010/01/02(土) 16:25:47
突然なんなのw
そう言われると指摘したくなるなぁ。
469デフォルトの名無しさん:2010/01/02(土) 16:43:07
>>467
どのような方法があるの?僕にも教えてください。
470デフォルトの名無しさん:2010/01/02(土) 16:49:29
もう出てるけど、この辺をどうぞ。

System.Security.Cryptography 名前空間
http://msdn.microsoft.com/ja-jp/library/system.security.cryptography.aspx
471デフォルトの名無しさん:2010/01/02(土) 18:00:03
ドットネットで完結しようとしないでOSの機能とか調べてみたらいいのに
472デフォルトの名無しさん:2010/01/02(土) 18:15:50
>>466
> ↓暗号化したって無駄だとかそういう突っ込みはいい
なんらかの形で、それなりの長さのパスワード入力させれば、無駄ということはないんじゃないか?
473デフォルトの名無しさん:2010/01/02(土) 18:55:43
歌の一フレーズ入力させるとかあったな。
474デフォルトの名無しさん:2010/01/02(土) 20:32:50
>>463
遅くなりました
一式まるまるです
http://uproda.2ch-library.com/201913msf/lib201913.zip

とりあえずpictureBoxはドッキングしてません
私の環境ではpictureBoxをフォームにドッキングするとlabelの更新がおかしくなります。

windowsXP home SP3
VC#2008Express
.netF 3.5
475デフォルトの名無しさん:2010/01/02(土) 20:34:14
このスレからクソ内容の書き込みを抽出するLINQ

from このスレ select クソ内容の書き込み
476デフォルトの名無しさん:2010/01/02(土) 21:44:08
>>474
まさかとは思うけど、そのコードでscreencap_rec(どうでもいいけどもうちょっと命名工夫しようよ)
のpicturebox1をドックすると期待した動作にならない、って話?

ラベルを更新するコードがformのMouseMoveイベントに書いてあるんだから当たり前じゃん。

フォームの全辺にドックしたらformのクライアント領域の全部をpictureboxが覆うんだから
マウスイベントはんて発生するわけないでしょ。
477474:2010/01/02(土) 21:53:49
>>476
>まさかとは思うけど、そのコードでscreencap_rec(どうでもいいけどもうちょっと命名工夫しようよ)
みなさんはどういう感じでやってるんでしょうか?
頭の中に思い描いたプログラムを急いであれこれ実装してたので
命名まではあまり考えてませんでした

>フォームの全辺にドックしたらformのクライアント領域の全部をpictureboxが覆うんだから
>マウスイベントはんて発生するわけないでしょ。
あーなるほど・・・
つまりformのMouseイベントで処理してるところをpictureboxでやればいいんですね
478デフォルトの名無しさん:2010/01/02(土) 22:39:38
SATA のポート番号何番にどのハードディスクが刺さってるか知るには
どうしたらいいでしょうか?

WMI 使うのかなとは思ったんですが、どの namespace と class 使えばいいか
わからなかったので、よろしくおねがいします。
479デフォルトの名無しさん:2010/01/03(日) 00:06:52
shift+tabキーでカーソルが入ったときにも
Enterイベントを発動させるにはどうすればいいですか?
480デフォルトの名無しさん:2010/01/03(日) 00:11:43
別に何もしなくても発生するけど?
481デフォルトの名無しさん:2010/01/03(日) 00:21:13
保存形式を独自の物にしたいと考えたのですが(他のアプリケーションでは開けない)
そこで考えたのがAES等による暗号化を施そうと考えました。
こういった場合にAES暗号化時に用いる鍵、IV情報はプログラム的に毎回同じものを生成するようにしておいたほうがいいのでしょうか?
482デフォルトの名無しさん:2010/01/03(日) 08:05:10
変数名とnewの名前同じなのにいちいち二回かくのめんどい

abcde a= new abcde();
だったらabcdeが二回あってしつこい

a= new ebcde();
でよくね?
一回で済ます方法ないの?
483482:2010/01/03(日) 08:10:24
new abcde() a;
解決しましたありがとうございます。
484デフォルトの名無しさん:2010/01/03(日) 11:20:06
var つかえ
485デフォルトの名無しさん:2010/01/03(日) 11:33:44
インテリセンスを使わない理由がわからない
486デフォルトの名無しさん:2010/01/03(日) 11:45:58
AClass a = new までうてば AClass() が補完候補にでてくるもんな。
var だとそうはいかない。
487デフォルトの名無しさん:2010/01/03(日) 11:51:46
C#にvarなんてあったのか!
488デフォルトの名無しさん:2010/01/03(日) 12:00:06
何でも入る変数ではないぞ。コンパイル時に型推論してくれるだけだ。
489デフォルトの名無しさん:2010/01/03(日) 12:07:16
拡張メソッドって何ですか?
Wikipedia見て見たけどよくわかんないです;
490デフォルトの名無しさん:2010/01/03(日) 12:27:34
ポリモーフのルールがわからん

たとえば
void func(AClass);
なメソッドがあったとして
Object o=new AClass();
でfunc(o)はダメ
AClass a =new AClass();
func(a);は大丈夫
AClassを敬称してるBClassについては
BClass b = new BClass();
AClass a = new BClass();
のばあいfunc(b)、func(a)両方大丈夫

でOKなのか?
491デフォルトの名無しさん:2010/01/03(日) 13:05:13
>>490
関数の引数の多態性は静的多態だからなぁ。
変数の型(new した方じゃなくて、 o とか a とか b の宣言時の型)に基づく。
それがキャスト可能かどうかがすべて。
492デフォルトの名無しさん:2010/01/03(日) 17:35:04
>>489
MyFunctions.Foo(hoge);

というstaticメソッド呼び出しを

hoge.Foo()

と書けるようにする仕組み。
493デフォルトの名無しさん:2010/01/03(日) 17:56:54
C#でoracleと接続する方法を教えて下さい
C#はExpressEdition 2008で
oracleは11g_home1です
かなり初心者ですので
一から教えていただけるとありがたいです
494デフォルトの名無しさん:2010/01/03(日) 18:03:11
ODP.NETを使います。Oracleのサイトにやり方が載ってるので、
それを参考にしてください。
495デフォルトの名無しさん:2010/01/03(日) 20:28:09
金払って教えてもらうレベルのことをただで丁寧に教えろという神経がわからん
496デフォルトの名無しさん:2010/01/03(日) 20:29:57
まず、コンピュータを購入します
497デフォルトの名無しさん:2010/01/03(日) 20:31:26
>>495
そう思ったらスルーすればいいだけですよ
498デフォルトの名無しさん:2010/01/03(日) 20:51:25
>>493
ODBCでも使ってつないでろよ・・・。
499デフォルトの名無しさん:2010/01/03(日) 20:52:11
>>493
ここはC#のスレです。
Oracleとの接続に関してはOralceのスレで聞いてください。
500デフォルトの名無しさん:2010/01/03(日) 20:52:47
まあodp.netでぐぐればあとはできるからほっとこう
501デフォルトの名無しさん:2010/01/04(月) 00:51:58
System.Collections.IEnumerable 型で渡されたCollectionオブジェクト
を処理する場合、その要素の元の型を知っていないと処理できないかと
思うのですが、使うときは foreach() 内などではその既知の型にキャスト
してから(そのプロパティ値などを)処理するということでよいでしょうか?
502デフォルトの名無しさん:2010/01/04(月) 00:57:51
うん。
今から作るなら普通は System.Collections.Generic 名前空間内のものを使うだろうから
型がわからないってことはないと思うけど。
503501:2010/01/04(月) 01:23:21
>>502
>System.Collections.Generic
こちらで送られてくる場合は型が付いてくる、ということなのですね。
古いコントロールだとIEnumerable で出来ているためにそういうことになる
ということなのですね。わかりました。ありがとうございました!!
504デフォルトの名無しさん:2010/01/04(月) 03:40:42
foreachにキャストが含まれているのは知っているだろうけど、
あれもジェネリック型が無かった時代の産物というか発想だよな
505デフォルトの名無しさん:2010/01/04(月) 08:05:23
Formやプログラムの終了方法ですが

Close();
Dispose();
Application.Exit();
Environment.Exit(0);

どれがいいんですか?
506デフォルトの名無しさん:2010/01/04(月) 08:22:22
タスクマネージャーより最前面にフォームを持ってきたいのですが、
GetForegroundWindowAPIを使って自スレッドにアタッチした後Activateも駄目、
勿論TopMostやFocusも駄目でした。仕様上出来ないものなのですかね?
507デフォルトの名無しさん:2010/01/04(月) 15:32:56
>>505
Close()やDispose()は指定したFormだけ。
Application.Exit()なら全てのFormを閉じてくれる。
Environment.Exit()は知らね。
508デフォルトの名無しさん:2010/01/04(月) 16:24:53
509デフォルトの名無しさん:2010/01/04(月) 16:52:51
ストリームからデータを読み出そうとすると
'System.Security.Cryptography.CryptographicException' のハンドルされていない例外が System.Core.dll で発生しました。
追加情報: 入力データが完全なブロックではありません。
というエラーが発生してしまうのですが何故なのでしょうか?
510デフォルトの名無しさん:2010/01/04(月) 16:56:08
そのまんまだろう

復号ストリームに食わせたブロックが欠落してる
511デフォルトの名無しさん:2010/01/04(月) 16:59:13
FileStreamを対象ファイルで作成し
CryptoStream作成時に上記で作成したストリームを渡して
CryptoStreamMode.Readを行っているのですがどこでデータが欠落するのでしょうか・・・。
512デフォルトの名無しさん:2010/01/04(月) 17:00:52
対象ファイルの中身
513デフォルトの名無しさん:2010/01/04(月) 17:03:45
>>512
そりゃそうですよね・・・orz
ファイル書き込む時に暗号化データをStringに直して書き込んでればそりゃだめになりますわ・・・orz
514デフォルトの名無しさん:2010/01/04(月) 17:05:53
死んだ方がいい
515デフォルトの名無しさん:2010/01/04(月) 17:20:17
PictureBoxの画像を半透明にしたいのですが。
516デフォルトの名無しさん:2010/01/04(月) 17:23:47
if (a == 1)
{
  b = 10;
}
else
{
b = 100;
}
例えば上記の様な場合

b = (integerA == 1) ? 10 : 100;
のように書くというのは

1)極力(あるいは絶対に)上の例のように書くべき。
2)極力(あるいは絶対に)下の例のように書くべき。
3)見易さに応じてケースバイケース。
4)特にセオリーはなく、完全に好みの問題。

熟練されてる方々は一般的に1〜4のどのスタンスで使用されているのでしょうか。
よろしくお願いします。
517516:2010/01/04(月) 17:25:44
下はintegerA じゃなくてa の間違いです。
それから上の b=100; も字下げ忘れてました。
見辛くてすみません。
518デフォルトの名無しさん:2010/01/04(月) 17:29:34
あとから修正の入る可能性がないと仮定したうえで、
禁止されてない限り(禁止されることは珍しくない) 2 。
519デフォルトの名無しさん:2010/01/04(月) 17:30:46
>>515
BackColorをTransparentにする
実装に無理があっていろいろトラブルが起きやすい方法なので,できれば
下に描画するものも含めてGraphicsで自前描画してしまうか
WPFでも使ったほうがいい
520デフォルトの名無しさん:2010/01/04(月) 17:32:01
3でしょ、見やすさと言うかプログラムとして自然な方になる
例えば他にelse if が続いていて、たまたまこれだけがelseのみだった場合
これだけいきなり後者で書かれても不自然だ
521516:2010/01/04(月) 17:37:50
>>518
>>520
可読性が上がるなら特に使用に抵抗感はないものの
職場などでは使用を禁止されることもあるという感じでしょうか。

下のような書き方はネット上では目にする機会があまり多くないように感じたので
一般的には推奨されない書き方なのかなと疑問に思っていました。
ありがとうございます。参考になりました。
522デフォルトの名無しさん:2010/01/04(月) 17:43:54
どうしてもと言うならせめてこうして欲しい。
b = (hoge == 1 ? 10 : 100);
523デフォルトの名無しさん:2010/01/04(月) 17:59:07
なるほど。勉強になります
524デフォルトの名無しさん:2010/01/04(月) 18:08:25
>>516
式が複雑なら上で、計算しないなら下。
上の書き方は bが2回登場するので、自分は嫌い。
525デフォルトの名無しさん:2010/01/04(月) 18:47:36
「手続き的ではなく宣言的に書け」という原則があるが
それに則っていえば一応下の方が良いことになるな
526デフォルトの名無しさん:2010/01/04(月) 19:42:50
WinApp1-Resources-bg.bmpをBitmap型に取り出したいのですが、上手くいきません。

Bitmap bmp = new Properties.Resources.bg;
これでもbgが存在しないらしく、ビルド失敗します。
527デフォルトの名無しさん:2010/01/04(月) 19:45:35
528デフォルトの名無しさん:2010/01/04(月) 20:21:46
>>516
三項演算子は複雑になると他人が(そして未来の自分が)解読しづらくなるから
ネストするようなのは素直に if 使うわな。
というか迷ったら if でいいと思うわ。

将来的に保守していくコードは冗長でつまんないぐらいでいい。
生成結果が変るならまた話は別になるけど。
529デフォルトの名無しさん:2010/01/04(月) 20:40:19
>>516
俺も見やすさ重視でif使うかな
530デフォルトの名無しさん:2010/01/04(月) 20:43:42
個人的な見解としては?使うのはマネージドな言語が使われる
今の時代でみるとギークぽいなあと思う。

C言語使うにしてもあえて?は使わないようにしてる


531デフォルトの名無しさん:2010/01/04(月) 20:51:17
一行で済むなら三項演算子使うわ
532デフォルトの名無しさん:2010/01/04(月) 20:53:49
ここまでを纏めると


1でも2でも3でもなく4ですね
533デフォルトの名無しさん:2010/01/04(月) 20:55:41
>>532
そうそう
古参コーダーはたぶん>>531の意見だろうし

まあ変な先輩と一緒になるとスタイル押し付けられそうだけどね
534デフォルトの名無しさん:2010/01/04(月) 20:57:43
if elseが大量にあるようなのなら三項演算子ですっきりさせるかあも
535デフォルトの名無しさん:2010/01/04(月) 20:57:59
>>530
うーん、時代ってのでいうと、
・LINQ とかで文よりも式が見直されてる(if は式木にならないけど、? : はなる)
・C#の cond ? a : b は a と b の型の一致を保証できる
ってのもあって、むしろ昔よりも条件演算子使いやすいと思うよ。
536デフォルトの名無しさん:2010/01/04(月) 20:59:12
>>534
if-else が大量に並ぶのはむしろ設計見直した方がいいかも。
仮想関数にならないかとか、分割できないかとか。

if-else が大量に並ぶような場面で ? : 使うと余計にひどいことになりそう。
537デフォルトの名無しさん:2010/01/04(月) 21:02:43
>>535
使いやすいというかせこせこ1行にまとめてもなあと思う
538デフォルトの名無しさん:2010/01/04(月) 21:29:02
ちゅーか >>516 が聞いてるのってあくまで単純な代入の場合だよね?
なんか途中で if か?三項演算子か?な議論にすりかわってるような

自分がどう書くかはともかく、他人が書いたソース読むときは
同じような処理が同じような書き方になってりゃどっち使ってても別に気になんないわ。
ちょくちょくぶれてるのが一番気持ちわるい。

539デフォルトの名無しさん:2010/01/04(月) 21:29:04
>>536
泥臭い処理も世の中にはあるぞ
540デフォルトの名無しさん:2010/01/04(月) 21:30:20
>>539
泥臭い処理は泥臭く書いた方が間違いが少ない
541デフォルトの名無しさん:2010/01/04(月) 21:32:01
三項演算子の是非の話?
三項演算子は値に注目して論理性がはっきりするからいいと思うけどな
542デフォルトの名無しさん:2010/01/04(月) 21:39:12
迷わずifです。ステップ数増やさないと稼げません。
543デフォルトの名無しさん:2010/01/04(月) 21:44:34
今時ステップ数はないわ。
544デフォルトの名無しさん:2010/01/04(月) 21:57:00
H社あたりはステップ換算じゃないの?
545デフォルトの名無しさん:2010/01/04(月) 22:01:16
工程数だろ今は
546デフォルトの名無しさん:2010/01/04(月) 23:00:34
人月換算なんかしてるから日本は終ってる
547デフォルトの名無しさん:2010/01/04(月) 23:01:54
馬鹿は

if (a == 1) {
b = 1;
} else {
c = 1;
}

みたいのですら

a == 1 ? b = 1 : c = 1;

ってやりたがるからな。
548デフォルトの名無しさん:2010/01/05(火) 00:01:24
特定のキー入力を受け付けない、ということは出来ませんかね?
左CtrlキーやAキーなど、入力されても他のウィンドウにはメッセージ送らない、みたいな。
549デフォルトの名無しさん:2010/01/05(火) 00:26:50
>>548
キー入力全部いったん食ってから、特定のキーのときだけhandled=trueにしてしまう手はある。
グローバルフックでキー拾えばウィンドウまたがったキー入力拾いも可能。
550デフォルトの名無しさん:2010/01/05(火) 00:36:24
特定のウインドウもしくはexeなどを監視してキー情報を
送ることは可能でしょうか?
551デフォルトの名無しさん:2010/01/05(火) 01:02:36
>>550
再提出
特定のウインドウ(の○○)もしくはexe(の○○)などを監視して
キー情報を(○○へ)送ることは可能でしょうか?
552デフォルトの名無しさん:2010/01/05(火) 01:07:04
細かい部品までは意識しません
送り先が起動してるかどうか確認して要るようなら指定されているキー情報を送るだけです
553デフォルトの名無しさん:2010/01/05(火) 01:15:44
可能だけど、何を条件にするかによって判定する方法は違う
条件を聞いたのに答えなかったから回答もここまでだ

方法は自分で考えろ
554デフォルトの名無しさん:2010/01/05(火) 01:19:06
いやそんな難しい条件ではないんですが・・・

ただ送りたい相手を調べる方法もよくわからないので
ヒントだけでもわかればと思ったんですが・・・

というかここは初心者スレですよね・・・
555デフォルトの名無しさん:2010/01/05(火) 01:22:55
だからその条件を書けといってるんだろうが馬鹿め
話の通じない奴は初心者じゃなくて池沼だっての
556デフォルトの名無しさん:2010/01/05(火) 01:23:46
そうだぞ池沼が
557デフォルトの名無しさん:2010/01/05(火) 01:25:59
その辺がうまく説明できたらここで聞く必要がないと思うのですが・・・

やりたいことは特定アプリのショートカットキーなどを登録したボタンを
フォームに貼り付けて、そのボタンを押した際に送りたいアプリが居れば
sendkeyで送るなどして、居なければ送らないというだけの動作です
558デフォルトの名無しさん:2010/01/05(火) 01:29:28
>>557
http://msdn.microsoft.com/ja-jp/library/1f3ys1f9%28VS.80%29.aspx
これでプロセス一覧を取る
ウィンドウハンドルとパスが入ってるから適当にやればいい

とりあえず十分だと思うが、上の方法は微妙に融通が利かないので
不便だと思ったらまた来い
559デフォルトの名無しさん:2010/01/05(火) 01:42:54
>>558
ありがとうございます
560デフォルトの名無しさん:2010/01/05(火) 01:43:00
>>550-551
549の答えでいんじゃない?

> 特定のウインドウ(の○○)もしくはexe(の○○)などを監視して
前者は
FindWindow→GetWindowThreadProcessIdして
SetWindowsHookExするDLLをDLLの作って
キー入力をSend/PostMessageで流すぐらいかな

後者は自分の頭ではちと大変で
EnumWindows→GetWindowThreadProcessIdで
exe特定するのに逆に辿る必要性がある気がするので
ハッシュリストにマーキングしたりで色々とめんどくさそう
561548:2010/01/05(火) 02:19:10
>>549
キーボードをグローバルフックして、Handled=trueですね、やってみます。
562デフォルトの名無しさん:2010/01/05(火) 02:24:33
グローバルフックはDLLいらんよ知ったか。
563デフォルトの名無しさん:2010/01/05(火) 02:26:09
いつからいらなくなったんだ?
564548:2010/01/05(火) 02:43:44
とりあえず、グローバルフックを使い、
メモ帳上でCtrl+Aを押してもaが入力されるようになりました。

しかし、Altキーの入力を防ごうとしても、Alf+Fでメニューが表示されたり、
Ctrl+Alt+Delでタスクマネージャが出たり、Alt+F4が使えたりします。

これらは仕方がないんですかね?
565デフォルトの名無しさん:2010/01/05(火) 02:43:47
うろ覚えな知識でレスするもんじゃないなぁ

>>562
ありがとう
566デフォルトの名無しさん:2010/01/05(火) 02:50:00
567デフォルトの名無しさん:2010/01/05(火) 02:50:57
>>564
CallNextHookExに渡すパラメータを何やかんやするとキー入力潰せた気がするけどどうかね
568デフォルトの名無しさん:2010/01/05(火) 03:33:18
MSペイントで文字を画像にした場合と全く同じ結果になるように
Graphics.DrawStringを使用して文字列を画像化しています.

Graphics.DrawString
569568:2010/01/05(火) 03:35:41
とちゅうで投稿しちゃいましたごめんなさい

Graphics.DrawString()の引数でフォントやサイズ,GraphicsUnitはきちんと指定したんですが
どうもMSペイントの場合と結果が異なってる気がします.
アンチエイリアスのせいかと思いすべて試してみたんですが同じ結果にはなりません.

文字描画の設定どうすればMSペイントと機能がおなじになるんでしょうか?
570デフォルトの名無しさん:2010/01/05(火) 04:23:17
コードの難読化のためのツールとしてDotfuscator Community Editionというのが
付属してるような記述をネットで見つけたのですがVisual C# 2008 Express Edition
のような無料の物には付属しないのでしょうか?
571デフォルトの名無しさん:2010/01/05(火) 06:24:09
>>570
付属しない
572デフォルトの名無しさん:2010/01/05(火) 07:33:40
573デフォルトの名無しさん:2010/01/05(火) 07:53:46
>>569
何が問題か解らないが、(DrawStringの引数として)StringFormatを使うと色々設定出来る
574デフォルトの名無しさん:2010/01/05(火) 08:23:50
>>569
TextBoxRenderer.DrawTextBox
575デフォルトの名無しさん:2010/01/05(火) 08:25:29
あ、それとFontの生成も違ったような気がしたから、自前で生成した方が良いかも
576デフォルトの名無しさん:2010/01/05(火) 09:04:43
GDIだろうからTextRenderer.DrawTextを試してみれば
577デフォルトの名無しさん:2010/01/05(火) 11:29:01
>>566-567
ありがとうございます。Alt+F4,Alt+Fのメニューはうまく出来ました。
bool control = ((GetKeyState(VK_LCONTROL) & 0x80) != 0) ||
((GetKeyState(VK_RCONTROL) & 0x80) != 0);
一応HookCallBackProcではCtrlキーも受け取るようにしたんですが、
やはりCtrl+Alt+Delのタスクマネージャは潰せないみたいです。
CallNextHookEx自体呼び出さなくても駄目でした。
578デフォルトの名無しさん:2010/01/05(火) 11:31:48
Ctrl+Alt+Delを乗っ取ることができるとセキュリティがやばくなるからなあ
579デフォルトの名無しさん:2010/01/05(火) 11:34:02
>>578
やはりそうですよね、それだけは仕方無いんですかねぇ・・・
出来ればCtrl+Alt+Delも防ぎたかったのですが、仕方無いみたいなので別の手段考えます
580デフォルトの名無しさん:2010/01/05(火) 11:56:32
キーボードのdelのところのパターンを切ればいいよ
581デフォルトの名無しさん:2010/01/05(火) 11:59:30
>>580
DelでCallNextHookEx呼ばないようにしてみましたが、やっぱり駄目でした
582デフォルトの名無しさん:2010/01/05(火) 12:00:34
物理的に切るんだろw
583デフォルトの名無しさん:2010/01/05(火) 12:01:18
タスクマネージャ監視しててあがってきたらkillとかは?
584デフォルトの名無しさん:2010/01/05(火) 12:04:39
結構みんなガチガチにつくってるのね・・・・・
流石にそこまでやったことないが・・・・
585デフォルトの名無しさん:2010/01/05(火) 12:05:05
>>583
一定時間ごとにtaskmgr監視して、kill送るって事ですかね
タイマーの空回しは嫌いだからもっと良い方法無いかなと探してたので・・・
でも、それしか無いのならそうしてみます。
完全個人利用なので、いっそtaskmgrをリネームしてその時だけ使えなくしてもいいなと思ったり、
586デフォルトの名無しさん:2010/01/05(火) 12:07:16
個人利用なら気にしないでいいかもしれないが、
Ctrl+Alt+Delでタスクマネージャーが出るだけの環境じゃない場合も多い
587デフォルトの名無しさん:2010/01/05(火) 12:11:10
と、思ったらtaskmgrって消しても上書きしても修復されるんですね・・・
>>586
そうなんですね、今後作るときに気をつけます
588デフォルトの名無しさん:2010/01/05(火) 12:14:59
既にC#から外れまくっているけど、キーマップ弄ってAlt無くせばよくね?
589デフォルトの名無しさん:2010/01/05(火) 12:26:38
>>588
キーマップ初めて知りました。見て見たのですが、レジストリ弄るって事ですか?
再起動が必要なら使えないですね・・・一時的にブロックしたいだけなので…
590デフォルトの名無しさん:2010/01/05(火) 12:37:20
あ、レジストリ探してたら、taskmgr無効にする値がありました。
CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Policies/System
DusableTaskMgr(0x00000001)書き込んで無効にするようにします。
弊害があるのかもしれませんが、とりあえず再起動無しでも適応されましたので、
これを使いたいと思います。ありがとうございました。
591デフォルトの名無しさん:2010/01/05(火) 12:57:49
そこまでかたくなに防御するとかウィルスでもつくってんのか?
592デフォルトの名無しさん:2010/01/05(火) 13:00:22
店頭に置くデモマシンとかそういうのじゃないの?
593デフォルトの名無しさん:2010/01/05(火) 13:00:29
UACがはじいてくれそうなぬるいウイルスだな
594デフォルトの名無しさん:2010/01/05(火) 13:06:44
ヌルヌル
595デフォルトの名無しさん:2010/01/05(火) 13:07:20
起動中にキーボードの掃除するとか
596デフォルトの名無しさん:2010/01/05(火) 13:11:54
俺だったらキーボード抜く
597デフォルトの名無しさん:2010/01/05(火) 13:42:49
自機がXPなのでUACは別に考慮してません
店頭とかではありませんが、>>592のようなもので、
キーボード入力は使うので外すことは出来ないんです
とりあえずコーディングして上手く動作しました。ありがとうございました。
598デフォルトの名無しさん:2010/01/05(火) 22:23:06
CreateDesktop で別デスクトップ作っても、タスクマネージャとか出るんだっけ?
GINA 置き換えとかもあるけどなー。
599デフォルトの名無しさん:2010/01/06(水) 01:01:53
C#のconstてC言語のconstとはまったく違うなぁ。
どっちかというとDelphi(Pascal)に近い。
600デフォルトの名無しさん:2010/01/06(水) 01:07:54
まあ、C++のconstは色々詰め込み過ぎな感もある。
コンパイル時定数とimmutableは分けてもいいと思う。
601デフォルトの名無しさん:2010/01/06(水) 01:12:27
というかC++自体詰め込みすぎ
602デフォルトの名無しさん:2010/01/06(水) 01:12:40
C言語だと配列のような記号[]は*(a+b)と同じだったから

array[5]が5[array]という変わった書き方ができたけどC#だとウンサフェでもできないんだな。
完全移植じゃないんだな。
603デフォルトの名無しさん:2010/01/06(水) 01:16:39
>>602
C#は何やるにしてもCのころに比べてレイヤー増えてるから
そうじゃないの?
604デフォルトの名無しさん:2010/01/06(水) 01:30:12
>>599
つうかC#ってDelphiの人がMSに入って作った言語だから
605デフォルトの名無しさん:2010/01/06(水) 01:47:54
C#はDelphiを無理やりC言語やJava風の構文にしただけの言語。
606デフォルトの名無しさん:2010/01/06(水) 01:50:29
C#は読み書きするにはかなりいい言語だと思うが
607デフォルトの名無しさん:2010/01/06(水) 01:55:30
foreachって、単なるシンタックスシュガー?
608デフォルトの名無しさん:2010/01/06(水) 01:57:23
いいえ
609デフォルトの名無しさん:2010/01/06(水) 02:02:29
はいいえ
610デフォルトの名無しさん:2010/01/06(水) 02:28:41
健介の南西ガチ止めwww
611デフォルトの名無しさん:2010/01/06(水) 08:06:10
>>572-576
みなさんいろいろ意見ありがとうございます.
試してみてダメだったらもう少し日本語整えてまたきますw
612デフォルトの名無しさん:2010/01/06(水) 13:51:15
613デフォルトの名無しさん:2010/01/06(水) 14:18:13
WIndows7-64bitで以下の方法でIE8を起動すると、IE8-64bitが起動します。
ie = Type.GetTypeFromProgID("internetexplorer.application");
IE8-32bitが起動するように記述する方法はありますか?
それともOS側で設定を変更しなければならないのでしょうか?
VC#2008を使用しています。ご教示、宜しくお願いします。
614デフォルトの名無しさん:2010/01/06(水) 20:51:06
>>613
ネイティブのDLLやCOMは32bitからは32bit、
64bitからは64bitのものしか呼び出せない。
だから、呼び出しもとのC#のプログラムを/platform:anycpuから
/platform:x86にすればいけると思う。
615デフォルトの名無しさん:2010/01/07(木) 00:36:45
フォームの右上に
最小化、最大化、閉じるボタンあるしょ

_ □ × みたいなやつ。

最小化したときとかClosingイベントに書くんじゃなく
右上のボタンを押したときのイベントを作りたいんだがどうやればいい?
616デフォルトの名無しさん:2010/01/07(木) 00:59:09
>>615
フォームの右上に自分で作ったボタンを重ねて配置
617デフォルトの名無しさん:2010/01/07(木) 01:00:59
そんなイベントありません。
618デフォルトの名無しさん:2010/01/07(木) 01:04:18
WM_NCLBUTTONDOWN辺りかね
619デフォルトの名無しさん:2010/01/07(木) 06:14:39
タスクバーの機能の一つだと思うんですがクイック起動がありますよね
あれをランチャーぽく分離して使おうかと思ったのですが常に前面表示
ができても半透明がかけれなかったりするのでショートカットの置き場所だけ
クイック起動と共通にして表示部分だけ独自に実装したいのですが
どういう機能が関係するでしょうか?

アイコンの画像をボタンに取り込んで・・・とか考えているのですが
簡単なやり方とかありますでしょうか?
620デフォルトの名無しさん:2010/01/07(木) 06:34:07
win7買ったほうがいいんじゃないかな
621デフォルトの名無しさん:2010/01/07(木) 06:51:16
そういわれちゃうと・・・
ランチャー単独ではなくほかの機能+ランチャーなので・・・
622デフォルトの名無しさん:2010/01/07(木) 11:30:24
>アイコンの画像をボタンに取り込んで・・・とか考えているのですが

Icon.ExtractAssociatedIconでも使えば
クイック起動と置き換えたいとか言わなけりゃランチャなんて専門生の宿題レベルのプログラム
623デフォルトの名無しさん:2010/01/07(木) 11:30:35
バイナリファイルを読み書きする際にunsafeメソッド内で
byte[]をfixedした上で構造体ポインタへキャストし、使用しています。
その時に使用する構造体の定義内で配列を使用したい場合、
どのような記述をすればいいのでしょうか?
624デフォルトの名無しさん:2010/01/07(木) 11:36:30
固定長ならfixed
625623:2010/01/07(木) 11:39:11
>>624 ありがとうございました。
626デフォルトの名無しさん:2010/01/07(木) 12:02:08
C#限定じゃない感じもしますが一応C#でもできるので

外部アプリのウインドウの位置やサイズを変更するのに
MoveWindowを使ってるのですがたまに隠れた親ウインドウを
持ってるアプリがいるようでそのままだとうまくいきません。

何か対策方法はありますでしょうか?
627デフォルトの名無しさん:2010/01/07(木) 12:14:00
実際に表示されてるウインドウハンドルをを探すしかないな。

>C#限定じゃない感じもしますが一応C#でもできるので 
わかってるならなぜここで聞く?
628デフォルトの名無しさん:2010/01/07(木) 12:38:58
ウィンドウハンドルが取れてないってわかってるなら5分で正解にたどり着けるレベルなのにね
629デフォルトの名無しさん:2010/01/07(木) 12:41:01
ハンドルからウィンドウスタイルを取って、子ウィンドウなら親を取得して座標補正して終わり
なんも難しいことはない
630デフォルトの名無しさん:2010/01/07(木) 12:45:32
626の言い方なら子ウィンドウのハンドルは取れてるだろ。
親ウィンドウの場合はMoveWindowで指定する座標はスクリーン座標になるが
子ウィンドウの場合は親ウィンドウのクライアント領域の左上隅が原点になるから上手くいかないと言ってるんだろう。

2連続で的外れなレスってどんだけ低脳だらけなんだこのスレ。
631デフォルトの名無しさん:2010/01/07(木) 12:49:09
サーセン…
632デフォルトの名無しさん:2010/01/07(木) 12:53:28
>>629は外してないと思うけど
633デフォルトの名無しさん:2010/01/07(木) 12:56:02
ハンドルが取れてるとかそりゃずいぶんと希望的な観測だな。日本の未来も安泰だ。
634デフォルトの名無しさん:2010/01/07(木) 13:01:55
取れてないってのも希望的観測には違いないがな
635デフォルトの名無しさん:2010/01/07(木) 13:06:08
Process.GetProcessesで取ってるんだとしたら取れてないかもよ〜
636デフォルトの名無しさん:2010/01/07(木) 13:16:40
>>615
ついでに便乗質問なんだけど、Vista以降では「元に戻す」の
システムメニューアイコン『□』のグリフ(文字の形)がXP以前とは変わっている。
あれのグリフってどっから取ってきたらいいんだろ?
637デフォルトの名無しさん:2010/01/07(木) 13:22:03
うーん
部分的な抜き出しですが下記処理でいろいろ試してみましたが
やっぱりJane Style(3.11)だけが意味不明なウインドウがでてきちゃいますね・・・
あと私のレベルでは皆さんのアドバイスを理解しきれませんでしたorz

System.Diagnostics.Process[] p = System.Diagnostics.Process.GetProcessesByName("Jane2ch");
if (p.Length == 1)
{
SetForegroundWindow(p[0].MainWindowHandle);
p[0].WaitForInputIdle();
MoveWindow(p[0].MainWindowHandle, 0, 0, 300, 200, 1);

}
638デフォルトの名無しさん:2010/01/07(木) 13:24:36
ほらみろ
>>629-630>>632>>634

死ね死ね死ね死ね死ね
639デフォルトの名無しさん:2010/01/07(木) 13:27:05
うわきめぇ…。
640デフォルトの名無しさん:2010/01/07(木) 13:33:37
delphi系統は昔から「並べて表示する」とか使うと隠しウィンドウが一人分確保してたしな
「みえてるけど取れてない」とかだいたいそれだよ
641デフォルトの名無しさん:2010/01/07(木) 13:38:41
きもすぎわろた
642デフォルトの名無しさん:2010/01/07(木) 13:44:31
>>640
開発環境の癖と言う感じですかね?

その他アプリに関しては問題なくハンドルも取れてウインドウの変更もできるので
保留にしておきたいと思います。
643デフォルトの名無しさん:2010/01/07(木) 13:45:41
spy++とかで見てみては
644デフォルトの名無しさん:2010/01/07(木) 15:03:56
>>636
VisualStyleElement.Window.MaxButtonとか
645デフォルトの名無しさん:2010/01/07(木) 16:56:22
ヒープ領域ってどういうときに壊れますか?
646デフォルトの名無しさん:2010/01/07(木) 17:00:31
メモリが壊れてたり熱暴走したときとか
647デフォルトの名無しさん:2010/01/07(木) 17:06:47
パソコンを窓から投げ捨てたとき
648デフォルトの名無しさん:2010/01/07(木) 17:13:25
CLRのヒープ管理やOSのメモリ管理にバグがあったとき
649デフォルトの名無しさん:2010/01/07(木) 17:20:03
ヒープ領域が壊れていたとき
650デフォルトの名無しさん:2010/01/07(木) 17:26:27
飛行機の2階席に乗ったときとか
誰かmemtestとかやってないかな
651デフォルトの名無しさん:2010/01/07(木) 18:00:38
いまだかつてドトネトのフレームワークでヒープが壊れたためしはないが、マニアックな使い方してたらたまにはあるもの?
それとも俺が無知なだけ?
652デフォルトの名無しさん:2010/01/07(木) 18:24:19
きっと>>645がC#とCの違いが分かってないとか、
スレタイをよく見てないとかいつものアレでしょ。
653デフォルトの名無しさん:2010/01/07(木) 18:25:00
すみません
前任の人がSQLサーバのテーブルにある画像フィールドを
更新していたのですが、わたしがどうやってもフィールドのデータを
更新して表示できなくなってしまいました

データの表示はASPXでもって
Response.BinaryWrite(CType(.Item(0), Byte()))
としているだけで、ACCESSから見るとそのフィールドはOLEオブジェクトとなっています

ここにコピーアンドペーストやオブジェクトの挿入からファイル名を入力したりいろいろやってみましたが
ウェブページで見ると×印になってしまいます
ContentTy;peファイル形式はpjpegとなっており、フォトショップで作ったjpegファイルを挿入したいのです
他のちゃんと表示されるレコードを参考にファイルの縦横pixcelなどは正しく作ったつもりなのですが、
冴えない結果で泣きそうです

OLEオブジェクトフィールドにバイトデータをファイルから挿入するにはどうしたらいいでしょうか?
プログラミングは必要なくて、スレ違いかと思いますが、作業の手順さえわかればいいのです
なにとぞヒントをお願いします
654デフォルトの名無しさん:2010/01/07(木) 19:53:42
>>653
AppendChunk()で。
655デフォルトの名無しさん:2010/01/07(木) 20:07:22
平方根を求めたいのですが
小数点以下32桁など桁数を指定できればと思うのですが
どうすればいいでしょうか?
656デフォルトの名無しさん:2010/01/07(木) 20:15:19
doubleどころかdecimalでも有効桁はそんなにないから数値クラス書くところからはじめるといいよ
657デフォルトの名無しさん:2010/01/07(木) 20:20:46
いやまて、基数が3かもしれんぞ
658デフォルトの名無しさん:2010/01/07(木) 20:24:01
>>656
クラスを作ればいいんですかね?
659デフォルトの名無しさん:2010/01/07(木) 20:28:16
そうだな
660デフォルトの名無しさん:2010/01/07(木) 20:29:56
SHA-1を利用して作成したハッシュをトリップのように
表示できる文字列にしたいのですが何か方法はあるのでしょうか?
661デフォルトの名無しさん:2010/01/07(木) 20:33:48
32ビットに直してそれをシードに乱数で生成すれば?
662デフォルトの名無しさん:2010/01/07(木) 20:40:06
なぜ検索しない
663デフォルトの名無しさん:2010/01/07(木) 20:43:19
>>658
そのクラスに対する四則演算書くところから始まって
勿論ルートなどの演算も一から書く必要有るけどな
664デフォルトの名無しさん:2010/01/07(木) 21:25:26
そらいくらでもあるわな。
BASE64か16進文字列にでもしとけば?
665デフォルトの名無しさん:2010/01/07(木) 21:34:32
BASE64がおすすめ
666デフォルトの名無しさん:2010/01/07(木) 21:35:15
演算子オーバーロードできるからラッキーだったな。
667デフォルトの名無しさん:2010/01/07(木) 21:49:51
>>666
どうやってやるんですか?
668デフォルトの名無しさん:2010/01/07(木) 21:53:52
>>663
そのクラスが用意できたとしたらあとは何をすれば?
669デフォルトの名無しさん:2010/01/07(木) 21:55:10
収束すれば何でもいいから好きな方法で近似しろ
670デフォルトの名無しさん:2010/01/07(木) 22:01:00
>>668
クラスをnewして使えばいいだけだろw
671デフォルトの名無しさん:2010/01/07(木) 22:01:02
C#で携帯にメールを送るプログラムで質問です。
auへ画像を添付してメールすると添付画像が受信できません。
MailMessage msg = new MailMessage();
msg.Body = "本文";
とした場合はちゃんと添付できるのですが、
msg.AlternateViews.Add(AlternateView);
を使用した時が添付できません。
絵文字を送信するため、AlternateViewの方で送信しないといけないので、
後者のほうを使用しています。
わかる方いらっしゃいましたらご教授ください。
672デフォルトの名無しさん:2010/01/07(木) 22:11:47
オーバーライドとオーバーロードの区別があやふやになってきちゃいました…
どっちがどっちか教えてください
673デフォルトの名無しさん:2010/01/07(木) 22:18:26
オーバーロードがシグネチャを重ねるほう
オーバーライドがシグネチャを乗っ取るほう
674デフォルトの名無しさん:2010/01/07(木) 22:21:23
override
overload
overlord

675デフォルトの名無しさん:2010/01/07(木) 22:35:15
>>614
仰られる通りの変更で動作しました。有難うございます。
676デフォルトの名無しさん:2010/01/07(木) 22:50:31
AクラスとBクラスにhogeという名前の関数があったとしよう
funcはAにもBにも乗っているからライドしてるんだよ!

クラスがトラックで、メソッドやプロパティが荷物な感じ
class A{
func(int x);
func(string s);
}
って二種類あったら荷物を二つ積んでる(オーバーなロードしてる)だろう?
一方
class A {
func();
}

class B {
func();
}

funcは二つに乗ってる(オーバーにライドしてる(だろう?だからrideなんだよ!
677デフォルトの名無しさん:2010/01/07(木) 22:55:06
>>676
なんか小学校の先生がお勉強ができない子に教えるような言い方だけど、
そんな方法でないと物事覚えられないお馬鹿な子は、そもそもプログラミング
やっちゃダメだと思うw
678デフォルトの名無しさん:2010/01/07(木) 23:01:45
overlordは空から降りてくる奴だろ
679デフォルトの名無しさん:2010/01/07(木) 23:08:28
指定したレジストリの値に読み書きされるのを検知するのは無理ですか
数ミリ秒ごとにポーリングするしかありませんか?
680デフォルトの名無しさん:2010/01/07(木) 23:10:50
C++だったらadvapi32.dllフックするとかやりようはあるけど
C#じゃ無理なんじゃねえの
681デフォルトの名無しさん:2010/01/07(木) 23:14:51
RegNotifyChangeKeyValue とか。
682デフォルトの名無しさん:2010/01/07(木) 23:16:46
http://www.codeproject.com/KB/system/registrymonitor.aspx
なんで検索しないんだろうね
683デフォルトの名無しさん:2010/01/07(木) 23:20:02
>>681-682
お前らこそ質問が「読み」書きなのに気付いてるか?
684デフォルトの名無しさん:2010/01/07(木) 23:21:45
しかし、「読み」に関してはポーリングしたってどうしようもないと思うんだけどねw
685デフォルトの名無しさん:2010/01/07(木) 23:21:55
あー。読みは無理だね。監査でもするしかないんじゃない?
686デフォルトの名無しさん:2010/01/07(木) 23:21:55
>>673
C#だとシグネチャにはパラメータ情報も含まれるからその説明はちょっと
687デフォルトの名無しさん:2010/01/07(木) 23:23:14
チートを作りたいんですがどうすればいいですか
688デフォルトの名無しさん:2010/01/07(木) 23:23:43
>>679
Win32APIスレで聞けば教えてくれるよ。
689デフォルトの名無しさん:2010/01/07(木) 23:23:44
黙っときゃわかりゃしないよ
690デフォルトの名無しさん:2010/01/07(木) 23:55:22
APIスレはなぜか.NET敵視してるのに
なんて所に誘導するんだよ。
691デフォルトの名無しさん:2010/01/08(金) 00:13:21
流れぶったきるが
演算子のオーバーライドってどうやるんですか
692デフォルトの名無しさん:2010/01/08(金) 00:14:36
ぐぐれ
693デフォルトの名無しさん:2010/01/08(金) 00:15:42
かす
694691:2010/01/08(金) 00:20:01
自己解決しました
695デフォルトの名無しさん:2010/01/08(金) 00:22:03
>>691
オーバーライドはできない。詳しいことは↓
ttp://msdn.microsoft.com/ja-jp/library/67ef8sbd.aspx
696デフォルトの名無しさん:2010/01/08(金) 00:30:50
もしかして: 演算子のオーバーロード
697デフォルトの名無しさん:2010/01/08(金) 00:35:04
シリアル化ってなんですか?
698デフォルトの名無しさん:2010/01/08(金) 00:47:07
>>678
それはオーラロード

そして40歳ネタ
699デフォルトの名無しさん:2010/01/08(金) 00:47:48
>>697
朝ごはんをコーンフレークにすること

当時はこれが流行の最先端だった
700デフォルトの名無しさん:2010/01/08(金) 00:48:36
トニー・ザ・タイガー
701デフォルトの名無しさん:2010/01/08(金) 01:11:24
演算子のオーバーロードの間違いなら
ふつうにメソッドを作る方法と同じ。
ただメソッド名の部分をoperator+にするだけ

class A{
public static void add(int x,int y){
return x+y;
}

このaddが名前、operator+にしてみただけ。
702デフォルトの名無しさん:2010/01/08(金) 01:23:43
>>676
同じクラス内で同じ名前の関数を複数持つ(引数の数や型が違う)のがオーバーロード
違うクラスで同じ関数があった場合同一と認識するのがオーバーライド
であってますか?
703デフォルトの名無しさん:2010/01/08(金) 01:44:41
めんどくせーけどいいんじゃねーの
同一と認識するって言葉が意味不明だが。
704デフォルトの名無しさん:2010/01/08(金) 02:08:40
>>701
そこでint x,int yは無いだろ・・・しかもvoidって
705デフォルトの名無しさん:2010/01/08(金) 02:21:37
vold main(vold){
printf("%d","222");
}
とか懐かしいなw
706デフォルトの名無しさん:2010/01/08(金) 10:10:16
>>705
構文が ってこと?
707デフォルトの名無しさん:2010/01/08(金) 10:31:56
デザイナーでGUIを作って、その変数に他のクラスから値を代入しようとするとアクセスできないので、
変数の宣言の部分をprivateをpublicに変えてやっているけど、本来はどうやって実現するのでしょうか?
708デフォルトの名無しさん:2010/01/08(金) 10:41:44
>>707
どの変数?
よく分かんないけど、普通は必要な部分だけプロパティ経由でset/getできるようにする。
709デフォルトの名無しさん:2010/01/08(金) 10:54:51
ビューはあくまで表示のためのものだから、データの実体を持たせるとかありえん
710デフォルトの名無しさん:2010/01/08(金) 11:19:16
余りに距離があったんで、フォームにスタティックのイベント定義しちまったんだが
これ、やはり不味いかな?
皆さんは遠くてもカスケード方式でちゃんとイベント処理している?
711デフォルトの名無しさん:2010/01/08(金) 11:29:23
なにがしたいのかさっぱりわからん。form2からform1のコントロールにアクセスしたいだけか。
まあそんなのmodifiers一発だが
712デフォルトの名無しさん:2010/01/08(金) 11:42:54
カスケード方式って何ぞ
713デフォルトの名無しさん:2010/01/08(金) 12:29:23
buttonのstyleをflatもしくはpopupにした上で
実線を取り除いて画像を当てはめてbuttonを使ってない
感じにしたいのですが無理でしょうか?

pictuerboxを使ってそれっぽい動きにしたほうが簡単ですかね?
714デフォルトの名無しさん:2010/01/08(金) 12:30:12
pictureboxだった
715707:2010/01/08(金) 12:55:37
>>711
modifiersを触ってみたら、結局、707でやったことと同じコードになった。
つまり勝手にprivateを変更しても構わないわけだ。
まあプロパティのmodifiersを触るとここが変更されるとは知らなかった。
イイこと聞いた
716デフォルトの名無しさん:2010/01/08(金) 13:08:05
なんでも変更できるわけじゃないよ
717デフォルトの名無しさん:2010/01/08(金) 13:28:56
文字定数を使って文字列定数を定義したいのですが、下のようにやるとRのところでエラーになります。
const char A = 'x';
const char B = 'y';
const string R = A + B;

うまい書き方はないでしょうか?
718デフォルトの名無しさん:2010/01/08(金) 13:29:48
const string A = 'x';
const string B = 'y';
const string R = A + B;
719717:2010/01/08(金) 13:42:02
>>718
ありがとうございます。
でも一行目からエラーになりますね。
開発環境は、Visual Studio 2008 Professional Edition です。
720デフォルトの名無しさん:2010/01/08(金) 13:43:28
それくらいは・・・

const string A = "x";
const string B = "y";
const string R = A + B;
721デフォルトの名無しさん:2010/01/08(金) 13:43:37
ダブルクオート
722デフォルトの名無しさん:2010/01/08(金) 13:44:42
これがProfessionalの力か…
723デフォルトの名無しさん:2010/01/08(金) 13:45:21
Rはreadonlyで我慢汁
724デフォルトの名無しさん:2010/01/08(金) 13:47:29
const char A = 'x';
const char B = 'y';
string R { get { return A.ToString() + B.ToString(); } }
725デフォルトの名無しさん:2010/01/08(金) 13:53:40
どうせstringに型変換して使うのになんでchar型なのC++ひきずってるのという気がしないでもない
726デフォルトの名無しさん:2010/01/08(金) 13:58:09
>>712
formAにcontrolBとControlCが乗っかっていて、ControlBにはControlD,ControlCにはControlEが乗っかっている場合
ControlDのイベントをControlEに伝える場合、
ControlD→ControlB→ControlA→ControlC→ControlEの経路で伝搬させる処を
ControlDにスタティックのイベントを登録してControlE Load時にイベント登録し
直接ControlD→ControlEでやっちまったんだが、普通どうするのかな?という話です
727デフォルトの名無しさん:2010/01/08(金) 14:01:45
>>724
そこまでコード書くなら、大概 const string R= "xy";
と書いた方が早い様な・・・気持ちは判るが
728デフォルトの名無しさん:2010/01/08(金) 14:08:53
>>726
それってほんとにC#の話なの? スレ間違ってない?

private void Form1_Load(object sender, EventArgs e)
{
 controlD.Click += new EventHandler(controlD_Click);
}
void controlD_Click(object sender, EventArgs e)
{
 controlE_Click(sender, e);
}
729デフォルトの名無しさん:2010/01/08(金) 14:37:33
>>728
FormAからControlDは直接見えず
同じくControlEもFormAから直接見えない構造とすると?
730717:2010/01/08(金) 14:38:28
僕のやりたい事は素直には書けないってことかな

>>725
プログラム中で文字として使うからcharにしてるんです。
Aをstringにしておいて、文字として使いたいときは A[0] とするか
Rを"xy" にしておくか
どちらかかなあ

ありがとうございました。
731デフォルトの名無しさん:2010/01/08(金) 14:41:09
あ、乗っかってるの書き方が不味かったね
ClassB:ClassDじゃなくて

ClassB{
 private ClassD = new ClassD();
}
って感じ(所謂委譲)です
732デフォルトの名無しさん:2010/01/08(金) 14:44:52
デザイナで作ってるんでしょ? カスタムコントロールじゃないっていうならなおさら意味不明だよ。
入門書からやり直したら。
733デフォルトの名無しさん:2010/01/08(金) 14:47:04
>>732
当然カスタムコントロールです、カスタムコントロール上にカスタムコントロールが貼り付けて有るイメージです
734デフォルトの名無しさん:2010/01/08(金) 15:20:16
>>730
const にこだわらないなら逆の発想で、
const string R = "xy";
char A = R[0];
char B = R[1];
735デフォルトの名無しさん:2010/01/08(金) 15:32:58
>>733
>スタティックのイベント
というのがよくわからないけど、イベントの包含と委譲ならこういう感じで。

class Bar {
  public event EventHandler Do;
  public void Fire() { var eh = Do; if (eh != null) Do(this, EventArgs.Empty); }
}
class Baz {
  Bar bar = new Bar();
  public event EventHandler BarDo { add { bar.Do += value; } remove { bar.Do -= value; } }
}
736デフォルトの名無しさん:2010/01/08(金) 15:33:15
C++で作成されたDLL内関数を呼び出した際に確保された(malloc等)領域は自動で解放されますか?
737デフォルトの名無しさん:2010/01/08(金) 15:36:23
>>736
されない
738736:2010/01/08(金) 15:40:28
>>737
ありがとうございます。
では、C#のコードで解放するにはどうすればいいのでしょうか?
MemAlloc() ならAPIを直接呼べばよさそうですが、
malloc() や new がDLL内で呼ばれていた場合の対処法がわかりません。
739デフォルトの名無しさん:2010/01/08(金) 15:42:41
DLLにfreeやdeleteを呼び出す関数を持ってればいいだろ。
740736:2010/01/08(金) 15:45:50
>>739
それはそうなのですが、DLLのソースが行方不明になってしまい・・・。
正直なところどの関数によって確保されているのかすらわかりません。
741デフォルトの名無しさん:2010/01/08(金) 15:45:56
>>735
class Bar {
public event EventHandler Do;

public static event EventHandler Do;
というインチキやって

ハンドラー側で
742デフォルトの名無しさん:2010/01/08(金) 15:50:17
>>741
おっと書き込んじゃった

続き
class hoge{
func()
{
   Bar.Do += new EventHandler(hoge);
}
}
でイベント登録しちゃた
hogeでインスタンス持ってくるのはしょる為にこんな事したけど、皆さんはどうしているのかな?と言うのが知りたいんですよ
743デフォルトの名無しさん:2010/01/08(金) 16:01:02
>>740
無駄だって理解しろよ
744736:2010/01/08(金) 16:05:31
>>743
わかりました。
DLLを新規に作成することにします。
ありがとうございました。
745デフォルトの名無しさん:2010/01/08(金) 16:23:23
プロパティーとクロマティーって似てるよな(´・ω・`)
746デフォルトの名無しさん:2010/01/08(金) 17:14:31
>>742
オブジェクト指向って知ってる?
747デフォルトの名無しさん:2010/01/08(金) 20:54:29
C#でスクリーンのある位置のpixelが、
何色を表示しているかわかる方法ってありますか?
748デフォルトの名無しさん:2010/01/08(金) 20:58:35
>>747
画面の部分SS撮影してbmpに落とし込んで・・・は面倒か
749デフォルトの名無しさん:2010/01/08(金) 21:06:45
>>748のやりかた
Bitmap bmp = new Bitmap(_width, _height);
Graphics g = Graphics.FromImage(bmp);
g.CopyFromScreen(new Point(_left, _top), new Point(0, 0), bmp.Size);

_width _height は切り取りたいサイズ
_left _top 画面上の切り取り開始位置

あとはBitmap のGetPixelで指定すればOK?
750747:2010/01/08(金) 21:10:13
>>749,748
ありがとうございます

自分も
直接得る方法はないか
調べてみます
751デフォルトの名無しさん:2010/01/08(金) 21:24:40
C#やドットネトとはずれるがDirectX使えばできる
752デフォルトの名無しさん:2010/01/09(土) 01:14:42
C#ってほかの言語の良い部分をパクリまくってる言語だな。
それでいておかしなごちゃごちゃ言語構造にならないのはC#製作者の腕が良いからかね。
753デフォルトの名無しさん:2010/01/09(土) 01:17:37
パスカルを作った人なんだっけ?
C#は本当に使いやすい
754デフォルトの名無しさん:2010/01/09(土) 01:21:38
VisualJが外部から潰されなければC#は生まれてなかった
755デフォルトの名無しさん:2010/01/09(土) 01:28:36
foreachを使えば
int配列から3の倍数だけ取り出して
新しい配列をつくる
みたいなことがただの通常のfor文よりはるかに楽にできるよね
756デフォルトの名無しさん:2010/01/09(土) 01:32:58
.Where()で十分だろ
757デフォルトの名無しさん:2010/01/09(土) 01:35:24
>>752
そうは言っても、「ここは変だよ」的な不合理な点もいろいろあるにはあるよ。
個人的、例えば==演算子の扱いとか。
これに関しては悪い遺産を引きずってるはずのVBのやり方の方がまともだわ。

引数付きプロパティを頑なに忌避する姿勢もよくわからん。
分野によってはあるのとないので大違いなのに。
758デフォルトの名無しさん:2010/01/09(土) 01:37:36
>>754
そういう意味では駄作に見切りをつけるきっかけを作ったSunはGJだな

>>755-756
あとは、ver < 3.5の場合にArrayかList<T>のFindAll()くらいだな
759デフォルトの名無しさん:2010/01/09(土) 01:43:29
次の C# が言語崩壊の始まりかも。
yield は、いまでも不要と思う。
760デフォルトの名無しさん:2010/01/09(土) 01:46:42
>>758
Visual J++ は、今でも名作とされているけどな。
761デフォルトの名無しさん:2010/01/09(土) 01:49:05
あれもこれもと食い散らかして肥満体になるのです
かつてのC++の様に
762デフォルトの名無しさん:2010/01/09(土) 01:49:25
何か忘れてると思ったらVisualJなんてありましたね

763デフォルトの名無しさん:2010/01/09(土) 01:54:39
流れぶった切って悪い

FormのTransparencyKeyとBackColorを同じ色にして透明化して
BackgroundImageに透過色ありの画像を挿入するとFormの一部が
当然抜けるんだがこれって透過部分は判定すら無いんだけど
これはこういう仕様なの?
764デフォルトの名無しさん:2010/01/09(土) 02:01:05
レイヤードウィンドウの仕様
765デフォルトの名無しさん:2010/01/09(土) 02:05:32
VJ++ってWFCが使いやすかった印象なんだけどな
766デフォルトの名無しさん:2010/01/09(土) 02:07:19
>>761
言語仕様のシェイプアップは難しいもんな
767デフォルトの名無しさん:2010/01/09(土) 02:08:08
なんで最近関数型言語の機能を入れるのがブームなの?
誰が得するのかよくわからないんだけど
768デフォルトの名無しさん:2010/01/09(土) 02:12:13
>>767
CPUのマルチコア化や巨大クラスタの導入が進んで、並列化が重要になってきているから。
769デフォルトの名無しさん:2010/01/09(土) 02:12:19
>>764
なるほど

>>767
マルチコア化でオブジェクト指向より関数型の方が並列処理に向いてるとかなんとか
770デフォルトの名無しさん:2010/01/09(土) 02:13:31
どの辺が関数型?
ラムダ式なんて糖衣構文レベルじゃねえの?
771デフォルトの名無しさん:2010/01/09(土) 02:28:35
>>768
>>769
アスペクト指向とかいう話もあったけど
すでにそれも時代遅れなのかな?
772デフォルトの名無しさん:2010/01/09(土) 07:33:52
>>771
アスペクト指向って部品化に向いていないからね
773デフォルトの名無しさん:2010/01/09(土) 09:51:31
F#のこといってんのかね
774デフォルトの名無しさん:2010/01/09(土) 10:30:40
F#はC#を駆逐するために放たれた刺客。
775デフォルトの名無しさん:2010/01/09(土) 10:42:39
印刷プレビューダイアログボックスに、印刷用のボタンが付いていますが、
その印刷用のボタンを押したときに印刷ダイアログボックスを表示するようにする方法を教えてください・・・!
776デフォルトの名無しさん:2010/01/09(土) 11:02:05
2.【C#】文字列が全角か半角かを調べる方法
C#の正規表現を用いて、漢字を除去する方法を考えています。

public static string Remove_Kanji(string moji)
{
string a = "";
try
{
for (int i = 0; i < moji.Length; i++)
{
if (Regex.IsMatch(moji.Substring(i, 1), @"^.*\p{IsCJKUnifiedIdeographs}.*$"))
{
}
else
{
a += moji.Substring(i, 1);
}
}
}
catch
{
エラー命令
}
return a;
}

と記載したのですが、「佐々木」の「々」が漢字とみなされないのか、除去されずにReturnされます。
正規表現で漢字を検知する機能には限界があるのでしょうか。
もし、他に方法があれば教えていただけないでしょうか。
777デフォルトの名無しさん:2010/01/09(土) 11:03:56
C#で、全角かどうかを判定する方法はありますでしょうか。
・shift-jisに変換して文字コードを判別する方法
※ 過去にサイトで見たことがあるのですが、どのサイトかは失念してしまいました。
・文字のバイト数で判定する方法
http://7ujm.net/NET%20Framework/isOneByteChar.html
http://codezine.jp/article/detail/1083?p=2
・正規表現を用いて判定する方法
http://dobon.net/vb/dotnet/string/regexismatch.html
※半角文字列の判定方法ですが、半角が見つからないときは全角とみなしていいのかもしれないので、チェックしています。
がありましたが、

正直文字コードについての知識がなく、どれが堅実な方法か、長所短所は何かなどが分からないんです。
よろしくお願いします。
778デフォルトの名無しさん:2010/01/09(土) 11:11:51
C#でそういうのは組んだこと無いけど、別環境で
自前で文字コード関連を実装したときはs-jisがやりやすかったかな

半角はアスキー互換だし全角についてはアスキーの空き部分を使ってるから
判定は楽だし

http://qpon.quu.cc/pc/sjis.htm
779デフォルトの名無しさん:2010/01/09(土) 11:22:54
>>776
「残してもいい文字」で考えればいいんじゃないの?
>>777
1文字取り出して半→全変換して変化があったら半角
780デフォルトの名無しさん:2010/01/09(土) 11:32:21
々〃とか鬼門だったな。単純に00ffを越える文字は全部読み飛ばすじゃダメなの?
781デフォルトの名無しさん:2010/01/09(土) 11:37:05
ttp://msdn.microsoft.com/ja-jp/library/20bw873z.aspx#SupportedNamedBlocks
で見ただけでもCJK関連はこれだけあるね。
々はIsCJKSymbolsandPunctuationみたい。

IsCJKRadicalsSupplement
IsCJKSymbolsandPunctuation *
IsCJKUnifiedIdeographsExtensionA
IsCJKUnifiedIdeographs
IsCJKCompatibilityIdeographs
IsCJKCompatibilityForms
782デフォルトの名無しさん:2010/01/09(土) 11:55:30
々って 3005か
783デフォルトの名無しさん:2010/01/09(土) 12:18:44
ということは、正規表現の
\p{IsCJKUnifiedIdeographs}
だけでは日本人の要望に合致しないわけか…。
あと何が必要なんだろう。
>>781さんの定義が必要なのかな。
と言いつつ、…CJKって何…?
784デフォルトの名無しさん:2010/01/09(土) 12:20:54
>>783
http://ja.wikipedia.org/wiki/CJK%E7%B5%B1%E5%90%88%E6%BC%A2%E5%AD%97
CJK統合漢字とかCJKVとかあるんだね
まあ英語圏以外の2バイト以上の文字使うところに関係してるようだけど
785デフォルトの名無しさん:2010/01/09(土) 12:20:57
支那日本朝鮮
786デフォルトの名無しさん:2010/01/09(土) 12:22:25
チャイニーズ・ジャパンニーズ・コリアン文字セット
16ビットに入りきらないんで漢字圏の文字はごちゃ混ぜなのよ。
787デフォルトの名無しさん:2010/01/09(土) 12:25:03
なんと…China・Japanese・Koreanの頭文字とな…!!!!!!!!!!!
788デフォルトの名無しさん:2010/01/09(土) 12:26:01
Chinese-Japanese-Korean-Vietnamese
もあるんだな
BRICsとかVISTAみたいなもんか
789デフォルトの名無しさん:2010/01/09(土) 12:27:57
>>788
「vista」もそういう流れできてるの?
790デフォルトの名無しさん:2010/01/09(土) 12:29:54
>>789
OSは知らんけど数年前の投資ブームの時はVISTAってこれから発展するであろう
国の名前並べていってたね。VISTAじゃなかったかもしれないが発音はビスタだった
791デフォルトの名無しさん:2010/01/09(土) 12:31:23
BRICs(ブリックス)とは、経済発展が著しいブラジル (Brazil)、ロシア (Russia)、インド (India)、中国 (China) の頭文字を合わせた4ヶ国の総称。

V ベトナム
I インドネシア
S 南アフリカ共和国
T トルコ
A アルゼンチン
792デフォルトの名無しさん:2010/01/09(土) 12:31:48
つまり…isCJKで始まる分類を指定しておけば、
漢字を除去できると考えてよさそうだね。
勉強になりました。今日得た知識でも数万円の価値がある…!
793デフォルトの名無しさん:2010/01/09(土) 12:32:55
>>776>>783
繰り返し記号はもとから漢字じゃなくて記号
 ゝ (ひらがな用)
 ヽ (カタカナ用)
 々 (漢字用)

>>777
ttp://www.unicode.org/reports/tr11/
ttp://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt

文字幅に関しては規定されているから自分で実装するといい
文字列について判定するなら、全角/半角/混成/不明くらいかね
794デフォルトの名無しさん:2010/01/09(土) 12:34:45
795デフォルトの名無しさん:2010/01/09(土) 12:45:50
>>793
難しすぎる…英語もあるし…。
英語の成績丙の私に分かりやすく教えていただけないでしょうか・
796デフォルトの名無しさん:2010/01/09(土) 12:47:48
CJKVとか御託並べてるけどJオンリーなんだろ?
S-JISにコンバートしてアスキーの基本文字以外のコードが出てきたらそのコードともう一文字削っとけばいいよ
797デフォルトの名無しさん:2010/01/09(土) 12:49:33
>>779
もともと半角の文字が紛れているときはどうしたらいいんだろ。
返還前後で変化がないけど半角として残したいし…。
798デフォルトの名無しさん:2010/01/09(土) 12:52:24
bool IsHankaku(string c) { }って書くんだよ。元を変更する必要なんてない
799デフォルトの名無しさん:2010/01/09(土) 12:54:49
>>797
S-JISで適当な全角半角混在テキスト作って保存、バイナリエディタで中みてみなよ

↑上の文字列を実際に覗いてみるとこんな感じ
http://uproda.2ch-library.com/203594AB4/lib203594.png
800デフォルトの名無しさん:2010/01/09(土) 12:56:43
>>798
もし半角が引数に与えられて、
半角から全角への変換前後で変化があったときだけ、全角とした場合は、
もし「カ」が入ってきたら変化がないので全角とみなされてしまうよ。
801デフォルトの名無しさん:2010/01/09(土) 13:19:29
まあ、試してみる?
static class ExtensionMethods
{
 public static bool IsHankaku(this string target)
 {
  return target.CompareTo(Strings.StrConv(target, VbStrConv.Wide, 0)) != 0;
 }
}
802デフォルトの名無しさん:2010/01/09(土) 14:57:10
文字コードがらみの話が出るたびに英語圏に産まれたかったなと切に思う。
803デフォルトの名無しさん:2010/01/09(土) 14:59:44
移住しろよ、今からでも
804デフォルトの名無しさん:2010/01/09(土) 15:03:23
VisualStudio2008を使用してC#を独習中なのですが
規模の大きいプログラムを扱った経験がなく
一つのプロジェクトの中で、1ファイルとしてまとめるクラスの規模を
どのように扱っていいのか迷っています。
例えばポリモフィズムを使うことで作られた複数の数行だけのサブクラスや
その継承元の抽象クラスなどを、どの単位で1つのファイルとして扱うのか
といった基本的な事なのですが
指針として参考にできそうなサンプルや、解説サイト等はありますでしょうか。
よろしくお願いします。

805デフォルトの名無しさん:2010/01/09(土) 15:05:41
そういうこと知りたいなら2chじゃなくて
C#の知識が豊富な誰かと仲良くなることからはじめるといいよ
806デフォルトの名無しさん:2010/01/09(土) 15:16:46
>>804
1ファイル1000〜2000行以内が目安。
あまり分けても保守が大変なので、機能別や保守単位でまとめてもいいけど、
基本は、プロジェクトチーム内で方針を相談して決める。
プロジェクトごとに全然異なるので変なこだわりを持つと諍いの元。
807デフォルトの名無しさん:2010/01/09(土) 15:18:45
行数で、って愚の骨頂。
808デフォルトの名無しさん:2010/01/09(土) 15:21:53
>>806
なるほど。コーディング規約などのように
一般的な基準が設けられていたり、セオリーがあるわけではないんですね。
自分としては、職場はプログラミングとは無縁ですし
今後もサンデープログラマーの域を出ることはないので
機能などから適せん判断して整理していこうと思います。
ありがとうございました。
809デフォルトの名無しさん:2010/01/09(土) 15:22:24
>>807
仕事すれば分かる。
810デフォルトの名無しさん:2010/01/09(土) 15:34:26
いや、行数は俺もないと思うわw
811デフォルトの名無しさん:2010/01/09(土) 15:38:56
行数が(たとえば)2000行を超える場合、機能の分割が不十分なことが多い。
なので、機能の分割を考える。

なら理解できるかな。
812デフォルトの名無しさん:2010/01/09(土) 15:41:11
C#だったら、基本は1クラス1ファイルじゃね?
813デフォルトの名無しさん:2010/01/09(土) 15:42:22
必要であれば10行でも別ファイルにするよな。

>>808
ここ便利だよ。
lang:c# で検索して他人のコード見まくるといいんじゃないかな。
http://www.google.com/codesearch
814デフォルトの名無しさん:2010/01/09(土) 15:42:47
>>812
それ言い出すとpublic enumもpublic delegateも1ファイル1つになってしまうよ。
815デフォルトの名無しさん:2010/01/09(土) 15:43:11
カプセル化と同じだと思うけどね
意味的にカプセル内なのに割っても仕方ないし、意味的に分けたのに同一ファイルにいるのも危険
816デフォルトの名無しさん:2010/01/09(土) 15:44:23
>>812
基本はそうだけど
イベントとイベント引数みたいなのは一つに纏めること多いなぁ。

Javaみたいに1ファイル1クラスを強制されてないから結構一纏めやってるわ。
817デフォルトの名無しさん:2010/01/09(土) 15:45:44
フォームなんかは partial で複数ファイルに分割されてる(隠蔽されてるけど)し、
データクラスなんかは、ひとつのファイルに複数の関連クラスが含まれてるね。
818デフォルトの名無しさん:2010/01/09(土) 15:46:14
>>810
行数が一番効率的に管理できんだよ。
PGに割り振るときって最低1000〜2000行ぐらいの機能ずつ割り振るだろ。
1クラスにでかいメソッドがあって、それを一人のPGに任せるときは、それだけ1ファイル切り出す。
それがまた数千行。そしたら結局は行数が目安になんだよ。経験則に合致するだろ?
10万行のプロジェクトで50から100ファイル。
行数からしてテスト項目が数千とか推測できて、楽に管理できる。
819デフォルトの名無しさん:2010/01/09(土) 15:47:16
ああ、ダメだ
820デフォルトの名無しさん:2010/01/09(土) 15:48:46
これが反面教師ってやつですね。わかります。
821デフォルトの名無しさん:2010/01/09(土) 15:49:19
人それぞれじゃんね。
Effective C# あたり読んだらそこらへんの一般例とか載ってないかね?

って目次見たけど結構面白そうだな。
http://www.seshop.com/detail.asp?pid=11698&mode=spec

もう買って読んだ人いる?
822デフォルトの名無しさん:2010/01/09(土) 15:51:12
まあでも実装からだいたいの行数は想像出来たりするわな。
特に業務系のベタに手続き書く系のメソッドなんかは。
823デフォルトの名無しさん:2010/01/09(土) 15:51:42
オブジェクト指向がわからないコーダーをひきいてでっちあげる技術と考えれば、まあ
824デフォルトの名無しさん:2010/01/09(土) 15:59:10
>>820
納期や線表、人月を考えなくていい人には理解できない話だよ。
ど素人PGが混ざってる可能性とか考えたことあるかい?
それが重要な基幹クラスのファイルをコンパイルできなくなった日にゃ・・・
どこまでロールバックしていいかすら本人聞いても分からないんだぜ。
このソースは誰が書いたってだけが明白なだけでも全然違うんだよ。
825デフォルトの名無しさん:2010/01/09(土) 16:02:07
人月とかさすがに忌むべき習慣になってきてると思うけど、
現実的に会社で管理やるとなるとそれで話するしかないんだよね。

成果主義で見積りたててる人ってどうやってるの?
うちはC#でやるときも人月とステップ or ページ単位の見積りだよ、いまだに。
826デフォルトの名無しさん:2010/01/09(土) 16:02:10
普通は、ビルドに問題ないことを確認してからチェックインの流れです。
ソース管理ツールを使ってれば、誰が書いたコードなのかすぐにわかります。

こういうダメなプロジェクトには参加しないようにしましょうね。>素人PGのみなさん
827デフォルトの名無しさん:2010/01/09(土) 16:02:22
Javaのように1万ファイルとかになってまともに管理できると思ってる奴っているの?
デスマーチってほんとにPGが消えるように連絡なしに急に来なくなるんだよ。
828デフォルトの名無しさん:2010/01/09(土) 16:03:06
ソース管理ツールを銀の弾丸だと思ってるやつって未だにいるんだな。
829デフォルトの名無しさん:2010/01/09(土) 16:04:29
アジャイルとかって青臭い理想論だよね。
830デフォルトの名無しさん:2010/01/09(土) 16:05:45
>>826
それは単純なプロジェクトの場合。
ひとつのファイルを複数の人がいろいろな理由で更新するなんてよくあることなんだけど。
というか大きなプロジェクトや複雑な機能のプロジェクトやったことないんじゃないの?
831デフォルトの名無しさん:2010/01/09(土) 16:06:13
(両陣営ともに長文を準備中です。しばらくお待ちください。)
832デフォルトの名無しさん:2010/01/09(土) 16:07:33
>>830
ここは妄想SEが跳梁跋扈するスレだってことをお忘れなきよう。
なのでそろそろ手仕舞いしてください。
833デフォルトの名無しさん:2010/01/09(土) 16:08:28
つーか、お前のプロジェクトのことなんて知らんから、その前提を質問者に押しつけるなよ、って話だな。
834デフォルトの名無しさん:2010/01/09(土) 16:09:24
そろそろ「数百万行規模のプロジェクトをやってる」って話が出て終わりかな。
835デフォルトの名無しさん:2010/01/09(土) 16:09:45
>>832
そうですね。最初に言ったことが結論です。

>変なこだわりを持つと諍いの元。

退散します。
836デフォルトの名無しさん:2010/01/09(土) 16:10:24
行数で、っていうのがあるんだな。おどろいた。
とりあえずのお勧めは、1クラス1ファイル。enumだろうがなんだろうが1ファイルで。

そのうち「ここはこうした方がいい」部分が見えてくる。
837デフォルトの名無しさん:2010/01/09(土) 16:12:19
言行不一致カコワルイ
838デフォルトの名無しさん:2010/01/09(土) 16:13:21
839デフォルトの名無しさん:2010/01/09(土) 16:23:18
テキストボックスを改行するにはどうしたらいい?

string s="abcd\nefgh";
TextBox1.Text=s;

ってやると、abcdefghてなっちゃう
abcd
efgh
ってやりたいんだけど
840デフォルトの名無しさん:2010/01/09(土) 16:23:43
Visual Studioは、1クラス1ファイルだと、リファクタリングしてくれるね。
841デフォルトの名無しさん:2010/01/09(土) 16:25:56
>>839
MultiLineプロパティ
842デフォルトの名無しさん:2010/01/09(土) 16:26:20
プロだけど1ファイル1万越え普通にある俺は異端かもしれんねw
843デフォルトの名無しさん:2010/01/09(土) 16:26:50
>>839
\r\n
Environment.NewLineを使ったほうがいいかも。
あとMultiLineプロパティも忘れずに
844804:2010/01/09(土) 16:27:03
プログラミングでゴハン食べてる方々の間でも
様々に苦労されてるテーマなんだと実感しました。

まずは1クラス1ファイルで書きながら、試行錯誤してみます。
本当にありがとうございました。
845デフォルトの名無しさん:2010/01/09(土) 16:27:45
Byte配列から特定の範囲だけ取り出したいのですがどうしたらいいんでしょうか?
846デフォルトの名無しさん:2010/01/09(土) 16:28:08
>>842
それはちょっと流石に問題ありだと思う。
手続き指向のころだってそんなんやってると叱られたぞ。
847デフォルトの名無しさん:2010/01/09(土) 16:34:06
>>842
一人でコーディング、テスト、デバッグならいいけど、複数人にまたがったら効率悪いじゃん。
848842:2010/01/09(土) 16:38:31
>>847
複数人で同じファイル開発するとかマゾいからやらない
1ファイル1人だね
でも行数が多くなったという理由で分けたりはしない
あくまでも機能レベルで分けるだけかな
849デフォルトの名無しさん:2010/01/09(土) 16:41:50
>>845
List<byte>.GetRange()
850デフォルトの名無しさん:2010/01/09(土) 16:41:56
>>848
それ多分機能分割出来てない
851デフォルトの名無しさん:2010/01/09(土) 16:44:01
1万行越えってゴテゴテのformとか?
852デフォルトの名無しさん:2010/01/09(土) 16:44:02
クラスの概念よくわからんから
全部初期のクラスに書いてる
後はフォーム別に分けてる
メソッドとかごちゃごちゃしてて、見づらいけどね
853デフォルトの名無しさん:2010/01/09(土) 16:47:24
>>852
そういうときは
#region
#endregion
854デフォルトの名無しさん:2010/01/09(土) 16:48:06
勿論regionで分けまくってる
メインフォームがもう3千行レベルになってるからね
855デフォルトの名無しさん:2010/01/09(土) 16:48:40
regionで読みやすくなると思ってる馬鹿は絶滅した方がいい
856デフォルトの名無しさん:2010/01/09(土) 16:50:43
>>855
ガキじゃないんだから代替案ぐらい出してから言えよ、低脳。
MSのソースだって使いまくってるのに。
857デフォルトの名無しさん:2010/01/09(土) 16:52:45
#region使うと逆に見落としとか起きない?
858デフォルトの名無しさん:2010/01/09(土) 16:53:04
全部wwwwww初期のクラスにwwwwwwww書いてるwwwwwwwww

VB使ってろボケ
859デフォルトの名無しさん:2010/01/09(土) 16:54:00
見落とすも何も見たくないから見えないようにするの。
860デフォルトの名無しさん:2010/01/09(土) 16:56:38
データをクラス化してメソッドにすればどんどん外に出てくだろ…常識的に考えて
button_clickに10行以上書いたら負けだと思え
861デフォルトの名無しさん:2010/01/09(土) 16:56:55
>>850
言うと思ったw
>>852
行数多いのは主にカスタムコントロールだね
ファイル分けてもプロジェクトに取り込むときによけいに
分かりにくくなるだけだから、実際に使う単位でしか分けない
862デフォルトの名無しさん:2010/01/09(土) 16:58:47
>>861
外に出てくるなよ、迷惑になるから。
863デフォルトの名無しさん:2010/01/09(土) 17:02:22
カスタムコントロールだったらコントロール毎かカスタムコントロールまとめてかでDLL化するもののような気がするから
ソースを分けたら判りにくくなるってのはよくわからん

見たくないからregionってのもオレにはわからん
864デフォルトの名無しさん:2010/01/09(土) 17:03:31
>>863
いつもの自称プロだろ。気にしないほうがいいよ。
865デフォルトの名無しさん:2010/01/09(土) 17:04:19
>>863
そうか分からないのかw それは仕方がないな。
866デフォルトの名無しさん:2010/01/09(土) 17:05:10
>>864
以前プロにバカされたのか?w
867デフォルトの名無しさん:2010/01/09(土) 17:25:26
叩かれてレス番真っ赤になった自称プロに馬鹿にされたことはある
868デフォルトの名無しさん:2010/01/09(土) 17:26:20
一貫性があるんならどうでもいいけど
869デフォルトの名無しさん:2010/01/09(土) 17:28:09
w
870デフォルトの名無しさん:2010/01/09(土) 17:29:07
一貫性なんて幻想ですよ。
思想の全く異なる複数のPGがひとつのものを開発するのですから。
871デフォルトの名無しさん:2010/01/09(土) 17:29:13
あまり気にしないこった。
初心者が気を揉んでもどうしようもないがな。
872デフォルトの名無しさん:2010/01/09(土) 17:34:58
行数が目安なんて関数の長さとかでLinusが昔から言ってたじゃん。パクリネタでしょ。
873デフォルトの名無しさん:2010/01/09(土) 17:40:25
パクリもなにもLinusを引き合いに出すまでもなく普通の話。
C言語華やかなりしころの教科書にはその手の話が普通に載ってたわ。
874デフォルトの名無しさん:2010/01/09(土) 17:44:01
マクロの手法とミクロの手法を混ぜて語ってもしょうがないな。
週末だから仕方ないかもしれんがそろそろお開きにしよか。
875デフォルトの名無しさん:2010/01/09(土) 17:45:37
連休は始まったばかりだ。
あぁプロは連休などないのですね。分かります。
876デフォルトの名無しさん:2010/01/09(土) 17:49:55
PGSEってどうしても他人のしてることにケチを付けざるをえないんだよな。
上手く運用されてようが失敗してようが関係ない。

何時だって自分が最高に正しいもんな、俺等って。
877デフォルトの名無しさん:2010/01/09(土) 18:10:20
批評家きどりっすからね
878デフォルトの名無しさん:2010/01/09(土) 18:11:55
c言語あたりからの人ってコーディング暦20年ぐらい?
879デフォルトの名無しさん:2010/01/09(土) 18:19:14
まだ14〜23で9年
880デフォルトの名無しさん:2010/01/09(土) 18:45:07
せめてどこどこで議論されてるよ、くらいの情報は欲しい
俺はこうしてる!なんてどうでもいい
881デフォルトの名無しさん:2010/01/09(土) 19:27:23
このスレでこういう議論がされてる
882デフォルトの名無しさん:2010/01/09(土) 19:36:38
>>870
まわりはみんな学会です
883デフォルトの名無しさん:2010/01/09(土) 19:57:04
ト学会か何かですかw?
884デフォルトの名無しさん:2010/01/09(土) 20:25:31
突っ込んだつもりがボケになってるなw
885デフォルトの名無しさん:2010/01/09(土) 20:45:08
現実を知らないど素人どもよ。IT業界には来るなよ。
886デフォルトの名無しさん:2010/01/09(土) 20:47:27
言われなくても行きません
887デフォルトの名無しさん:2010/01/09(土) 20:54:16
初心者スレでしか偉そうに語れないIT土方のおっさんw
888デフォルトの名無しさん:2010/01/09(土) 20:58:24
おっさんにバカにされたくないなら自分で10分くらいは検索してからきてくれよ。頼むよ。
「C# なんとかかんとか」って入れれば80%以上の確率で正解にたどり着くんだから。
889デフォルトの名無しさん:2010/01/09(土) 21:00:11
んなことしたらこのスレの意味ねーじゃん
このスレの存在意義を否定してどうすんだw
890デフォルトの名無しさん:2010/01/09(土) 21:03:05
おっさんが出てけばいいだけの話
自分好みのスレ立ててセンズリこいてろハゲ
891デフォルトの名無しさん:2010/01/09(土) 21:06:19
>>795
East Asian Widthでググる
892デフォルトの名無しさん:2010/01/09(土) 21:37:18
>>888
おっさんバイバイ
おっさんが居なくてもこのスレはまわる
893デフォルトの名無しさん:2010/01/09(土) 21:41:32
>>777氏の質問でふと感じたのだが、
半角⇒全角に変換できない文字って存在するのでしょうか。
894デフォルトの名無しさん:2010/01/09(土) 21:56:32
ガキってすぐキレて、出てけとか排他的になるよな。
.netみたいにどんな言語でもいらっしゃ〜いみたいに大きな心持てよ。
でないとjavaみたいになるぞ。
895デフォルトの名無しさん:2010/01/09(土) 22:07:41
C#はそろそろ言語の根幹部分の肥大化やめた方がいいなぁとは思うけどな
896デフォルトの名無しさん:2010/01/09(土) 22:13:42
>>889
普通、先に検索するだろ。初心者とか関係ない。
897デフォルトの名無しさん:2010/01/09(土) 22:31:59
そんなルールこのスレにねえよ
マイルール遵守させたければ出てけ

決められた(コーディング)規則に歯向かうのか?
プロさんよ
898デフォルトの名無しさん:2010/01/09(土) 22:33:30
ルール作る側なんじゃね。
899デフォルトの名無しさん:2010/01/09(土) 22:35:32
つうかプロとオッサンは相談室行けよ。邪魔。
900デフォルトの名無しさん:2010/01/09(土) 22:37:30
年食うと粘着質になるから無理
901デフォルトの名無しさん:2010/01/09(土) 22:38:00
自分より詳しい人が許せないんですね。分かります。
902デフォルトの名無しさん:2010/01/09(土) 22:39:01
>>899
初心者用スレで知ったかできないでどこで知ったかするんだって話だもんなw
903デフォルトの名無しさん:2010/01/09(土) 22:39:05
>>894
お前こそ検索しない奴にも寛容になったら。
他人には素養を求めるくせに自分には求めないって恥ずかしい大人だな。
904デフォルトの名無しさん:2010/01/09(土) 22:41:36
PGSEの70%は恥ずかしい大人だよ(俺調べ)
905デフォルトの名無しさん:2010/01/09(土) 22:41:59
別にプロでもおっさんでもいいけど
ここにいる全員がプログラマみたいな前提で雑談するのやめろよ
>>824みたいなのな
おまえらの職業の事情なんて知りたくもないんだよ
906デフォルトの名無しさん:2010/01/09(土) 22:43:07
嫌な業界だな…
907デフォルトの名無しさん:2010/01/09(土) 22:47:10
業界ネタはマ板でやってくれw

ところで>>821のEffective C#って買いですか?
Effective C++とかEffective Javaとか良書だったけど
「項目49 C#2.0への準備」とかあるのが気になるw
908デフォルトの名無しさん:2010/01/09(土) 22:47:35
定年がx5歳とか言われてる業界が正常な訳ないだろ。
909デフォルトの名無しさん:2010/01/09(土) 22:49:35
定年15歳ってマジですか?
おれいま15歳だけど、何か質問ある?
910デフォルトの名無しさん:2010/01/09(土) 22:49:55
>>905
規模の大きいプロジェクトについて聞かれたから答えたという流れだったよ。
無知を指摘されたからってガキみたいに突っかかるなよ。
コーディング規約に行数の目安が入ってるなんて普通だから。
911デフォルトの名無しさん:2010/01/09(土) 22:51:41
プロジェクトって…別に”社内”でとは質問者は一言もいってないようだけど。
何勝手に解釈してるのこの人。
912デフォルトの名無しさん:2010/01/09(土) 22:53:04
ムキになんなよ、低脳w
913デフォルトの名無しさん:2010/01/09(土) 22:53:38
>>844からして個人ベースでの範囲を意図して質問してるよなぁ
得意気にコーディング規約とか語っちゃってアホちゃうかと
914デフォルトの名無しさん:2010/01/09(土) 22:54:29
背伸びしたいお年頃(30代)
915デフォルトの名無しさん:2010/01/09(土) 22:56:19
>>913
その前に>>808読んでねえだろ。

>自分としては、職場はプログラミングとは無縁ですし
>今後もサンデープログラマーの域を出ることはない

こんなのに業界の常識がどうとか語って天狗になって馬鹿じゃねえの。
本当に馬鹿じゃねえの。
916デフォルトの名無しさん:2010/01/09(土) 22:57:07
そうだね^^
917デフォルトの名無しさん:2010/01/09(土) 22:59:20
球界の常識を知らないのか!って昔あったな
918デフォルトの名無しさん:2010/01/09(土) 23:00:12
ヘジのコーディング規約ぐらい嫁よ
919デフォルトの名無しさん:2010/01/09(土) 23:04:29
>>918
黙れ天狗野郎
920デフォルトの名無しさん:2010/01/09(土) 23:05:25
神を馬鹿にする奴はここから去れ
921デフォルトの名無しさん:2010/01/09(土) 23:06:04
>>907
その本、なぜかMore Effective C#の訳本の方が先にでちゃったんだよな。
だから言語仕様的な部分はちょっと古い。
922デフォルトの名無しさん:2010/01/09(土) 23:06:07
〆⌒ヽ
( ‘д‘)<誰が禿やねん!!
    ∪l| ||ペシッ!!
    @ノハ@
    ( ‘д‘)<誰が禿やねん!!
        ∪l| ||ペシッ!!
        @ノハ@
        ( ‘д‘)<誰が禿やねん!!
            ∪l| ||ペシッ!!
            @ノハ@
            ( ‘д‘)<誰が禿やねん!!
                ∪l| ||ペシッ!!
                @ノハ@
                ( ´D`)
923デフォルトの名無しさん:2010/01/09(土) 23:06:54
今度はヘジ教かよ。病気だろお前らw
924デフォルトの名無しさん:2010/01/09(土) 23:09:19
>>918
読んでサンデープログラマが何の得すんの。
925デフォルトの名無しさん:2010/01/09(土) 23:10:04
カトラーにヘジ。かっこよすぎでしょ。ゲイツ君は見る目あるね。
926デフォルトの名無しさん:2010/01/09(土) 23:10:17
神だって
盲目的だな
927デフォルトの名無しさん:2010/01/09(土) 23:11:59
仕事でもあんまり行数でってのはないけどなー
規模が大きくなっても、大抵クラスの分け方は概ねルールになってるから、
それに従うとそこまで極端な大きさにはならないし。
まあなることもあるけどね、
928デフォルトの名無しさん:2010/01/09(土) 23:12:20
けど、各言語には信者が居るわけで、宗教には違いないと思うぞ。

設計者を崇めるのはちょっと毛色が違うとは思うが。
929デフォルトの名無しさん:2010/01/09(土) 23:18:46
>>921
なるほど、More〜のほうはC# 3.0/3.5対応なんですね。ありがとう
両方買ってみようかな
930デフォルトの名無しさん:2010/01/09(土) 23:18:50
サイドストーリーというかそれぞれの人格知ってたほうが面白いでしょ。
931デフォルトの名無しさん:2010/01/09(土) 23:19:57
>>921
訳は糞訳ですか?良訳ですか?
932デフォルトの名無しさん:2010/01/09(土) 23:22:41
なんでもいいけど
こんなスレでそこまで必死にさせるものって一体何なの?
何が駆り立ててるの?

まさか虚栄心だけってことはないよね
933デフォルトの名無しさん:2010/01/09(土) 23:24:13
>>932
shut up!!
934デフォルトの名無しさん:2010/01/09(土) 23:25:24
心の隙間を埋めたいんだ。
935デフォルトの名無しさん:2010/01/09(土) 23:30:18
なるほど
喪黒腹蔵の出番だな
936デフォルトの名無しさん:2010/01/10(日) 00:02:10
C#でのFormでは表ってないんでしょうか?
DataGridとかならあるんですが・・・。
937デフォルトの名無しさん:2010/01/10(日) 00:07:26
DataGridの何がいけないの?
938デフォルトの名無しさん:2010/01/10(日) 00:12:40
>>932
自宅待機中の暇人が多い
939デフォルトの名無しさん:2010/01/10(日) 00:19:16
クラス作ってデータソースに追加してフォームにD&Dすれば一式セットアップできるだろ表くらい
940デフォルトの名無しさん:2010/01/10(日) 00:19:39
Formに使うならDataGridViewでないかい?
941デフォルトの名無しさん:2010/01/10(日) 00:35:49
ああ、すいません。
SQLiteで組み込んでいたんですがDataGridViewでやってしまうと
./***.dbってソースを指定した場合にデザインだとフォームプロジェクト直下に。
実行時になるとDebug、Releseの直下になってしまってこれじゃだめだよなぁと思ってたんです。

でも、よく考えたら作ってやってからコピーすればいいんですよね。
それか自前で登録していく処理をかくだけですよね。
すいませんでした
942デフォルトの名無しさん:2010/01/10(日) 00:46:45
初心者なのでListViewしか使ったことがありません。
DataGirdViewを使えばどれぐらい便利になるのですか?
943デフォルトの名無しさん:2010/01/10(日) 01:29:38
uniqするときに、数を数えるにはどうしたらよいですか?
fruit.txt
りんご
りんご
みかん
みかん
みかん
バナナ
から、
りんご 2
みかん 3
バナナ 1
を得たいと考えました。
たんにuniqするだけなら、次のようにしてできます。
string[] fruits = File.ReadAllLines("fruit.txt");
string uniq;
foreach (string fruit in fruits) {
if (!uniq.Contains(fruit)){ uniq = uniq + fruit + "\r\n";}
}
944デフォルトの名無しさん:2010/01/10(日) 01:30:42
数を数えるためには、果物の種類ごとに分類してstringを作り、その行数を加えてから、最後にリストを作ればよいと考えました。
string[] fruits = File.ReadAllLines("fruit.txt");
string uniq;
int りんご;
int みかん;
int バナナ;
foreach (string fruit in fruits) {
if (fruit.Contains("りんご")) りんご += 1;
else if (fruit.Contains("みかん")) みかん += 1;
else if (fruit.Contains("バナナ")) バナナ += 1;
}
foreach (string fruit in fruits) {
if (!uniq.Contains(fruit)){
if (fruit.Contains("りんご")) { uniq = uniq + fruit + りんご.ToString() + "\r\n";}
else if (fruit.Contains("みかん")) { uniq = uniq + fruit + みかん.ToString() + "\r\n";}
else if (fruit.Contains("バナナ")) { uniq = uniq + fruit + バナナ.ToString() + "\r\n";}
}

これだと、fruit.txtに、イチゴが加わると、プログラムじたいを書き換えなければならなくなります。
こういう場合、どのようにしたらスマートなんでしょうか?
945デフォルトの名無しさん:2010/01/10(日) 01:36:40
果物の種類と数を格納するクラスのコレクションを作る。
946デフォルトの名無しさん:2010/01/10(日) 01:37:10
Constainsじゃなくて
名称       または
名称_XX     _はブランク
だったら名称で同一とみなしていいのかい?

それならまず数字の除去からはじめる。
947デフォルトの名無しさん:2010/01/10(日) 01:39:03
>>946
数字? なんか勘違いしてる気がする。
948デフォルトの名無しさん:2010/01/10(日) 01:40:12
ああすまん。
>りんご 2 
は結果か。とにかくConstainsというのは必須なの?
949デフォルトの名無しさん:2010/01/10(日) 01:41:30
んなわけねえだろ
950デフォルトの名無しさん:2010/01/10(日) 01:41:45
string[] fruits = File.ReadAllLines("fruit.txt");

foreach (var g in fruits.ToLookup(x => x))
Console.WriteLine("{0} {1}", g.Key, g.Count());

こんなんとか
951デフォルトの名無しさん:2010/01/10(日) 01:45:32
public class ふるーつ
{
public string なまえ;
public int こすう;
}

List<ふるーつ> list = new List<ふるーつ>();
952デフォルトの名無しさん:2010/01/10(日) 02:18:10
>>950
再利用しないならGroupByでよくね
953デフォルトの名無しさん:2010/01/10(日) 02:18:54
それもそうだ
954デフォルトの名無しさん:2010/01/10(日) 02:22:40
string result =
  (from fruit in fruits
   group fruit by fruit into fruitGroup
   select new String.Format("{0} {1}", fruitGroup.Count(), fruitGroup.Key)
  ).Agreegate((a,b) => a + b);
LINQなら一行でいける。読みやすいかは別として
955デフォルトの名無しさん:2010/01/10(日) 02:25:32
データ構造とアルコリズムを理解してない初心者を置いてけぼり。
これだから自称プロは
956デフォルトの名無しさん:2010/01/10(日) 02:28:51
>>942
表の表示・入力インターフェースとフィールドの内容が直結連動する。それだけ。
957デフォルトの名無しさん:2010/01/10(日) 02:35:28
別に質問者のために回答してるわけじゃないからなぁ。
958デフォルトの名無しさん:2010/01/10(日) 02:36:42
一回きりならdictionary<string,int>で充分
データとして扱うならclassが必要
アイテム別処理が必要ならポリモーフィズム

初心者なら勉強しろ。ましてそれは自分の仕事か好きで書いてるかだろ。甘えてどうすんだよ。
959デフォルトの名無しさん:2010/01/10(日) 02:45:13
>別に質問者のために回答してるわけじゃないからなぁ。
>別に質問者のために回答してるわけじゃないからなぁ。
>別に質問者のために回答してるわけじゃないからなぁ。

友達いないんだろうなぁ
960デフォルトの名無しさん:2010/01/10(日) 02:46:04
>954
エラー 'string.Format(System.IFormatProvider, string, params object[])' は 'メソッド' ですが、'型' のように使用されています。
です。
961デフォルトの名無しさん:2010/01/10(日) 02:49:13
>>955
本物のプロ様、初心者にご教授願います。
962デフォルトの名無しさん:2010/01/10(日) 02:56:21
ム板はマ板のように病んでないと聞いてきたけど
質問者も回答者もスキあらば煽りあい
ルール無用の残虐ファイトじゃないですか
963デフォルトの名無しさん:2010/01/10(日) 02:58:17
週末ですから
964デフォルトの名無しさん:2010/01/10(日) 03:00:50
さーせん、昨日から荒れてますなぁ
965デフォルトの名無しさん:2010/01/10(日) 03:06:21
>>951
レベル的には配列の方はがいいんじゃないの?
そうすえばリストの必要性もみえてくるだろうし

というかこれ以上仲間が増えないように口減らししてるのかね?
966デフォルトの名無しさん:2010/01/10(日) 03:10:34
string[] fruits = File.ReadAllLines("fruit.txt");
Dictionary<string, int> dict = new Dictionary<string, int>();

foreach (string fruit in fruits)
{
if (dict.ContainsKey(fruit))
dict[fruit]++;
else
dict[fruit] = 1;
}

foreach(var kvp in dict)
Console.WriteLine("{0} {1}", kvp.Key, kvp.Value);
967デフォルトの名無しさん:2010/01/10(日) 03:54:36
>>954
aggregateのスペルも違う
968デフォルトの名無しさん:2010/01/10(日) 04:34:32
Aというtextboxに
"私の出身は東京で、…………"と自己紹介を1,000文字表示させたいとき、
A.Text = "私の出身は…"と入力していくと画面右側に切れてしまいます。
また、途中で改行を入れてしまうとエラーになります。
大量文字を移送するとき、「+"…"」を繰り返して でつなぐしかないのでしょうか。
969デフォルトの名無しさん:2010/01/10(日) 04:49:08
textBox.MultiLine = true;
で複数行使える

フォーム上は単行にしておいて入力だけ複数行で行いたいなら
textBox.MultiLine = true;にしたtextBox Bを用意してtextBox A
にキャプションが来たらtextBox Bを表示してそっちで処理させるとか
970デフォルトの名無しさん:2010/01/10(日) 05:27:30
もしかしてこれのこと言ってるのかな。
string msg = @"aaaaaaaaaaa
bbbbbbbbb
cccccccc
ddddddddd";
971デフォルトの名無しさん:2010/01/10(日) 05:32:53
>>968
勝手な俺用語使われても困るんだが、要点は「文字列リテラルに長文を書く場合について」でいいか?

文字列に改行を含んでもいいなら>>970
そうでない場合は、+ で結合してその前後で改行
972デフォルトの名無しさん:2010/01/10(日) 05:40:35
>>961
ではコボルっぽいやり方を伝授しよう。
配列もコレクションも使わん。
 
string line; string savekey = ""; int count = 0;
while ((line = Console.ReadLine()) !=null) {
   if (savekey == line) count++;
   else {
        if (count > 0) Console.WriteLine("{0} {1}", savekey, count);
        savekey = line; count=1;
   }
}
if (count > 0) Console.WriteLine("{0} {1}", savekey, count);

C:> sort fruit.txt | ThisProgram
973デフォルトの名無しさん:2010/01/10(日) 09:41:52
コンボボックスに文字を直接入力できるようにしています。
また、Enterキーで次のタブオーダーに遷移するようにしています。
このときのビープ音なのですが、
テキストボックスについてはKeyPressイベントで
Handled=trueにすることにより音をけすことができましたが、
コンボボックスに文字を入力してEnterを押すと、ビープ音が鳴ります。
コンボボックスについて音を消すにはどうすればよいのでしょうか。
974デフォルトの名無しさん:2010/01/10(日) 10:07:44
PreviewKeyDownとか、WndProcとか
975デフォルトの名無しさん:2010/01/10(日) 11:21:52
VS2008のリソースエディタは何でこんなに重いの?
976デフォルトの名無しさん:2010/01/10(日) 11:25:40
嫌なら使わなくて結構です!
977デフォルトの名無しさん:2010/01/10(日) 11:26:14
そんな事言わずに代替アプリ教えてくれよぉ
978デフォルトの名無しさん:2010/01/10(日) 11:38:53
どれのこと言ってるの?
C#スレだし、重いというとこみるとWPFか?
979デフォルトの名無しさん:2010/01/10(日) 11:38:54
リソースくらい手書きしろ
980デフォルトの名無しさん:2010/01/10(日) 11:42:04
resxファイル編集の事だー
数十行の文字列つっこむだけで糞重くなる
なんぞこれ?
981デフォルトの名無しさん:2010/01/10(日) 12:00:07
GetKeyboardStateをC#で使いたいのですが引数にバイト配列を渡す書き方は
どのようにすればいいのでしょうか?
982デフォルトの名無しさん:2010/01/10(日) 12:01:25
>>978
わからないならレスするな
983デフォルトの名無しさん:2010/01/10(日) 12:12:51
984デフォルトの名無しさん:2010/01/10(日) 12:13:03
>>981
普通にref
985デフォルトの名無しさん:2010/01/10(日) 12:14:24
ああごめん
GetKeyBoardStateの引数はPBYTEか
986デフォルトの名無しさん:2010/01/10(日) 12:14:43
次ぎ立ててくる
987デフォルトの名無しさん:2010/01/10(日) 12:18:41
>>983
ありがとうございます
988デフォルトの名無しさん:2010/01/10(日) 12:20:22
ふらっとC#,C♯,C#(初心者用) Part53
http://pc12.2ch.net/test/read.cgi/tech/1263093575/
989デフォルトの名無しさん:2010/01/10(日) 12:21:59
>>982
それ以外じゃ別に重くないけどな
990デフォルトの名無しさん:2010/01/10(日) 12:22:59
別に重くない
プレス子かAtomででも開発してるの?
991デフォルトの名無しさん:2010/01/10(日) 12:25:01
いや、i9で開発してるけど糞重いよ
長い文字列突っ込むと30秒ぐらいフリーズする
992デフォルトの名無しさん:2010/01/10(日) 12:29:07
…長いってどのくらいよ
993デフォルトの名無しさん:2010/01/10(日) 12:30:42
100行3000文字ぐらい
994デフォルトの名無しさん:2010/01/10(日) 12:31:26
馬鹿だろお前
995デフォルトの名無しさん:2010/01/10(日) 12:31:58
ワラタ
996デフォルトの名無しさん:2010/01/10(日) 12:38:20
なんでだよボケ
リソースにテストデータ突っ込んでもいーだろksg
997デフォルトの名無しさん:2010/01/10(日) 12:39:37
画像データはデータ量として多いから普通にありだと思います。
998デフォルトの名無しさん:2010/01/10(日) 12:40:52
それ仕様という名の有名なバグ
解決策はありませんのでお引き取り下さい
999994:2010/01/10(日) 12:41:16
>>996
俺はi9について言ってる
i9発売は2010年4〜5月の予定だぞ
1000デフォルトの名無しさん:2010/01/10(日) 12:42:19
未来人?
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。