ふらっとC#,C♯,C#(初心者用) Part40at TECH
ふらっとC#,C♯,C#(初心者用) Part40 - 暇つぶし2ch1:デフォルトの名無しさん
09/04/13 14:08:37
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

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

前スレ

ふらっとC#,C♯,C#(初心者用) Part39
スレリンク(tech板)

2:デフォルトの名無しさん
09/04/13 14:08:48
2ならぬるぽ

3:デフォルトの名無しさん
09/04/13 14:08:52
-----関連スレ

C#, C♯, C#相談室 Part51
スレリンク(tech板)

WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3
スレリンク(tech板)

初心者のためのプログラミング言語ガイド Part14
スレリンク(tech板)

----参考サイト

URLリンク(www.google.co.jp)
URLリンク(msdn.microsoft.com)
URLリンク(homepage3.nifty.com)
URLリンク(www.atmarkit.co.jp)
URLリンク(dobon.net)
URLリンク(jeanne.wankuma.com)
URLリンク(www.labasp.net)

4:デフォルトの名無しさん
09/04/13 14:09:11
>>2
クソカスがっ

5:デフォルトの名無しさん
09/04/13 14:10:49
>>前スレ994
では質問を変えます。
ファイルパスから正しい大文字小文字を区別したファイルパスを取得する方法を教えてください。
Path.GetFileName()はパスを分解して返してくるだけで実際のファイル名を返しません。

6:デフォルトの名無しさん
09/04/13 14:13:59
>>5
質問に答える前に実行環境聞かれてただろ?
windowsなら
> 正しい大文字小文字を区別したファイルパス
そんなファイルパスは無いでFA

7:5
09/04/13 14:16:56
>>6みたいな内容を理解せずに誤った事を答える人は無理して書く必要はありません。

ところで自己解決しましたので載せておきます。
URLリンク(dobon.net)
URLリンク(dobon.net)

8:1
09/04/13 14:19:29
そういう実装依存な解決をするのもどうなのかとは思う

9:5
09/04/13 14:21:02
他に良い解決方法があるのですか?

10:デフォルトの名無しさん
09/04/13 14:24:02
何が言いたいんだお前は
ファイル名の大文字小文字を正しく取得したい
でいいんじゃないのか?

ちなみにWindows上では大文字小文字が違おうと同じファイル名として扱われる
だからTEST.txtをtest.txtとして取得しても、問題なくファイルは開ける。

ということで大文字小文字が違おうと"実際のファイルパス"は"返ってきてる"
ファイラーなどを作っていて、大文字小文字を正しく表示したい場合は、"実際のファイルパス"ではなく
"大文字小文字が正しいファイルパス"と言わないと伝わらない

あと、この問題は.NET Framework2.0で修正されてるようだが
おまいは未だに1.1を使ってるのか?

11:5
09/04/13 14:26:22
>>10みたいにただ感情的にスレを荒らす人は書く必要はありません
御自分でお調べになってください

12:デフォルトの名無しさん
09/04/13 14:27:12
煽り合い宇宙の様相を呈してまいりました

13:デフォルトの名無しさん
09/04/13 14:28:22
おまいが1.1を使ってるかどうかなんてどうやって俺が調べろとw

14:デフォルトの名無しさん
09/04/13 14:33:50
>>7
あれ?おまえ貧乳じゃね?

15:デフォルトの名無しさん
09/04/13 14:34:25
痛すぎる5を見てかーちゃん泣きそうだよ

16:デフォルトの名無しさん
09/04/13 14:39:12
なにがなんでもっていうんなら、DirectoryInfoから取れば?

17:デフォルトの名無しさん
09/04/13 14:41:40
5と一緒のプロジェクトでは働きたくないってことは把握した

18:デフォルトの名無しさん
09/04/13 14:56:36
ほんと何様のつもりなんだよな5はw

19:デフォルトの名無しさん
09/04/13 15:00:45
俺様

20:デフォルトの名無しさん
09/04/13 15:06:26
大文字小文字を区別するファイルシステムを持つコンピュータと共有するときどうなるんだろう

21:デフォルトの名無しさん
09/04/13 15:08:06
ワレワレハファイルシステム
テイコウハムイミダ

22:デフォルトの名無しさん
09/04/13 15:13:56
Linuxのsamba上にdateコマンドの出力を書き込んだdate1.txtとDATE1.txtを用意してみた。
エクスプローラー上では2つとも見える。
が、どちらをメモ帳等開いてもdate1.txtの中身が表示され、DATE1.txtにはアクセスできない。
dirコマンドでもエクスプローラー同様、2つとも見える。
しかし、typeコマンド、cygwinのcatコマンドではどちらもdate1.txtしかアクセスできない。

総合すると、見えはするが片方しかアクセスできないということだな。
実用にはならんだろう。

23:デフォルトの名無しさん
09/04/13 15:19:46
>>22
スレ違いな上に何を試してるのかも結論も意味不明

24:デフォルトの名無しさん
09/04/13 15:22:14
>>23

20のレスに対して端的に実験をしてみただけなんだが。
まさかそんな突っ込みがはいるとは思わなかったよ。

25:デフォルトの名無しさん
09/04/13 15:33:12
それなら自前でファイルシステム作って直接マウントしてやってみてよ

26:デフォルトの名無しさん
09/04/13 15:39:37
>>25
お前は何が言いたいんだ?

27:デフォルトの名無しさん
09/04/13 15:47:55
IDの出ない板で煽り合い、楽しいのう

28:デフォルトの名無しさん
09/04/13 15:57:00
自前のファイルシステムって・・・
OrenoFileSystemとか作れってことかい?
まず仕様から決めないとな

29:デフォルトの名無しさん
09/04/13 15:57:29
>>22がすごい参考になったのは俺だけ?

30:デフォルトの名無しさん
09/04/13 16:01:04
sambaで共有したディレクトリにそのOSから直接書き込むバカがいるってことはわかった。

31:デフォルトの名無しさん
09/04/13 16:26:40
Linux上は大文字小文字を判別する。Win上は判別しない。それだけ。

32:デフォルトの名無しさん
09/04/13 19:28:01
>>20
蛇足の蛇足になるが、WindowsにはPOSIXサブシステムとかあるから、
その気になれば、Windows機単独でも試せるぞ。

33:デフォルトの名無しさん
09/04/13 19:33:36
で、結局>>5は何がやりたかったの?

34:デフォルトの名無しさん
09/04/13 20:11:42
表示用か何かで、c:\program files→C:\Program Filesのように、
ディスク上に存在するとおりの名前を取得したいのではないかと推測。

35:22
09/04/13 20:25:52
アプリケーション設定の保存先はApplication Data/Local Settings/レジストリの
いずれかを選べるわけだが、プログラムのカレントに置くことは不可能なんだっけ?
(まあVistaでProgram Filesにインストールされちまったらどの道不可能なわけだが)

マイドキュメント内に設定ファイルを保存する仕様で、
データ保存用にYAMLとかSQLiteとか考えてみるかなぁ……。

36:デフォルトの名無しさん
09/04/13 20:33:55
ToolStripMenuItemに表示される文字列についてなんですが
「&&」が含まれる文字列をTextプロパティに設定した場合
表示上は「&」が1つだけになってしまいましたが
実際にTextプロパティから文字列を取得すると「&&」になっています。
表示も「&&」とするにはどのようにしたら良いのでしょうか。お願いします。

37:デフォルトの名無しさん
09/04/13 20:47:40
>>36
そもそも、&F と書いたらFキーに反応するメニューになるわけだが?
そこから類推して考えよう。

38:デフォルトの名無しさん
09/04/13 21:04:11
>>5
Path.GetFullPath()を試したか?

39:36
09/04/13 21:43:20
>>37
ありがとうございます。
ToolStripMenuItemにはUseMnemonicプロパティに相当するものがないようなので
自分で文字列そのものの&を増やしてやるしかないですかね

40:デフォルトの名無しさん
09/04/14 08:45:38
C#ってソースコード見られてしまうんでしょう?
ユーザーに配るときどうするの?
難読化するだけ?

41:デフォルトの名無しさん
09/04/14 08:55:27
知られたくないコードはdllにするなりしてネイティブ化すれば?

42:デフォルトの名無しさん
09/04/14 08:57:35
ネイティブ化って.NETを使わずC++で書くってこと?

あとdllにしてもノートブックで開くと見えてしまいますよね。

43:デフォルトの名無しさん
09/04/14 08:58:13
ノートブック?
ネイティブ化レベルで嫌ならそれはC#の問題じゃないだろ
暗号化ツールでも使えよ

44:デフォルトの名無しさん
09/04/14 09:02:52
Nandokuってソフトがあるから使えば

45:デフォルトの名無しさん
09/04/14 09:17:31
どうせILを解析されたらわかっちゃうんだから、嫌なら配布はやめて
サービスを提供するようにすれば?

46:デフォルトの名無しさん
09/04/14 09:19:18
俺はただ単に自分のソースが恥ずかしいから難読化してるw

47:デフォルトの名無しさん
09/04/14 09:26:47
じゃあ普通は難読化+暗号化するのね。

48:デフォルトの名無しさん
09/04/14 11:22:13
おれは、普通に書いてるつもりでも、
難読化した?って聞かれる orz


49:デフォルトの名無しさん
09/04/14 11:31:02
dllを作れば、ソースコードそのものは見られなくなるの?

50:デフォルトの名無しさん
09/04/14 11:31:01
>>48
引き抜きたい

51:デフォルトの名無しさん
09/04/14 11:33:54
>>50
抱かれたい Yes Falling'Love

52:デフォルトの名無しさん
09/04/14 12:50:30
今度、C#でアプリを作ろうと考えています。
そこで、今までのC++(MFC)の資産を多少流用したいのですが、連携って可能なんでしょうか?
一応、ネイティブコードは、マネージコードでラップしてやって呼び出せるのは試しました。
例えば、CDialogとかでUIやリソースを伴うものを、C#のフォーム内に貼り付けるみたいな事は実現出来ますでしょうか?
よろしくおねがいします。

53:デフォルトの名無しさん
09/04/14 13:26:35
>>52
詳細は自分でぐぐって調べればいいと思うが、
FormsとMFCは根本的に違う仕組みなので、残念ながらソースコードそのものの流用はほとんど利かないと思う。
せいぜい、ダイアログやウィンドウをコンポーネントのレベルで流用するくらいだろうか。
それもCOM越しかC++/CLIでラップする必要があるだろう。

54:デフォルトの名無しさん
09/04/14 14:03:02
>>53
有難うございます。
ビデオ編集ソフトを作れとのお達しなのですが、どうもDirectShowは
公式にC#から呼び出すクラスなどは用意されていないみたいで、
(DirectShow.netは権利的に使えないので)DirectShowをC++/CLIでラップするか、
それとも、DirectShowが必要な部分だけ(例えば表示とか)をC++で書いて、
そのコンポーネントを丸ごと持ってきちゃえばいいかなと思いました。
C++はMFCメインで今まで作ってきたのですが、例えばMFCで作成したクラスを
DLL等々にして、C++/CLIでラップしてやれば、実現できそうですかね?
有難うございました~。

55:デフォルトの名無しさん
09/04/14 15:21:15
文字等を描画表示するとき

protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
e.Graphics.DrawImage(_bmp, x1, y1, srcRect, units);


Invalidate();
としてまとめて書いた_bmpを更新して表示してるんですが

一文字ずつ書いた跡を表示したいので
このフォーム eにあたる部分に直接書き込む方法ないでしょうか?

56:デフォルトの名無しさん
09/04/14 15:32:23
>>49
ノートパッドというものを使うと
中味を見られてしまうと
教えてgooに書いてある

57:デフォルトの名無しさん
09/04/14 15:38:44
dllにもネイティブコードとILのがあんだろ
混ぜて考えるなよ

58:デフォルトの名無しさん
09/04/14 16:05:46
>>55
意味がわからん

59:55
09/04/14 16:18:14
e.Graphics.に直接Drawしたいのですが
他の場所でやるとバグってしまいます

書きたい場所からOnPaintを呼び出して
そこでDrawStringするように試してみます

60:デフォルトの名無しさん
09/04/14 16:19:38
このスレ見てるとたまに頭おかしくなりそうになるな

