いちおつ
刀、 , ヘ
/´ ̄`ヽ /: : : \_____/: : : : ヽ、
,. -‐┴─‐- <^ヽ、: : : : : : : : : : : : : : : : : : : : : : }
/: : : : : : : : : : : : : :`.ヽl____: : : : : : : : : : : : : : : : : : /
,. -──「`: : : : : : : : : :ヽ: : : : : : : : :\ `ヽ ̄ ̄ ̄ フ: : : : :/
/: :.,.-ァ: : : |: : : : : : : : : :\: : : : :: : : :ヽ \ /: : : :/
 ̄ ̄/: : : : ヽ: : : . . . . . . . . . . .、 \=--: : : :.i / /: : : : :/
/: : ∧: \: : : : : : : : : : ヽ: :\: : : 〃}/ /: : : : :/ 、
. /: : / . : : :! ヽ: : l\_\/: : : : :\: ヽ彡: : | /: : : : :/ |\
/: : ィ: : : : :.i: : | \!___/ ヽ:: : : : : : :\|:.:.:.:/:! ,': : : : / |: : \
/ / !: : : : :.ト‐|- ヽ \: : : : : l::::__:' :/ i: : : : :{ |: : : :.ヽ
l/ |: : :!: : .l: :| \: : : l´r. Y {: : : : :丶_______.ノ: : : : : :}
l: : :l: : :ト、| 、___,ィ ヽ: :| ゝ ノ '.: : : : : : : : : : : : : : : : : : : : : : /
|: : :ト、: |: :ヽ ___,彡 ´ ̄´ ヽl-‐' \: : : : : : : : : : : : : : : : : : イ
!: :从ヽ!ヽ.ハ=≠' , ///// ///u /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
V ヽ| }/// r‐'⌒ヽ イ〉、
ヽ、______ー‐‐' ィ´ /:/:7rt‐---、 こ、これは
>>1 乙じゃなくて
ィ幵ノ ./:/:./:.! !: : : : :!`ヽ ポニーテールなんだから
r‐'T¨「 |: | !:.∨:/:./: :| |: : : : .l: : : :\ 変な勘違いしないでよね!
/: : .|: :| !:.!ィ¨¨ヾ、:.:/ !: : : : l: : : : : :.\
いい歳こいてAAとか貼り付けて恥ずかしいとか情けないとか思わないのかなマジで。 気色悪いわ。
ワロタ きっしょw
天才女子プログラマー説
いい年してプログラミング言語に萌えてる奴らが何いってんの?
マ板でやれよ
シングルトンをシリアライザつかってディープコピーしてやるですぅ
13 :
デフォルトの名無しさん :2011/04/27(水) 22:28:29.16
まーたデフォルトコンストラクタ付きの似非シングルトンクラスか
某言語と違ってシリアライザはコンストラクタを使用せずにインスタンスを作成するみたいな仕様がないからOK
リモーティング系のシリアライザはコンストラクタがprivateでもデシリアライズできるぞ もう過去の遺物だけど
プ板でやれ
どっちの板だよw
Asyncいいね
Syncもいいね
20 :
デフォルトの名無しさん :2011/04/29(金) 01:33:07.31
XmlDocument.Load(URL)で外部サイトのからXML取得する際に URLのQueryStringに&(アンパサンド)が入ってると xmlException(指定されたエンコードに無効な文字があります)が出るんだけど URLEncodeした(%26)だと目的のXMLが取得できない。 なんかいい方法ない??
WebClientなり経由させる
22 :
デフォルトの名無しさん :2011/04/29(金) 01:46:24.54
well-formedじゃないXMLもどきを送ってくるGoogleにひとしきり文句付けた後 クエリにoe=utf8を追加
ウンコっすなぁー
25 :
デフォルトの名無しさん :2011/04/29(金) 16:32:52.91
前スレ 1000 名前:デフォルトの名無しさん[sage] 投稿日:2011/04/29(金) 16:01:22.54 C#ってDirectX使えますか? 使えるけどどうせならXNA使え
>>23 おおおお!できた!
ありがとうー!
これは何をやってるの?
キャラクタセットを変更?
output encodingの略 Googleの大体のクエリで使える
1000で質問書くなよ
ネタって事もわかんないの?馬鹿なの?
馬鹿です
わかってねーな、ネタにマジレスするからかっこいいんじゃねーか
31△
そう、私バカなの だからもっと叩いてほしい
チッ じゃあ放置な
スレッドプールを使わない理由で個人的に主なもの →STAにできないのでCOM系の操作ができない これなんとかしてほしい
[STAThreadAttribute]って長すぎ
Attributeはいらんだろ
STAだとWaitAllが使えないってのだけ何とかして欲しい
STAにしないとクリップボード使えないからいつもSTAだけど、 普通にスレッドプール使ってるぞ?
GUIスレッド(STA)+スレッドプールじゃなくてSTA×2ってこと?
スタッスリードついてても普通にマルチスレッド使えた気がする 中途半端な知識晒すと恥かくぞw
釣りなのかマジなのか判断中....
MinGWスレどこ行っちゃった?
バックグラウンドがasp.netのflashをXMLを使って連携させようとしているのですが、 プロジェクトを作るときにどれを選ぶのがベストなのでしょうか ・ASP.NET Webアプリケーション ・ASP.NET Webサービスアプリケーション 今まではASP.NET Webアプリケーション & ジェネリックハンドラを使ってやろうかと考えていたのですが、 ジェネリックハンドラ自体の使い方が間違えてます?
俺ならWCFだな
48 :
46 :2011/04/30(土) 14:14:26.82
>>47 oracle <----> iis(asp.net) <--ここはXMLを使う---> flex
っていうアーキテクチャの業務ソフトをカスタマイズする事になったのね
それで、デバッグとかの事おw考えると、asp.net側では普通何を使うのかなーと思ったわけ
俺ならaspxのPage_LoadでゴリゴリXML処理する。 FlashってWSDL解釈できるんだっけ?
50 :
46 :2011/04/30(土) 15:06:09.47
>>49 なるほどねー
Flashはまだ何もやってないので、さっぱりー
とりあえずは、asp.net webサービスでアプリケーションにしてみたんだけど
デバッグの時にIEに表示される「起動」ボタンを押してみた
SOAPじゃないのねこれ、httpのヘッダをいじってあげないとsoapにならないのかい?
>>50 .aspxはHTMLを生成するためのものだから。
this.Request.Header["Content-Type"] = "aaa"; みたいな感じだったかな。
ソープでやりたいなら.svc一択。.asmxは要らん。
52 :
46 :2011/04/30(土) 17:19:01.30
>>51 >ソープでやりたいなら.svc一択
ASP.NET DataServiceって何よ?
Stream経由でStringBuilderに書き込みたいのですが、どの クラスを使えばよいでしょうか。 FileStreamのかわりのStringStreamのようなものを探してます。
TextWriterならStringWriterのバッキングストアがStringBuilderに出来るけど、Streamは知らん 最悪MemoryStreamでどうにかなるだろうが
端的に言ってStream経由っていうのが意味不明。
>>54 MemoryStreamでやればいいですね。
>>55 Stereanに対してしか書きこんでくれないクラスがあるんで。
Sterean ここにもインテリセンスの弊害が
お恥ずかしい限りです。
>>54 様、お陰さまででできました。
改めてありがとうございました。
なんちゃらStreamはいいとして、 正直それらStream継承クラスとうんちゃらWriter/かんちゃらReaderの関係がよく分からない
Stream…連続したバイト列 TextReader/TextWriter…ストリームのデータを文字列として読んだりストリームに文字列書き込んだり BinaryReader/BinaryWriter…ストリームのデータをプリミティブ型として読み書き
バイトでの入出力をするStreamに対し、TextReader/TextWriterは 文字(char)で入出力する。TextReader/TextWriterは生成時に 文字コードの指定が必要となる。
(´・∀・`)ヘー
まんこー
そこ、すごくデリゲートなの
CLIいじらないで
>>65 COREGA欲しいんだろ のコピペ思い出した
ああもうDELL
var t1 = DateTime.ParseExact("(03/25 Fri 00:24:31)", "(MM/dd ddd hh:mm:ss)", CultureInfo.InvariantCulture); var t2 = DateTime.ParseExact("(05/01 Sun 23:28:54)", "(MM/dd ddd hh:mm:ss)", CultureInfo.InvariantCulture); t1は問題ないのですが、t2で System.FormatException : 文字列は有効な DateTime ではありませんでした。 が出ます。t2は何が問題なのでしょうか? よろしくお願い致します
hhは12時間表記 HH:mm:ss
>>71 おおおお!なるほど!
ありがとうございました!
DateTimeって高機能だな。
TryParseで例外投げるから糞
え?
styles が有効な DateTimeStyles 値ではありません。 またはstyles に、無効な DateTimeStyles 値の組み合わせが指定されています (AssumeLocal と AssumeUniversal の両方が指定されているなど)。 これは呼ぶ側で防げるじゃん
77 :
46 :2011/05/02(月) 06:40:58.29
お前らおはよう vs2008で.net 3.5でASP.NETのコードを書きました それを、iis 7.5にアップロードして、アプリケーションプールの「.NET Frameworkバージョン」を v2.0→v4.0に変更しました そしたら、web.configがおかしいと怒られる なんで、v2.0→v4.0にしただけで怒られるの?M$の仕様変更なのかな
よくあること
きっちりバージョンチェックしてくれてるんだからイイじゃないw
vs2008はv2.0じゃね?
バージョン違ったら動かないっていうのは素晴らしいよな 一見正常動作しているけど実は壊れていて 本番でないと再現しないプログラムのデバッグとか地獄だ
MSの後方互換性に対する意識の高さは最高レベルだろ 他のところなら「.NET4は以前のバージョンと100%の互換性があります!」と言っちゃうところ
具体的にweb.configのどの行がエラーだったんだよ
CLR2.0向けにコンパイルされたアプリケーションは .config弄らない限りCLR4では動かないっていうのは有名な話 「必ずテストしろ」という意味でわざとやってる
いっちゃうけど実際に動くかどうかは別 バグがある可能性は否定できない また、以前の動きにバグがあって同じようなバグり方をするとも言い切れないし 普通にこえぇよ
CLR4が入ってて2.0が入ってない可能性があるのはXPだけでは? とXPから書き込んでみる
2.0でもSPあるなしで場合によっては動き変ると思うんだけど・・・・
floatとdoubleの計算速度が変わらないんですけど、 これはCPUの仕様ですか、.netの仕様ですか?
両方じゃなかったっけ CLIの仕様では、floatかdouble同士の演算は 「double以上の精度の浮動小数点型」に変換してから行うことになってるはず
その理屈だと、変換が入る分floatの方が遅くならないとおかしいのでは? まあそもそもそんな仕様ありえんと思うけど....
変換というかレジスタにロードするだけだと思うけど
仕様の記述の都合でしょ。実装はその通りでなくてもいい。 SSEとか特殊な場合もあるけど一般的にはほとんど違いはないよ。 メモリアクセスがネックになる場合はサイズが小さい分floatの方が速いかも。
確かにx86のFPUはレジスタに値をロードする時点で自動的に80bitの内部形式に
変換が行われるらしい。
CLIの仕様が
>>90 の言うとおりなら、x86のこの仕様に乗っかってるってことかな。
C#ってHTML解析簡単にできますか?
charの格納されているコードが全角文字か半角文字かをしらべたいとおもっています。 何か良い方法はございますでしょうか?
そんな概念はUnicodeにはない Shift-JISに変換してから文字コードでチェックしたら
>>95 HTMLによる
きっちりタグが付けられてる場合はいいけど閉じタグが無かったりとかしたら厳しい
99 :
96 :2011/05/02(月) 18:00:27.59
>>97 レスありがとうございます。
ShiftJIS変換して、1byte目が 80-90 E0-F0 の範囲の値ならば半角と判定してよいでしょうか?
Unicodeだとデザイン上幅の違う同じ意味のフォントってことで別のコードがわりあてられているんでしょうかね・・・。
昔やった微妙な方法で 1文字づつ半角全角をチェックしていってたなぁ… 1.1文字をSJISに 2.バイト数が1なら半角、それより大きければ全角 みたいな
「半角」の定義によるとしか言えん シングルバイト文字を半角というならその程度でよかろう
>>95 データの抽出なら部分的に切り出してXLinqが最強
ページそのものの構造を解析したいとかならパーザを自分で書くしかないんじゃね?
ベジータ
>>97 > そんな概念はUnicodeにはない
あるだろ
「不明」と定義された文字が多いけど、それでもSJISに変換するよりはマシ
なんとなくUTF8を使ってるけど、 将来のことを考えたらUTF32とかにしたほうがよかったりする?
>>99 最終的に出力がSJISになるような処理ならいいけど、
そうでなかったらSJISに変換して半角全角の判定するなんてやめたほうがいいよ。
フォントがどうこうってことは画面に表示されたときの
サイズを気にしてるの?
だったら、画面にどのフォントで出力したらどのくらいのサイズになるとか
調べる方法があるはずだから、そっちからアプローチしたほうがいいよ。
昔それテキストビューワでやったら、ワードみたいな速度になったな。
UTF128 うん最高!
>>95 SGMLReader使えばウンコHTMLでも適当に補修してくれるから簡単
111 :
99 :2011/05/02(月) 20:37:16.93
MeasureStringだっけ?
どもどもです
>>99 >デザイン上幅の違う同じ意味のフォントってことで別のコード
割り当てられている。たとえば「W」と「W」は
W: Narrow(U+77)
W: FullWidth(U+FF37)
でもさ、一般に「全角か半角か判定するプログラムを作って」って言われたら
見た目の文字幅とかUnicodeテーブルの属性とかじゃなくて、
シフトJISでの表現が2バイトか1バイトかってことを求められてると思うんだ。
かっこ悪いかも知れないけど、要求に対する最も素直な実装はシフトJIS変換だよ。
んでもってシフトJIS以外の文字に全角半角を定義することはナンセンス。
もう終わった話です
やりすぎエスパーくん
扱える文字はSJISで表現できる範囲内。 使うフォントは固定幅のやつだけ。 みたいな仕様だったら、SJISに変換して半角全角の判定もいいかもしれんけど。 で、案外業務系だとこういう仕様で通ったりするかもしれんけど。 せっかくC#はサロゲートペアとか連結文字とかに対応しやすい環境だから なんかもったいないよね。 あとSJISで表現できる範囲内の文字だけ扱うって仕様だと入り口でそれ以外の 文字をはじかないといけないからかえって全体的なコストがあがるかもって 心配もある。
余計に開発コストかかるほうがもったいないだろ。 日本ではShiftJis最強なんだよ。
いい加減に死ね^q^
120 :
デフォルトの名無しさん :2011/05/02(月) 22:00:59.00
文字コードの統一マダァ-? (・∀・ )っ/凵⌒☆チンチン
>>120 放置しておいてもunicodeになるよ。
COBOLみたいにズルズル行くでしょ 2030年でもまだ残ってると思う
俺が新しい規格tanakacodeを開発して世界中に広める みんな俺についてこい!
半角、全角が常につきまとう日本ではSJISが絶滅することはない。
126 :
デフォルトの名無しさん :2011/05/02(月) 22:15:18.31
>>121 IP問題と文字コード問題はネット時代の二大問題なんだよね
>>124 中途半端にガラパゴスPCが伸びた時代があるのが
今から考えると痛いね
>>125 それはないだろう・・・と思いたいが
2chもいまだにS-JISだしなあ
でもこういう古臭いところじゃないネットサービスは
UTF-8とかほかがメインだしね
別にS-JISが残ったところで何も問題はないと思うけど.... 問題はエンコーディングが何かはっきりしないデータが存在すること、それだけであって 別にS-JISのデータそのものが問題であるなんてことはありえない。
>>128 おいおい、過去MSがこの件でどんだけバグ出してると思ってんだよ?
日本語文字の比較、ソートで常にバグ出してるだろ。
新しいOSが出るたびに先祖がえりするし。
外人には全角、半角の概念がないからだよ。
131 :
46 :2011/05/02(月) 22:25:05.41
>>78-87 お前ら優しいな、俺は会社ですぐにはレスできなかったけど
ありがとうよ
内部でUTF-16で処理してるから、結局処理のコストは どのエンコーディング使っても大差ないっていうか。 半角全角が簡単に判定できてうれしいのって、固定幅のフォントで 画面表示するときに長さの計算がちょっと楽できてうれしいくらい なのでは。
>>130 ソートなんて、ひらがなカタカナでしかしないし。
>>129 SJISで表現できない漢字が追加されてるから、将来に禍根をのこしそう。
現状、SJISで動いてるシステムも多いからSJISで表現できる文字しか 扱いませんって割り切った仕様でもOKかもしれんけど、あとあとの ことを考えるとそこまで割り切るには逆に勇気がいる。
>>132 それゃ独立してるシステムなら、それでいいが、
ほとんどのシステムは完全に異なるプラットフォームと
データのやりとりするわけで。とくに業務系は。
前に文字コードが原因で銀行システム統合でコケてたろ。
銀行系のシステムはもうパンドラボックスな雰囲気がする
138 :
デフォルトの名無しさん :2011/05/02(月) 22:35:39.45
>>137 銀行系の内部はこの際どうでもいいよ
せめてweb系は脱S-JISして欲しいわ
無駄だと思うずら
>>136 いやC#やjavaだともう内部のエンコーディングはUTF16しかないわけで、
内部はUTF16、外部のやり取りのときにそれぞれ変換するって方法しか
ないわけだけど。
141 :
デフォルトの名無しさん :2011/05/02(月) 22:48:03.30
そういえばUTF-16もサロゲートペア採用してるみたいだけど .netの内部でもやってるのかな?
>>141 StringInfoを使えばサロゲートペアと結合文字列に対応できるね。
意味わかんねーよ。 サロゲートペアはUTF-16でしか使用できないものだろ。 .NETはUTF-16を採用している。内部とか関係ない。
> サロゲートペアはUTF-16でしか使用できないものだろ。 じゃUFT-8で出力したりすると、サロゲートペアの文字ってどうなると思ってるの?
>>143 内部とか関係ないってよく分からないけど、.netみたいに
内部のエンコードがUTF-16と決められてるシステムは、それ以外の
エンコードで外部とやり取りするときには、変換が必要だって
話だけど。
146 :
143 :2011/05/02(月) 23:28:10.69
>>144 UTF-8の仕様に従ってコードポイント値がバイト列に変換されるだけ。
>>145 「文字コードXを使用するプログラムはX以外の文字コードで他と
やりとりするときには変換が必要」って、そんな話をしていたの?
すまんが何をいいたいのかよくわからん。
>>140 JavaはUTF-16じゃない。UTF-16に似た独自文字コード。
>>146 >そんな話をしていたの?
そう。そんな話。
銀行系だと外部とのやり取りがあるからUNICODEじゃなくてSJISがいい
みたいな話だったけど、C#やJavaならどのみち内部でUTF-16で処理して
外部に出すときSJISに変換って処理になるんじゃないのって話。
内部ってのを誤解してそう。
SJISを使うべきみたいな話じゃなくて用語の使い方がおかしいとかそういうツッコミか。 まあ、細かいことはめんどくさいからいいですけど。
銀行系が半角かなとシフトJIS全盛なのはわかるが、 せめてWebサイトはUTF-8にして欲しいね。 三井住友とかMUFGとかゆうちょとか。
ムリース
銀行系だとEBCDICも使われてたりするのが更に面倒くさい
どこまでも我が道突き進む国でワロリーヌ
そんなたいそうなもんじゃない
>>150 銀行が半角カナを使うのはいいとして、ユーザーに入力させるのにも
半角カナってなんなんだろうね。
全角で入力させて、半角に変換するとかなんかまずいことでもあるのかね。
全角加奈から半角加奈に変えると濁点で文字数が変わるとか
>>156 「カ゛」じゃなくて「ガ」で打ち込んだのに「ガ」で保存されてる!
とか苦情が着たりするのだろうか。
ぬるぽ
半角ひらがな
160 :
デフォルトの名無しさん :2011/05/03(火) 11:41:42.64
jQueryの$ajaxとかでリクエスト投げると 必ずisPostBackがFalseになるだけど、 解決策見つからない。 UpdatePanelとか使いたくない。。
C#の匿名関数に関して質問です。 匿名関数内でジェネリクスを使う事はできますか? 例えばこういう事が書きたいのです。 Func<A,A> id<A> = delegate(A x) { return x; }
無理
あまりC#たんを落胆させない方がいい・・・
つかえねーな
諦めが肝心
グローバルのマウススクロール取得はどうすればおk? フックか
デリゲートを使う
>>163 そんな事を書くとM$が.NET 5.0で対応させてくるぞ
LINQいいよね〜
この繰言クン、自分以外の誰かにこれ受けてるとでも思ってるのかねw こういう奴ってストーカー予備軍だと思うよマジで。 お前なんか大嫌いって言われても「まーた恥ずかしがっちゃって」みたいな反応をするタイプ。 まず間違いない。
172 :
デフォルトの名無しさん :2011/05/03(火) 16:28:38.47
↑みたいな既知外がマッハで反応してくるんだからやめられないよねー
ソーメン。
IBMとか日本のシステム作るときに修正させなかったのかなぁ
>>171 煽られたのが悔しくて本気でスレ潰そうと考える粘着質なのはどこのスレにでもいる
177 :
デフォルトの名無しさん :2011/05/03(火) 17:27:37.92
>>168 どっちも常にFalseだなぁ。
C#でjQuery使って非同期通信するときって、
ジェネリックハンドラ呼び出すべき?
CodeFileで処理したいなぁと思ったんだけど、
その理由がテキストボックスとかコントロールの値がコードビハインドで取得できると
いいなぁと思った。
非同期通信だと、どっちにせよ出来なさそう。
jQueryからコードビハインドに値渡すしかないのかな?
>>161 Func<A, A> id = x => x; って書いた時点で、x の型は推論で決まるはずだけども。
A をその場で自由に変えたいとかってありえる?
LINQいいよね〜
180 :
46 :2011/05/03(火) 23:46:11.21
>>179 linq to sqlでinsert文と動的にsql文を組むことが、面倒なのでlinq to sqlは使わない事にした
ideの補完機能がせっかくあるのに、残念
181 :
180 :2011/05/03(火) 23:47:26.72
ごめん、また名前に46っていれちゃった 2ちゃんねるブラウザ変えたから...
linq to sqlなんて今世界から消滅しても困る奴ほとんどおらんやろ
実際LINQ to SQLは公式にいらない子扱い Entity Framework使えということだからそのうちObsoleteくるよ
>>183 それじゃ、
>>179 はlinq to xmlがいいよねーって話してるのかい
あんまりlinqとか勉強してないんだよ
LINQの本気はLINQ to Objects LINQ to XMLはLINQ to Objectsを使ってXMLを扱うためのライブラリで、 LINQ to SQL と LINQ to Objectsの関係とは異なる
九州のローカルアイドルかあ
>>186 HKT48と真っ向勝負か。胸が熱くなるな。
LISP vs LinQ
プリズムジャーンプ!
LINQいいよね〜
キミとセツゾク
DBNullをnullに1行で置換できますか? これはちょっと長い気がします KeyWord = ((reader["key_word"] is DBNull) ? (null) : ((string) reader["key_word"]))
その場合はas stringでいいんじゃないの
197 :
195 :2011/05/04(水) 16:37:41.52
868 名前:login:Penguin [sage]: 2011/05/04(水) 12:50:13.24 ID:XkozMOyX
http://developers.slashdot.org/story/11/05/03/2226259/Attachmate-Fires-Mono-Developers Novellを買収したAttachmateがMonoの開発者を解雇だって。
Mono死んでしまうん?
870 名前:login:Penguin [sage]: 2011/05/04(水) 13:29:20.38 ID:6RmX5fcV (2)
>>868 痛すぎるなw
linux じゃもう .NET は使えなくなるってことかい?
結局 .NET は windows 依存になるのかw
何のためにOS非依存にしたのかわからなくなってるなw
872 名前:login:Penguin [sage]: 2011/05/04(水) 14:25:44.27 ID:1FVrdkk4 (3)
>>871 Rotorはあからさますぎる釣りだから誰も手を出さんだろ。
「OS差を吸収する中間層」として存在していたもので言うと、
JavaはSUNごとOracleに買われて消え、そのJava対抗だったはずの.Netも
Linux版が消えて「OS差を吸収する」ことはなくなり、「それなんてMFC?」
になることが決まってしまった。
まぁ、Monoをもっとも推進しなければならない立場のopenSUSE (SLES/SLEDのベース)が
Monoを必要としていない(今は標準じゃインストールすらされない)作りになった
時点で、Monoは終わってたんだと思う。
コピペマン参上!まで読んだ。
GNOMEもあるし亡くなりはせんだろ。
アメ公はほんと共存共栄とかビタ一文考えないなww
.NETなんてWindows依存に決まってるだろ。 System.IO.FileAttributesとかSystem.AppDomain.CreateComInstanceFromとか もともと非依存なんて考えられてない作り。
CLIの仕様にどこまで含まれてるんだっけ? MS実装の.NETはそりゃどう考えてもWindows依存なわけで。
MSDNの情報はMS製品上で使う場合限定でフリーなんで、Monoは黒に近いグレー Oracleと違って潰す気はないと思われるが
Linux対応しなくてもマルチプラットフォーム。
>>205 コミュニティ プロマイズとかいう声明だしてなかったっけ。
Mono みたいな活動に対して特許侵害で訴えることはしないっていう。
home/file→home URLの階層を上位に移動する方法は? 試したこと Directory.GetParent→ドライブ名が付く GetDirectoryName→/が¥に変換される
それが本当にURLならSystem.Uri型を使えばいいよ
211 :
デフォルトの名無しさん :2011/05/05(木) 22:54:04.81
コンストラクタじゃなかったかな
XML documentはどうやって解放するの? 他のクラスにはClose Dispose Clearとかあるのに
アンマネージ リソースを持たないからClose Dispose Clearはいらない。 他からの参照が切れてれば自動的にGCで回収される。
IDisposableじゃないクラスは放置でOKだよな Mutex以外
参照が切れるの定義って何なんだろ・・・
>>215 参照数をカウントしてるんじゃなかったっけ?
世代別GCだからルートオブジェクトから辿れなくなったら、だよ
218 :
デフォルトの名無しさん :2011/05/06(金) 06:31:10.47
Google Chromeのウィンドウみたいに 閉じるボタンはあるけどタイトルバーのないウィンドウってどうやって作ったらいい?
219 :
デフォルトの名無しさん :2011/05/06(金) 06:33:21.26
最大化するとタイトルバーの位置までタブがこない?
Title=String.Empty
閉じるボタンはあるけどタイトルバーのないウィンドウじゃなくて タイトルバーのないウィンドウでそれっぽい位置に閉じるボタン風のボタンを置けばいい
その方法だとWindowsのテーマ変更に対応すると とても面倒なことにならないか
>>223 ControlPaint.DrawCaptionButtonの存在は知ってていってるんだよね?
メニューバーのないプログラムってありなの? 最近増えてるけど機能を探すときイラッとくる
Vistaのエクスプローラも標準でメニュー非表示になったのが良くある不満の一つだたっけな
この大ディスプレイ時代にメニューバーの10数px節約して何の得があるんだろう どうせWeb広告で100px単位で無駄な領域が発生してるのに MSが見当違いなことをするのはいつものことだけど、 あのグーグルがメニューバーを省略したってことは 頭のいい人たちはメニューバーいらないって思ってるってことだよな でも全機能を列挙する方法としてメニューバーより優れた機能がついてるわけではないし 頭の悪い俺にはグーグルの意図が理解出来ない いったいどういうつもりなんだ
228 :
デフォルトの名無しさん :2011/05/06(金) 08:42:10.11
Chromeの仕様っていまだにリリースされないブラウザOSの関係でしょ
あれってハード仕様を絞り込んだ状態になるだろうから
解像度が1024x600とかその辺を利用するのでなるべく固定で
場所とるようなものはなくしたほうがいい
PC前提だと
>>227 のいうような話だが、モバイル端末で普及してる
解像度で考えると10px程度でも結構違う
あとweb広告はページの中のデータの一部なので引き合いに出すことではない
普通の人にメニューは使いもしない機能が並んでて煩雑なんだろ その辺のお前らみたいなプロだけが商売相手じゃないんだ、なぜお前らに合わせる必要がある。 それに開発ツールはメニューあるだろ。
ツールバーに広告を表示することは厭わない
>>228 納得
それならオプションでメニューバー表示できたらいいんだがなぁ
>>229 普通の人こそどこを探していいのかわからない状態は発狂しそうになるだろ
今もう、「普通の人」って、ブラウザーをアプリとして認識してないんじゃないかな。 ページ内の情報がすべて。 だからブラウザーの方に余計なメニューバー付いてると邪魔な何かと認識する。
メニューバーからアクセスする必要のある機能全てをひとつのボタンにまとめたかっただけだよ Chromeも、Operaも、Firefox4も
せっかくハッシュテーブルになってるものを ひとつのボタンにまとめたら探しにくくないか?
あほみたいに多いわけじゃなければ、一度に全部見れたほうが分り易い
それアホみたいに増えたときにどうするのかという問題は解決してないよね
238 :
デフォルトの名無しさん :2011/05/06(金) 10:20:18.74
>>237 まあそりゃ無理だろう
結局1本にあれこれ詰め込むなってことだよ
メニューバーが無いUIっていうとゲームなんかも多いけど
結局多層化で対応したりしてるしね
これといったUIはないよ
ただゲーム系のUIでもタッチパネルの普及でまた雰囲気変わったけどさ
心が不安定になるね 明らかにツールバー作るキットで作ってるな 検索ボックスと右隣のSearchボタンがテンプレになってる
>>229 の言うとおりで、メニューはパソヲタ的な人以外は使わない(使えない)んだよね。
ツールバーの類もボタンがたくさん(7つ以上とか?)並んでると使えない人が多い。
だから最近のUIの「とりあえず見た目スッキリ」に向かってる方向性は
商業的には正しいと思う。
リボンUIは「とりあえず見た目スッキリ」の点ではいいけど、
上級ユーザーがカスタマイズして使えない点で最悪。
あと、大画面化が進んだっていっても縦方向の解像度は貴重。
だからメニューをデフォで非表示にしたり、タイトルバーにタブを表示したりする工夫も
基本的には正しい方向性だと思う。
その点でもリボンは評価できんな。
>上級ユーザーがカスタマイズして使えない えっ? Office 2010とかカスタマイズ可能だよ。 クイックアクセスツールバーなら2007もできる
カスタマイズって単語の幅が広すぎてどこまで求められてるのか分からん
>>242 まあ2010だとリボンですら確かに全くカスタマイズできないわけじゃない。
でも2003までのツールバーほど自由度ないんだよね。
「カスタマイズ性が低い」と訂正します。
スレ違いなんでこの位で勘弁しといてw
>>241 結構まともなこと言ってるのに、リボンについては食わず嫌いで知識ないんだろうな。
>>241 それほんとかよ
メニューバーなかったら素人に口頭で操作説明するのめちゃくちゃ大変だぞ
てか、その情報どこかに統計とかでもあるの?
>この位で勘弁しといてw どのあたりが2003に比べてツールバーのカスタマイズ性低いのか知りたいね。 参考までに教えてよ。ちなみにメニュー廃止は2003より最小化リボンの方が上だと思う。
248 :
デフォルトの名無しさん :2011/05/06(金) 14:27:26.78
ただ、アプリ作ってもリボンが埋め尽くされるほど機能持っているのは希だよな スカスカのリボンはタブがある分鬱陶しいだけ 右クリックで済む物はツールバーに載せない設計したらすっきりしたし使いやすかった
>>246 もちろん個人の感想です。
客観的データなんてありませんはい。
>>247 個人的に一番気に入らないのが、ツールバーを複数に出来ないことと、
あとドッキングの位置を選択できないこと。あとフロートにもできない。
例えばワードだと、文章書いている時には作業領域の縦方向を広く取りたいから
リボンとかツールバーのドッキングを解除したいと思っても、これができない。
頻繁に使うボタンは、用途ごとに別々のツールバーにまとめておきたい(リボンはタブを
クリックする一手間が嫌)と思っても、これもできない。
>>249 個人の感想を〜人が多いとか一般的な意見みたいにいうの辞めろ
機能がメニューバーの中に必ず存在する安心感は他のUIでは得られないと思うんだけどなぁ
機能がありそうなところを想像して右クリックしてみましょうみたいなアプリは勘弁してほしい
>>250 >機能がメニューバーの中に必ず存在する安心感は他のUIでは得られないと思うんだけどなぁ
まったく同意なんだけど、そう思うのはある程度PCのスキルがある人だけ。
少なくとも俺の経験では、とりあえずメールとwebが使えますってレベルの人は
メニュー使えない。少なくとも使いたがらない。
メニューが何を表しているのか理解できないみたい。
もちろん客観的データはないけど、そう現実から外れた見解じゃないと思うけどな。
>>264 > メニューバーなかったら素人に口頭で操作説明するのめちゃくちゃ大変だぞ
このセリフ、CUIとGUIの比較でも聞いたなぁ
コマンドなら口頭での説明も楽だが、GUIだと難しい、って
でも、結局コマンド入力型のアプリケーションは一般向けじゃなくなっちゃったね
>>251 それはソフトが手に余る状態なだけで慣れてくればメニューバーも使うようになるじゃん
初心者を甘やかす工夫じゃなくて
初心者が使っているうちに学習できるような工夫をすべきだと思うんだけど
カテゴリや機能の大小に関係なく列挙するのはまずいって考えたんだろ。あとなんか野暮ったいしな。 大手はUIの研究熱心にやってるだろうし何かしらしっかりした理由あるんだろうな。ぜひ聞いてみたい。
>>254 だよな、頭いい人たちがこの件についてどう考えているのかすごく気になる
クク・・・
頭いい人「だれかが使いやすくてかっけーUI考えたらパクろうっと」
頭悪い人「作ってもいいけどパクられると嫌だなぁwww」
リボンが使いやすいって言うと未だに発狂するやつが居る。 板違いだから黙ってろよ。上級ユーザーさん
面白いねー
Officeの図形描画はツールバーがフローティングにできなくて 使いにくくなったね。 図形追加するたびに「挿入」→「図形」の2クリックがめんどくさい
素人に教えるときって結局、画面キャプチャして画像送るしかない印象。 電話サポートできないけども。 縦解像度の問題は、Office 2010ではリボン隠せる設定入ったしね。
263 :
デフォルトの名無しさん :2011/05/06(金) 22:22:00.73
下記のようなコードで、IState.updateからEntityのプロパティ書き換えを許したい場合、 どう書けばいいでしょうか?Entity内部とIState以外からのアクセスは逆に拒絶したいです。 Entity.updateは毎秒1000回近く呼ばれるため、負荷のかかる書き方は避けたいです。 public class Entity // namespace foo.entity { public IState currentState{ get; private set; } public int hoge{ get; private set; } public void update(){ currentState.update(this); } } public interface IState // namespace foo.state { void update(Entity e); }
>>262 2007でもタブをダブルクリックすれば最小化できる
見られたくないのをinternalにする 同じアセンブリ内からは自由にアクセスできるが、実際それで問題なくてそれ以上は自己満足。
あとはEntityの内部クラスとしてIStateの実装クラスを定義する方法もある。 任意のIStateから変更できるようにするのは無理。それじゃ事実上publicと同じだから。
もう一つ interface IEntityController { void SetHoge(int value); } のようなインターフェイスを用意して、それをEntityクラスの内部クラスで実装して、 そのインスタンスをIState.updateの引数に渡すのもアリ でも無駄に複雑になるだけだから正直internalでいいよ
EntityとISateはもう結婚しちゃいなよって言いたくなるぐらい癒着してんなw updateで値を返すだけじゃ我慢できんのか?
updateの役割をある程度限定できるなら、Entityも渡さずに 操作用のオブジェクトだけ渡したほうが結合が弱くなって良いんじゃないかな それができないならもう全部公開でいいと思う
実体(データとか)と状態(ロジックとか)を切り離してStateパターンっぽいことを やろうとしてたんですが、実体側のデータ隠蔽がどうにも難しくて。 無理やりやろうとすると、隠蔽したいフィールドを別クラスにまとめて Entityクラスにprivate object privateMember;とかで抱えさせて updateでそいつを丸投げさせてたんですが、結構複雑になってしまうので もっとシンプルな方法がないかなと思って質問しました。 ありがとうございます。
この程度のことにデザインパターン適用しないのが一番シンプルになる
だが仕様書書くときはロジックとインターフェースを別にするべきだと思うよ
データに振舞い持たせないならupdateも外出しでいいんじゃないの stateパターンとかいらない
デザインパターンのObserverをC#で実装したいのですが、参考になるサイト とかありますか?
Java脳/GoF信者でなければイベント使えばいいよ
277 :
274 :2011/05/07(土) 17:04:01.61
>>275 ありがとうございます。
まずはシンプルにオブジェクト間で通知させて様子を見てみます。
Rx...いやごめん
279 :
274 :2011/05/07(土) 17:58:35.12
あと思ったのですが、Observerでオブジェクトの親子間でも通知とかできるんですか?
もちろん フォーム(親/observer)とボタン(子/subject)の関係 イベントはobserverそのものなので、基本的にイベント使うべきだけど、 なぜイベントがobserverか理解できるくらいには勉強しておくのはいいんじゃないの
281 :
280 :2011/05/07(土) 18:56:06.70
補足 observerがsubjectの具体的な型に依存するのはいいけど逆はダメだよ。常にインターフェイス経由。 observerパターンというのは、たとえばボタンが特定のフォームに依存しないようにしつつ、 ボタンがフォームのメソッドを呼び出すためのパターンなので、相互に依存しちゃったら何の意味もなくなる。 そこがよくわかってないと、通知といえばオブザーバーやイベントと考えがちなんだけど、 相互に依存しても構わないんだったら単に子に親のインスタンス渡しといて子が親のメソッドを直接呼べばいい。 そのような場合にobserverパターンやイベントを使うのは無意味。
>>274 >>275 のコードは Java そのまますぎるなぁ。
Attach/Detach は event の +=/-= でOK。
あるいは、Detach は IDisposable を通して行う方がいいよ。
.NET 4 で入った IObserver/IObservable がそうなってる。
というか、Reactive Extensions(略称 Rx)ってのを入れたら Observer の実装入ってる。
>>278 いや、Rx でいいんじゃね?
一応、もう製品扱いに昇格したし。
心の叫びか何かか?
windowsフォームアプリケーションで業務アプリを作っていると、 同じようなデザインの画面をたくさん作る事があると思います。 どのよう技を似たような画面を作っていますか?
ユーザーコントロール使う フォームの継承はお勧めしない
286 :
284 :2011/05/08(日) 20:05:40.41
>>285 やっぱり、気合で作っていくしかないんですね
ありがとうございます
>どのよう技を似たような画面を作っていますか? 見積で画面数を掛ける。あとはこびとさんががんばる。
>フォームの継承はお勧めしない なぜ お勧めしないの? 1枚テンプレ作っておけば レイアウトとかコーダの好き勝手でチグハグになったりしないのでは?と思うんだが
フォームをフォームに貼れないから
290 :
デフォルトの名無しさん :2011/05/08(日) 22:04:56.42
>>286 気合つーかFormはいじらないでその上に適当なコンテナをベースにした
同じようになってしまう部分を分離可能な形で作っておけばいいだけちゃうの?
ユーザーコントロールは入れ子にできるでしょ?
なんで疑問形なの?
あ?
294 :
デフォルトの名無しさん :2011/05/09(月) 11:31:04.42
すみません。質問です。
ttp://dobon.net/vb/dotnet/control/tschdesigneravail.html [System.Windows.Forms.Design.ToolStripItemDesignerAvailability(
System.Windows.Forms.Design.ToolStripItemDesignerAvailability.ToolStrip |
System.Windows.Forms.Design.ToolStripItemDesignerAvailability.StatusStrip)]
public class ToolStripNumericUpDown : System.Windows.Forms.ToolStripControlHost
{
public ToolStripNumericUpDown()
: base(new System.Windows.Forms.NumericUpDown())
{
}
}
このソースコードはデフォルトのフォームに追加するだけではだめなのでしょうか?
エラーも出ないけどToolStripItemにも追加されない・・・。
プロジェクトを右クリックしてToolStripNumericUpDownクラスを新規作成
>>294 ののコードと同じになるようにコピペ
リビルド
296 :
デフォルトの名無しさん :2011/05/09(月) 11:47:14.59
>>295 できました。
ありがとうございます。m(__)m
297 :
デフォルトの名無しさん :2011/05/09(月) 16:38:33.75
VS2010を初めて使ったけど、 Windowsアプリの標準出力をデバッグに参照できないのが不便すぎる
C#とC言語って違うの?
同じだよ
bool same = "C#"[0] == "c"[0];
VSってこんなにもっさりしてたっけかな まぁタダだからこんなもんか
VS2010はもっさりしてるよ だから今も2008使ってる
XPで使ってるとかいうオチじゃないよな?
Pen4で使ってるというオチだよ
俺のは XPでPen4HTだよ Orz
搭載メモリ量じゃね Vista/Core2/8Gと7/Core2/4Gの環境だと2008と2010で差は感じないなぁ
Win7 64bit Core2Duo 2.4GHz Memory 8GBytes だけどVS2010は重くてVS2008使ってる。
2010はwpfで作られてるから基本vista以降推奨やでxpやとただ動くゆーだけやな
#include <stdio.h> int main() { int i,j; for(i = 0; i < 4; i ++){ printf("外側のforの1、i = %d\n",i); /*外側のループ*/ for(j = 0; j < 3; j++){ printf("\t内側のfor、j = %d\n",j); /*内側のループ*/ } printf("外側のforの2、 i = %d\n",i); /*外側のループ*/ } return 0; } すいません、どうしてもこれがコンパイルできません 7行目と13行目がおかしいみたいですが理由が分かりません
スレ違い
一生悩んでて
頼みますよほんと
全角スペースがまじってるよ
なんだC#でCのコード書く猛者が現れたかと思ったよ
C#でCコンパイラ作ってるんだろ
Cインタプリタ内臓
Cのインタプリタって割と簡単に実装できるよね。
320 :
デフォルトの名無しさん :2011/05/10(火) 22:00:05.00
フォームアプリで、WebBrowser経由でPDFを表示させた後、かなり高い確率で例外コード:0xC0000005で異常終了します。 FormClosingイベントで少し待機(現在は5秒)させるとある程度確率を下げることが出来るのですが、0ではありません。 原因にお心当たりのある方、類似の事例をご存知の方がいらっしゃいましたら、アドバイスをいただけないでしょうか?
322 :
320 :2011/05/10(火) 22:23:48.38
>>321 失礼、あの後少々思いついてイベントログを漁ってみたのですが、AcroRd32.dllでエラーが出てますね。
これは(アプリ側から)原因を追究するのはムダかもしれませんね。
今は9なので、10に上げてもう一度やってみましょう。
323 :
デフォルトの名無しさん :2011/05/10(火) 22:25:57.92
しかしそれってc#側からブラウザコアのバージョン指定や プラグインの指定ができないとトラブルになりそうだな
324 :
デフォルトの名無しさん :2011/05/10(火) 22:43:07.22
325 :
320 :2011/05/10(火) 22:50:53.02
Adobe Reader Xのインストール中・・・。
>>323 ですね。今回はある程度、実行環境を指定できる案件なので(これで解決するなら)なんとかなりますが、不特定多数に配布するアプリケーションでは大きなトラブルの元になるでしょう。
今までは手軽なプレビュー手段として利用してきましたが、見直さざるを得ないかもしれません。
ちなみに現在の組合せは、.net 4.0+Visual Studio 2010+Adobe Reader 9、それぞれアップデートは最新のモノにしてあります。
既存のPDFが大量にあって、PDF→XPS(XPS仮想プリンタにPDFを印刷する事で変換)で表示が変わるのが許容できない なんて事情がないならXPSで扱う方が楽だとは思う。バージョン違いに怯えなくていいしね。
327 :
320 :2011/05/10(火) 23:14:14.86
Adobe Reader Xのインストール終了。
よさげかな? 10回ほど起動→終了を繰り返して、とりあえずまだ一度も落ちてません。
少なくとも「頻度は明らかに減った」とは言えるでしょう。今までなら最低でも5〜6回は例外が出てました。
おっと、
>>325 では動作環境を書いてませんでしたね。
OSはWin7(x64)、IEは8です。やはりそれぞれアップデートは以下略という事で、どなたかのご参考になれば幸いです。
まずはありがとうございました、という事で、それほど緊急ではない別件の相談、よろしいでしょうか?
>>323 のような場合、PDFのプレビューにはどんな選択肢があります?
ランタイム無制限ライセンス付きでそれほど高くない&それなりに信頼できるものなら、有料でもかまいません。
実際に使ったことがある方がいらっしゃいましたら、インプレ等込みでアドバイスをいただければ幸いです。
これから私も少し調べてみますが、よろしくお願いします。
>>326 残念ですが、その条件(の、少なくとも前者)に当てはまってしまうのです(涙)
>>320 ぐぐればP/InvokeでCoFreeなんちゃら使ってAcrobatのCOMを解放すればみたいなのが見つかるよ
ピンボケwwwwwwwwwwwwwwwwwwwww
COFFEEかと思ったよw
次のDLL関数をC#から呼び出したいんですが int WINAPI UnlhaCompressMem( HWND _hwnd, LPCTSTR _szCmdLine, const LPBYTE _szBuffer, const DWORD _dwSize, const time_t * _lpTime, const LPWORD _lpwAttr, LPDWORD _lpdwWriteSize ) 次の呼び出しでBadImageFormatExceptionエラーが出ます. private extern static int UnlhaExtractMem( int hwnd, string szCmdLine, ref byte szBuffer, uint dwSize, ref int lptime, ref ushort lpwAttr , ref uint lpdwWriteSize ) どこが間違っているのでしょうか?
なんか、ファイルアクセス権限とかで引っかかってんじゃない?
BadImageFormatExceptionなんて出したことないから知らないけど DllImportはしてるんだよね?
ref byte szBuffer カンだけどこれが怪しい
あと気になるのがビット 64ビットと32ビット
コンパイルオプションとか AnyCPUだめでx86にしないといけないとか
>>334 同意。
byte[] szBuffer だと思う。
>335 >334 両方直したら動きました. x64環境でx86のDLL動かしたのが原因ぽかったです. ありがとうございます.
この際だからどっちが原因か片方だけ戻して調べてみて 両方だったのかな?
いぇーい俺様2点
342 :
320 :2011/05/11(水) 13:40:46.57
>>328 「PDF CoFree」でググったらすぐに出てきましたね。検索の仕方が悪かったようです。申し訳ありませんでした。
動作チェック用の環境を整えたら試してみます。
>339 たぶん両方です. この関数はLHAのファイルをデコードをするためのものですが, デコード結果が「const LPBYTE _szBuffer」で返されます. LP〜の型はrefをつければいいみたいな説明が どっかのWEBサイトに載ってたので機械的にやったのですが, refで1byte分だけ渡しても意味がないです(未確保のヒープ領域が書き換えられて 例外かエラーが発生するだけだと思います.) >400 初期設定のプラットフォームのAnyCPUでコンパイルしていたのをx86に変更して コンパイルしたら正常に動作しました. 今作っているプログラムはx86のDLL(Unlha.dll,LHAファイルの操作用DLL)をインポートして関数をたたいています. AnyCPUがx64用としてコンパイルしていたのが原因でBadImageFormatExceptionが発生したのだと思います.
俺もC#始めるお。 つーか、この板でC#スレってここが本スレ?
どうでっしゃろ
このスレ → モーニング娘。 ふらっとスレ → AKB48 ミスターサタンスレ → KARA
サタンスレなんてあったなあそういえば
少女時代はないのか・・・
→スレ立てるまでもない質問はここで
C#+VisualStudioの質問なんですけど, WinFormsでフォームのデザイン時にツールボックスに自分が作ったControlが わらわらと出てきてうざいんですけど, なんかクラスに属性付けとけばツールボックスに表示されないようにとかできましたっけ?
>>350 自分でツールボックスに追加したんでしょ。
そうでなきゃ表示されないよ。
自作のコントロールを使いたい場合は、普通そのコントロールのプロジェクトまたは
dllを参照設定する。
そうすると、そのコントロールのアセンブリを参照してるプロジェクトを開いている時だけ
ツールボックスに自作のコントロールが表示される。
352 :
350 :2011/05/11(水) 23:54:54.62
プロジェクト内にあるコントロールが 勝手にツールボックスに表示されるのをやめさせたい, という質問です。無理なんかな?
353 :
デフォルトの名無しさん :2011/05/11(水) 23:57:47.36
>>352 できるんじゃないの?
VS2010は逆に追加されないので追加する方法を
ここかもうひとつのスレで以前質問あったはず
DesignTimeVisibleAttributeかな?
[ToolboxItem(false)]をつければOKみたいね。 あまり考えたこと無かったが、まああえて表示したくない場合もあるのかな
356 :
350 :2011/05/12(木) 00:17:53.83
DesignTimeVisibleAttributeで消せました。 どうもありがとうございました。
確かにそれでも表示されないけど、微妙に意味合いが違うように思うけど....
358 :
350 :2011/05/12(木) 00:44:49.45
ToolboxItemAttributeでも消せました。 とりあえずツールボックスに表示させない目的だとこっちの方がよさそうですね。 コントロールが50個くらいあるんで ツールボックスの表示が遅かったり場所とったりしてうっとうしかったんです。 DesignTimeVisibleAttributeの方はヘルプ見ても ちょっとよくわかりませんでした。 componentをデザイナで表示しないためっていってるので ツールボックスで非表示以外にもなんかあるのかもしれません。 どうもありがとうございました。
なんかいいラムダありますか?
永田重工製
三菱の車で昔そんなのあったな
ラムダっty
ラムダッシュモーニングリポート
赤いギャラン・ラムダといえば、「華麗なる刑事」 @草刈正雄
おっさん率高くなったな
用もないのに2chで雑談するのは人生詰んでるおっさんと相場が決まっとる
人生は詰んでから始まるのさ坊や
詰んだなら盤をゆすればいい
クリティカルヒット あなたの首を刎ねられて血溜まりに置かれました GAMEOVER
終了時に ウインドウ位置をiniに記録しておく。 終了させた後に最小化で起動する。 タスクバーにある最小化起動したものを元の大きさにもどすとき 一瞬(0.05秒ほど)センターに表示されてから記録した位置に表示される Form()、Form_Load()でthis.topなどにiniの値を代入しているのになぜ? win7x64 VS2008SP1
再現できね。XP VS2010EE 0.05秒を認識って視覚の限界に近いね。
372 :
370 :2011/05/12(木) 17:56:10.39
>>371 windowsの詳細設定
最小化、最大化でアニメーションをしない設定でためして頂きたく。
>>370 WindowStateだかのプロパティをManualにしないとダメ
374 :
370 :2011/05/12(木) 19:11:16.14
startpositionをmanualにしてたのに出来ないなと悩んでいたけど manualに設定したときはform.topを記述する場所がだめだったみたい restoreboundsを見ながら調べてました。 ありがとう
実用的には、C#って日曜プログラム的な位置ですか? それとも商用ソフトでもバリバリに使える感じですか?
どちらもこなせる
C#で作成したexeファイルとC++で作成したアンマネージのdllを ひとつのexeにまとめる方法をどなたか知りませんか? ILMergeはマネージドのアセンブリしか対応していないようなので
1つにまとめるとかレアな需要だし、そういうツールは聞いたことない。 ClickOnce配布とかすりゃいいんじゃないの。 ファイルの数とか気にならないし。
あ、ブログのコメントで聞こうかとも思ったんですが、なんか怖くて聞けませんでしたorz
ランチャーによくあるような画面の端にマウスを持っていったら にょきってバーが出てくるようなのってどうやって作るのか知ってたら教えてくださいな
たぶん「フック」。デスクトップのウィンドウメッセージを横取りしてごにょごにょする
細長い透明ウィンドウを置く手も
>>384 ありがとうですが
C#でウィンドウメッセージのフックはやりたくないのです
>>385 透明度を下げていくことでふわーって出てくる感じですよね
それも手ですがにょきにょきがしたいのです
フックなんて面倒だからタイマーでポーリングすりゃいいのよw どうせデッドタイムを持たせる(一定時間以上経過後でないと表示されない)んだろうから 応答性悪くても全然問題ない
タスクバーの「にょきにょき」は概ね
>>385 と同じ方針で処理してるっぽい
本当か? それだとマウスのメッセージを下のウィンドウに透過させる処理が必要なはずだと思うが、 そんなことって簡単にできるんだっけ?
390 :
デフォルトの名無しさん :2011/05/14(土) 00:49:49.28
大昔に作ったときは、画面の端っこに2ドットぐらい残して配置して マウスが乗ったら移動って事やった
>>387 ありがとう
タイマイベントでカーソルの現在位置が画面の端にあるか監視するわけですね
わかります
あとはデスクトップをハッキングする方法もある
393 :
383 :2011/05/14(土) 02:07:17.59
>>384-392 みなさんのおかげで思ってたものができました
礼儀として汚いソースコードをのっけときますよ
private const int DIVIDE = 50;
private bool m_appear = false;
public Form1()
{
InitializeComponent();
this.StartPosition = FormStartPosition.Manual;
this.DesktopLocation = new Point(Screen.PrimaryScreen.Bounds.Size.Width, 0);
}
private void timer1_Tick(object sender, EventArgs e)
{
if (m_appear == true) return;
if (Cursor.Position.X > Screen.PrimaryScreen.Bounds.Size.Width - 2) {
for (int i = 0; i < DIVIDE; i++) {
this.DesktopLocation = new Point(this.DesktopLocation.X - (this.Width / DIVIDE), 0);
}
m_appear = true;
}
}
private void button1_Click(object sender, EventArgs e)
{
this.DesktopLocation = new Point(Screen.PrimaryScreen.Bounds.Size.Width, 0);
m_appear = false;
}
読む気しないけど、とりあえずヒットテストは自前でチマチマ書くんじゃなくて、 ヒットする領域(Rectangle)を定義してRectangle.Contains使った方がいいんじゃないの? あと、DIVIDEって投げやりな名前はどうなの。 一週間後にそのコード読んでDIVIDEが何を意味してるかぱっと分かるかね。
395 :
383 :2011/05/14(土) 02:42:37.44
>>394 テストプログラムなので投げやりな変数名なんかはカンベンを
あとで清書します
>>ヒットする領域(Rectangle)を定義してRectangle.Contains使った方がいいんじゃないの?
そのアイデアいただきます
ユーザに指定された中身のわからないファイルをロードするときに とりあえずSystem.Drawing.Image.FromFile()でロードさせてみて 例外が起きたら,あー画像じゃないんだ,という処理を しているのですが,例外起こさないで画像ファイルとして ロードできるかどうかって調べられないでしょうか。 int.Parse()に対するint.TryParse()のようなイメージです。
binaryで数ワード読んで書かれてる文字で判定。ヘッダ偽装?知るかそんな客。
>>396 例外のコストと画像フォーマットを調べるコストが拮抗してるからTryなんちゃら作る意味ないんじゃね?
OCaml statement = (| let rec sum n = match n with 0 -> 0 | _ -> n + sum(n - 1);; |); int x = statement.sum(10); // x = 55 こんな感じのことができればいいのに
>>396 ファイル先頭数バイトだけ読み取ってシグニチャある/なしで画像ファイルかどうかだけ判定、
転送途中とかに壊れた画像ファイルとか悪意で偽装されたファイルは例外任せで判定するとか。
全部例外任せでもコストあんまし変わらんかも。
>>400 複雑になるだけだし全部例外任せでいいような
402 :
デフォルトの名無しさん :2011/05/15(日) 00:35:10.97
とりあえず拡張子で弾いて後は例外で良いんじゃないの?
深夜の暇つぶし using System; using System.Threading.Tasks; using System.Numerics;//参照の追加がいったような namespace ConsoleApplication1{ class Program { private static void body(int idx) { BigInteger n = new BigInteger(idx); calc(n); } public static void calc(BigInteger n) { while (true) { if (n.CompareTo(1) == 0) { break; } n = collatz(n); } } public static BigInteger collatz(BigInteger n) { if (BigInteger.Remainder(n, new BigInteger(2)).CompareTo(0) == 0) return BigInteger.Divide(n, new BigInteger(2)); else return BigInteger.Add(BigInteger.Multiply(n, new BigInteger(3)), new BigInteger(1)); } static void Main(string[] args) { DateTime s = DateTime.Now; Parallel.For(1, 1000000, body); // 1から999999まで DateTime e = DateTime.Now; System.Console.WriteLine((e.Subtract(s).TotalMilliseconds) / 1000.0 + "secs"); } }} 何十秒で結果が出ます?
ウチのwin2k機だと using System.Threading.Tasks; using System.Numerics; 対応してないじゃん。馬鹿。
core2duo e8500,mem4g 25.3924523secs 軽いMMOやりながらマッタリと。
>>406 そろそろ3.5以上にしとけ
いろいろ捗るぞ
>>403 Javaみたいでキモい
カスタム演算子使えよ
勝った。43秒 orz・・・
以下秒数書き込み禁止
以下禁止することを禁止
そして誰も居なくなった。めでたしめでたし。
414 :
デフォルトの名無しさん :2011/05/15(日) 07:19:06.12
実行してないけど5秒くらいかな
3.82s@i7-975
2.8秒
1.69s
23秒 core2
600msec
800msec
// Parallel Linq版を作ってみた。 using System; using System.Linq; using System.Diagnostics; using System.Numerics; class Program { public static BigInteger calc(BigInteger n) { for (int cnt = 0; n > 1 && (cnt < int.MaxValue); cnt++) n = collatz(n); return n; } public static BigInteger collatz(BigInteger n) { return (n.IsEven) ? n / 2 : n * 3 + 1; } static void Main(string[] args) { var sw = Stopwatch.StartNew(); var rs = Enumerable.Range(1, 1000000).AsParallel().Select(i => new { N = i, V = calc(i) }); rs.ForAll(r => { if (r.V != 1) Console.WriteLine(r); }); sw.Stop(); Console.WriteLine(sw.Elapsed); } }
見事にのせられたね
NとかVとかoとかo.Vとかrとかサッパリ解らん。ちんぷんかんぷん。 これ本当にC#なのか?おじさん、もうついていけないわ・・・
変数名が不思議な名前なのは、もととなる業務分野や数学の慣例でしょ。 例えば.NET FrameworkでもRSA暗号のRSAParameterとかはPとかDQという 変数名になってる。
特に意味のない数値計算なんだから変数に具体的な名前を付けようがないし 論文や専門書に載ってる数式やアルゴリズムを実装するときは 抽象的な表記のまま実装してしまいたくなる気持ちはわかる
下手に名前変えたら対応がわかんなくなることもあるし
おいおい 何のためのドキュメントコメントだよ
ややこしい数式やアルゴリズムなんてどうせそれ見ただけじゃわかんないんだから 目的だけドキュメントコメントに書いといて 細かいアルゴリズムについては変数名とかどうでもいいから引用元への参照で済ませるのが一番わかりやすい
難読化のために不思議な名前を使う変人もいた。 数量にMoneyとか、金額にAngleとか。。。 そいつ本人だけが満足そうにニタニタと自慢気な雰囲気だったっけw 他の開発メンバーカワイソス
ワラタ 難読化に興味あるような奴のコードはたいてい既に難読なのになw
>Enumerable.Range(1, 1000000).AsParallel() > .Select(i => new { N = i, V = Collatz(i) }).Where(o => o.V != 1) > .ForAll(r => Console.WriteLine(r)); 変数名以前にLINQの書き方に馴染めない人もいるだろうな。 N V はNumber Valueと内容の分かる名称にしたほうがいいかもしれないが、 他の i o r は直前のSelectやWhereの結果としか言いようが無いしなぁ。 それから関数型言語っぽく _ 使うのは好きじゃない。 >Enumerable.Range(1, 1000000).AsParallel() > .Select(_ => new { N = _, V = Collatz(_) }).Where(_ => _.V != 1) > .ForAll(_ => Console.WriteLine(_));
さすがにこの場合に_は使わんと思うが i,o,r,N,Vとか意味無さ過ぎw
CやC#が解らないというよりも、ラムダやLINQがお手上げなんだな。 上長とか絶対にこんなコード脊髄反射で拒絶するんだろうな。
436 :
デフォルトの名無しさん :2011/05/15(日) 20:32:37.39
難読化ってリリース前にツール使ってやるものだと思ってたけど、 開発中に自分でやっちゃう人がいるって知って勉強になりました 難読化なんてしたことないけど
C#は、言語としてはかなり醜い部類。
今やってる案件の規約でラムダ式禁止されてたから、匿名メソッド使っといた
>>423 のコードは特に文句付けるところはないなあ
これがよく分からないという人はさすがに勉強が足りないだけだと思う
うちのプロジェクトではCLSやLinqが要求してるところでは使わせてる。 拡張メソッドやラムダ式を要求する高階関数を作るのは禁止している。
なんで?
LINQは定義と利用を分けて書くのが俺のジャスティス
>>441 プログラマーのレベルが一定じゃない故のルール。
実際問題拡張メソッドはLinqの拡張をしない限り作る必要はほとんど無いからね。
ほとんどの場合クラスの設計を見直したほうがいい。
高階関数は個人的にはいいと思うけど、同じ理由で一応禁止。
問題は上の理由で禁止と言う通達が、
いつの間にかLinqや拡張メソッドを使うこと自体が禁止というルールにすり替わって、
理由も知らないまま盲目にしたがっている現場もあるんだよね。
元受がそういうルールを押し付けてくることもある。
ウチはvar以外特に制限ないな
varみたいな分かりやすいのだけ禁止って、きめた人がlinqとか ラムダとか見たことないだけなんじゃね。
前回のプロジェクトだと事実上のリーダーだったのでやりたい放題だった varとラムダ式と列挙体に対する拡張メソッドぐらい あと.NET 4使えたのでCancellationTokenとかBlockingCollectionとか そうやってたらプロジェクトメンバーが書いたコードに少しだけ拡張メソッド乱用の形跡が 少しだったから見逃したけど
Whereをif文のようにSelectをセミコロンのように使ってるlinqは稀に良く見る
駄目駄目と 言ってるだけだと駄目になる 多少は目を瞑って 芽を伸ばそう。 字余り
ポエマーってこんなスレにもいるんだな。
ののしりて 腐る若木の 耐え難く この手において 英気与えん って感じか。難しいな。
もう低能を晒すのは止めよう
>>450 ごめんよ。薄給なんで、この呑み代はワリカンなんだ。
いやー、そんなつもりではないんだけども。 どうもねー、人がやってると真似したくなる性質なものでねぇ。 いつもこれやって引かれるのよねぇ。。。Orz
>>423 のコードは特に文句付けるところはないなあ
これがよく分からないという人はさすがに勉強が足りないだけだと思う
乞食は死ね
主語と述語しか無いので減点
イナイ イナイ var
ふうか → ことちゃん → ゆうな
459 :
デフォルトの名無しさん :2011/05/18(水) 17:13:00.96
LINQいいよね〜
static class Hoge { public static void Func(this A a); } static class Foo { public static void Func(this A a); } A a = new A(); a.Func(); ちょっと疑問に思ったのですが、あるクラスAに対して上のように拡張メソッドが重複した場合 呼び分ける構文はあるのですか?
Hoge.Func(a);
SqlDataReader reader = scm.ExecuteReader(); if (reader.Read()) { int? columnA = (int) (reader["COLUMN_A"] ?? null); //COLUMN_Aはint string columnB = (string)(reader["COLUMN_B"] ?? null); //COLUMN_Bはvarchar } intは落ちないのに、 (string)(reader["COLUMN_B"] ?? null)ここでなんで落ちるんですか?
463 :
462 :2011/05/19(木) 23:25:34.13
ごめん やっぱり落ちたわw
DBNullにnull合体演算子は利かんでしょ
同一内容の文字列であるStringのインスタンス二つを==で比較したとき、falseを返すようにしたいのですが どうすればよいのでしょうか? Javaではnew String("hoge")とする事で明示的に別の実体を作ることが出来たのですが C#で以下のようにしてもうまく行きませんでした。 string s = "hoge"; String str = new String(s.ToCharArray()); String str2 = new String(s.ToCharArray()); Console.WriteLine((str == str2).ToString()); // -> TRUEでした
466 :
デフォルトの名無しさん :2011/05/20(金) 14:59:10.98
Cloneってなかったっけ?
str==str2を false? それとも (object)str == (object)str2 ?
469 :
デフォルトの名無しさん :2011/05/20(金) 15:07:00.71
===で比較しちゃいかんの?
>>467 レスありがとうございます。
型によって演算子の意味が異なることがあるのですね。
javaは==でポインタの比較になるんだったっけか
javaでは文字列の比較に==を使っちゃいかんとかあったな
Javaでは演算子のオーバーロードやオーバーライドは言語仕様で決めてるもの以外、無いからね
equals かなんか同じようなやつだったね
>>471 javaでも、数値の比較は中身でしょ?
Javaでは数値にもプリミティブ型と参照型があり参照型の数値は==禁止
Javaだと参照型の==は同じ参照かどうかの比較。 intern済みのString型同士とかenum同士とか限られた条件下では ==が同値かどうかの比較に使える。
javaのプリミティブ型における == は中身を比較していると言えるの? 参照している実体が同じなのでは。
プリミティブ型に参照の概念がない 使ったことない奴は黙ってた方がいいぜ
言葉の選び方がまずかったです。 実装上、3.14というプリミティブintがあったとしてメモリ上のどこかに3.14が配置され 以降int a = 3.14; int b = 3.14;としたときaとbが同じメモリ番地を指す(参照する)のなら、 a == bは参照を比較しているとも言えるのではと思いました。 aとbが異なるメモリ番地を指していて、その中身を評価した上で比較しているなら中身を比較していると言う事になりますが。 スレチ気味にて失礼。
int型のaとbが同じアドレス指すようなアホ言語この世に存在するのか?
==がデフォでは参照の比較になってるのがそもそも糞仕様。 これに関してはVB方式の方がいいな。
>参照型のセマンティクスが、その型がなんらかの値を表しているという事実に基づいている場合には、この参照型の Equals のオーバーライドを検討してください。 なんて書いてあるから99%無駄だと思われてんだろうな
個人的にはアドレスの比較はなくしてほしくないな。 比較対象が自分自身かを知るときに使ったりするから。
==のオーバーライトはstringとかの不変クラス専用だろ。
オーバー「ロード」じゃなかったっけ。 ==を定義してもよいかどうかとimmutableかどうかは、普通に考えれば無関係だと思うが.... C#erの一部は、なんか無理にEqualsと別の意味を与えなきゃいけないとか思ってるみたいだな。
オーバーロードとオーバーライド、両方有るけど別物、この場合はオーバーライドな。 最近引数省略できるからオーバーロードあんまり使う機会無いけど
immutableでないと、あるときa==bであってかつその後aとbを何も操作してなくても a==bを保証できないから....っていう例の理屈だろうけど、正直そんな理屈に意味があるのかと思う
なるほど。要約するとJavaは糞ってことか。
Java使う人の感覚を意識したんだろ 多くの人は参照型の==はずっと変わらないことを期待する
immutableでないと継承されて意味のあるフィールドを付け足された時に面倒なことに
継承禁止にするかどうかは別の問題だ Equalsの場合でも、ID比較とかならいいけど全フィールド比較ならsealedは必須 sealedにしないと >(x.Equals(y) && y.Equals(z)) が true を返す場合、x.Equals(z) も true を返します。 に自動的に反することになる
今あるルール・規則へ新たに上位規定を被せるのがオーバーライド
サブクラス側を上位規定と表現するのは違和感ある
>>490 テーブルのキーにするときとかに困るって話だったと思う。
どうすればアンダーライドできますか?
「エッチは1日1時間!」
501 :
デフォルトの名無しさん :2011/05/21(土) 06:16:02.41
アホなのはいけないと思います
>>494 どういう意味?
zが継承されてたらってこと?
Java使いは馬鹿ってのがよく分かるな。
そんな俺流アーキテクチャなんか知るか 川俣に電話して聞け
>>503 派生クラスでEqualsがオーバーライドされたら違反だけど
そういう場合はオーバーライドや継承を禁止してない方が悪いというのがMSポリシー
Javaのequalsも仕様は同じだから継承は制限するべきだけどあんまり守られてないな
偏差値低い学校は校則がうるさい そういうことだ
偏差値低い学校出身の人ってみんなそう言うよね
オーバーライドされることを想定してなくてオーバーライドされたら 既存のクラスが壊れるけどオーバーライドが禁止されてないメソッドなんて Javaワールドに存在するメソッドの大部分が該当するよ
スレチ
たしかにC++使いはエリート気取りが多い
よくわからんが、電子レンジにネコ入れて死んだら、 禁止してない方が悪いと言われた気分だ。
そもそもネコが死ぬ時点で設計が悪い
レンジを開けるまではネコは死んでいない
515 :
デフォルトの名無しさん :2011/05/21(土) 17:02:54.77
つまり電子レンジクラスのメンバがpublicなのがいけない
>>515 うちのレンジは窓汚いから外から見えないかもしれん。
レンジを開けるまでは(=o=)の生死はわからない
520 :
デフォルトの名無しさん :2011/05/21(土) 19:08:12.13
>>519 それは液晶パネルがついててCG表示されてるかもしれないぞ
電子レンジの派生クラスがPropertyChangedを発生させていないかもしれない
焼かれて死ぬ猫の不具合
猫を殺そうと思ってレンジに入れてるのに、死ななかったら裁判沙汰だろ
シュレーディンガーのなんちゃら。
えーとここは何スレだったっけ?
猫を電子レンジに入れてはいけないという注意を怠ったとして訴えられたメーカーは 猫を電子レンジに入れてはいけないという注意を怠ったとしてペットメーカーを訴え、そのペットメーカーは
アメリカ人は優秀なのにお互いで争って力を相殺するの大好きだよなwww だから原爆落としてやった属州にちょくちょく負けるんだよwww
恥もなく無教養を武器にする米国の訴訟社会w
-10< x < 10で小数点以下の桁数が3桁のfloatの値(例: 1.234f, -3.142f)の配列の合計を求めるメソッドを 次のように書いたとする。 double GetSum(float[] vals) { double sum = 0; Array.ForEach(vals, (float x) => { sum += x;}); const int digits = 3; return Math.Round(sum, digits); } このメソッドが返す値が誤差を含まないことを保証できる配列の要素数の上限って だいたいどのぐらいだと考えられる? あるいは、要素数10,000,000個の配列を渡したとき、返り値は誤差を含まないと保証できる?
浮動小数点の問題についてググったらそんなこと聞こうとも思わなくなるはず 最悪2つの少数を減算しただけで誤差るよ
1000倍して整数でやったら?
せっかくCLR利用できる環境なんだからdecimal使えばいいんでないの? floatじゃなきゃ嫌? なら基数に5が入ってる10進数で誤差が出る事は諦めてくれ
>>532 浮動小数点の演算一般の問題の話はしてないよ。
かなり特殊な限定条件が付いてる場合の話。
誤差の意味の理解が根本から間違ってる
>>534 事情があってfloatを使う前提を変えるわけにはいかない。
演算の課程で誤差が生じるかどうかは聞いていない。
問題にしているのは、最終的にある桁数(この場合は3桁)で丸めを行った後に
その値が真値と比較して誤差を含むかどうか。
考えるのが面倒くさいからdecimalで行け
課程で誤差が出ても結果は必ず誤差無しってのはなかなか難しい注文だな
そもそも、引数で渡すfloatがほとんど近似値なわけだしな。
要するに合計後の x.xxxyyyyy…(yが誤差部分) を丸めて下3桁の部分に影響するかってことね しらねえよ
10,000,000なら情報落ちはしないんじゃないの
正確な答えが必要ならばfloatとdoubleを避ける
decimalで計算して結果をfloatに丸めれば済む話じゃね?
申し訳ないが事情があってfloatを使わざるを得ないのでdecimalはNG
もう勝手にしろよ
こんなスレにまでホモが…
>>531 足すまでもなく、0.100f の時点ですでに誤差含んでるんだけども。
こんな質問が出るのもC#ならではw
この手の質問が多いのは圧倒的にCとJava
要素数が10桁くらいまでだったら大丈夫じゃね
でも
>>531 見る限りは内部的にlongで計算すればいいだけの気が
>>522 直感的には俺も上限はその程度だと思うんだけど、理屈が知りたいんだよね。
しかし、実数演算の問題を何も分かってない連中に偉そうなことほざかれると
見てて腹が立つな。俺は2chには向いてないな。
問題をざっくり別の言い方で言えば、sumの値の誤差が±0.0005の範囲を
超えない条件を聞いているのと同じことだが、馬鹿なこと言ってる連中は
その程度のこともわかってないだろ。
Doubleの有効桁数が15桁だから、それ以下なら大丈夫じゃないの? 最大の合計値100,000,000.000は12桁
理屈が知りたいなら仕様書読めよ こんな所で聞いて返ってきた答えに頷けるお前の頭の方がめでたいわ
そこまで込み入ってる訳じゃなく、 ちょっと安心したいだけなんだよ。 一つ同意が欲しいかなって感じのね。
2^31要素入るなら事実上は全く問題ないじゃん 心配なら1万要素くらいごとに分けて足してからあとで合計したら
誤差って±で相殺するからなぁ。
ワーストケースで考えて
>>554 なんだったら、
ひょっとすると、ほとんどのケースでは誤差とか気にする必要性皆無なのでは。
559 :
デフォルトの名無しさん :2011/05/22(日) 14:05:02.34
参照型配列のソートについて教えてください。 public class meibo { public int id {get; set;} public string name {get; set;} public int age {get; set;} } meibo [] _meibo = new meibo[100}; meibo.ageで降順ソートしたいのですが、自分で実装する以外で 簡単にソート出来る方法はないでしょうか?
Array.Sort(_meibo, (x,y)=>x.age-y.age); なんて書けないっけ? うろおぼえ
書ける。 だが降順だから(x,y)=>y.age-x.ageじゃね。
562 :
559 :2011/05/22(日) 14:13:19.80
_meibo = (from x in _meibo orderby x.age descending select x).ToArray() 一応こんなのも
ゲロゲロ
ちょっと疑問に思って調べたらstableなソートが見当たらないんだが 用意されてないってことはないよな…
あるよ
>>563 がそう
List<T>やArrayのソートはクイックソートだから不安定ソート
567 :
559 :2011/05/22(日) 14:26:25.85
>>560 ,561,563
ありがとうございます。563さんの方法で実装できました。
Array.Sort(_meibo, (x,y)=>x.age-y.age);で実装するとコンパイルエラーがでます。C#理解してないのでさーぱり。
エラー 1 ラムダ式 はデリゲート型ではないため、型 'System.Collections.Generic.IComparer<名簿.Form1.meibo>' に変換できません。
Array.Sort(_meibo, new Comparison<meibo>((x, y) => y.age - x.age));
ageが実はintじゃなかったとか そういえば破壊的安定ソートがないなぁ
どっかでラムダの暗黙変換って仕様変わったっけ var procs = Process.GetProcesses(); Array.Sort(procs, (x,y)=>x.ProcessName.CompareTo(y.ProcessName));
572 :
559 :2011/05/22(日) 14:53:53.89
>>568-570 568さんの方法でも実装できました。 チュッチュ
569さん、570さん 実際のソースではdouble項目でした。 勉強になります。。。Orz
intなら、(x,y)=>y.age-x.ageでもいけるのかー。
PanelコントロールのAutoScrollプロパティをtrueにしてスクロールバーを表示しています。 必要になったときPanelの下に横スクロールバーが表示されますが、 これを上に表示させることはできないでしょうか。
AutoScrollじゃ無理のはず
575 :
573 :2011/05/22(日) 15:20:01.56
ScrollBarRenderer で自分で描画するしかないでしょうか。。。
usercontrol作って上にぽとぺたしたら?
いきなりRendererまで飛ぶの? H/VScrollBarでなんとかならない?
578 :
573 :2011/05/22(日) 15:26:59.41
その方法でやってみます。 コントロールが追加されたときとリサイズされたときに、 ScrollBar.MaximumSize を Panel.Widthにすることにします。 ありがとうございました。
MaximumSizeではなくMaximumでした。。。
WPFやSilverlightならスタイル書き換えるだけで済むね
だからWPFは人気がないのか。
フォーム以外のコントロールでオーバライドを利用するにはユーザコントロールを作るしかない?
カスタムコントロールだろ
継承つかわずにメソッドをオーバーライドできますかという愚問と同じだねそれは
スクリプト言語ならできるの多いよ
じゃあスクリプト言語をお使い下さい ふくよかなお方
588 :
デフォルトの名無しさん :2011/05/23(月) 09:47:20.81
webbrowserコントロールに表示したhtml上のラジオボタンのクリックイベントって取得できない?
htmlelement のイベントつかえばいんじゃない?
APIフックしてDLLインジェクション
591 :
デフォルトの名無しさん :2011/05/23(月) 10:26:14.71
>>589 htmlelement.clickとか?
でも具体的にどう使うのかがわからない。
フォーム起動して、あるボタンを押すとwebbrowserにhtmlを流し込むんだけど、
HtmlElement.clickをどこに書けばいいの?
592 :
デフォルトの名無しさん :2011/05/23(月) 10:30:51.11
>>591 HtmlElementというかhtmldocumentが作られないとないので
Navigatedイベントの後htmlelement.clickなどを設定すればいいし
ボタンに名前がつけれるんだっけ?
可能ならElementを列挙してそいつに直接イベント仕込めるかも
593 :
591 :2011/05/23(月) 10:42:48.15
>>592 webbrowser.Navigatedイベントって、htmlで表示したラジオボタンの変更が取得できないんだけど、
Nabigatedイベントでhtmlelement.clickしても意味あるの?
594 :
デフォルトの名無しさん :2011/05/23(月) 10:45:08.27
>>593 公開できる範囲でいいのでソースくれ
検証してみる
595 :
589 :2011/05/23(月) 11:14:36.38
webbrowserでページ読み込んだらhtmldocument 引けるようになるっしょ そこからコントロールのリストとれるはずだから 目的のラジオボタン(HtmlElement)ひっぱって ラジオボタン.click += new 〜 でいけんじゃない? ちょっと前までwebbrowser使ったツール作ってたんだけどもううろ覚えだわw
596 :
591 :2011/05/23(月) 11:14:25.46
>>594 処理の流れでもいいですか?
StringBuilder sbに次レスのhtmlを動的に生成して挿入。
で
webBrowser1.DocumentText = sb.ToString();
で表示。ここまでは、メインフォーム起動時にやってる。
ラジオボタンを選択する度に、選択しているラジオボタンのvalueの値を
textboxへ表示したい。
WebBrowserってCSSでユーザーもカスタマイズできるから何気に優秀だよな WPFも似たようなものなの?
598 :
591 :2011/05/23(月) 11:21:17.51
<table width=100% border="1" cellspacing="1" cellpadding="4"> <tr> <td><input type="radio" name="radio" value="12345"></td> <td>12345</td> </tr> <tr> <td><input type="radio" name="radio" value="123456"></td> <td>123456</td> </tr></table>
599 :
デフォルトの名無しさん :2011/05/23(月) 11:25:38.94
>>597 WPFってhtml+CSS+Jsの仕組みまねしたようなものジャン
html+CSS->XAML
C#->JS
こんな感じ
まちがえた >C#->JS Js->C#
601 :
デフォルトの名無しさん :2011/05/23(月) 11:26:49.09
>>597 WpfのWebbrowserは、Documentの中身がObjectです
そのままじゃ全然使えないよ
602 :
591 :2011/05/23(月) 11:29:35.19
>>595 おかしなことを言っていたらごめんなさい。
フォーム上のボタンを押したときに、webbrowser上のラジオボタンの
チェックがついているものを取得してってならボタンを押したときの
イベント内で処理すると思うのですが、
「htmlDocumentを作成する」、
という処理をどのタイミングで行うのかがわかりません。
>>599 ,600
ありがとう、じゃあそろそろWPF覚えようかな
604 :
デフォルトの名無しさん :2011/05/23(月) 11:47:37.39
>>602 htmlDocumentを作成する
>>596 の
webBrowser1.DocumentText = sb.ToString();
この後webBrowserが作るんだよ
それが完了したらNabigatedイベントが起きる
public partial class Form1 : Form { string m_szHtml; HtmlElement he1; HtmlElement he2; public Form1( ) { InitializeComponent( ); } private void Form1_Load( object sender, EventArgs e ) { webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler( webBrowser1_DocumentCompleted ); m_szHtml = "ここに流し込む文字列"; webBrowser1.DocumentText = m_szHtml; }
void webBrowser1_DocumentCompleted( object sender, WebBrowserDocumentCompletedEventArgs e ) { HtmlElementCollection hec = webBrowser1.Document.GetElementsByTagName( "input" ); he1 = hec.GetElementsByName( "radio1" )[ 0 ]; he2 = hec.GetElementsByName( "radio2" )[ 0 ]; he1.Click += new HtmlElementEventHandler( he1_Click ); he2.Click += new HtmlElementEventHandler( he2_Click ); } void he2_Click( object sender, HtmlElementEventArgs e ) { textBox1.Text = he2.GetAttribute( "value" ); } void he1_Click( object sender, HtmlElementEventArgs e ) { textBox1.Text = he1.GetAttribute( "value" ); }
607 :
589 :2011/05/23(月) 11:59:37.30
聞きたいことの答えになってなかったらスマンねww
608 :
デフォルトの名無しさん :2011/05/23(月) 12:01:06.36
>>606 DocumentCompletedイベントってhtmlのヘッダー部分にjsとか指定してると
その数分イベント起きるはず・・・
htmlだけ->1回
html+js1つ->2回
609 :
589 :2011/05/23(月) 12:01:54.53
コントロールの名前勝手にradio1とradio2に変えちゃったけどよかったかしらw
>>608 ほかにもいろんな条件でごんごん増えるねw
611 :
デフォルトの名無しさん :2011/05/23(月) 12:07:06.23
>>610 そうそう
なので上でNabigatedをあえて指定したんだけどな
612 :
591 :2011/05/23(月) 12:07:50.29
>>604 >>592 のnavigatedイベントの後というのがよくわかりません。
navigatedイベントが終わったあとは、待ち?になって、次にどのイベントが発生するかわからなくないですか?
613 :
589 :2011/05/23(月) 12:10:43.01
>>612 イベントハンドラ内でコントロールのイベントハンドラ登録するのよ
614 :
デフォルトの名無しさん :2011/05/23(月) 12:13:25.24
>>612 htmlを解析してjsやcssなどがあればそれも解析して
htmlDocumentというインスタンスを作る
で、個別のドキュメントを解析し終わった際に起きるのがDocumentCompletedイベント
htmlに関連する全部の解析が終わった後起きるのがNabigatedイベント
Nabigatedイベントが発生した後じゃないとradioボタンのインスタンスがある
保証は無い
Nabigatedイベントが発生したときにclickイベントなどを設定する
つまりWinFormでいうところのLoadedイベントで普段コード書いてるようなイメージ
615 :
589 :2011/05/23(月) 12:18:55.13
616 :
591 :2011/05/23(月) 12:33:57.72
>>615 なんとなく分かった気がする。
ただ、
"radio1"、"radio2"ってのはnameのとこの値だよね?
これだと、ラジオボタンが排他にならない気がするけど・・・
ラジオボタンの数が動的に増えるなら、he1、he2とかの変数はどうすればいいんだ・・・?
でもまぁなんとなくイメージはつかめてきたぞ。
617 :
589 :2011/05/23(月) 12:38:26.22
618 :
デフォルトの名無しさん :2011/05/23(月) 12:47:38.30
XNAってC#のことですよね?
なんでそうなる
利用するときにC#で書くのか?という意味ならそうだけどVBで書く方法もあるらしい
Form[] forms = new Form[20]; foreach(Form form in forms){ form.Hide(); } のform.Hide()をLINQで表現できないでしょうか?
LINQっていうかArray.ForEachってあるやろ Array.ForEach(forms, (n)=>n.Hide())
>>621 遅延評価じゃないし、返り値もないからLINQに入ってないんじゃないの?
詳しくは知らんけど
queryだからな
美しくないが、null返すSelect()で代用できなくもない
selectの型書くのめんどくさいです
そこはラムダ式で
適当に拡張メソッドでも作れ
>622 こんな方法があるとは知りませんでした. ありがとうございます.
どうせおいらは.net2.0の男さ
今まで遅延とか気にせずにlinq使っていましたが,遅延評価で不都合が生じることってあるのでしょうか?
なに言っちゃってるんだ
その時点での結果が欲しい時困る
列挙するたびに結果が変わるかも
設定保存クラスライブラリ教えて VSのは使いづらい
BinaryFormatter
自分で作れば? ユーティリティ系の他人のクラスライブラリって結局使いにくかったりするし
リモーティング系は時代遅れ XmlSerializerかDataContractSerializerにしとけ 後者ならバイナリも吐ける
俺ならTypeConverterでstringにして、できないものだけXmlSerializeする
XMLは糞遅いんだよな
設定の読み書きにスピード求める実装ってなんだよw
起動時に読み込んだら起動遅くなるやん
643 :
デフォルトの名無しさん :2011/05/24(火) 09:31:58.52
>>642 遅いっていうかさ・・・
スプラッシュウインドウとかでごまかせよ
起動が遅くなるほど大規模アプリなら設定プログラムも見なおせばいいだけだよね
どんだけ速度に賭けてんだよ
やったことないと分からないだろうけど 小さな設定クラスをデシリアライズする場合でも XMLとBinaryFormatterでは起動時のレスポンスに差があったんよ SSD環境とか今は知らないけどさ つか、速度の問題だすと.netだから仕方ないって態度は負け犬根性だわ
647 :
デフォルトの名無しさん :2011/05/24(火) 10:10:41.08
XML関連は最適化ツールなかったっけ?
XMLが遅すぎて失敗したプロジェクトも多いのになに言ってんだ?
多いのは、XMLが遅いんじゃなくて、Javaが遅くて失敗したプロジェクトだろ。
失敗したというのは、WinFSのことだな。
>>646 それ、XML関連のDLL読み込みに時間かかってるだけじゃね?
まぁ、ただでさえC#遅いからな。
遅くないもん、はまれば早いもん。
失礼します。現在、フォームで半透明なフォームを作成中なのですが、Opacity値を変更するとフォーム上のコントロール まで半透明になってしまいます。 HP等では二つのフォームで、一つは半透明に、もう一つはTransparencyKeyを設定したフォームを作成すると あるのですが、この方法だとどうしても処理が重くなってしまいます。ただ単にコードの書き方が悪いのか、 この方法自体に無理があるのかアドバイスよろしくお願いいたします。下記ソース public partial class PatientSearcher : Form { private Form outerForm; private Point mousePoint; public PatientSearcher() { InitializeComponent(); InitializeOuterForm(); } private void InitializeOuterForm() { this.SuspendLayout(); outerForm = new Form(); outerForm.Visible = true; outerForm.Enabled = true; outerForm.BackColor = Color.Black; outerForm.Cursor = System.Windows.Forms.Cursors.Hand; outerForm.Opacity = 0.8F; outerForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; outerForm.AddOwnedForm(this); outerForm.StartPosition = FormStartPosition.Manual; outerForm.MouseDown += PatientSearcher_MouseDown; outerForm.MouseMove += PatientSearcher_MouseMove; this.SuspendLayout(); }
続き private void ReSize() { outerForm.Size = this.Size; } private void ReMove() { outerForm.Location = this.Location; } private void PatientSearcher_Load(object sender, EventArgs e) { ReSize(); ReMove(); } private void PatientSearcher_FormClosing(object sender, FormClosingEventArgs e) { outerForm.RemoveOwnedForm(this); outerForm.Close(); }
続き private void PatientSearcher_MouseDown(object sender, MouseEventArgs e) { if ((e.Button & MouseButtons.Left) == MouseButtons.Left) { mousePoint = new Point(e.X, e.Y); } } private void PatientSearcher_MouseMove(object sender, MouseEventArgs e) { if ((e.Button & MouseButtons.Left) == MouseButtons.Left) { this.Left += e.X - mousePoint.X; outerForm.Left += e.X - mousePoint.X; this.Top += e.Y - mousePoint.Y; outerForm.Top+=e.Y-mousePoint.Y; } } 長くなって申し訳ありませんorz
658 :
デフォルトの名無しさん :2011/05/24(火) 15:08:51.52
>>655 長いコードを晒す場合は
>>4 のコード貼るサイトを利用してね
ちなみに半透明処理は重くなるよ
半透明にしない場合はVRAM上へウインドウを描くだけなんだが
半透明というのはすでにVRAM上に描いてる画像とこれから描く画像の
色をピクセルレベルで計算して合成しないといけない
GPUはこういう処理が一応得意なんだけどやっぱり半透明処理をしない方が
軽いのは事実
659 :
655 :2011/05/24(火) 15:14:01.87
>>658 さん
丁寧なアドバイスありがとうございます。コードというよりは半透明処理自体が
重たいのですね・・・orzリッチクライトを目指していましたが、処理が重いようであれば
再考しないといけませんね;w;
自分で描画するにも大変そうだし、コストに見合わないから趣味程度に調べてみるほうが
よいかもしれないですね。
WinFormの透明処理ってWPFに比べてGPUを使ってなさそうなイメージ WPF+WinFormって可能だったよね? それでコード書いたほうがいいかもね
前のスレだか前の前のスレだかで出てたけど Direct3Dを描画に使ってるからといって何でもかんでもGPUの上で処理してるわけではないべや GDI+ベースの部分(DIB使ってる部分)は合成も何もかも全部メインメモリの上だよ
662 :
655 :2011/05/24(火) 15:29:35.95
WPF禁止で使えないのですorz .net2.0オンリーで作ってくれって言われてるので@w@ レイヤードウィンドウってのを使って自分で描画する方法も あるらしいですが、なんだか大変そう、、、API呼ばないとだし。。
違ったWPFスレでの話だった
664 :
655 :2011/05/24(火) 16:55:51.00
上記のコードで試したら、ほぼうまく行っているのですが、 呼び出し側でShowDialog()で呼ぶと移動が出来ない状態に・・・ オーナー登録したことが原因かなぁorz
665 :
デフォルトの名無しさん :2011/05/24(火) 16:58:34.02
winformで半透明は面倒なんだよね
666 :
デフォルトの名無しさん :2011/05/24(火) 19:16:18.97
DirectXってC#でもつかえるんですよね?
できないことはないですが たぶん貴方が想像しているような使い方ではないと思います
それは64bit対応してるの?
>>666 どのラッパーを使うかは用途次第
XNAはよくできてるけど、PCで配布しようと思うとXNAのランタイムがいるから面倒なのが玉に疵
ManagedDirexrXは開発中止
主流はSlimDX
C++とかでゲーム慣れしてるならSlimDX、
ゲーム初心者ならXNAおぬぬめ(簡単なフレームワーク入ってる)
DXライブラリ、というのもあるがw
ランタイムって聞くだけで嫌悪感全開の人がいるから困る・・・ MSが強制的に配布インストールしてくれればいいのにw
危険思想だ
別にランタイム入れないヤツは逮捕して額に「豚」と焼印を押せとか そういうことを言ってる訳じゃないんだよ。 ただ生きてて欲しくないっていうか
うむ
>>638 XmlSerializerは出力されたxmlイミフなので嫌だ、しかも変更あると既存の読み込めないし
仕方ないのでXPathで自作したが問題発生
設定扱うのでシングルトンにしたがファイルパスをどこで設定すればいいのか謎になった
クラス自体の定数にすればいけるが、きもちわるい
>>675 XmlSerializer/XmlDeserializerはバージョントレラント。
っていうか、あれのどこが意味不明なのかと。
>ファイルパスをどこで設定すればいいのか謎になった なんのための設定ファイルだ
シングルトン=プロジェクトにロックオンだろ? 定数にすればいいじゃん
>>678 ファイルパスは定数にするのが一般的なのか
我流な感じで気になっただけ
設定ファイルのパスはコマンドラインで渡してる俺がいる
mysqldみたいやな
app.configに書く
お前らが普段使っている設定クラスうpしろや
XAMLでいいよ
普通にXmlSerializer使ってマフ
XmlSerializerはpublicなクラスしかシリアル化できない点が嫌だよな。 気分の問題ではあるが、設定値の入れ物のクラスなんてprivateなインナークラスとか、 せめてinternalとかにしたいのに。
DataContractSerializerはprivateもいける BinaryFormatterやXmlSerializerより速いし XmlSerializerと同じくらいにはバージョントレラント ただし吐くXMLは汚くてカスタマイズもあまりできない あくまでシリアライザ
>>688 public class Settei→名前のセンスがない
サンプルも付けてくれ
VSに付いてる設定ファイルを使ったら負けかなと思ってる。
>>689 それは言うな・・・Settingsと被るのが嫌だったんだ
設定ファイルのパスはコンストラクタで指定
デフォルトでexeと同じフォルダ
サンプルはこんな感じ
var s = new Settei();
var width = (int)s.GetObject("window_width");
s.SetObject("window_width", width);
s.Save();
>>690 VSについてくる設定ファイルは微妙に使いづらいよな
いちいちプロパティ追加しないといかんし
致命的なのが設定ファイルのパスが固定されてること
大規模アプリ以外でユーザードキュメントフォルダに保存されたら迷惑なんだが
強制してくるからな…
激同 ユーザ別にするにしても、アプリフォルダ内にユーザ名でフォルダつくってそこに設定ファイル置くます
>>693 そういうのシステムドライブのProgram Filesフォルダに置いたらどういう挙動になるんだ?
勝手にユーザーフォルダのRoaming辺りに作ってくれるんだろうか。
MSにガイドなかったっけ?UAC関連の
自分でカスタムコントロールを作るときに、IDE上でポトペタが出来て且つ IDEのUIで設定を変えるのはどうすればいいのでしょうか?プロパティなどは 可能なのですが、当該コントロールに他のコントロールを動的に追加する場合 コード上で追加しか思いつきません。実際はToolStrip内にあるスプリットボタン をフォーム上で表現したいです。
スプリットボタンじゃなくてドロップダウンボタンだった・・・IDE上で動的に追加できるなら どちらでもよいのですが><
コード上で追加すんだよ当然
うんちゃらAttribute付けるんじゃなかったっけ
701 :
デフォルトの名無しさん :2011/05/25(水) 15:16:13.03
ふらっとの方援護頼む
ヤメロ580
703 :
あっちのスレのほんものの580 ◇6BEJPFFHAc :2011/05/25(水) 15:18:53.57
よんだ?
こっちにもw
>>698 カスタムコントロールを画面上に貼りデザインした時の
イニシャライズコンポーネントのコードをコンストラクタにコピペしたら?
parse tryparse convert どれ使えばいいのかわからない 例外飛ばすかnull返すとかわかるのだが、やっぱ例外飛ばすのがベストだよな
思考停止!
例外キャッチしてたら遅いんじゃないの
C#やC++って失敗したら例外飛ばすじゃん trueやfalseで戻り値を返すなんてCを思い出すわ 戻り値地獄が蘇るぜ
失敗前提のアルゴリズムではTryParse 失敗が例外的な場合はParse Convertは用途が違う
>>709 だから基本は非推奨<TryParse 型のメソッド。
TryParse 型が許容されるのは、
事前チェック(CanParse みたいなの)にかかる手間が Parse 本体と全く一緒で、
if (CanParse(x)) Parse(x); みたいな書き方が無意味の場合のみ。
Dictionary<,>.TryGetValueなんかまさにそれだな 「存在すれば取得する」のパターンはとてもよく使われるし 事前にチェックしたり例外キャッチしたりするのは極めて非効率
>>688 のやつもTryGetValue使ってるな
>>708 どっかにNumberFormatException捕まえないとフォーマットをチェックできない言語あったよ
716 :
デフォルトの名無しさん :2011/05/26(木) 08:10:36.10
717 :
デフォルトの名無しさん :2011/05/26(木) 10:00:12.45
Xamarin 読み方はゼェマリンでおk?
日本語発音だとザマリンじゃね?
C#で音声合成する方法を教えてください
ググレカレー
>>719 合成したい音声の周波数をwaveファイルに書き込め
SAPI5 Speech Platform AquesTalk 他ないですか? どれがいいですか?
IDataObjectとかIDropTargetとかCOMのインターフェイスと名前かぶせるのやめてほしかったな System.Runtime.InteropServices.ComTypes.IDataObjectとか長いんだよハゲ 名前空間の管理も面倒だし System.Windows.Forms.DragDropEffectsとかと混ぜて使おうとするのワケワカメ
usingでエイリアス使っとけば
プラットフォームが提供する機能だからFormsに置きたくないんじゃないの
あるコントロールを配置してアンカーを設定しているのですが、 フォームのサイズをコード上で可変してもアンカーが正常に動きません。 アンカーはユーザーが動かしたときでないと動作しないのでしょうか?
>>729 フォールの最大化した時でもちゃんと想定通りに動いてる?
アンカーはコントロールの追加順に影響受けまくるからそこ確認した方がいいよ
コンテナの中に入ってるとか
virtual修飾子をつけた仮想メソッドはパフォーマンスに影響を与える?
一千兆回くらいループさせて計測しろ
>>732 間接参照が1回増える。
ただ、.NET の仮想マシンは、virtual ついてても静的に呼び出し先を確定できる場合は
非 virtual なメソッド呼び出しと同じコードに最適化してくれる。
ListBoxで選択インデックスが変更されるときに確認メッセージを出したいのですが どのようにすればよいでしょうか? MouseClickイベントを拾ってキャンセルする形になるんでしょうか? SelectedIndexChangedで拾って確認メッセージを出してNOなら、 強制的に以前のインデックスを代入とかで実装するのでしょうか?
>>736 ありがとうございます
そもそも一般的じゃない使い方ですね
ボタンをつけて確認メッセージを出す方向に変更します
>ListBoxで選択インデックスが変更されるときに確認メッセージを出したい ウザいユーザーインターフェースだな。
俺も最悪の操作性とセンスのUIだなと思うけど、まあ特に2chみたいなところだと 本人には煽られてるようにしか聞こえないかもねw たぶんセンスが悪い自覚ないんだよこういう人。 市販されてるソフトでもこの手のアホみたいにモーダルのメッセージボックス 表示するやつがたまにあったりするけど何なんだろうねあれ。
メッセージがうざいというより、 ListBoxの選択が確認メッセージをださなきゃいけないような操作のトリガになるのがありえない リストボックスの選択は後でユーザーがOKボタンを押したときにまとめて反映されるのが普通で ユーザーも当然それを期待して気軽に扱うからユーザーがビックリするぞ
ApplicationSettingsBase クラスの保存先をEXEと同じ場所にってできますか?
Windowsのパスをfileプロトコル形式に変換するメソッドってありますか? C:\aaa\bbb.txt -> file:///c:/aaa/bbb.txt こんな感じにできるメソッドを探しています。よろしくお願いします
new Uri(path).ToString() Path.GetFullPathもいるかも
ナイスだ
おお、これは単純で完璧ですね! ありがとうございました!
どういう場合に使うの?
[アセンブリをCOM参照可能にする]をチェックしてビルドしたMyLibrary.dll内のクラスを VBスクリプトからProgIdを指定してCreateObject()するところまで成功。 MyLibrary.dllの機能を増やそうと他の人が作ったOtherLibrary.dllを参照したところ 「OtherLibraryは厳密な名前を持っていません」とビルドできなくなって手詰まり。 こはそのDLL作者に厳密な名前を付けてくださいと頼むしかないのでしょうか?
基本的には。 あるいは自分とこの厳密名を付けないか。/codebaseでも警告は出るけど登録自体はできるし。 自分が使うだけならildasm&ilasmで厳密名付ける手もあるけど。
751 :
デフォルトの名無しさん :2011/05/31(火) 06:26:12.25
便乗質問だけど ソースも配布するときって厳密名の鍵(snkファイル)だけは公開しないほうがいいとかある? 同じ署名で違うバイナリがでできたりとかやばくね?
>>750 自分の厳密名を外す方法で他の人のDLLが使えました!
最終的には配布したいので、そのときまた方法を考えます。
TCPでコマンドが連続的に送られてくる時は、 どのようにしてコマンドを捕らえる方法が一般的ですか? 例えば データ001\tデータ002\tデータ003\t...延々と ストリームから\tで終わるコマンドを受けて 切り出し続けるにはどうしたら良いのでしょうか。 tcpclientとnetworkstreamで非同期readを想定しています。 endreadした時に格納されたbyte[]の中を 毎回ループして\tを探してコマンドが途中なら次のbeginreadの時に、 offsetで前回途中だったbyte[]につなげて解釈し。。。 という様な泥臭い方法しか思いつきません。 よろしくお願いします。
俺だったらストリーム自体別のスレッドに置いて延々ループ回して トークンが来るたびにイベント起こすわ
俺は昔のBSTRだっけ?あれみたくデータの長さを先頭に埋め込んでる
普通はそっちの方が常道
>>751 MSが.NETアセンブリに使ってるキーペアは金庫に保管してるレベル
XDocument.Parse()で©のところでエラーが出るんですけど、 ©は使えないのでしょうか?
©実体参照してる? &#169; &を半角に
&copy; って感じです。全部半角で
XDocumentよく知らんがDTDとか大丈夫なん
<![CDATA[ 〜 ]]>で囲ったら?
763 :
デフォルトの名無しさん :2011/05/31(火) 22:36:47.81
©って文字コードとかの関係ってどうなんだろう UCS-2って確かサロゲートペアの関係うんぬんとかあったよね サロゲートペア使う文字サポートって.netのバージョンいくつだっけ?
XMLでデフォルトで定義されてる実体参照じゃ無いな、copyは
レスありがとうございます とりあえず&copy;を削除してからParseしようと思います
そもそもコピーライトマークにサロゲートペアも何もないもんだ
謝る暇があったら読め
サーロインステーキ、まで読んだ。
ドラッグアンドドロップでファイルをエクスプローラーにコピーする場合に DataObject dataObj = new DataObject(DataFormats.FileDrop, new string[]{ファイルパス }); DragDropEffects dde = コントロール.DoDragDrop(dataObj, DragDropEffects.Copy); のように上記で出来るのですが、例えばDBから取得したImageなどをドラッグアンドドロップで 保存するにはどうすればいいのでしょうか?ローカルに一旦保存しない方法でお願いいたします。
自作でビットマップを作成して、下記のようにしたけど出来ない・・・まぁ、ファイル名とかの指定 がされていないからかな・・・ DataObject dataObj = new DataObject(DataFormats.FileDrop, new Bitmap(500,500)); DragDropEffects dde = pictureBox1.DoDragDrop(dataObj, DragDropEffects.Copy);
フォーマットが間違ってる FileDropはパス文字列でデータ受け渡しするんで
formatはBitmapではできなかったし、、、なにを指定すればいいんだろorz
あ、Imageオブジェクトをファイルとして保存したいのね DropSourceとしての動作をコード化して 自前でファイル作成しないと駄目ね
なるほど・・・・DropSourceって単語から色々調べてみます。ありがとうございましたm(_ _)m
DropSource? IDragSourceのことかしら…… ローカルに一旦保存するのが一番簡単じゃね? BitmapをDataObjectとしてD&D開始してもターゲット(エクスプローラ)の方で 対応してないからファイルとしてドロップみたいな動作にはならない
tempディレクトリに一時的にファイル作れば?
780 :
デフォルトの名無しさん :2011/06/01(水) 12:13:56.24
一時ファイルを作るのがいやならbmpをメモリーストリームでアクセスして そのまま送ることができる形式(テキスト?)などの扱いにして受け側で 元のように戻すとか
エクスプローラーにコピーしたいんだから一時ファイルないとダメじゃね?
うーん、エクスプローラーに保存するには流行りテンポラリフォルダ作ってそこから コピーしないと駄目なのかなぁ・・・うーーーむ
最近テンポラリフォルダて流行してんの?w
なんか棒を出し入れする音が聞こえるのだが?
空から日本を見てみようで、気持ちいいって言ってたな
赤鬼さんと朝まで豆まき
788 :
デフォルトの名無しさん :2011/06/01(水) 14:42:43.83
すまん わらどころがわからない
792 :
787 :2011/06/01(水) 17:11:52.23
ピクチャーボックスじゃなくてピクチュアボックスって書いてるからなじゃないかなぁ? うーん、やっぱわかんないやorz
793 :
デフォルトの名無しさん :2011/06/01(水) 18:14:52.83
>>791 笑う笑わないの面白いじゃなく、興味深いねというか
なんでMS製品なのに挙動が違うのとかさ
サポートするクリップボードフォーマットがアプリケーションごとに異なるという当たり前のこと
795 :
デフォルトの名無しさん :2011/06/01(水) 18:19:01.91
>>794 ワードとエクセルなんて受けるデータは利用者から見れば
ほぼ同じような物を受けてほしいなw
まあ.netのドラッグ&ドロップが簡易版なのもある
お前はまだOLE D&Dの真髄を知らないのだッ…
質問です。 MSChartを使いグラフを描画しているのですが、データ量が10万件ほどあり 処理が遅く改善できないか悩んでいます。 一番初めの描画自体はそこまで気にならないのですが、拡大や縮小、スクロール移動を行った場合にものすごく時間がかかってしまいます。 拡大縮小、スクロールバーイベントを取って、ソースコードで表示位置を移動させても、 その処理を抜けた後に何か処理が行われている?のかものすごく時間がかかります。 いい方法はないでしょうか?
>>798 10万件は多いよw
とりあえず画面イメージとか無い?
>>799 画面イメージはちょっと今手元に無いんですがX軸が時間、Y軸がデータのLineグラフです。
普通の折れ線グラフのデータ量が多いものと思っていただければいいかと。
801 :
デフォルトの名無しさん :2011/06/01(水) 23:13:39.78
>>800 それなら間引いてグラフにすれば良いんじゃないの?
諦めて自分で描画すれば? GDI+ですらびっくりするほど速いよ
>>801 間引ければ簡単なんですが、間引けないので・・
>>802 GDI+ですか、ちょっと調べて見ます。
804 :
デフォルトの名無しさん :2011/06/01(水) 23:17:29.92
>>803 もしかして10万のデータがあればそれを全部グラフ化するの?
横方向へ描画したとしても10万ピクセル以上使うんだよ・・・
すっごいでかいモニターなんだ
小数で座標指定すれば10万ピクセルいらないじゃん・・・ 普通に間引きすると最大値最小値なんかが消失する危険があるわけだけど、 なんかいいテクニックあるのかな
808 :
デフォルトの名無しさん :2011/06/01(水) 23:29:00.02
>>807 区間区切って最大値と最小値だけ採用してプロットすれば?
DBでやれば大したことないだろうし
ローソク足グラフなんかまさにそれだよ
区間区切ってっていうはいいかもしれませんね 最悪bitmapイメージにしてからChartAriaに描画しようかとも考えていましたが・・(出来るかはまだ調べてませんが
811 :
デフォルトの名無しさん :2011/06/01(水) 23:43:02.06
>>811 わざわざ申し訳ありません。
参考に頑張ってみます。
グラフってラフに作る分には中学生でも書けるけど、実用的なものをきちんと作るのは 思いっきり大変だから(経験あり)、素直に MS Chart使った方が.... その場合、ピクセルの幅に相当する区間の最大値と最小値を代表値にとって描画する、 というのは難しいと思うから、割り切って間引きでいいんじゃないのかと。 どうせスケーリングは自由にできる(任意区間を拡大縮小表示できる)ように作るんだろうし。 何のデータかにもよるだろうけど、音声波形のエンベロープみたいなのが 見たいことなんてそんなになく、普通はグラフなんてトレンドが見たいだけ。 微小区間の極大極小が重要なら、そういうのは別の方法で表示した方がいいと思う。 まあわからんけど。
統計のグラフなんて何も難しくない 難しいと感じるのは大抵、見せるべきデータがなんなのか分かってないだけ
ポエムにしか聞こえない
中卒?
まあわからんと締めた彼は、私達に一体何を伝えたかったのだろうか…。
>>818 「まあわからんけど」と書いておくことで突っ込まれたときの逃げを作ってるんだよ
「〜とか言ってみる」「〜してみた」と同類
なるほど
LINQいいよね〜
ああ、そうかもな。
知らんけど
あほとしか
LINQいいよね〜
ああ、そうかもな。
知らんけど
LINQいいよね〜
よくいうよね〜
830 :
デフォルトの名無しさん :2011/06/02(木) 23:19:04.93
>>814 なんかそのあたりの、能とかハウとかまとまって書いてある書籍とかサイトお勧めありますか?
SHA1ManagedのComputeHash()とSHA1CryptoServiceProviderのComputeHash()で結果が違うんだけど、この二つは何が違うの?
SHA1Managedがマネージコードのみで実装しただけなら結果が同じだと思ったんだけど…
http://ideone.com/UTaKE
computehashにstream読み込ませると最後まで行ったまま戻らないんだよバカ
これはw ふと思い出して大声が出そうになるやつだなw
たまげたなあ (たとえ事実でもシラをきれよ)
ああ0バイトのSHA1を計算してたのね…これは失礼した
俺の顔がキモイのは仕様
>>831 Createは両クラスの基底であるSHA1クラスのだから、どっちから呼び出そうが同じ実装を返すぞ
固有の実装がほしけりゃnewすれ
派生型.基底型の静的メンバ がコンパイル通るのはバグの元と思ってるが
依存関係プロパティを触り出すとそうも言ってられんなー
C#でWindowsの設定をしたいと考えています。 具体的には、「マイ コンピュータ」右クック>「プロパティ」>「詳細設置」>「設定」 の「パフォーマンスを優先する」という設定をC#のアプリケーションから 行いたいのですが、どうしたらよいでしょうか。
そういうの全部レジストリじゃないの?
vs2010でセットアッププロジェクトをつくろうとしています。 ・プロジェクト→XXXのプロパティ→必須コンポーネント ここに.net 2.0を追加したいのですが どのようにすれば追加する事ができるのでしょうか?
.net でO/Rマッピングするにはどれを使うのがいいんだろうか・・・? 色々あって悩んでますorzみなさんはどんなの使ってますか? ちなみに今まではリーダーで読んでました@w@
今もリーダーで読んでます
>>844 うちは業務系システムやっててSQLゴリゴリ書きたいんでSeasar.net使ってる。
SQL Server 2008なら何も考えなくてもEFでいいんだけどもねぇ。
9種類のものが9個ずつあるとき、 その81個を9個ずつ9個に分ける総当りプログラムはどうやって書いたらいいんでしょうか?
意味がわからん たとえばだけどトランプのシャッフルのような話?
ある特定のパターンを探索しているのですが、 3種類の場合だと 1 1 1 2 2 2 3 3 3 上のようなプールから3つずつ選んで 3 2 2 1 3 3 1 2 1 の3組を作る感じです この組み合わせのすべてのパターンを検査して 目的のパターンを探し出すのが目的です
頑張って書く
9重ループ。
5.31306887 * 10^70通り? なんか実用的な意味があるんだとしたらやり方を再考した方がいいな
多分そうよね。 遺伝的アルゴリズムでも使って準最適解探すか。
それは 81個から9個9組とったときの組み合わせでしょ。 同種の組み合わせは除くんじゃないの? 3個の例でいうと 322の組の3は3種類あるけど同じとするというか
C++だったらネクストパーミテーションあるんだが、あれの実装がよくわからん。
>>855 81!/(9!^9)だからその場合は除外されてる
考慮されてないのは
2 3 2←行内入れ替え
1 3 3
1 2 1
とか
1 2 1←行入れ替え
3 2 2
1 3 3
だけど、そもそも必要かどうかが分からん
1桁2桁組み合わせが減ったところでな 毎秒1兆件処理しても宇宙滅亡までに終わらんだろ
関係ないパターンを早めに潰せるアルゴリズムじゃないと話にならんから、 真面目に考えてほしければその条件を書くべきだな
>>857 逆だよね? 行内入れ替えは組み合わせ計算だから除外されてるけど、
32(1番目の2)2(2番目の2) と 32(2番目の2)2(3番目の2) を同じとみなしてはないでしょ?
81C9*72C9*63C9・・・だと
>>853 の答えだよ
ま、それでも多いし、本人来ないと分からないことだけど。
>>860 行内入れ替え…9!^9通り
(n番目のm)のnの入れ替え…9!^9通り
すいません、御飯食べてました レスありがとうございます 意味があるのは組内の項目の順番だけなので 行内入れ替えと行入れ替えはありです 遺伝的アルゴリズムというか、 パターンのランダムな位置交換の繰り返しで準最適解は出たのですが 総当り可能なら総当りで最適解を見つけられればと思って考えてました ですが、5.31306887 * 10^70通りだとちょっと難しそうですね・・・
これハノイの塔の変形でね?
だとしたらモロ
>>858 なんだが・・・
メッセージボックスバグってるよね? 親指定しても親のウィンドウの真ん中にでないよね? ショートカットをすばやく入力するとたまにメッセージボックスが メインウィンドウの後ろにいってどうにも操作できなくなるよね? MFCのメッセージボックスだと親指定すると親のウィンドウの真ん中に出るよね? ホント、どうでもいいことなんだけどさ・・・これ、直してほしいんだ・・・orz
仕様だろ WinFormsは開発終了してるし今更変えたら余計混乱する WinAPIでやる方法はあるし
バグって表現の方がバグってるなw
不意にメッセージボックスが最前面に出なかったりするとかなり焦るからなあ
あんなにたくさん引数あってどれ一つとして親の相対位置に出せないとか糞仕様にもほどがあるだろ
>>867 しかも、メインウィンドウの後ろいっちゃうと強制終了しかないよね(泣
870 :
デフォルトの名無しさん :2011/06/08(水) 23:12:30.09
>>869 デスクトップに表示されてるウインドウすべてをたたむアイコン?
をクリックして一旦たたんで再度開けば前にでてくるはず
MessageBox関数がそういう仕様だから MFCがそうでないのならMFCはわざわざ別に似非MessageBox作ってるんだろう
ウィンドウの後ろにいくのはともかく、サービスパック適用したら メッセージボックスの表示位置が変わったりしたらクレーム殺到しまくってえらいことになるなw
>>870 無理無理、メッセージボックスが表示するかどうかの微妙なタイミングでちょっぱやで
ショートカットキーかアクセラレータキー操作するとたまにメッセージボックスが
メインウィンドウの後ろいって操作不能になる
動作はちょうどモーダルのメッセージボックスが出てるときにメッセージボックス外を叩いたときと同じ動作
つまりどうにもならないw
874 :
デフォルトの名無しさん :2011/06/08(水) 23:31:05.84
>>873 いやいや
windows7には見当たらないけどXPのころはタスクバーの
クイック起動にあったウインドウ閉じるアイコンで一旦たたんで
表示しなおせばいけるって
ショートカットがわかった windowsマークキー+Dだ これでデスクトップが見渡せるようにウインドウをたたんで メッセージボックスが後ろに回ったやつを正常に戻せる つーかなんどもやってるんだし
>>875 うっそ、お前ちょっとメモ帳開けや
したら【メニュー】→【ヘルプ】→【バージョン情報】開いて
こっから「メモ帳のバージョン情報」ウィンドウ触らずにメモ帳閉じてみろや
877 :
デフォルトの名無しさん :2011/06/08(水) 23:40:49.20
>>876 いいたいことはよくわからんがダイアログやメッセージボックスが
メインウインドウの後ろに回るというのを再現するのはかなりこんなんだろw
不意になるくらいで
>>877 >不意になるくらいで
結構エディタ系で入力ミスったときにVBみたいに注意されっと
50回に1回ぐらいの頻度でハマるんだよ
なんか超イラッとくる
強制終了しか選択肢ねーし
>>878 まあウインドウの構造上メインウインドウの裏にダイアログとかメッセージボックスが
回り込むと操作不能っていうのはわかるけど
>>875 のようなのは受け付けるはずなので
対策できたはずだけどな
もう意識しないでやってる作業になってるレベル
DoEventsとか使ってると発生率が上がるような気がする
それメッセージボックスじゃないと思うよw 恐らく単にオーナーが指定されてないモーダルなウィンドウなだけ。 そういう現象なら確かに何度か遭遇したことある。 (海外のツールにそういう不用意なのが多い印象) そういう場合でもアクティブなウィンドウを切り替えてる内に前面に出てきたりする。 というか操作不能なんてなったこと一度もない。 最悪Process Explorerみたいなツールを使えば前にもってこれるでしょそれに。
>>880 あるかもしんねー
>>881 いや、それはもう確認した
spyツールで見れるわ
確実にメッセージボックスだよ
>>882 そんじゃ何らかの理由で非表示のウィンドウがメッセージボックスのオーナーになっちまったとか、
そんなところかな。
884 :
デフォルトの名無しさん :2011/06/09(木) 05:05:38.94
void test(){ string cc = "DSN=mysql"; OdbcConnection conn = new OdbcConnection(cc); conn.Open(); OdbcDataAdapter da = new OdbcDataAdapter(cc, conn); DataColumn col = new DataColumn("@c", typeof(Int32)); DataTable table = new DataTable(); table.Columns.Add(col); for (int i = 0; i < 5; ++i){ DataRow new_row = table.NewRow(); new_row[col] = i.ToString(); table.Rows.Add(new_row); } da.InsertCommand = new OdbcCommand("insert into t1 values (?)", conn); da.InsertCommand.Parameters.Add("@c", OdbcType.Int); da.Update(table); } 実行すると0が5個INSERTされます。 0,1,2,3,4とINSERTされるようにするにはどうすればいいでしょうか? t1はINT1個のテーブルです。
自身でO/Rマッピングに似た機能を作る場合に 部分的なSelectやInsert、Updateをどのように実装 していいか考え中です。皆さんだったらどのようにしていますか? 1つの案としてエンティティクラスの中に処理対象に含めるかどうかのプロパティを別途持つ という方法ですが・・・ public class TestEntity { public bool IsId { get; set; } public int Id { get; set; } public bool IsPerson { get; set; } public Person Person { get; set; } } でもこの方法だと列名X2のプロパティが必要だし、、、うーーーむ・・・
886 :
デフォルトの名無しさん :2011/06/09(木) 15:51:07.58
少なくとも、自分でクエリ打ってる以上、返ってくるプロパティを知らないって事はないからIsXXXなんか作らない
>>887 自分だけで使うのならSql文で終わらせるのですが、他の人も使うので
DBアクセス部分をラップして使わせたいのです。
やりたいこととしては、利用者が条件と必要なカラム名を指定してセレクトすると
Personエンティティーが返るような仕組みをつくりたいです。
まぁ、Where句作る時点で列名知っていないとだし、ほしい部分の列だけセレクト
したい場合に列指定をどうするかが悩ましいです・・
>>886 .net2.0しか使用できないのでLinqは使えないですorz自分で同じようにしてもいいかもだけど
あまりラムダ式も使わせたくないです。。
わがままばっかですが、良いサイトや方法なにか無いでしょうか?
>>888 あくまで参考にしろってことなんだがw
DB関連だとLinq以外もあるだろうから
原始的に辞書で返せば
うーむ、、、なかなか難しいですねぇorz
ラムダ式を作るお手軽クラスでも作ればいいんじゃないの?
一部列のみSelect/Update→そういう定義のクラスかインターフェイスを作る Where句→式木を用意する 俺だったらこうかな
使いにくい俺々ORマッパの強制とか不幸の始まりだな
すでにsqlをやりとりするコードがあるならそのコードを全部洗えば現場で 必要とされるORマッパの仕様って見えてきそうだけど
listboxの扱いについて、良い方法がないかと相談させて下さい。 Key,接続元,接続先,ポート,接続状態,送信パケット数,受信パケット数 これらがオブジェクトのメンバでして、このオブジェクトがDictionaryクラスに納まっております。 Dictionary内の全オブジェクトをlistboxに表示させたいです。 また、オブジェクトの更新が発生した際にリアルタイムにlistboxを更新したいです。 @都度listboxを全消去し再度作り直すのがいいのか Aオブジェクトの更新が発生した際、そのlistboxitemを検索し、対象行のみ更新したほうがいいのか どのような方法がよいかアドバイスいただけないでしょうか。
897 :
896 :2011/06/11(土) 14:17:37.80
listboxではなくlistviewでした。
2だろ 2以外を選択する理由がない
検索があれだったらListViewItemへの参照ももっとけばいいじゃん
>> 898 参考となりそうなものがなかなか見つけられず迷っていました。 >> 899 ! 早速やってみます!
>>896 内容を保持してるなら仮想化にするのはどうかな?
c#のListViewってやけにちらつかない? 色々とめんどくさくなって詳細モードしか使わないListViewはDataGridViewに移行しちゃったわ
アプリケーションの作り方に関する質問です。 Formに複数のコントロール(TreeView,ListView,TextBox,...)を配置した場合 各コントロールのイベントハンドラを普通に書いていくと、Formクラスがやけに大きくなりますし、 ゴチャゴチャになります。 どのようにしたら、スマートになりますか?
>>903 ならない
その辺は元がそういう考えだから仕方ないと思う
別の人が読むことも考えたら俺仕様全開で珍妙な構造にしちゃうのもなんか違うと思う
partialでも使って分割してくれ
>>903 MVCでググれ
VSはFormに全部突っ込むことを強要してくるから初心者はみんな同じ勘違いをしてる
906 :
デフォルトの名無しさん :2011/06/12(日) 08:23:29.25
俺はある程度の機能をユーザーコントロールにして纏めているけどね
ダイアログとかの小さい単位だったらFormに全部書くなぁ さすがにメインフォームは分離するけど
>>903 つ ユーザーコントロール
MVCはあんまり関係ないかも。
VとCは一体だけど、Mの分離は心がけ次第。
MVCフレームワークでも心がけが悪いと肥大化したコントローラーが暴走する・・
>>908 心掛けというか、典型的なMVCパターンの実装は知っておくべきだと思うけど
自己流って大抵の場合時間の無駄だし
ユーザーコントロールとか業務ロジックとかコレクションビューとかにうまく分割すれば フォームのコードビハインドなんて屁みたいな量に収まるはず
テストするにしろしないにしろ 整合性を確認する時にいちいちフォームを介するのはすげえ面倒くさいだろ だったら分離しておくべきだ
だいたいMから作り始めて、GUIくっつけるのは最後だよな
お前らふらっとの方助けてやれよ どうも参照型とポインタが違うと言い張りたい奴が一人で騒いでる
いや違うから
>>913 毎度毎度暴れてる奴だ
あれに触るな新参
ふらっとでやれ
俺も違う派だけど、ふらっとの方には1レスしか書いてないぞ
いちいち相談室に来るな。
919 :
デフォルトの名無しさん :2011/06/12(日) 10:52:26.17
ポインタの一部機能しか参照型は持っていないからな *aと同等なことは出来ても*a++も*(int *)も出来ない
int a; int& b = a; int* c = (int*)&b; とかって出来ないんだっけ?
>オブジェクト参照は、それを指すポインターがあってもガベージ コレクションされる可能性がある…… ここがキモやね
ふらっとでやれよカス
あれはDTMスレだろ
>>888 2.0でLinqを使う、みたいなサイトがどっかにあった気が。
たぶんMore Effective C# 関連。
そういやNHibernateって流行ってないの?
使っている人/所を見たことがない
別にフォームに全部ぶちこんだってええやん
フォームに全部ぶち込んだらGUIの大きな変更に耐えられない 一回作ってそれで終わりならぜんぜんOK
そんなこと言っても改修時の見積もりは同じなんだろ?
初心者スレで今議論されてる内容がレベル高すぎてついていけない
まあ99%スレ違いの話題だから気に病むことは無いわな 概念的な話ばかりで実装も実験もないし、荒らしじゃないのアレ?
ほっとけと言っているのにほっとけない世界の貧しさ
ふらっとは相談室の犠牲になったのだ
>>928 どっちにしろ耐えられないだろ
だってListViewにしたってこいつデータもいっしょに保持するじゃん
なのにデータと皮を分けろたって構造的にそんな風にできてねーんだよ
そんな風にできてないのに分けろって頭わいてるの?
できねーって言ってるじゃん
ListViewはあくまで見た目で本体のデータはこっちに・・・って現実的に可能なの?
仮想モードってあるよ
これはひどい
938 :
デフォルトの名無しさん :2011/06/12(日) 17:01:36.75
>>934 俺はデータをListViewItemのカスタムコントロールにして保持と表示を両立させるけどな
wpfなら関係なくなるけど
>>938 でもそれってどういう構造なの?
構造どおりに作ったならVつまりListViewにさわってもデータはまったく取得できないようにしちゃうの?
>>940 俺は938じゃないけど君は何が言いたいんだ。
そもそもListViewが持ってるのは表示用のデータ、つまりListViewItemのコレクションであって
データそのものじゃない。
何か勘違いしてないか?
942 :
デフォルトの名無しさん :2011/06/12(日) 17:22:26.74
>>940 基本はTextやSubItemの中身をStringやInt等のプロバティーでアクセスできるようにする
てか、あなたが何を問題にしているのか理解出来ないんだが
>>941 だからデータはCからもらうからVからデータもらっちゃいけない構造にするんだろ?
>>942 それだとビューとデータなんてわける必要ないじゃん
>>943 ←俺のレス
ちがった
XデータはCから
○データはMから
そろそろMVVMの出番か
ImageListがDISられていると聞いて アイコンモードだけ別データ構造が必要とかListViewマジ意味不明
何が意味不明なのかよく分からん。 あんたが頭悪いだけだじゃないのか.....
アイコンモード?だけ32x32のアイコンが必要になるってこといってんじゃねーの このハゲはさ
949 :
デフォルトの名無しさん :2011/06/12(日) 20:47:53.31
曝しは犬畜生にも劣る所業
恥知らずなコピペマンが恥知らずポエマーを馬鹿にしてるつもりなんだから笑っちゃうよな。 目糞鼻糞過ぎる
>>949 スレチすぎる。
感想をいえば、ネタ度が無さ過ぎて退屈。
モデリングはまー初級ってとこだろうけど、復興アニメ見たけど、行くべき未来が見えない。
何らかの茶化す技術が足りないと思う。電車がレトロすぎておまい昭和に還りたいのかよ。
IFをいうなら、電車が何回か素敵変形してリニアモーターカーになるくらいやってほしいな。
未来はどこにあるの?
スレチにレスするド低能
こんなド低脳どもでも技術的な質問が来ると真摯に対応してくれるので僕は好きです
disliking
dislinkingて何?英辞郎に載ってない
linkじゃなくてlikeだぜ
disgusting
C#で精度のいいメトロノームって作れますか?
精度のいいってどのくらいの精度を要求されるの?
PCの時計と同精度なら作れる
え?突然何? 何かのネタ?
964 :
デフォルトの名無しさん :2011/06/12(日) 23:19:18.63
>>963 もう一つのスレのネタをもってきただけ
スレが埋まるまでやってくれ
ふらっと見てない人をからかうのやめよ!そういうのよくないよ!
脳機能に障害を持つと人は繰り返しを好むようになるんだよ。 老人ホームとか障害施設行った事がある人なら実感してるはず。 だからloopyっていう言葉は理にかなってる。 たちが悪いのは、中途半端に脳が壊れてると少しは自意識が残ってるから、 本人はきっとネタでやってるつもりなんだろうけどね。
なんかまたキモいのきたw
アホに構うというのもひたすら繰り返されてるな…
SDKのバイナリファイルディレクトリが bin じゃなくて binn なのはなぜなの?
973 :
デフォルトの名無しさん :2011/06/13(月) 11:00:38.50
LINQいいよね〜
ああ、そうかもな。
975 :
デフォルトの名無しさん :2011/06/13(月) 20:49:57.53
TIFF画像の読み込みについてなのですが、TIFF画像にはいろんな種類があるようで このTIFFファイルは元データの他にサムネイルデータが埋め込まれており 普通に読み込むとサムネイルが表示されてしまいます。 元データを開きたいのですが何か方法はないでしょうか? マルチTIFFなのかと思いGetFrameCountでフレーム数を取得しましたが結果は「0」でした。
976 :
デフォルトの名無しさん :2011/06/13(月) 20:53:24.74
以下 TIFF Analyzer という解析ファイルで解析した結果です。 FileName = C:\test.TIF ByteOder = "MM" IFDEntryOffset = 0000118a hex IFDEntryCount = 42 TagName[TagNo] = 値 NewSubfileType[254] = 1 ImageWidth[256] = 156 ImageLength[257] = 104 BitsPerSample[258] = 8, 8, 8 Compression[259] = 1 PhotometricInterpretation[262] = 2 ImageDescription[270] = "" (64文字以上表示省略) Make[271] = "Kodak" Model[272] = "DCS520C"
977 :
デフォルトの名無しさん :2011/06/13(月) 20:55:34.38
StripOffsets[273] = 16896 Orientation[274] = 9 SamplesPerPixel[277] = 3 RowsPerStrip[278] = 104 StripByteCounts[279] = 48672 MinSampleValue[280] = 0 XResolution[282] (72/1 = 72.000000) YResolution[283] (72/1 = 72.000000) PlanarConfiguration[284] = 1 ResolutionUnit[296] = 1 Software[305] = "3.2.3" DateTime[306] = "2002:03:22 15:11:31" Artist[315] = "" UnknownTag[330] : offset = 000015e6 hex UnknownTag[33405] : offset = 000015ee hex UnknownTag[33423] : offset = 000015fa hex UnknownTag[33424] = 1582 Copyright[33432] = ""
978 :
デフォルトの名無しさん :2011/06/13(月) 21:01:03.69
UnknownTag[33434] : offset = 00001622 hex UnknownTag[33437] : offset = 0000162a hex UnknownTag[33723] : offset = xxx UnknownTag[34850] = 1 UnknownTag[34859] = 0 UnknownTag[36867] : offset = 00001632 hex UnknownTag[37380] : offset = xxx UnknownTag[37381] : offset = 0000164e hex UnknownTag[37383] = 4 UnknownTag[37384] = 1 UnknownTag[37386] : offset = 00001656 hex UnknownTag[37393] = 17437 UnknownTag[37397] : offset = 0000165e hex UnknownTag[37398] : offset = 01000000 hex UnknownTag[37399] = 2 よろしくお願いします。
ごちゃごちゃ言わんと画像そのものをアップすりゃいいのに
980 :
デフォルトの名無しさん :2011/06/13(月) 21:45:30.49
ですよね。でもできないんです。お客様の画像なので、、、 一万枚の画像加工です。 photoshopで開くと Camera Raw 6.0っていうウインドウが開きます。 非圧縮なのかな
981 :
デフォルトの名無しさん :2011/06/13(月) 22:14:17.11
982 :
デフォルトの名無しさん :2011/06/13(月) 22:15:45.62
>ImageWidth[256] = 156 >ImageLength[257] = 104 ってあるけど、サムネイルはこれより小さいの?
984 :
デフォルトの名無しさん :2011/06/13(月) 22:28:19.91
>>981 ,
>>982 ありがとうございます。
>>983 サムネイルがこのサイズです。
でもphotoshopで開くと大きなサイズの画像が開きます。
多分、windowsのexplorerがサムネイル表示するときに重くならないように
こんな風にしたのかとおもいます。
986 :
デフォルトの名無しさん :2011/06/13(月) 22:44:45.41
フォーマットの話はC#関係ないので
987 :
デフォルトの名無しさん :2011/06/13(月) 22:46:17.73
988 :
デフォルトの名無しさん :2011/06/13(月) 22:46:50.57
tiff c# でぐぐってね
989 :
デフォルトの名無しさん :2011/06/13(月) 23:07:10.06
ぐぐりました。。。5時間ぐらい。。。
987さんのページのマルチTIFも試した結果
GetFrameCountでのフレーム数が「0」で、、、
結局photoshopのバッチを併用する形にしたのですが、
個人的にこの問題を解決したかったので質問させていただきました。
ですが、ちょっと今の自分にはハードルが高いようです。
ご協力ありがとうございました。
時間がある時に
>>985 さんの方法も試したいと思います。
今は「値を書き換えるってどうやって?」ってレベルなんで。。。
お手数おかけしました。
>>989 一応簡単に説明しとくと
・fs = new FileStream(...)でTIFFを開く
・ary = new byte[(int)fs.Length]で配列を作成
・fs.Read(ary,0,ary.Length)で配列に値を読み込む
・
>>981 を参考に配列から330タグを探す
・330タグの値を配列の4から7番目に代入
・配列からMemoryStreamを作成
・Image.FromStreamでMemoryStreamを読む
って具合かな
先にバイナリエディタで手動で書き換えて検証した方がいいとは思うけど
991 :
デフォルトの名無しさん :2011/06/14(火) 00:06:59.13
>>990 さん
ありがとうございます。やってみます。
ほ
993 :
デフォルトの名無しさん :2011/06/14(火) 23:53:29.49
ね
を
み
>>976 Kodak DCS520とはまた古いデジカメだな。
その画像、TIFF/EPじゃないか?
そ
おつんぼ
うめ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。