61:デフォルトの名無しさん
09/04/14 16:20:28
普通に逆コンパイラに食わせればすぐ見えるわけだが。
早速自作ソフトを食わせてみたが、リソースもソースコードも丸見えだなw
しかも、コメントがない程度でほとんどもとのコードと遜色がない。

機械語に変換されるネイティブと違って.NETはILまでしか落ちないからなぁ。
難読化? 別にいいや。

62:デフォルトの名無しさん
09/04/14 16:23:02
簡単に見られたくないコードはアンマネージドで書けってことか。

63:デフォルトの名無しさん
09/04/14 16:29:41
猫Winの文字化け表示の話をweb検索で解決できたw
まあ第3版買えってことなんだろうな

64:デフォルトの名無しさん
09/04/14 16:37:56
つ 難読化 ・・が続く、いつもなながれだな。飽きないね。

65:デフォルトの名無しさん
09/04/14 16:59:37
そこまでして見たがる人間がどこまでいるのかと
自意識過剰なんじゃね?

66:デフォルトの名無しさん
09/04/14 17:04:12
見られて困る部位をC#やVB.NETで書いてあるようなアプリなんて間違いなく使い物にならない

67:デフォルトの名無しさん
09/04/14 17:15:35
え?vb.netも見られちゃうの?

68:デフォルトの名無しさん
09/04/14 17:17:15
いやんみないでぇ

69:デフォルトの名無しさん
09/04/14 17:28:01
>>66
言えてるな。コアの部分にそれらの言語を選択してるアプリなんて
わざわざ逆アセしたところで得るものなんて何もない

70:デフォルトの名無しさん
09/04/14 17:28:08
お前の粗チン(ソースコード)何か誰もみねえよ
お前のソースコード覗いて100円の特になるか?
100銭の得にもならんだろ

っていってやれよ初めから
初心者ほど言い出しがちなネタなんだから
まず初心者脱出しろ

71:デフォルトの名無しさん
09/04/14 17:44:09
.NETの案件でいくら動くか知ってて言ってるのか……。

>>67
それだけじゃなくむしろC#で書かれたプログラムをVB.NETで逆アセしたり、また逆もできる。

72:デフォルトの名無しさん
09/04/14 17:48:05
MonoのAOTでネイティブコンパイルすればOK

73:デフォルトの名無しさん
09/04/14 17:49:29
スレタイに初質って書いてんだろ。
そんなスレで案件とか、字も読めない文盲か?脳障害か?
どっちにしろ病院の方が先だな。

74:デフォルトの名無しさん
09/04/14 17:51:57
何でキレてんのw
言ってることは分からんでもないがw

75:デフォルトの名無しさん
09/04/14 17:58:49
(´・ω・`)しーましぇん。

でもねー案件がどうとか言い出すなら、
予算出してもらってMSの難読化ツール買うなり、
ネイティブコード要因雇って移植するなりすりゃいいんじゃねえかと。

ボランティア回答スレで何求めてるの?
業務サポートですか?

76:デフォルトの名無しさん
09/04/14 18:00:37
>>59
もうちょっと整理してやりたいことと今やってることを書いてみたら。
OnPaintとそれ以外で描く場合の動作はわかってしまえば簡単なんだが
見た感じだけで動作を予測するのは難しい。

オフスクリーンバッファを用いれば解決しそうな気がしないでもない。

77:デフォルトの名無しさん
09/04/14 18:01:02
ソースを見られたら困るというほど貴重なテクニックとかアルゴリズムを使ってるなら
逆にそれを特許申請して金取って使わせたらどうよ

78:デフォルトの名無しさん
09/04/14 18:01:57
アセンブリ言語を使いたくてウズウズしてる先輩が食いついてきそうだ。

79:デフォルトの名無しさん
09/04/14 18:02:42
Win板の質問スレでも業務ネタを聞いてくる奴はいるなあ
責任持てないから然るべき所に依頼して下さいって叩き返されてるけど

80:デフォルトの名無しさん
09/04/14 18:09:42
しつこい。もういい。
ソースコードの話題は終了な。

81:デフォルトの名無しさん
09/04/14 18:13:52
>>71
もしかしてVB6をVB.NETにしてそれをC#にしたりもできるの?

82:デフォルトの名無しさん
09/04/14 18:20:21
実際やれよ

83:デフォルトの名無しさん
09/04/14 18:23:40
C#←MSIL→VB.NET は可能
VB6→VB.NET はVSの移行ツールで一応出来るけど・・とりあえず使ってみれ

84:デフォルトの名無しさん
09/04/14 19:15:00
>>55
やりたいことは意味不明だが、
質問への答えとして、CreateGraphicsが使えるのではという気がする。

85:55
09/04/14 19:35:55
この
OnPaint(PaintEventArgs e)
のeをよそでも使えるように、と書こうと思ったら
>>84
g = this.CreateGraphics();
これでできました。
ありがとうございます。

86:デフォルトの名無しさん
09/04/14 22:09:15
ILに落としてパスワードチェックを書き換えてilasmする生活が始まるお(;ω;

87:デフォルトの名無しさん
09/04/14 22:09:59
だからそんなもんC#で書くなよw

88:デフォルトの名無しさん
09/04/14 22:22:38
それってネイティブでも大差なくね?
バイナリ少し書き換えられたら終了じゃないか。

89:デフォルトの名無しさん
09/04/14 22:40:30
パスワードチェックのクラックぐらいだったらネイティブでも似たような
もんだよな確かに。

90:デフォルトの名無しさん
09/04/14 23:22:46
可読かどうかはスクリプトキディを寄せ付けないための必要で十分な条件かもしれない

91:デフォルトの名無しさん
09/04/14 23:25:08
apache2入れてみたんだが,apacheってどの板で盛んだっけ?

92:デフォルトの名無しさん
09/04/14 23:29:31
スレがあるのは多分自家鯖板じゃないかなあ
運用がテーマであってWebDevelopmentとは何の関係もないスレだとは思うがね

93:デフォルトの名無しさん
09/04/14 23:31:35
<a>
<b c=100 />
</a>
といったxmlファイルがあったとして、属性cをStringではなく直接
intで取る方法ってないでしょうか。

94:デフォルトの名無しさん
09/04/14 23:36:05
>>92
てぇんきゅー
ちょっと見てくるー

95:デフォルトの名無しさん
09/04/14 23:36:28
属性値は二重引用符で囲まないと整形式じゃなくなっちゃうよ
もしやるとしたらDTDなんかを使って
URLリンク(support.microsoft.com)

96:デフォルトの名無しさん
09/04/14 23:37:18
>>93
まず何で取ってこようとしてるのか書こうよ…
で,xml的にはattributeは必ず"で囲む必要があったんじゃなかったっけ?

97:デフォルトの名無しさん
09/04/14 23:44:46
行って見て来た
ちょうちょう初心者の俺にはタスク指向のヘルプがないと無理ということだけ分かった
畑違いすぎワロタ

DTDもいいけどxsdでinteger突っ込むのもいいかもね
外部ファイルが必要になるし,現行のプログラムじゃ導入までが面倒だとおもうが

98:デフォルトの名無しさん
09/04/15 00:24:18
俺はXMLよりYAMLのほうが読み書きしやすくて好きなんだが、
.NET向けにはいいライブラリがないんだよね……。

99:デフォルトの名無しさん
09/04/15 01:12:57
書くのは XML はインテリセンス、ツールチップコメントとか
エディタがフルサポート状態なので VS 使いとしては楽と
いうか。
Codeplex にあるんだっけ > YAML

100:デフォルトの名無しさん
09/04/15 01:19:37
yaml.orgには2つ.NET向けの実装が紹介されてるな(そのうちの一つがcodeplexの

101:デフォルトの名無しさん
09/04/15 02:17:51
そっかー。Visual Studioでxml書くとインテリセンスが使えるんだっけ。盲点だったな。
yaml-netの方は改造なしでそのままでは話にならないレベル。
yatools.netの方はDOMインターフェイスがなくてSAX的な読み方しかできないので、
YAMLを使う利点が半減してしまう。
まあ、静的型付言語にYAMLは向いてないのかもしれないが……。

後、せっかくなので。
.NETアプリケーション向けに簡単なstringやintegerを格納できるxmlの書式データってどこかにないだろうか?

102:デフォルトの名無しさん
09/04/15 02:23:02
アドオン作ればいいじゃん

103:デフォルトの名無しさん
09/04/15 02:46:43
>>101
クラス作ってxsd.exeって話?

104:デフォルトの名無しさん
09/04/15 02:59:14
>>101
XmlSerializer

105:デフォルトの名無しさん
09/04/15 03:45:51
すみません、前スレで
public string MessageText { get { return textBox1.Text; }
ってあったのですが、
Form1でこれやると怒られるんですが・・・

106:デフォルトの名無しさん
09/04/15 03:47:37
VSさんは親切にも具体的理由を挙げて叱ってくれているというのにガン無視とはどういう了見だ

107:デフォルトの名無しさん
09/04/15 03:48:29
静的クラスではダメですってことですか?

108:デフォルトの名無しさん
09/04/15 03:59:24
そもそもなんつって怒られたの?

109:デフォルトの名無しさん
09/04/15 04:02:19
そもそもForm1を静的クラスってどういうこと?

110:デフォルトの名無しさん
09/04/15 04:03:00
どうせForm1.MessageTextとか書いてんだろ

111:デフォルトの名無しさん
09/04/15 04:04:24
エントリポイントでインスタンスの作られていない脳内のForm1のことだとしたらここで聞かれてもな

112:デフォルトの名無しさん
09/04/15 04:04:30
前スレでも

>クラスとインスタンスの違いが理解できていないよーな

って言われてるねえ

113:デフォルトの名無しさん
09/04/15 04:05:43
午前4時に15分で7レスつくって何してんだおめーら。

114:デフォルトの名無しさん
09/04/15 04:06:12
残業

115:デフォルトの名無しさん
09/04/15 04:06:54
残尿

116:デフォルトの名無しさん
09/04/15 04:10:57
時差

117:デフォルトの名無しさん
09/04/15 07:37:44
趣味でプログラムやってる人間にとって、
C#って実用性ある?
皆仕事以外で何に使ってるの?

118:101
09/04/15 07:43:19
寝てる間にスレが流れた。
>>104
さっそく試してみた。エロいな、これは!

整数、実数、文字列、文字列のコレクション、全てOK。
アプリ依存のデータを入れる程度だったら、これで十分すぎるな。

119:デフォルトの名無しさん
09/04/15 07:48:48
>>117
WindowsでちょっとしたGUIアプリを書くのにこれほどお手軽な開発環境は無い。
VB.NETとどっちを使うかはお好みで。

120:デフォルトの名無しさん
09/04/15 09:18:42
>>117
文字列処理でも、ファイル処理でも、数値計算でも何でもできるよ。

昔はほんのちょっとした計算とか、ファイル操作とか何でもC#でやってた。
たまに使うためだけにsedとかgrepとかsh覚えても、すぐ忘れちゃうし、
全部インテリセンスに頼れるC#(てかVisual Studio)は便利。

最近はPowerShellがあるからワンライナーなものはこっちでやっちゃうけど、
10行超えたらもうC#。


121:デフォルトの名無しさん
09/04/15 11:38:10
VSのインテリセンスとリアルタイムなエラー指摘が無かったら
xsdなんか書ける気がしない

122:デフォルトの名無しさん
09/04/15 19:47:45
C#でネームスペースをDll化したんだけど
SummaryをDLL使った側で読むにはどうしたらいいの?

123:デフォルトの名無しさん
09/04/15 19:51:32
[AssemblyName].xml ってのができてると思うが。
できてないんならプロジェクトのプロパティ確認して。

で、インテリセンスは同じところにおいときゃ勝手に読む。
ドキュメントっぽくしたいなら Sandcastle とかで


124:デフォルトの名無しさん
09/04/16 00:25:21
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
MessageBox.Show("メッセージ");
}

これでXを押してもメッセージボックスがでないんですが、ほかに何か必要でしょうか?
環境のせいでしょうか。

125:デフォルトの名無しさん
09/04/16 00:29:22
イベントハンドラをイベントに追加してないんでそ
Form1.designer.csのInitializeComponentの中をのぞいてイベントに対して何やってるか見てみ
つかイベントはデザイナのプロパティグリッドの雷マークからやるようにした方が良い

126:デフォルトの名無しさん
09/04/16 00:29:30
>>124
どっかでForm1.Closing+=みたいにイベントハンドラさんにちゃんと教えてあげてる?
書いてあるだけで探して関連付けてくれる負んぶに抱っこは幼稚園までだよ!
みたいなことか

127:デフォルトの名無しさん
09/04/16 00:52:28
>>125-126
雷マークから追加でできました。
ありがとうございます。

128:デフォルトの名無しさん
09/04/16 01:09:28
質問です。WCFで通信量ってわかりますか?

129:デフォルトの名無しさん
09/04/16 01:18:57
>>128
よくわからんので調べてみた
URLリンク(social.msdn.microsoft.com)
とか
URLリンク(www.google.co.jp)


130:デフォルトの名無しさん
09/04/16 14:27:11
treeviewのノードを全部消したいんだけど、やり方がわからないです。
選択中のノードの消し方はなんとかわかったんだけど、
単純に全部消す方法を教えてください。

131:デフォルトの名無しさん
09/04/16 14:30:27
TreeView.Nodes.Clearとかじゃね
知らんけど

132:130
09/04/16 14:55:47
>>131
ありがとうございます!出来ました!

133:デフォルトの名無しさん
09/04/16 15:10:23
どういたしまして

134:デフォルトの名無しさん
09/04/16 18:02:30
>>129
解決してないですね
パフォーマンスモニタは精度が低いし・・・
自分でBindingを継承するなりしてみます。

135:デフォルトの名無しさん
09/04/17 00:16:22
ToolStripMenuItemのBackColorプロパティを設定しても
何も変わらないんですけど、特別な手順が必要ですか?

136:デフォルトの名無しさん
09/04/17 00:22:23
まずズボンを脱ぎます

137:デフォルトの名無しさん
09/04/17 00:49:00
次にスカートを穿きます

138:デフォルトの名無しさん
09/04/17 00:57:38
そしてクリをいじります

139:デフォルトの名無しさん
09/04/17 07:54:09
いきます

140:デフォルトの名無しさん
09/04/17 09:08:07
C#ってネイティブコンパイルできる?

141:デフォルトの名無しさん
09/04/17 09:54:41
Mono使えばできるらしいけど。

142:デフォルトの名無しさん
09/04/17 10:04:21
>>140
ngen.exeでググリ給え

143:デフォルトの名無しさん
09/04/17 10:07:22
しらなかった
ngen使えばソースみられない、でOK?

144:デフォルトの名無しさん
09/04/17 10:19:20
ngenしても元のアセンブリと一緒に配布しなきゃいけなかったような

145:デフォルトの名無しさん
09/04/17 10:23:49
・・・そなんだ

146:デフォルトの名無しさん
09/04/17 12:51:02
class A
{
 bool foo = false;
 public bool Hoge { get { return foo; } set { foo = value; } }
}

void ThreadProc(A objA)
{
 while (!objA.Hoge) { ~ }
}

他のスレッドがHogeをtrueにするまでループするようになっているのですが
この場合A.fooにvolatileは必要でしょうか?
プロパティを通してアクセスするので必要ないような気がするのですが
確信がもてません。

147:デフォルトの名無しさん
09/04/17 13:07:27
子フォームをドラッグして親フォームとある程度近い距離になったとき
親フォームの上下左右にぴったりくっつき,
遠くなったら子フォームのみ自由に動く.
くっついてるとき親フォームをドラッグしたら子フォームも付いてくる.

といったような親フォームに吸着する子フォームを作りたいんだけど

親子ウインドウの相対座標やサイズから地道にIF/THENルール作るしかないですか?

148:デフォルトの名無しさん
09/04/17 13:51:30
ここに20行ぐらいのコード貼って、どこがおかしいか見てもらってもいいですか

149:デフォルトの名無しさん
09/04/17 13:52:29
長ければテキストに貼り付けてアップローダーに上げるのが良いかと思います

150:デフォルトの名無しさん
09/04/17 13:57:28
>>146
JIT最適化によって直接参照する形になりうるんじゃなかったっけ

>>147
基本クラスライブラリにはそういう機能は存在してないな

151:148
09/04/17 14:00:41
了解しました。
URLリンク(textup.no.land.to)

textBox1に秒数、2に繰り返し回数を入れ、
label1に経過秒数(一回ごとにリセット)、
label2に何回目かを表示しようとしています。

label1・2共に数字が表示されません。
たまに変な数字が出たりします。
何がいけないのかわかりますか?

152:デフォルトの名無しさん
09/04/17 14:03:32
処理でスレッド占有してるから画面描画できる隙がない

153:デフォルトの名無しさん
09/04/17 14:08:35
BackgroundWorker使うといいよ

154:151
09/04/17 14:19:06
>>152
なるほど、そういうことだったんですね
ぜんぜんわからなかた

>>153
解決方法ありがとうございます。
早速調べてみます

155:デフォルトの名無しさん
09/04/17 16:37:04
URLリンク(codezine.jp)

上記URLを参考に、マルチスレッドを実装したのですが
サンプルで言うWriteStringメソッドやCallbackMethodメソッドが
staticじゃなきゃいけないと言うことは無いと思っていいでしょうか。
少なくともCallbackMethodのstaticは外しても一見問題無さそう
なのですが、何か理由があってそうなっているのであれば教えて下さい。

156:デフォルトの名無しさん
09/04/17 17:17:26
mainがstaticだから合わせたんじゃないの。
それのVBのサンプルが怪しいな、VBのMainは普通Moduleを使うものだが。


157:147
09/04/17 17:40:48
>>150
やっぱりそうですか,
地道にIF/THENルール作ります
ありがとうございました

158:デフォルトの名無しさん
09/04/17 22:26:25
WinFormsって512x384の画像表示で40FPSしか出ないほど重いものなんでしょうか・・

NiVEというC#製のモーショングラフィックスソフトがあるのですが、
FAQの「プレビューが遅い。エフェクトとかかけてないのに30fpsのプロジェクトで22fpsまでしか出ない」
の項目に「WinFormsが重いのでプレビューの高速化は厳しいです。」

とあり、実際試してみると40FPSまでしか出ません。
やっぱりWinFormsの描画って遅いんでしょうか?

URLリンク(nicoae.if.land.to)

159:デフォルトの名無しさん
09/04/17 22:28:51
WPFとかXNAだとどうなんだろうネー

160:デフォルトの名無しさん
09/04/17 22:32:47
描画って言うよりはそれ以外の部分で処理食ってるような気はするわ

161:デフォルトの名無しさん
09/04/17 22:34:23
WinFormsとか関係ないんじゃないのか?
まさか普通にGDI+で描画してるわけじゃないだろ

162:デフォルトの名無しさん
09/04/17 23:52:43
今スレを見返してて、文字列コレクションでもXmlSerializerが可能ってレスがありましたけど
ちなみに、文字列配列では無理ですよね?

163:デフォルトの名無しさん
09/04/18 00:01:02
そんなこと無いよw

164:デフォルトの名無しさん
09/04/18 00:01:04
>>162
なぜ試さない?

165:デフォルトの名無しさん
09/04/18 00:03:15
普通にstring[]でもList<string>でも可能
何を見てそんな認識に至ったのか分からん

166:162
09/04/18 00:04:34
いや、以前試してできなかったので
てっきりできないと思い込んでたんですけど
118を見て、コレクションが可能ということだったので
もしかして自分のやり方が間違っていただけかと思って…

167:デフォルトの名無しさん
09/04/18 02:22:04
XMLArray属性

ちなみに俺は姉属性

168:162
09/04/18 02:29:50
もう一度試してみましたが、今度はちゃんとできました。
以前は文字列配列じゃなくて、ArrayListでやってダメだった記憶と
勘違いしていたのかもしれません。お手数かけました。

169:デフォルトの名無しさん
09/04/18 15:56:10
配列の配列じゃない二次元配列(なんていうの?
の配列の範囲を超えないかチェックするにはどうすればいいの?

うまく説明できないけど
IndexOutOfRangeExceptionが投げられないように
事前にifでチェックしておきたい

170:デフォルトの名無しさん
09/04/18 16:06:52
int [,] n = new int[7,4];

これだろ?
Array.RankとArray.GetLengthを参照

171:デフォルトの名無しさん
09/04/18 16:34:42
そういや多次元の配列をforeachでぶんまわすときってどうやんだべ
いままでやったことなかったな 調べてみるか

172:デフォルトの名無しさん
09/04/18 16:36:19
>>170
ありがとうございます!

173:デフォルトの名無しさん
09/04/18 17:10:29
>>171
こんな感じ。
int[,] rect = new[,] { { 1, 2, 3 }, { 4, 5, 6 } };
foreach (var x in rect) Console.WriteLine(x);

int[][] jugged = new[] { new[] { 1, 2, 3 }, new[] { 4, 5, 6 } };
foreach (var x in from array in jugged from elem in array select elem)
Console.WriteLine(x);



174:デフォルトの名無しさん
09/04/18 17:24:26
>>173
jugged は SelectMany で一発だよ

175:デフォルトの名無しさん
09/04/18 17:32:00
SelectMany 書ける人が少ないから2重 from が導入されたわけで、
この場合は >>173 でいいと思ってる。



176:デフォルトの名無しさん
09/04/18 17:49:31
おお、そんな風に書けるんだ。
今まで二重にforeachしていた。

177:デフォルトの名無しさん
09/04/18 18:33:06
>>175
それなら Aggregate とか

178:デフォルトの名無しさん
09/04/18 18:52:50
>>176
まあ、素直にそう書くのがいいと思うよw

>>177
それも考えたけど、そこまでしてクエリ式を避ける意味もないかなぁと。
Aggregate じゃなくて Sum とか書ければそれを使ったけども。

179:デフォルトの名無しさん
09/04/18 19:07:03
字面でin fromってところが気持ち悪い

180:デフォルトの名無しさん
09/04/18 19:23:18
>>179
うん、普通は、
var q =
from array in jugged
from elem in array
select elem;

foreach (var x in q) ....
って書くと思う。


181:デフォルトの名無しさん
09/04/18 20:56:47
>>178
俺もクエリ式大好きなんだけど、foreach 文に含ませたりとかそういう
部分式的な扱いとかメソッド一発の場合はメソッド形式が好みかな
みたいな。避けているわけではない。


182:デフォルトの名無しさん
09/04/18 20:59:24
let使わない限りは全部メソッド形式で書いちゃう

183:デフォルトの名無しさん
09/04/18 21:35:35
オブジェクト指向の書き方が、基本的にクエリの書き方にマッチしないから違和感感じるよな

184:デフォルトの名無しさん
09/04/18 21:36:49
気持ち悪さの一番の原因はクエリ式がfromで始まるということだと思う。

185:デフォルトの名無しさん
09/04/18 21:40:17
普段はメソッド形式で書くけど、
メソッドチェインが3つ超えたあたりからクエリ式に切り替えてる。

>>183
C# は最初から純粋OOP言語でもないしね。

>>184
英文法的な気持ち悪さよりも、
インテリセンス利くことを優先したからしょうがない。


186:デフォルトの名無しさん
09/04/18 22:00:19
>>185
オブジェクト指向の書き方がクエリの書き方にマッチしないといってるのに、
C#は純粋なOOP言語じゃないなんてのは論点のすり替えですよ

187:デフォルトの名無しさん
09/04/18 22:59:08
C#で書いている以上純粋OOは無理って事が言いたいんじゃないかと

188:デフォルトの名無しさん
09/04/18 23:11:14
じゃあ純粋OOPならLinqのクエリは完璧に違和感なく書けるってことだな?

189:デフォルトの名無しさん
09/04/18 23:14:45
落ち着け

190:デフォルトの名無しさん
09/04/18 23:16:26
純粋OO言語としても使えるだろ
ベースにOOを使ってOO的じゃないことを実現してる感じ

191:デフォルトの名無しさん
09/04/18 23:22:20
C とか C++ からの括弧とかドットとか式とかシンタックス周りとの組み合わせが
あわねーって話ならわかるけど OOPL がどうこうとかそういうことなのか?

192:デフォルトの名無しさん
09/04/18 23:24:47
ならいったい何を論じてるんだ?

>>190
圧倒的に論旨から外れてる
誰もそんなことを論じていない

193:デフォルトの名無しさん
09/04/18 23:38:36
便利なんだからOOとかどうでもいいと思うのだが、お前ら何騒いでるの?

194:デフォルトの名無しさん
09/04/18 23:43:40
オブジェクト指向の書き方が、基本的にクエリの書き方にマッチしないから違和感感じる
という意見に、C#は純粋なOOPではないとか、いやC#でもOOPかけるだろとか、
超的外れな意見ばかり出し合ってなれ合って騒いでる

195:デフォルトの名無しさん
09/04/19 01:49:20
クエリの書き方とオブジェクト指向の書き方ってどういうのをいうの?

196:デフォルトの名無しさん
09/04/19 06:56:11
名字に口が付く姓で口をぐちと読むのは
実は井口と野口、山口、この三つしかない
まめちしきな

197:デフォルトの名無しさん
09/04/19 08:14:00
210個あるらしいがコピペもうざいので書かない

スレリンク(news4vip板)

198:デフォルトの名無しさん
09/04/19 10:44:59
>>194
オブジェクト指向の書き方=UMLですねわかりますえん

199:デフォルトの名無しさん
09/04/19 12:38:21
DataGridViewで、何も無い部分(濃い灰色の部分)をクリックした時、アイテムを何も選択しなくするようにするにはどうしたら良いのでしょうか。
要はリストビューみたいな挙動にしたいのですが、、、

200:デフォルトの名無しさん
09/04/19 19:12:26
>>196
5000円札の樋口姓は絶滅したのか?

201:デフォルトの名無しさん
09/04/19 19:22:22
貼ると絶対にレスがつくコピペってのはほんとなんだなw

202:デフォルトの名無しさん
09/04/19 23:47:08
C#おべんきょ兼ねて、Winsnmp.DLLを叩いて「簡易SNMPマネージャ」チャレンジ中。
GETの応答をイベントっぽく受けたい(タイマー待ちしたくない)んですが、
いろいろ試してもうまくいかず。何を使えば良いのか迷っております。助言ください。

初期化関数のSnmpCreateSession()に「callback」関数の登録があり、
応答受信、またはTimeoutを契機にこれが呼ばれることは確認できました。
で、受信解読処理を起こすのにMonitor使おうとしたら「プロセスが違うぜダンナァ」。
Mutexなのか?と思うも、期待通りに動かず…。

ええ、「自分が何をわかっていないのか」が判らない状態であります。
どこか「ここ読んで再チャレンジしてみろ」みたいな指標、ありましたら教えてください。

203:デフォルトの名無しさん
09/04/19 23:49:28
>>202
URLリンク(www.google.co.jp)

204:デフォルトの名無しさん
09/04/20 01:21:58
つかぬ事を聞くんだが、.NETはスピンコントロールはなくなったんだろうか。
それから、Textboxで上書きカーソル(Iビームでない方)は使えないんだろうか?

205:デフォルトの名無しさん
09/04/20 02:08:41
>>204
スピンコントロールって名前やめたっぽいよ。
NumericUpDown。


206:デフォルトの名無しさん
09/04/20 08:27:01
申し訳ないのですが、調べてもわからなかったので質問させてください
VisualC#にて、新規ファイル作成時にWindowsApplication1を別名に変えると
デバック時に依存関係が読み込めないというエラーがでます。
これは何が悪いのでしょうか?デフォルトの名前しか使えないのでしょうか?


207:デフォルトの名無しさん
09/04/20 10:02:26
キミがどこかでミスってる。
リビルドしてもだめかい?

208:デフォルトの名無しさん
09/04/20 19:15:30
>>207
すみません。プロジェクト名に('A`)が入っていたことが原因のようです。
無くしたら解決しました。

209:デフォルトの名無しさん
09/04/20 19:31:34
ワロタ

210:デフォルトの名無しさん
09/04/20 19:35:28
C/C++やってて、GUIとか使いたくなったからC#やり始めたんだが、
.csのソースを.csprojが入ってるディレクトリ以外に入れて参照できるようにはできないのだろうか。
これは仕様でどうにもならない?

211:デフォルトの名無しさん
09/04/20 19:41:10
>>210
できるよ

212:210
09/04/20 19:44:03
C/C++と一緒のリポジトリに入れてて、
ソースだけプロジェクトと別ディレクトリで管理したいから
その方法をぜひ教えてください。どこかのURLとかでもおkです。

213:デフォルトの名無しさん
09/04/20 19:50:03
>>212
URLリンク(msdn.microsoft.com)

214:デフォルトの名無しさん
09/04/20 19:51:06
ソリューションエクスプローラ→追加→既存の項目で追加すりゃいいんじゃないの
意味が分からん

215:210
09/04/20 19:56:11
>>213 どもです!できました!


216:210
09/04/20 20:32:23
>>214それやると別ディレクトリの.csが.csprojのあるディレクトリにコピーされて、
オリジナルが変更されないという罠。
リンクとして追加で出来ました。

217:デフォルトの名無しさん
09/04/21 04:14:41
CMakeList.txt を書いて目的のビルドフォルダでcmake書ける方法もあるが……。
Windowsだとあんまり一般的じゃないのかな。

218:デフォルトの名無しさん
09/04/21 10:21:34
Vista環境で、SHFileOperationやMicrosoft.VisualBasic.FileIO.CopyFileを使って、
ループ内でファイルコピーを繰り返し行うと、GDIオブジェクトが増え続け、
300回ほどループが回ったところでGDIオブジェクト数が10000になり、ソフトが落ちてしまいます。
XPだと全く問題なく、VistaでもSystem.IO.File.Copyを使えば大丈夫です。
何か注意すべき点などあるのでしょうか?

219:デフォルトの名無しさん
09/04/21 10:38:02
>>218
Microsoft.VisualBasic.FileIO.FileSystem.CopyFileで試したけど
少なくともごく簡単なのだと再現しないね@Vista business SP1/.NET 3.5 SP1

220:218
09/04/21 10:57:35
>>219
試していただきありがとうございます。
ググっても類似事例がないので、自分が書いたコードが悪いんだろうなとは思っていましたが…
ちなみに、公開しているソフトで、ユーザーからの問い合わせもかなりあるので、環境依存というわけではなさそうです。
再現できるミニマムコードが書けたらまた質問しに来ます。

221:デフォルトの名無しさん
09/04/21 13:10:58
> ユーザーからの問い合わせ
があったとしても、特定環境でしか起こらなければ環境依存だろうよ
ちゃんと集計とか分析とかしたのか?

まあ単に自分の環境が特殊ではないと主張したかったんだろうけど

222:デフォルトの名無しさん
09/04/21 13:16:06
vb6から C#にアプリを移行してるんだけど
DBのテーブルで誕生日がint型なんだが
これをC#でDateTimeにコンバートしたいんですけど
どうしたらいいですか?
どうも 36524 が 2000-01-01 になるらしい。

223:デフォルトの名無しさん
09/04/21 13:18:15
変換の計算式書けよ

224:デフォルトの名無しさん
09/04/21 13:20:43
1899年12月31日を0としてそれからの経過日数かな


225:デフォルトの名無しさん
09/04/21 13:26:37
1900年1月1日からかもしれない
1900年2月29日が存在するバグがあるか無いか確認して
まあどちらにしても1900年3月1日からは一致するけど

226:デフォルトの名無しさん
09/04/21 14:10:56
ワラタ

227:デフォルトの名無しさん
09/04/21 15:15:30
他のプロジェクトでビルドしたアセンブリを参照設定してメインのプロジェクトで使っているんですが、
アセンブリを再ビルドするたびに参照設定をやり直さないとビルドに失敗します。
何かいい方法はないでしょうか。

228:デフォルトの名無しさん
09/04/21 15:30:04
そのプロジェクトをソリューションに追加すれば
ビルドと配置も同時にやってくれるんでない

229:デフォルトの名無しさん
09/04/21 15:35:04
誕生日がintってどうやってるんだろ
20090421とか?


230:デフォルトの名無しさん
09/04/21 15:37:10
>>229
通常、特定の日付からの経過日数で換算する。
UnixとWindowsそれぞれでやりかたがある。詳しくはぐぐれ。

231:デフォルトの名無しさん
09/04/21 15:42:42
それにどんなメリットがあるの

232:デフォルトの名無しさん
09/04/21 15:51:20
内部形式の意味を聞いてどうすんだ
int表現ならそのほうが便利だろう、引き算だけで経過日数がわかるとか

233:デフォルトの名無しさん
09/04/21 15:54:10
Date関連は、昔は自前で計算するしかなかったもんなぁ。

C#で新規設計の時、intでやる奴はいねぇだろ。

234:227
09/04/21 19:28:15
>>228
結局自力で解決しました。
csprojファイルをテキストエディタで開いて、
参照設定のItemGroupにおいて

<Reference Include="Azuki.dll" />

といった形に書き換えました。
これでVSのオブジェクトビューアでも直接dll内のアセンブリ情報を見に行くし(当然属性情報も見える)、
アセンブリを再ビルドしてもエラーが出なくなりました。

235:デフォルトの名無しさん
09/04/21 23:23:43
>>231
Excel使いから言えば、時間単位の換算がやりやすい。
日→時は24倍すればいいとか。

236:デフォルトの名無しさん
09/04/21 23:26:57
>>235
ExcelだとVBAでDateDiffとか使えないの?


237:デフォルトの名無しさん
09/04/22 00:01:57
GUIだけフォーム使って中身はCとか出来ますか?

238:デフォルトの名無しさん
09/04/22 00:08:54
できますよ

239:デフォルトの名無しさん
09/04/22 19:35:27
クリップボードから得たメタファイル形式のデータを、
メモリストリームかファイルストリームにする方法がわかりません。

meta = new Metafile(mfms, hmeta);

meta = new Metafile("metafile.wmf", hmeta,EmfType.EmfPlusDual);
もGDI+で汎用エラーと出てしまいます。


メタファイルの取得は下記のサイトを参考にしました。
URLリンク(dobon.net)

240:デフォルトの名無しさん
09/04/22 21:02:32
>>239
そのページの一番最後のGetEnhMetafileOnClipboardをそのまま使ってもだめなのか?

241:デフォルトの名無しさん
09/04/22 21:28:00
一旦Imageとして読み取って、
それとは別にMetafile(Stream, IntPtr)で新しいMetafile作って、
Graphics.FromImageでMetafileからGraphics作って、
Graphics.DrawImageで読み取ったImageを描画
…てな流れになるかのう マネージドでやろうとすると

242:239
09/04/22 22:48:16
>>240
それでメタファイル形式のデータは取得出来るのですが、
他のデータと合体させてバイナリファイルとして保存したいので、
メモリストリームかファイルストリームにしたいです。

クリップボードのデータをファイルに保存して、
必要な時に読み込み、クリップボードに貼り付けるのが目的です。

>>241
すみません。
いろいろ調べたり試したりしてみてますが、Graphics.DrawImageから
ストリームにする方法がわかりません。


243:デフォルトの名無しさん
09/04/22 23:59:23
Metafileの作成時に渡したStreamに書き出されてる
ちなみにIntPtrの方はGetDC(IntPtr.Zero)でも適当に作ったBitmapからGraphics.GetHdcでも

244:デフォルトの名無しさん
09/04/23 00:12:03
>>242
241のやり方は、ここの「メタファイル形式で保存する」が参考になると思う。
URLリンク(dobon.net)

245:デフォルトの名無しさん
09/04/23 03:25:38
B+Treeで実装されたコレクションのクラスってありますか?
それとSortedListの実装はBinaryTreeですか?


246:デフォルトの名無しさん
09/04/23 09:48:45
>>245
List<T>.BinarySerach()

247:デフォルトの名無しさん
09/04/23 09:50:00
Searchか

248:デフォルトの名無しさん
09/04/23 10:15:48
>>245
ぐぐれ

249:デフォルトの名無しさん
09/04/23 11:30:30
XMLスキーマの構造を/区切りでテキストに出力しようと思っています。
DataSet.ReadSchemaを用いて作ってみましたが、似た形式で出力できるものの、並び順がおかしくなってしまいます。
やはりちゃんとShemaとして読み込んで、それを解析する必要なあるようですが、やり方がわかりません。
ご教授ください。

250:デフォルトの名無しさん
09/04/23 12:25:07
C#かjavaで
文字列A "qwertyuiop" に
文字列B "cdefghij" のどれか
が1つでも含まれていたら真になるというのを
できるだけ高速にやりたいのです。

考えたのは

s="qwertyuiop";
f = s.IndexOf("c") + 1 + s.IndexOf("d") + 1 + …

配列に文字列Bのテーブルで真偽表を作り
文字列Aを一文字ずつ取り出しAscii値にしてテーブル参照して加算

ですがまだ重そうです。
何か関数等で高速にできる方法ありませんか?


251:デフォルトの名無しさん
09/04/23 12:41:02
真偽値が欲しいだけなのになんで加算してんの?

252:デフォルトの名無しさん
09/04/23 12:52:05
真偽というか0か0以外ならいいのです。

今気づきましたが
s.ToCharArray(); を使えばcharの配列に変換できて
②のテーブルとの掛け合わせが簡単にできそうですね。

253:デフォルトの名無しさん
09/04/23 13:09:41
文字列が短ければ線形探索
長ければ一方をソートして二分探索


254:239
09/04/23 13:11:49
何度もすみません。

>>243-244
URLリンク(dobon.net)
を元に下記を作ってみましたが、
DrawImage後もstreamには入っていないようです。
(stream.lengthが0)
使い方が間違っているのでしょうか

URLリンク(www10.uploader.jp)

255:デフォルトの名無しさん
09/04/23 13:16:09
IntPtr disDC = GetDC(IntPtr.Zero);


256:デフォルトの名無しさん
09/04/23 14:53:32
>>250
部分文字列を取りたいのではなくてマッチするかどうかだけ調べればいいんだな?

実用的には正規表現の文字集合を使う。 match(/[cdefghij]/, "qwertyuiop")

自前でやるならデーブルでヒット走査。
bool[0x100] の走査ウィンドウを作り、全ての要素を倒しておいてから
"cdefghij" を立てる。それから文字列を入力して一文字ずつ走査すればよい。

入力値が無数にあると期待され、テスト前に準備期間が許されるならば、
入力値側を前操作する方法もありえる。

257:デフォルトの名無しさん
09/04/23 14:55:46
239は自分で紹介している記事を最後まで読んだのか?
WindowsMetaFileとして取り込むにはAPIを直で呼び出す他なさそうだと書いてあるんだが。
.NETの範囲での解法を自力で発見してそれを報告するなら分かるが、
まだ探している段階ならまずは記事に書いてあることを試すべきだろ。

258:239
09/04/23 15:07:38
>>257
最初に質問する段階でMetaFileを取り込むところまでは出来てます。
やりたいのは>>242です。
いろいろ調べたり試したりしてはいるのですが、
何もしていないように見えたのならすみませんでした。

>>255
Bitmap bmp = new Bitmap(1, 1);
Graphics bmpg = Graphics.FromImage(bmp);

IntPtr hdc = bmpg.GetHdc();
としてもダメでした。

259:239
09/04/23 16:14:16
長々と書いて申し訳ありませんが、なんとか出来ました。
最後に emfg.Dispose(); が抜けていたのでダメだったみたいです。

レスくれた方々本当にありがとうございました。

260:デフォルトの名無しさん
09/04/23 16:21:50
>>256
正規表現ですか。
基本、文字処理はこれでやればいいわけですね。
ありがとうございます。

261:218
09/04/23 17:26:23
>>218ですが、比較的簡単なコードで再現できました。
暇な方は試していただけると助かります。
↓GDIオブジェクトが増え続けるケースのメインメソッド
private void FileAdd(string[] stFileList)
{
  int i = 0;
  foreach (string stFileName in stFileList)
  {
    FileInfo fi = new FileInfo(stFileName);
    i++;
    Microsoft.VisualBasic.FileIO.FileSystem.CopyFile(fi.FullName, Path.Combine(Application.StartupPath, "test" + i.ToString("000") + fi.Extension), UIOption.AllDialogs, UICancelOption.ThrowException);
    listView1.Items.Add("test" + i.ToString("000") + fi.Extension);
  }
}

プロジェクト一式のZIPファイル
URLリンク(www.dotup.org)

フォームにファイルをD&Dすると、実行ファイルと同じ場所にD&Dしたファイルを番号を振りながらコピーします。
タスクマネージャを見ながら、100個くらいのファイルをD&DすればGDIオブジェクトの上昇がわかりやすいと思います。

再現した環境
WindowsVista x64 (6.0.6001SP1)
.NET Frameworkは最新版です。
(2.0向けなので、System.Environment.Versionで取れる値は、2.0.50727.3074)

262:デフォルトの名無しさん
09/04/23 17:55:58
オーバーレイ表示でもスクリーンショットが取れるようにしたいんだけど無理?
無効にしなくてもPowerDVDとかは出来るみたいなんだけど。

263:デフォルトの名無しさん
09/04/23 18:34:51
>>261
UIOption.AllDialogs のときにそうなるみたいだね。
UIOption.OnlyErrorDialogs だと普通に終わる。

264:デフォルトの名無しさん
09/04/23 21:14:20
>>248
今ぐぐってみました。
そしたらこのスレに飛ばされました

265:218
09/04/23 21:26:56
>>263
ということは、ダイアログ出してコピー中にユーザーキャンセルできるようにするには、色々自前で組まないと、Vistaでは不具合がでるってことですね。
面倒なのでFile.Copyとうまく使い分けて何とか切り抜けます。
ありがとうございました。

これはVistaの仕様なのか不具合なのか…

266:デフォルトの名無しさん
09/04/23 22:08:01
>>265
SHFileOperationはVistaからIFileOperationに置き換えられるようになるから、
URLリンク(msdn.microsoft.com)
URLリンク(msdn.microsoft.com)
この辺参考にしてVistaのときはそっち使うようにする、とかどうだろう
これがリークするかどうかは知らないけど

267:デフォルトの名無しさん
09/04/23 23:18:19
System.IO.File.Move(@"C:\test.txt", @"C:\test1.txt");

これの@ってなんの意味ですか?

268:デフォルトの名無しさん
09/04/23 23:18:42
すみません、VS2005でWindows アプリをデバッグしているのですが、
どうもWebBrowserでWebページを表示していてそこでのスクリプトか何か
の動作がうまく行っていないようなので、そのWebページの動作を調べたい
ときには、そのVS上でそのWebページのソースファイル(htmlファイル)
をいっしょにデバッグするようなことは可能ですか?

Webページは現在はたまたまそこで見ているGoogleのイニシャルページ
で、そこで「検索」ボタンを押したときの動作を見たいのでした。


269:デフォルトの名無しさん
09/04/23 23:20:37
>>267
ヘルプのキーワード検索で「@ リテラル文字列」

270:268
09/04/23 23:21:16
VS2005はプロフェッショナルEditionでWebアプリも開発可能だとは
思ったのですが、現在のWindowsアプリケーションで開いたときにだけ
不具合を起こしているようなので、統合的に調べたいのでした。
よろしくお願いします。

271:デフォルトの名無しさん
09/04/24 00:30:43
>>264
いや、文字通りぐぐったら実装されたライブラリが入手できるんだが?

272:デフォルトの名無しさん
09/04/24 03:22:58
>>271
.Netの標準ライブラリには存在しないんですか?

273:デフォルトの名無しさん
09/04/24 03:49:43
>>272
ないよ。
BSDライセンスで公開されている実装があるんだから、それ使ってみれば
いいじゃん。

274:デフォルトの名無しさん
09/04/24 03:57:35
ありがとうございました

275:デフォルトの名無しさん
09/04/24 12:57:20
プロジェクトの「発行するバージョン」とAssemblyVersionを同期して変更していくいい方法はないだろうか?

276:デフォルトの名無しさん
09/04/24 16:23:29
自身のフォームを非アクティブにする(VisibleやCloseではなく)方法
もしくはAPIは無いでしょうか。

277:デフォルトの名無しさん
09/04/24 16:26:04
デスクトップをアクティブにすればいいよ

278:デフォルトの名無しさん
09/04/24 16:47:05
>>277
SetActiveWindow(IntPtr.Zero) で、目的の動作を達成することが出来ました。
有り難う御座いました。

279:デフォルトの名無しさん
09/04/25 14:36:39
amazonのサービスを使って、本の管理プログラムを作っているのですが
ISBNから書籍データ類を取得した後、その画像データをローカルに保存する方法で困っています。

画像のURLを取得した後にいちいち

WebClient wc = new WebClient();
Stream stream = wc.OpenRead(url);
Bitmap bitmap = new Bitmap(stream);
stream.Close();

としたあとで

bitmap.save()

とすると保存は出来るのですが、ものすごく時間がかかってしまいます。
画像のURLはWebサービスの参照で自動的に作成された物を使用して所得しています

他に良い方法は無い物でしょうか、教えてください

280:デフォルトの名無しさん
09/04/25 14:47:38
書籍データのGETと画像のGETを別コネクションで行ってたりしない?
さしあたりパケットスニファのWiresharkとC#のTcpClientでぐぐってみて

281:デフォルトの名無しさん
09/04/25 14:49:43
試したけど別に遅くもなんともねえけどな


282:デフォルトの名無しさん
09/04/25 14:50:58
クエリー投げ過ぎで待たされてたりして

283:デフォルトの名無しさん
09/04/25 14:56:56
ファイルごとのバージョン管理はどうしていますか?

284:デフォルトの名無しさん
09/04/25 16:12:38
SVN使えばいい。TortoiseSVNとか便利よ

285:デフォルトの名無しさん
09/04/25 17:17:18
if文やメソッドなどを書く時、

if (....) {
......
}

と書くのと

if (....)
{
.....
}

と書くのでは、どちらが一般的なのでしょうか。

286:デフォルトの名無しさん
09/04/25 17:19:43
下が一般的

287:デフォルトの名無しさん
09/04/25 17:21:38
>>285
URLリンク(www.linux.or.jp)

288:デフォルトの名無しさん
09/04/25 17:24:10
>>287
釣りだろうけど、異教の作法なんか張るなバカ。


289:デフォルトの名無しさん
09/04/25 17:27:31
>>279
というか、クエリ投げてもらえる画像ファイルをそのまま保存すればいいと思うんだが?

290:デフォルトの名無しさん
09/04/25 17:28:12
下はVSのデフォルト設定だしね
個人的には一貫してさえすればどっちでもいいと思う

291:デフォルトの名無しさん
09/04/25 17:29:03
>>285
標準書式が無数にあるC/C++とは違い、C#はVisual Studioによる開発がデファクトスタンダードなんだから、
VSの補完により生成される書式が標準だと考えるのが自然だろう。

292:デフォルトの名無しさん
09/04/25 17:40:25
if (true) {
}
を支持する人はメソッドも
public void Procedure() {
}
派?

293:デフォルトの名無しさん
09/04/25 17:40:39
>>291
VSは賢いので開発者の好きにカスタムできます

294:デフォルトの名無しさん
09/04/25 17:41:24
お作法はヘジたん教に従えって事だな、つーわけで下

295:デフォルトの名無しさん
09/04/25 17:41:28
>>285
趣味等で自分の好きに書ける環境なら、好きな方を使えばok
上式で書くなら、メソッド書く時のみ中括弧を字下げ。制御文は同じ行に開始括弧を書く。
コーディング規約と違って、自分のやり方に固執したり
他のやり方に批判的だったりすると気持ち悪がられる分野だから注意。

296:デフォルトの名無しさん
09/04/25 17:44:28
if {
}
だと始まりがよくわからなくて困らない?

297:デフォルトの名無しさん
09/04/25 17:44:41
あれ?ヘジたんの本はK&Rスタイルだったぞ

298:デフォルトの名無しさん
09/04/25 17:45:26
>>296
そんな事はないけど、C#なら当然それは使わない!!

299:デフォルトの名無しさん
09/04/25 17:45:59
ごめんヘジたんのエディタいじってそうなるようにしちゃったの

300:デフォルトの名無しさん
09/04/25 17:48:20
C#の話をしてる時でも
Java歴が長くてJava信奉の厚い人は
わざとK&Rで書く人多いよね

301:デフォルトの名無しさん
09/04/25 17:49:20
>>300
掲示板に書くときは狭いからそうすることも多いけど、コードはK&Rでは書かないな

302:デフォルトの名無しさん
09/04/25 17:52:09
JavaScriptでK&Rみるとなんかむかつく


303:デフォルトの名無しさん
09/04/25 17:55:12
大体、K&Rは歴史的資料、古典なんだから、それのスタイルで書こうとするなよ。
「福沢諭吉に感銘受けたので旧仮名遣いで日本語書きます」って言ってるようなもんだろ。


304:285
09/04/25 17:55:40
どうもです。
自分の読んでるオブジェクト指向の入門本がJavaを扱って書かれているので
その書き方をしていたみたいです。
どっちでも良いということなので安心しました。

305:デフォルトの名無しさん
09/04/25 17:56:00
K&Rなぞ知ったことではないが行が嵩むのが嫌なので趣味コードは中括弧は全部同じ行
会社では大体VSのデフォルトそのままだから下げ

306:デフォルトの名無しさん
09/04/25 18:01:23
最近Windowsシャットダウン時にCSC.EXEが出る様になた。
.NET Frameworkは3.5(x86)

プログラムに問題が有るのかなぁ?

307:デフォルトの名無しさん
09/04/25 18:01:40
クラスもメソッドも{を同じ行にしてるの?

308:デフォルトの名無しさん
09/04/25 18:02:37
>>307 異教禁止

309:デフォルトの名無しさん
09/04/25 18:09:22
K&Rで書く人見ると
思わず英語で喋っちゃった帰国子女っぽくて鼻につく

310:デフォルトの名無しさん
09/04/25 18:10:57
爺さんはみんなK&Rだぞ、return(0); だし、いちいち気にするな

311:デフォルトの名無しさん
09/04/25 18:13:26
>>309
見事に的を射た表現だな

ただ漏れには非K&Rで書かれてるコードのインデントの意図が
さっぱり理解できない

>>310
待ってくれ。K&Rは return 0 だ

312:デフォルトの名無しさん
09/04/25 18:14:21
そりゃ新しいK&Rだ、+= が =+ 時代からやり直し

313:デフォルトの名無しさん
09/04/25 18:23:38
>>312
漏れ生まれてないYO
でもお年寄りは国の宝っていうから従っとく

314:デフォルトの名無しさん
09/04/25 18:28:43
>>313 だから異教は禁止、ヘジたんに従え

315:デフォルトの名無しさん
09/04/25 18:46:02
発行した書籍数の多さと年季が信頼の印
連休中に勉強しよう。
URLリンク(www.tech-arts.co.jp)
連休明けの仕事が楽しみなるよ!!

316:デフォルトの名無しさん
09/04/25 18:59:07
>>314
いやいや、Visual Studio のデフォルト設定に従えって。

317:デフォルトの名無しさん
09/04/25 19:00:29
Visual Studio のデフォルト設定はヘジたんスタイル

318:デフォルトの名無しさん
09/04/25 21:54:45
ヘジたん大好きdelphiは
if
begin
end;
だから、
if
{
}
じゃなきゃだめだお

319:デフォルトの名無しさん
09/04/25 21:58:23
でもべーしっくは
if then
endif
だお


320:デフォルトの名無しさん
09/04/25 22:41:44
if~else if~elseのときコメントはどこに書いてる?

//コメント1
if()
{
}
//コメント2
else
{
}

こんな感じで書くとインデントも揃ってて見やすいけど閉じ括弧とelseが離れちゃってて気持ち悪い。

if()
{
 //コメント1
}
else
{
 //コメント2
}

こっちの方がいいのかな?でも条件式にコメントしたいときとか、コメントが連続で2行になることとかあって書きづらい。
C#の標準的にはどうなの?

321:デフォルトの名無しさん
09/04/25 22:48:02
ほとんど、そういうコメントを書きたいと思うことがないけど、たまにあるね
俺は上派
下だとインデントされるから、条件式のコメントじゃないみたいだから
でも気持ち悪いから

//条件式コメント1
//条件式コメント2
if()
 //中身のコメント
else
 //中身のコメント

よほどの事がなければ、こんな感じで書いてる


322:デフォルトの名無しさん
09/04/25 22:49:21
コメント記述のマナーについては語る価値はあると思うが、
コメントの記述位置そのものについては通常言語仕様で語られる範疇ではない。
AdaやPythonだと決められてるかもしれないが……。


323:デフォルトの名無しさん
09/04/25 22:58:08
俺はコメント書かない派だから、どうでもいいな。

324:デフォルトの名無しさん
09/04/25 23:10:31
if() { // comment
} else { // comment
}

325:デフォルトの名無しさん
09/04/25 23:47:13
一行内に書くのはフィールドくらいでいい

326:デフォルトの名無しさん
09/04/26 00:06:17
インデントなんて好きにすればいいの・・・。
どうせVSのインデント設定で一括変更とかある程度できるっしょ。

そもそもいろんな言語の国内外のソースよんでりゃ、
インデントがどうのなんて瑣末な問題だと思いますよ?

327:デフォルトの名無しさん
09/04/26 00:10:46
インデントは全角スペース2個分で、タブを維持する(スペースに変換しない)じゃないと嫌

328:デフォルトの名無しさん
09/04/26 11:50:13
文字列変換の際に
hoge.ToString()にするのと
(string)(hoge)にするのとで
どのような違いが生じるのでしょうか?

329:デフォルトの名無しさん
09/04/26 11:54:36
下は変換じゃなくてただのキャスト hogeがstringでない限り失敗する

330:デフォルトの名無しさん
09/04/26 16:39:43
string型じゃない変数を使って試してみると一発でわかるはず。

331:デフォルトの名無しさん
09/04/26 17:32:38
>>329
implicitやexplicitな変換が定義されていればstringでなくてもいけるだろ。
まあstringに対してそれをやるやつはなかなかいないとは思うが。

332:デフォルトの名無しさん
09/04/26 19:22:27
キャストとはいうものの、Cのキャストとはまるで別物なんですかね。変換方法が定義されていることが前提?

333:デフォルトの名無しさん
09/04/26 19:25:58
変換方法が指定されていなければ冷害が発生する

334:デフォルトの名無しさん
09/04/26 19:33:07
そもそも別言語だからまるで違うんですかって聞かれることに違和感を覚える

335:デフォルトの名無しさん
09/04/26 19:34:06
そしてイナゴが・・・

次の収穫は期待できないなw

336:デフォルトの名無しさん
09/04/26 19:38:52
>>332
int←→doubleとかvoid*←→int*のような暗黙的・明示的な型変換はC#にもあるぞ。
その上で、さらに任意の型間でキャスト演算子を使えるようにimplicit/explicit operatorを定義できるのがC#。

337:デフォルトの名無しさん
09/04/27 00:31:54
Rubyを始めて、しばらくぶりにC#やるとすごい・・・

なんかすごい

338:デフォルトの名無しさん
09/04/27 01:45:42
TabControl で、TabPages.Count が 0 の時に
「メニューから項目を表示してください」
って TabControl に表示させたいんですが、良い方法を教えてください。

339:デフォルトの名無しさん
09/04/27 01:58:28
ToolTipTextかStatusStrip

340:デフォルトの名無しさん
09/04/27 02:00:17
TabControlを継承したコントロールで
OnPaintをオーバライドしてGraphicsで描画

341:デフォルトの名無しさん
09/04/27 02:25:00
継承しなくてもイベントでいいじゃん

342:デフォルトの名無しさん
09/04/27 13:28:58
DataGridViewオブジェクトに対して、
DataTableオブジェクトをバインドしてみたのですが
View.DataSource = Table;

こうするとスクロールバーの機能がおかしくなります。
スクロールバーがあるであろう矩形領域は再描画がされなくなり、
マウスでクリックしても表示項目が変更されません。

どなたかご教示お願いします。

343:デフォルトの名無しさん
09/04/27 16:05:27
すみません、教えて下さい。
C#のフォームに自作のActiveXを貼りました。
このActiveXを操作したいのですが、ActiveX側の自作関数が見えません。
関数は、ディスパッチインターフェースに追加しました。
どうやったら、見えますでしょうか?
そもそも、好きに関数を作れば呼び出せるというものではないのでしょうか?

344:デフォルトの名無しさん
09/04/27 16:21:23
できる。やり方が悪い。
ちょっと違う名前空間が前についていることがあるのでよく探してみよう。

345:デフォルトの名無しさん
09/04/27 18:15:27
>>337
何がすごいの?
ものすごいの?

346:デフォルトの名無しさん
09/04/28 00:48:29
アプリケーション設定の
propertes.Default.setting1.変数名
this.変数名みたいに、短くできないですかね。

347:デフォルトの名無しさん
09/04/28 04:22:25
staticなプロパティの返値にすれば
Class.PropertyNameで取得できるんでね?

348:デフォルトの名無しさん
09/04/28 14:08:40
>>344
有難うございます。
ActiveXTestという名前でActiveXは作りました。
Axが頭について、AxActiveXTestという参照?がC#のプロジェクトには
見えているのですが、望む追加関数は、_DActiveXTestという
インターフェース? にあるのかどうなのか、結局見えません。
これはActiveX(C++)側の関数の作り方が悪いのでしょうか?
手作業で、idlファイルを書き換える必要ありますか?

349:デフォルトの名無しさん
09/04/28 15:50:20
すみません、リビルドしたら見えました。

350:デフォルトの名無しさん
09/05/01 17:01:16
クラスに定義されているイベントへ複数の箇所からイベントが登録されるのですが、登録された際、任意の共通処理を行いたいのです。


delegate void hoge();

class sampleClass {
 public event hoge hogeEvent;
 public void callEvent() {
  this.hogeEvent();
 }

 //↓イベントが追加される度に呼び出される
 private void addEventCom() {
     :
 }
}

class mainClass {
 public static void main(string arg[]) {
  sampleClass o = new sample();

  //↓このタイミングで任意の処理を行いたい(addEventComを呼び出したい)
  o.hogeEvent += delegate() {
       :
  }
     :
  o.callEvent();
 }
}

最初、「演算子のオーバーライド(+演算子)でいけるのでは?」と思ったのですが、根本的に間違っていることに気付き...
何かよい方法はないでしょうか?

351:デフォルトの名無しさん
09/05/01 17:06:16
方法 : カスタム イベント アクセサを実装する (C# プログラミング ガイド)
を見れ

352:350
09/05/02 03:08:00
>>351
add / remove
ありがとうございました。m(_ _)m
~追記~
add / remove を定義する際、マルチスレッドを考慮してlockをかけた
方がいいとおもうのですが、自インスタンス(this)でlockをかけるのは
過度だと思い、lock専用のインスタンスを定義してそのインスタンスに
対してlockをかけるようにしたのですが、一般的でしょうか?

353:デフォルトの名無しさん
09/05/02 03:22:45
一瞬イベントの定義かとおもって
URLリンク(dobon.net)
貼り付けたけど違うんだねわかった

354:デフォルトの名無しさん
09/05/02 04:47:02
>>352
一般的<lock用のインスタンス作るの

355:デフォルトの名無しさん
09/05/02 13:01:18
ものすごく初心者的なことで悪いんですが
娘が全寮制の高校に通っているのですが
学校でやっているCを自宅に帰ってきてからも
やりたいというのですが。
ウルトラCとかいうのを学校では使っている
そうなのですが調べてもダウンロード販売ばかりで
パッケージ販売が無いようなんです。
しかもダウンロード販売も、実際には販売終了ばかりで。

当方、プログラミングは20年前にN88basicとMASMで終わっている
爺いなんで、どれを購入して娘に与えればいいか
アドバイスお願いします。

356:デフォルトの名無しさん
09/05/02 13:05:08
VIPでやれ

357:デフォルトの名無しさん
09/05/02 13:09:31
GWらしい釣りだな

358:デフォルトの名無しさん
09/05/02 13:22:55
なんかバベられてね?

359:デフォルトの名無しさん
09/05/02 14:35:48
バベるって何?
神に挑戦すること?

360:デフォルトの名無しさん
09/05/02 16:28:56
>>355
Visual Studio 2008 Express Edition(無料)

361:デフォルトの名無しさん
09/05/02 16:34:59
ところでウルトラCって実在するの?

362:デフォルトの名無しさん
09/05/02 16:38:23
>>361
ggrks

363:デフォルトの名無しさん
09/05/02 21:05:41
>>355
Niftyでダウンロード購入可能っぽいが
URLリンク(store.nifty.com)

364:デフォルトの名無しさん
09/05/02 21:18:45
過去の遺物にもほどがあるな
この程度の教官に教わるしかないとか気の毒すぎる

365:デフォルトの名無しさん
09/05/02 21:20:00
サポ終了してるので購入は慎重にしたほうがいいかも試練
URLリンク(www.runexy.co.jp)

366:デフォルトの名無しさん
09/05/02 21:21:14
うん?高校生?

367:デフォルトの名無しさん
09/05/02 22:25:19
言語に違いないんだからVSでやればいいだけだろに

368:デフォルトの名無しさん
09/05/03 01:53:27
インライン関数じゃない書き方を教えてください

369:デフォルトの名無しさん
09/05/03 02:05:52
何の目的で?

370:デフォルトの名無しさん
09/05/03 02:21:59
まず質問に答えたら教えてやりますよ

371:デフォルトの名無しさん
09/05/03 02:29:46
>>370
まず目的を答えたら教えてやりますよ

372:デフォルトの名無しさん
09/05/03 02:35:19
それなりの誠意を見せてくださいよ

373:デフォルトの名無しさん
09/05/03 02:38:31
じゃあいいや

374:デフォルトの名無しさん
09/05/03 02:41:18
威勢がよかった割にはあきらめの早いことで。
MethodImplAttributeでMethodImplOptions.NoInliningを指定するのがそれっぽいことくらい
ぐーぐる先生はすぐ教えてくれたろうに。

375:デフォルトの名無しさん
09/05/03 02:43:06
解説くらいしろよ役立たず

376:デフォルトの名無しさん
09/05/03 02:55:28
つか目的書いてくれんとマジで。
NoInlining はインライン最適化は確かに抑制するけど目的が
コールスタック保持とかならこれは一部で意味がないとかあるし


377:デフォルトの名無しさん
09/05/03 06:27:42
なんか>>368-373がテンポいいんだけどちょっと屋上までこいや

378:デフォルトの名無しさん
09/05/03 11:37:43
よく画像に映数字が書かれてて
それを入力して認証するようなのがありますが
あれを実現するライブラリってありますか?
あとWebAPIなんかでも公開されてるんすかねえ?

379:デフォルトの名無しさん
09/05/03 11:50:05
CAPTCHA認証でググってそれっぽいのを探したら良いんじゃないか
WordPress用のは使ったことがあるから誰かモジュール化してるかもね

380:デフォルトの名無しさん
09/05/03 12:35:56
internal static string s = "hage";

このsの値が変更されるのを防ぐにはどうすればいいですか

381:デフォルトの名無しさん
09/05/03 12:44:54
readonly

382:デフォルトの名無しさん
09/05/03 13:15:51
ありがとうございます

383:デフォルトの名無しさん
09/05/03 15:43:44
ブラウザのURLのクエリ情報を解析したりするクラスってありますか?
URLリンク(search.yahoo.co.jp)
でeiの項目を取得したり、pの項目を取得できたりみたいな

384:デフォルトの名無しさん
09/05/03 15:46:02
探すより自作したほうが早いような

385:デフォルトの名無しさん
09/05/03 15:49:29
URIの制限で?と&でしか連結できないんだからSplitすればすぐできるだろう

386:デフォルトの名無しさん
09/05/03 15:59:10
よーし楽天が一気に7得点したから自作してみるぜ

387:デフォルトの名無しさん
09/05/03 16:46:13
できたこんなんでいいのかな?サンクス

public Dictionary<string, string> GetQueryData(string uri)
{
 Dictionary<string, string> dictionary = new Dictionary<string,string>();
 string queryString = uri.Split('?').Length == 2 ? uri.Split('?')[1] : "";
 foreach (string query in queryString.Split('&'))
  if (query.Split('=').Length == 2)
 dictionary.Add(query.Split('=')[0], HttpUtility.UrlDecode(query.Split('=')[1]));
 return dictionary;
}

388:デフォルトの名無しさん
09/05/03 17:47:27
すげえじゃん

389:デフォルトの名無しさん
09/05/03 18:28:05
>>387
今更ではあるが、

つ HttpUtility.ParseQueryString

HttpUtilityまで見ているのに、何故気付かないのかと
あと、>>387だと http‍://...?hoge=1&hoge=2 とか駄目だな

390:デフォルトの名無しさん
09/05/03 19:06:33
>>389
>ParseQueryString
ぬぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉ

>あと、>>387だと http?://...?hoge=1&hoge=2 とか駄目だな
なして?

391:デフォルトの名無しさん
09/05/03 19:11:54
Dictionaryのキーが同じだから上書きされてしまう。

392:デフォルトの名無しさん
09/05/03 19:14:52
なるほど、そういうことか サンクス
でもそれ受け取った側はどうなるんだべなってのは
サーバサイドの問題か

393:デフォルトの名無しさん
09/05/03 19:34:01
まあ要素には全てArray入れればいいけどな

394:デフォルトの名無しさん
09/05/03 19:39:58
>>393
そうなんだけど、結局、どっちかを無視するしかないんじゃない?
GETで同じのが複数渡された場合、別々の動作をさせることは不可能なんだから

395:デフォルトの名無しさん
09/05/03 20:16:50
ひとつのキーに複数の値を受け入れるサーバサイドアプリもあるよ
たとえばこんなの

<input type="checkbox" name="item" value="1" />
<input type="checkbox" name="item" value="2" />

だからこういうフォームを吐くなら値は配列で持たなきゃいけないし
吐かないならどれかひとつで足りる。残りは捨てても構わない

396:デフォルトの名無しさん
09/05/03 21:59:25
>>395
エッ(゚Д゚≡゚Д゚)マジ?

397:デフォルトの名無しさん
09/05/03 22:25:34
例えばPHPあたりでは
?hoge[]=0&hoge[]=1 で配列送れるし
?hoge[foo]=bar で連想配列も送れた筈。

?hoge=0&hoge=1 みたいな時の挙動は知らん

398:デフォルトの名無しさん
09/05/03 23:06:54
int x = 0;
x = x++;

の後に x の値見ると C++ は 1 なのに C# は 0 なんだな…

399:デフォルトの名無しさん
09/05/03 23:07:29
ファイルなどの不定長データを配列に格納する場合
.NET1.xの仕様だと配列を再宣言してコピーする操作が必要だから
大きめに配列を宣言しないといけないってググッたら出てきたけど
それって本当だったんですか?

.NET2.xからは可変長な配列が作れるような仕様に
なったって認識で良いですよね?

400:デフォルトの名無しさん
09/05/03 23:16:24
何だよ、可変長な配列って。
エスパーするに、ListとかArrayListってのが可変長だよ。

つか
>>ファイルなどの不定長データを配列に格納する場合
って何?まさかbyte配列に格納しようとか言うつもりか?

401:デフォルトの名無しさん
09/05/03 23:19:29
>>399
入門書一冊読んでこいよ
C#以前にプログラミング言語習得したことないだろ

まー理解できるか知らんけど説明すると
ValueTypeを格納するコレクションが提供されていなかっただけ
パフォーマンスを気にしなければArrayListに格納できた

2.0からはList<byte>が利用できる

402:デフォルトの名無しさん
09/05/03 23:22:48
俺は1.0当時から可変長ファイルの読み込みにはMemoryStreamを使っていたから、
別に可変長配列を使う必要なんかなかった

単にそのライターがしょぼいんだよ

403:デフォルトの名無しさん
09/05/03 23:24:12
byteだったらmemorystreamにでもIREROYO

404:デフォルトの名無しさん
09/05/03 23:25:48
内部配列の初期サイズについて言ってるんじゃね?

405:デフォルトの名無しさん
09/05/03 23:29:20
>>390-394
インデクサなら上書きで済むけど、Add だとキーが被った時点で例外吐くでしょ
1つしか利用できないとかいう以前に、その1つすら取れないじゃないか

まあ、HttpUtility.ParseQueryString がカンマ区切りなのは、
全部配列にすると面倒だが、フレームワークの実装としては
2個目以降を捨てるわけにもいかないという状況での妥協点だな

406:デフォルトの名無しさん
09/05/03 23:37:00
>>398
C/C++/C# すべてその結果は未定義じゃなかったか?
気のせいだったらすまんが。

407:デフォルトの名無しさん
09/05/03 23:37:32
>>398
C++ は未定義じゃねーの? 少なくとも、C では未定義。

408:デフォルトの名無しさん
09/05/03 23:45:21
C#は変数を使用する前/後に更新していると思う

409:デフォルトの名無しさん
09/05/03 23:46:42
やべ、ちゃんと見てなかった

410:デフォルトの名無しさん
09/05/04 00:17:38
うーん、未定義でござるか。

演算子の優先順位を考えると C# の動きで正しそうでござるが。

411:デフォルトの名無しさん
09/05/04 00:17:50
C#の場合は未定義じゃないね。
y = x++; は、

temp = x;
operator ++(x);
y = temp;
と展開されるのが本則。(2行目はコンパイル通らんと思うが)

yをxに置き換えると、xにも(y同様)最終的に0が代入されるよね。

412:デフォルトの名無しさん
09/05/04 00:34:51
>>411
URLリンク(msdn.microsoft.com)(VS.80).aspx
>ただし、次のコード例の出力は未定義です。
>C#
>int num2 = 5;
>num2 = num2++; //not recommended
>System.Console.WriteLine(num2);

↑の記述でそう思ってたんだけど今見たら

URLリンク(msdn.microsoft.com)
>未定義の出力について誤りのある説明を削除

ウヴォアァ。パネェ、MSDN マジパネェ

413:411
09/05/04 00:43:31
おっと失礼。結局の所
int x = 0;
int temp = x;
x = operator ++(x);
x = temp;
ですな。3行目はoperator抜かないとコンパイル通らない。
(意味的には抜いてOK。後置++が特殊)

>>412
ははは。先入観でしょうね。

414:デフォルトの名無しさん
09/05/05 06:20:30
おはようございます
C#の勉強をし始めたのですが
Console.WriteLine(
"{0:#.##}"
,1.1
)
とかですと問題なく表示されるのですが
Console.WriteLine(
"{0:#.##}"
,0
)
にすると表示がなくなってしまいます
0.1にすると0のところが消えてしまい.1だけの表示となるのですが
これを0を含む数を表示させたいときは{}の中はどのように書けばいいのか教えていただけないでしょうか


415:デフォルトの名無しさん
09/05/05 06:37:46
{0:0.##} とか {0:0.00}
書式の説明はMSDNにあるが何箇所かに分かれていてちょっと探しにくい。 
{0:#,0.00}なら普通は {0:N2}と書くかな。

416:デフォルトの名無しさん
09/05/05 06:47:46
ありがとうございます
頭の0が省略されずにちゃんと表示されました

ほんの少し違うだけで結果が全然違うようになるんですね、、

417:デフォルトの名無しさん
09/05/05 10:09:31
そりゃ、ゼロ詰めの有無くらい両方できるようでないと使いづらい。

418:デフォルトの名無しさん
09/05/05 22:43:52
トライフェーズって何すか?trycatchのことっすか?

419:デフォルトの名無しさん
09/05/05 22:50:17
>>418
try clauseじゃなくて?
とりあえずどんな状況でその言葉が使われてたのか知りたい

420:デフォルトの名無しさん
09/05/05 22:52:29
トライパースTryParseだったりして

421:デフォルトの名無しさん
09/05/05 23:05:13
>>419
文字列変換をするところでエラーで無いようにトライフェーズしておいてって言われました

>>420
トライパース調べてみたらそんな気が・・・
しかしどうやって使うんすか?
引数に文字列と型を渡したら変換してくれる?


422:デフォルトの名無しさん
09/05/05 23:08:10
Int32 i;
if(Int32.TryParse("10",out i)){
// 成功
}else{
// 失敗
}

こんなん

423:デフォルトの名無しさん
09/05/05 23:10:24
>>422
thx
なるほど変換に成功したらiに変換後の値が入ってくれるのね
まじthx!

424:デフォルトの名無しさん
09/05/05 23:31:11
>>421
クオート付けて "トライフェーズ" でGoogleで検索してみるとわかるが、
そんな用語は恐ろしくレアだぞ。

何かを聞き間違えてるから、まずはそれを確認するべき。

425:デフォルトの名無しさん
09/05/06 11:33:27
foreach(MemberInfo m in members)の中で
m.Nameが御目当ての値になったらdataGridView1.AutoSizeColumnsModeに突っ込みたいんだけど
dataGridView1.AutoSizeColumnsMode = m.Name て書いたら型が違うと怒られました。
m.Nameをどう型変換細工してやれば怒られずに済みますか。

426:デフォルトの名無しさん
09/05/06 11:37:58
そのm.NameはDataGridViewAutoSizeColumnsMode列挙体のメンバに含まれてる名前なんだな?
Enum.Parseで文字列から列挙体に変換できるが

427:デフォルトの名無しさん
09/05/07 04:34:16
初回起動が遅い
10秒かかる

428:デフォルトの名無しさん
09/05/07 09:34:09
ひさしぶりだなあお前w

429:デフォルトの名無しさん
09/05/08 22:59:43
起動が遅いとか言ってる奴は情報の入手が遅い

430:デフォルトの名無しさん
09/05/09 09:50:24
Windows 標準の「ネットワークドライブの割り当て」ダイアログを表示する方法ってありますか?


431:デフォルトの名無しさん
09/05/09 11:09:03
はいどうぞ。
URLリンク(www.tsware.jp)

432:430
09/05/09 14:18:55
>>431
ありがとう!

433:デフォルトの名無しさん
09/05/09 15:08:43
C#入門ってここらあたりでいいんですかね。
URLリンク(www.atmarkit.co.jp)

あとフォームデザインなんかのVSの使い方解説してるお勧めサイトあったら教えてください。

書籍買えばいいんだろうけどせっかくでかいモニタでデュアル構成にしたから
C#&.NET入門はとりあえずオンライン一本でやってみようかなと。

434:デフォルトの名無しさん
09/05/09 15:22:32
MSDN

435:デフォルトの名無しさん
09/05/09 16:13:36
>>22
(ってこんなに前のにレスするのも悪いが、指摘しといたほうがいいので)
それはSambaの設定が悪い。smb.confにcase sensitive=yesって設定すれば
Windowsからどちらのファイルにもアクセスできる。

Windows自体は大文字小文字を区別するんだよ。ファイルシステムも区別
するようになってれば、正しい取り扱いが出来る。
NTFSが区別しないだけ。


436:22
09/05/09 16:50:21
>>435
早速試してみた。
Explorerからメモ長で開く、copyコマンドによるコピー、typeコマンドによるファイルリダイレクトで
読み込み、書き込みにおいてファイル名の大文字小文字が区別しうることを確認できた。

しかし、常用しているEmEditor(複数のファイルを1プロセスで開くタイプのエディタ)では
大文字小文字違いのファイルを同時に扱うことができなかった。

Windowsが標準で使えるFAT12、FAT16、FAT32、NTFSでは
いずれも大文字小文字違いのファイルは作成できず、
その挙動が前提となっているアプリも(少なからず)あるわけで、
残念ながらその指摘は現実的なものではないと思う。

437:デフォルトの名無しさん
09/05/09 19:51:26
その程度の技術知識しかない人間が作ったものを良く使う気になれるな…

438:デフォルトの名無しさん
09/05/09 20:04:50
>>436
そういうソフトウェアが結構あるのは承知してる。
>>22みたいな一見もっともらしい検証が、Windowsはファイル名の大文字小文字を
区別しないという誤解をますます蔓延させて、いつまで経ってもそういう仕様の
不具合がなくならない一因になってると言っても過言ではない。。
それを指摘したかっただけであって、現在現実的かどうかはどうでもいい。

439:デフォルトの名無しさん
09/05/09 21:00:00
Microsoft製品はWindows NTをPOSIX互換にしたとき以来ちゃんと対応してる筈だが、
サードパーティーではそこまで気を配れてるのは少ないだろうな。

440:デフォルトの名無しさん
09/05/09 21:07:16
>>438
そもそもSambaはSMB/CIFSプロトコルを理解するWindowsの互換環境に過ぎないわけだが。
クライアント側がファイルを読み書きするとき、クライアントはファイル名をそのままファイルサーバー側に投げているだけで、
ファイル名のチェックを行うのはファイルサーバー側だ。
従って、Windowsはファイル名の大文字小文字を区別する、という主張は成り立たない。

441:デフォルトの名無しさん
09/05/09 21:10:37
何を言ってるんだ…

442:デフォルトの名無しさん
09/05/10 01:11:28
Frameworkについての質問もいいですか?
System.Windows.Media.Imaging内のBitmapSourceは抽象クラスとあり、
インスタンスの生成ができないようにしているのはわかるのですが、
メンバのCreateメソッドでBitmapSourceオブジェクトを作れるようになってます。
わざわざこのような方法をとるのはどのような理由があるんでしょうか?
ふつうにインスタンスの生成可能なクラスでもいいような気がしますが
抽象メンバも見当たらないですし…見逃してるかもしれないけど

443:デフォルトの名無しさん
09/05/10 01:22:35
>>442
Hint: Factoryパターン

BitmapSource.CreateはBitmapSourceの子クラスを返す。

444:デフォルトの名無しさん
09/05/10 01:25:46
ちなみにCreateInstanceCoreがabstractのままだ

445:デフォルトの名無しさん
09/05/10 01:36:23
>>443-444
なるほど、調べてきますどうもありがとう

446:デフォルトの名無しさん
09/05/10 18:39:37
C#にはオブジェクトを丸ごとファイルに保存するようなクラスってありますか?

objectwiter.write(objectname);

こんな感じで。
たしかJavaにはあったのですが。

447:デフォルトの名無しさん
09/05/10 18:44:03
BinaryFormatterとかXmlSerializer
どっちも癖があるけどな

448:デフォルトの名無しさん
09/05/10 19:15:00
おおサンクス
ためしてみます!

449:デフォルトの名無しさん
09/05/10 19:47:43
INIファイル代わりに使おうとするとプロパティの増減でいちいちエラー吐くのがな。
もっと緩いシリアライザってないのかね。

450:デフォルトの名無しさん
09/05/10 22:03:31
簡単なアプリなら、断然ApplicationSettingsBaseだな。
ファイルを保存するという感覚すらないし、
設定をコントロールの表示に直接関連付けすれば読み書きするコードがだいぶ省けるよ。

451:デフォルトの名無しさん
09/05/10 22:36:58
The Code Project Open License (CPOL) 1.02
ってどんなライセンス?

英語はわかんね。

URLリンク(www.noppi.jp)
ここみると商用不可って書いてあったりするんだが、
どんなもん?

452:デフォルトの名無しさん
09/05/10 22:41:03
ここで教えて貰ったとして、それを信じるのか?

453:デフォルトの名無しさん
09/05/10 22:41:28
ライセンスは他人とくにこんな誰ともつかん掲示板で聞くようなもんじゃないよ
わからないライセンスなら使わないという選択肢しかない

454:デフォルトの名無しさん
09/05/10 22:47:39
>>451
ライセンス内容と全然違う事書いてて笑った。
何度も強調されてる部分をどうして取り違えるんだろうな

455:デフォルトの名無しさん
09/05/10 22:49:00
聞くならUNIX板あたりか
URLリンク(www.domo2.net)

456:デフォルトの名無しさん
09/05/10 23:03:30
>>451
読んだ。
何が知りたいの?
COPLのソフトウェアを組み込んだ商用ソフトウェアを作ることは可能だよ。

ただ、全体としては、ちょっとオープンソースとかフリーソフトウェアの
ライセンスと呼ぶには変な制限が多いライセンスかも。

457:デフォルトの名無しさん
09/05/10 23:04:37
CPOLだったね。
>>455
Code ProjectはMS系の環境のものが多いから、UNIX板ではないかも。

458:デフォルトの名無しさん
09/05/10 23:12:06
そういう縛りは特にない

459:デフォルトの名無しさん
09/05/10 23:36:06
Windows API Code Pack v0.85 きたけど
URLリンク(code.msdn.microsoft.com)
・Support for Direct3D 11.0 and DXGI 1.0/1.1 APIs.

Direct3D 11.0 をサポート・・?なん・・だと・・・

460:デフォルトの名無しさん
09/05/11 01:54:43
DXGIってなんだろ?

461:デフォルトの名無しさん
09/05/11 02:23:21
Direct3D のうちあまり変わらないところというかコア部分を分離した
やつ。今の Direct3D は DXGI と Direct3D と D3DX から構成される

具体的には、DXGI はテクスチャ、サーフェス周り(フォーマットとか
そんなの)とかアダプタの管理とかそんなの。

>>459
見た感じ SlimDX の焼き直しにしか見えないというかんーむ。
フルマネージにしないの?

462:デフォルトの名無しさん
09/05/11 10:57:13
質問なんですが、テーブルイベントでROWSPANは、使えないのでしょうか?

463:デフォルトの名無しさん
09/05/11 11:33:05
出来るだけIDEに依存しないようにプログラムを書いた方がいいの?

464:デフォルトの名無しさん
09/05/11 11:50:13
いえVSを使用しているのでそこは特に考えていません。
それとROWSPANじゃなくて、COLSPANでしたorz
一応わからない所のソースを載せておきます。

TableRow r = new TableRow();
TableCell c = new TableCell();
c.BackColor = System.Drawing.Color.Aqua;
c.Controls.Add(new LiteralControl("TEST"));
c.Width = 100;
c.colspan = 2;  ←できない・・・
r.Cells.Add(c);


465:デフォルトの名無しさん
09/05/11 11:51:03
開発・保守が自分の中だけで完結するんだったら気にしないでいいんじゃないの

466:デフォルトの名無しさん
09/05/11 11:59:29
唐突でわかりにくいんだが、WPFの話?
もしそうならこっちのがいいかも

WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3
スレリンク(tech板)


467:デフォルトの名無しさん
09/05/11 12:04:16
ってBackColorがあるのはASP.NETか
まあ環境書けばここでもいいけど、書かないとわからんぞ・・・
ASP.NETのスレもある

【質問】ASP.NETスレ Part5【議論】
スレリンク(php板)

468:デフォルトの名無しさん
09/05/11 12:08:29
で、ちょっとコード貼っつけて見たけどIDEの補間で
c.ColumnSpanが出てきたけどこれじゃないの?

469:デフォルトの名無しさん
09/05/11 12:44:42
あるstringの変数が空文字かどうか確かめる場合、
以下のどれを使うのが良いですか?
また、どれが一番早いですか?

if (str == "")
if (str == string.Empty)
if (str.Equals(""))
if (str.Equals(string.Empty))
if (str.Length == 0)


470:デフォルトの名無しさん
09/05/11 12:57:30
速度はそこがボトルネックであることが判明してからでいい
== で空文字列どっちかと比較が見やすくていいんじゃないか

471:デフォルトの名無しさん
09/05/11 14:08:24
ありがとうございます

if (str == "")
if (str == string.Empty)

が見やすくていいということですね。
見た感じわかりやすいので上のでいきたいと思います。


472:デフォルトの名無しさん
09/05/11 14:11:45
そういうのって最適化されるんじゃないの?

473:デフォルトの名無しさん
09/05/11 14:19:12
文脈によるしね。
そのコードの前後関係によって空文字であるかより、
長さゼロであることが主目的であればLength見るし。

474:デフォルトの名無しさん
09/05/11 15:35:17
String.IsNullOrEmptyも選択肢に加えてあげてください

475:デフォルトの名無しさん
09/05/11 15:37:56
よかったなC#は

Javaだとコンパイラの最適化でリテラルプールに同じ文字列が放り込まれて
しまう事があるので==は使えないんだよなあ


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch