1 名前:デフォルトの名無しさん [2010/02/04(木) 20:32:55 ] このスレッドは 「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 前スレ ふらっとC#,C♯,C#(初心者用) Part54 pc12.2ch.net/test/read.cgi/tech/1264236247/ 関連スレ C#, C♯, C#相談室 Part55(実質56) pc12.2ch.net/test/read.cgi/tech/1260111240/ WPF(XAML, XBAP, .Net3.5)GUIプログラミング Part5 pc12.2ch.net/test/read.cgi/tech/1261879110/
511 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 08:33:00 ] >>510 ありがとうございます 鳴らすための専用のプロパティまで用意されていたんですね 簡単に鳴らすことができました
512 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 00:52:45 ] >>511 それぞれの時に鳴る音はWindowsの設定で変更できるよ
513 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 05:18:19 ] 普段まったく見えないコンポーネント群の中で どれがどういう奴か網羅してるサイトとかってある?
514 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 06:19:50 ] > 普段まったく見えないコンポーネント群 ってなんだよ?
515 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 08:57:49 ] .NETでコンポーネントっつったらIComponent継承してる奴全部だと思うけど 全部網羅してる奴なんてMSDN以外にないだろうな
516 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 10:11:43 ] 正規表現で、 Hoge(Hoge(Hoge("unko","unko2"),"hogehoge"),"syobo-n") みたいのを解析したいとしたらHoge(xxx,xxx)のような感じでかつなかにHoge(xxx,xxx)を含まないものでマッチさせて、 それを取得するとともに適当な文字、たとえば###にReplaceしてその上の階層をマッチさせて…みたいな感じになるのかの. まんどくせorz
517 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 10:12:12 ] WPFのコンポーネントはIComponent使わないよ
518 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 10:15:48 ] >>516 一番いいのは解析しなくて済む方法を考えることだお
519 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 10:21:15 ] >>516 ちゃんとソースコードの解析とかDSLとかやりたいんだったら 伝統的なコンパイラ製作の手法を使ったほうがいいよ C#ならGPPGとか使ってパーサを生成する
520 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 10:21:17 ] こんなの解析したとしてもしれてるだろ
521 名前:デフォルトの名無しさん [2010/03/05(金) 10:22:11 ] >>516 こちらへ 正規表現 Part6 pc12.2ch.net/test/read.cgi/tech/1241537764/ c#の独自の機能ってわけじゃないので
522 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 10:51:58 ] 入れ子のある構造は正規表現向きじゃないな
523 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 11:38:15 ] >>514 ツールボックス右クリック アイテムの選択で出てくるリストで チェックされて無いやつ全部
524 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 11:43:44 ] MSDN以外にあるわけねえだろ
525 名前:デフォルトの名無しさん [2010/03/05(金) 11:45:33 ] なんかでるなあ グレーアウトというか半透明で後ろの色と重ねてあるというか・・・そんな表示で 部品の名前見てるとVB6.0時代の名残?
526 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 11:58:23 ] 引数の形式を>>516 の(再帰, "文字列")に限るなら (?<id>[\w\W]+)\((?<r>.*),"(?<str>[^"]*)"\) で最長一致でキャプチャしてrについて繰り返せばいけそう 一般的にやるのは.NETの正規表現だけではたぶん無理
527 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 13:28:13 ] .NETにはじめから付いてるコンポーネントの中でデフォルトで ツールボックスに表示されてないものは実際あんまり使うことないと思うよ VB6っぽいのはたぶん.NETじゃなくてCOMのコンポーネント COMの方はどうしてもというわけでなければなるべく使わない
528 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 15:53:32 ] >>527 乗り物全集の中で、デフォルトが自家用車だらけなのに 裏ではこっそり1輪車からアポロとか回天とかあったらさ・・・ 必死なときは回天使ってみたい場合もあるじゃん 知らなきゃ自動車を容器で包んで見た目潜水する特攻≠自沈機械つくらなきゃならん
529 名前:デフォルトの名無しさん [2010/03/05(金) 15:56:14 ] 何が言いたいかわかりにくいよw 理解したけどw
530 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 17:16:04 ] で、誰もメンテできない、糞アプリが出来上がると
531 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 18:26:00 ] System.Drawing.BitmapをDIBSectionみたいにピクセルにポインタで 高速にアクセスしたいんですけどどんな感じで実現できますか。 ゲームで利用するためにαブレンドとか加算合成とかを実装したいです。
532 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 18:59:21 ] LockBitsでググれ でもどっちにしろGDI+でゲーム作るのはやめたほうがいいと思う DirectXやWPF使えば全ての努力が虚しくなるくらいの圧倒的な速度が簡単に得られる
533 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 19:03:08 ] LockBitsしてBitmapDataに書き込みしてUnlockBitsで書き戻し ただしコピーが入る WPFでPixelShader使った方が早いかも知れない
534 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 19:47:14 ] なるほどやっぱりメモリ直接触れないのがネックですね。 WPFってコントロールをXML経由で制御するイメージがあって 遅いと思い込んでたんですけどちょと試してみようかな… C++ではDIBSection使ってたからDirectXはちょっと今更感が… ありがとうございました。
535 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 20:54:30 ] WPFもDirectXベースだからな αブレンドや加算合成などは自分では一切実装せずに全てハードウェアに丸投げするのが基本
536 名前:516 mailto:sage [2010/03/05(金) 22:40:20 ] いろいろレスあり。 正直ANTLRでも使いたいところだけど、ほんの一箇所の機能のためにランタイムDLLがいくつも増加するのがなぁ…
537 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 00:19:13 ] 字句解析 & 構文解析は書いてみると想像してるより結構簡単だから 限定された部分だけなら自前で書いちゃうのもありだと思うよ。
538 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 00:32:22 ] 今の時代PCでもCPUとメモリのリソースが滅茶苦茶多いしブーストラップの必要も全くないから 字句解析と構文解析なんてあんまり神経質にならなくても適当な資料当たって組めば良いと思うよー
539 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 00:38:32 ] ANTLRはランタイムライブラリの出来が悪いんだよなあ Ironyなんか面白そう
540 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 01:59:45 ] GDI+はラスタオペレーションなくなったのか 殺してやる
541 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 05:17:04 ] >>540 つうほうしました
542 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 11:24:10 ] 時代はピクセルシェーダだよ WPFはもちろんSilverlightでもサポートされてる
543 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 00:19:54 ] やっぱWPFやんなきゃダメだな orz
544 名前:デフォルトの名無しさん [2010/03/07(日) 00:30:38 ] C#の文法的なことを聞きたいのですが、 Button のClickイベントにプラスするdelegateの匿名メソッドの中でthisって書いてもこのthisはButtonでなくFormをさすんでしょうか? ちなみに、Form1の中にButton1があり、Form1.cs(class名:Form1)のファイルに書いています。
545 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 00:32:49 ] うん JavaScriptとは違うというかJavaScriptが異端
546 名前:544 mailto:sage [2010/03/07(日) 00:35:47 ] >>545 ありがとうございます。 JavaScriptだと逆の結果になるんですね。 とりあえず、C#の場合はFormをさすということがわかり、ありがたいです。 結構長い間疑問だったんで・・ありがとうございました。
547 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 08:30:37 ] >>546 >C#の場合はFormをさすということがわかり ちょっと違う >>544 の例としてはそうだけどね 正確には今コード書いてるクラスのことになる IDEでコード書く場合はFormクラスを継承したForm1にコードを書くことが多いので thisがForm1をさしてるけど buttonを継承したクラスを作ってその中でthisを使えば buttoを継承したクラスをさす class MyButton : Button { public MyButton() { //この場合はMyButtonのこと this.size = new Size(120,30); } }
548 名前:544 mailto:sage [2010/03/07(日) 16:24:51 ] >>547 どうもありがとうございます。今書いてるクラスが主?っていうかthisの主体になるんですね。 よ〜く、わかりました。勉強になりました。ありがとうございました。
549 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 19:48:15 ] クラスというよりはインスタンスだな staticメソッドでは使えないから
550 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 22:48:55 ] ちょいと質問 SELECT Format([日付テーブル]![日付],"yyyy/mm/dd") AS 年月, スケジュール.タイトル, スケジュール.メモ帳 FROM スケジュール ORDER BY Format([日付テーブル]![日付],"yyyy/mm/dd"); これC#で使いたいんだけど、yyyy/mm/ddのところどう書いたらちゃんと動いてくれる?
551 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 23:42:30 ] >>550 LINQでってこと? これでいける。 using (var context = new MyDBDataContext()) { var rows = context.Order .Select(r => string.Format("{0:d}", r.transactTime)); foreach (var row in rows) Console.WriteLine(row); }
552 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 23:45:40 ] >>550 これC#というよりSQLだよね FROMに指定されてないテーブル参照してるよ 使ってるDBとエラーメッセージくらい書こうね あと自動で作成されたSQLそのまま使うより もう少し簡潔にした方が良いよ
553 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 01:37:00 ] そうか、春休みか。
554 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 12:35:42 ] なぜかMSDNの字が小さく変更されたような
555 名前:デフォルトの名無しさん [2010/03/09(火) 13:10:44 ] ライトウェイトがすばらしい
556 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 15:42:17 ] ・構造体では、インターフェイスを実装できます。 なんか意味あんのかなこれ
557 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 15:43:42 ] なぜ意味が無いと思ったのか聞きたい
558 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 16:31:51 ] IComparable<T>とかIEquatable<T>とかは知らないうちに恩恵にあずかってる
559 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:38:10 ] 1/1 Type.GetTypeで希望のTypeを取得出来なくて困っています。 取得したいTypeはアプリケーションのプロジェクトとは違う、 ライブラリ用プロジェクトで作成されたアセンブリ内のclassのものです。 アプリケーションのプロジェクトにて、ライブラリ用の プロジェクトをインポートして使用しています。 テストコードでは下記のようにしてみました。 System.Reflection.Assembly asm = System.Reflection.Assembly.LoadFrom( "Lib.dll" ); var _targetType = typeof( KML.FileFormat.PseudoXML.ASDASD ); Type _type = Type.GetType( _targetType.FullName, true, false ); 症状は TypeLoadException が発生します。
560 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:41:17 ] 2/2 そこで、アセンブリ名を指定して Type _type = Type.GetType( _targetType.FullName + ",Lib.dll", true, false ); とした場合は、GetType内で、 System.IO.FileNotFoundException: ファイルまたはアセンブリ 'Lib.dll'、またはその依存関係の 1 つが読み込めませんでした。 との事、なので Type _type = Type.GetType( _targetType.FullName + @",C:\aa\bb\cc\Lib.dll", true, false ); とし、アセンブリへのフルパスを指定した場合は、 System.IO.FileLoadException: 指定されたアセンブリ名またはコードベースは無効です。 となり、いずれも目的を果たせませんでした。 ITMediaやリフレクションの記事を掲載しているブログなどは、 簡単に実現できるような感じで書いているのですがなかなか上手くいきません。 どなたか問題点をお教えいただければ幸いです。 よろしくお願いします。
561 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:43:35 ] 作業環境は、 OS:VISTA32bit VisualStudioC#2008ExpressEdition 対象フレームワークの設定は3.5です。
562 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:45:49 ] 何をしたいのか分からん アセンブリを動的ロードするならAssembly.GetTypeとか使えばいい
563 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:53:48 ] 最終的にやりたいことは設定ファイル(text)に基づいて、 指定のclassをインスタンス化する事です。 その前段階で指定したclassのTypeが必要なようですので、 Type.GetTypeで得ようと試みていたところです。
564 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:57:36 ] > その前段階で指定したclassのTypeが必要なようですので、 そのTypeはLoadしたAssemblyオブジェクトからAssembly.GetType等で取得するもの
565 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 18:00:50 ] どうでもいいけど 1/1、2/2じゃなくて1/2、2/2じゃないのか?
566 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 18:14:51 ] >>562 >>564 ご指摘ありがとうございます。 Assembly.GetTypeで上手く取得できました。 >>565 たしかに・・・。 申し訳ない。
567 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 23:22:48 ] > その前段階で指定したclassのTypeが必要なようですので、 くそわろた。
568 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 00:50:15 ] 1/1,2/2が地味にきくわ
569 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 14:30:19 ] すみません。質問です。 XMLの件なので、こちらで聞くか迷ったんですが、こちらでお願いします。 weather.livedoor.com/forecast/rss/warn.xml 上記のXMLを解析しようと思い、Byte配列に受信しました。 そのByte配列をEncoding.UTF8.GetCharsに入れてやるとエラーになります。 原因を調べると、「〜で質問してみましょう」の「質」の字が e8 0d 0a 35 61 38 0d 0a b3 aa となっており、「質」の字の間に改行コード(0d 0a)とよくわからない文字列(35 61 38)が入っていました。 (ちなみに「質」はUTF8でe8 b3 aa) XMLの処理は初めてなので、よくわかっておりません。 こういった経験や、対処された方がおられましたらいい対処法をご教授ください。 環境は.NetMicroFramework、VisualStudio2008Express、WindowsXPProです。
570 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 14:56:31 ] >>569 Byte配列に格納する時点で失敗してる可能性が大。
571 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 15:19:35 ] これで問題なく読めることが分かる。 using System; using System.Xml; class Program { static void Main() { var xrdr = XmlReader.Create("weather.livedoor.com/forecast/rss/warn.xml "); var xdoc = new XmlDocument(); xdoc.Load(xrdr); xdoc.Save(Console.Out); }}
572 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 15:37:17 ] 35 61 38 -> 5a8 -> 1448 TCPのデータ長がこんなんだっけ?
573 名前:デフォルトの名無しさん [2010/03/10(水) 15:40:56 ] 受信の際のエンコードはxmlの中にかかれてるので自動で認識した後 勝手にucs-2に変換されてない? xmlとかの問題じゃなく文字コードの扱いを分かってないような
574 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 15:50:52 ] すみません。 エラーが出たURLは weather.livedoor.com/forecast/rss/earthquake.xml こっちでした >>570 ちょっと調査してみます。 >>571 丁寧にコードまで書いていただきありがとうございます。 一度Byteに格納しないほうがいいんですかね。 ネットワークが不安定なので、一度ローカルに持って行きたかったんです・・・ >>573 ありがとうございます。 正直文字コードの扱いよくわかってないです。 ローカルにByte配列で持ちたかったので、こういう形になっています。
575 名前:デフォルトの名無しさん [2010/03/10(水) 15:52:28 ] >上記のXMLを解析しようと思い、Byte配列に受信しました。 Byte配列に受信しました。 この部分のコード晒せる?
576 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 15:55:18 ] バイト配列取得以降の問題かもしれない。 Socketクラスを参考にしていた場合、そのサンプルはバグというか不親切。 do { bytes = s.Receive(bytesReceived, bytesReceived.Length, 0); page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes); } をUTF8に変更しただけじゃダメ。これは多バイト文字の途中だろうとお構いなし。 文字の境界を判断するか、それとも全部バッファに取ってから変換する必要がある。
577 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:01:22 ] あ、 0d 0a 35 61 38 0d 0a の理屈が付かないからそれは無いか・・・
578 名前:デフォルトの名無しさん [2010/03/10(水) 16:02:19 ] >>577 うむ エスパーしてもしかたないので >>575 なんだよw
579 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:03:04 ] WebClient.DownloadDataあたりだったら問題ないのかしらん
580 名前:デフォルトの名無しさん [2010/03/10(水) 16:05:10 ] >>579 というか通信にしろファイルにしろエンコード指定しておけば指定したエンコードで読み込んだあと ucs-2に勝手に変換してくれるはずなんだけどな・・・
581 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:10:56 ] >>575 そのままコピペなんで無駄なコードあるかもしれませんが・・・ 一番下のwhile文で1024バイトずつ読み込んで、大きな配列につないでます。 String Server = "weather.livedoor.com"; String URI = "/forecast/rss/earthquake.xml"; const Int32 HttpPort = 80; const Int32 BufferSize = 1024; using (Socket requestSocket = ConnectSocket(Server, HttpPort)) { String request = "GET " + URI + " HTTP/1.1\r\n"; request += "Host: " + Server + "\r\n"; request += "Connection: Close\r\n"; Byte[] requestData = Encoding.UTF8.GetBytes(request); Byte[] recBuffer = new Byte[BufferSize]; Byte[] recBufferFull = new Byte[BufferSize * 100]; requestSocket.Send(requestData, requestData.Length, 0); DateTime timeoutAt = DateTime.Now.AddSeconds(30); while (requestSocket.Available == 0 && DateTime.Now < timeoutAt) { System.Threading.Thread.Sleep(100); } Int32 bytesRead = 0; Int32 bytesReadBefore = 0; while (requestSocket.Poll(10 * 1000000, SelectMode.SelectRead)) { Array.Clear(recBuffer, 0, recBuffer.Length); bytesRead = requestSocket.Receive(recBuffer); if (bytesRead == 0) { break;} recBuffer.CopyTo(recBufferFull, bytesReadBefore); bytesReadBefore += bytesRead; }
582 名前:デフォルトの名無しさん [2010/03/10(水) 16:15:56 ] Socketとかhttpの練習とか学習? 単純にrssリーダーぽいことができればいいとかなら WebClientでデータとってきてxmlに投げるとかすればいいだけだよ
583 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:24:36 ] 応答のHTTPヘッダがなんて言ってるのかも気になる
584 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:33:30 ] >>582 WebClientググったら便利そうですね。 ただ、MicroFrameworkにはないみたいなので、同じような機能のライブラリ提供している方がおられるので、それを利用してみたいと思います。 もしくはHttpWebRequestでいいんでしょうか? >>583 HTTP/1.1 200 OK\r\nDate: Wed, 10 Mar 2010 07:24:48 GMT\r\nServer: Apache/1.3.41 (Unix) mod_perl/1.30\r\nPragma: no-cache\r\n Cache-Control: private\r\nVary: User-Agent\r\nContent-Type: text/xml; charset=utf-8\r\nConnection: close\r\nTransfer-Encoding: chunked\r\n\r\n4ac\r\n ヘッダのstring変換後はこんな感じです。
585 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:35:04 ] chunked
586 名前:デフォルトの名無しさん [2010/03/10(水) 16:36:45 ] >>584 ここのサンプルコードを書き換えたけど問題なく受信できたな dobon.net/vb/dotnet/internet/downloadusesocket.html codepad.org/NVeXkER1 最後のtextboxだけ用意してくれ
587 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:41:33 ] 0d 0a 35 61 38 0d 0a は長さ5a8バイトということか
588 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:42:11 ] >>585 でFAじゃまいか こういうのは透過的に扱ってくれるライブラリ使わないと面倒くさいね
589 名前:583 mailto:sage [2010/03/10(水) 16:42:17 ] >>585 ああやっぱり
590 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:46:10 ] >>586 丁寧に書いてもらってありがとうございます。 MicroFramework用に変更して使ってみます。 >>587 どうやらそうっぽいです・・・そのバイトずつわけて受信すればいいんですかね? >>588 chunkedググってみます
591 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:49:22 ] HTTP/1.1 は chunked で送られてくるからめんどくさいよね
592 名前:デフォルトの名無しさん [2010/03/10(水) 16:49:38 ] >>590 いや・・・ データ本体がそのサイズってことだろ >>586 で受信したテキストデータ HTTP/1.1 200 OK Date: Wed, 10 Mar 2010 07:46:23 GMT Server: Apache/1.3.41 (Unix) mod_perl/1.30 Pragma: no-cache Cache-Control: private Vary: User-Agent Content-Type: text/xml; charset=utf-8 Connection: close Transfer-Encoding: chunked 4ac [rssの一つ] 5a8 [rssの一つ] 5a8 [rssの一つ] 以下略 こんなパターンでくるのか
593 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:52:33 ] もうこの程度ですら自力で実装するのを億劫に感じててヤバイ
594 名前:デフォルトの名無しさん [2010/03/10(水) 16:54:02 ] >>593 そりゃIDE+VC#って人間を退化させるよ パソコン上でIMEになれてしまって咄嗟に漢字がかけない感覚に似てる
595 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:55:45 ] MicroF/WはCompactF/WよりさらにAPIが少ないの?
596 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:59:00 ] >>591 そうなんですか。勉強になります。 >>592 書いていただいたソースは、1024バイトずつ受信してて、resSizeが0になったら受信終わりですよね? どうやってデータ本体毎にわけるのかよくわからないです。 いただいたソースだと4acとか5a8のような不要な情報も入りそうな気がするのですが。
597 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:59:56 ] >>595 そうです。かなり少ないです。 しかも英語ページしかないのでなかなかとっつきにくくて・・・
598 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 17:01:17 ] >>592 一部訂正 HTTP/1.1 200 OK Date: Wed, 10 Mar 2010 07:46:23 GMT Server: Apache/1.3.41 (Unix) mod_perl/1.30 Pragma: no-cache Cache-Control: private Vary: User-Agent Content-Type: text/xml; charset=utf-8 Connection: close Transfer-Encoding: chunked 4ac [4acバイト分のデータ(文字コードはどれか不明)] 5a8 [5a8バイト分のデータ(文字コードはどれか不明)] 5a8 [5a8バイト分のデータ(文字コードはどれか不明)] 以下略 5a8 [5a8バイト分のデータ(文字コードはどれか不明)] 0 最後は0で終わってる こんなパターンでくるのか
599 名前:デフォルトの名無しさん [2010/03/10(水) 17:04:56 ] >>596 いやそんなに難しくないでしょ 4ac 5a8でバイト数(文字数?)を見て行けばいいだけだし 0d0aは単なる改行コードだしね >>586 のコードをMicroじゃないFrameworkで動かしてみて受信データを見てみなよ
600 名前:デフォルトの名無しさん [2010/03/10(水) 17:06:20 ] 面倒なんでcodepad使わせてもらった codepad.org/hXtU8pZp
601 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 17:08:29 ] 流れぶった切ってちょい質問 struct A { int x; int xsize; } int sx = 0; List<A> alist = new List<A>(); alist.ForEach(delegate(A a) { a.x = sx; sx += a.xsize; } こういう感じで、構造体リストのある項目を全書き換えしたいんだけども、 forループするしか手はない? いちいちコピー&書き戻しが発生するからできればしたくない・・・
602 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 17:12:38 ] >>599 全部受信してからそれ毎に区切っていく感じでいいんですね。 それなら簡単そうです。 ちょっとFramework変えてやってみます。 ありがとうございます。
603 名前:デフォルトの名無しさん [2010/03/10(水) 17:51:06 ] >>601 どこかで見た流れだ
604 名前:デフォルトの名無しさん [2010/03/10(水) 17:52:37 ] ふらっとC#,C♯,C#(初心者用) Part56 pc12.2ch.net/test/read.cgi/tech/1267348401/356- こっちだった
605 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 18:10:11 ] まだ効率だけにこだわっているのか
606 名前:601 mailto:sage [2010/03/10(水) 18:10:45 ] いや別にループ怖いって話じゃなくてwww 構造体コレクションの実体に直接アクセスしたいってだけ
607 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 18:11:03 ] そっちはループ処理したくないというアホ こっちは多分一時コピー(ry var tmp = alist[i]; // tmpを変更 alist[i] = tmp;
608 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 18:16:55 ] なんで構造体なんだ? クラスにしちゃえばいいじゃない
609 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 18:35:40 ] 仕方なく構造体のコレクションを使うときに 効率は別にしてもなんか気持ち悪いのはよくわかる
610 名前:601 mailto:sage [2010/03/10(水) 18:49:47 ] >>608 実体コピー前提の使い方するから>構造体な理由 むしろ間違って参照渡ってしまった時のバグが怖い >>609 そう 値型専用のコレクション操作メソッドとか用意されてないかと思って聞いてみた
611 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 19:37:42 ] 無限ループって怖くね?(棒読み)
612 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 21:47:24 ] >>610 delegate void RefAction<T>(ref T arg); static void ForEach<T>(this IList<T> source, RefAction<T> action) { for (int i = 0; i < source.Count; i++) { var item = source[i]; action(ref item); source[i] = item; } } 効率は知らん
613 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 22:12:02 ] そんなことするくらいなら、(サイズが確定した時点で)配列にして普通にfor使う方がまし var array = list.ToArray(); for(int i=0; i<array.Length; i++) array[i].x = 10;
614 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 00:40:16 ] >>602 いまさらだけど、 チャンクのサイズを見て、そのサイズ分読む チャンクのサイズが0なら終わり という風にしたほうが楽だし速いよ
615 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 00:42:56 ] wavファイルを数値データとして見たいのですがどうすればいいですか?
616 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 00:43:48 ] 大して難しいフォーマットじゃねえし www.kk.iij4u.or.jp/~kondo/wave/ でも読め
617 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 16:09:08 ] VC#に、クラスとか関数の関連を表示するナビとかハイパーリンクとかの機能ありますか? いわゆるなんちゃってフローチャート的なやつ
618 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 17:23:17 ] よくわからんが IDE の話か? VisualStudio のクラスビューとかのことかね?
619 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 17:28:56 ] クラス図(クラスとか関数の関連を表示するやつ)と、流れ図(フローチャート)は全く別物だが。 クラスビューにはリンク機能は無いけど。一度使ってみれば。
620 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 17:31:54 ] HSPみたいなもの言ってるのでは
621 名前:デフォルトの名無しさん [2010/03/12(金) 17:35:50 ] フローって作れるか? VC++だったら確か関数の上で右クリックすると関連が見得たりしたけど VC#の場合基本ネームスペース、クラス、メンバ関数とか なのでそんなフローが必要になることってあんまり無いような
622 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:26:25 ] TextBoxを普段非表示にしておいて、マウスオーバーで表示されるようにしたいんだけども Hide()使うとイベント受けてくれない 何かいい手はありますか?
623 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:27:30 ] 表示位置覚えといて親コンテナのマウス移動で表示するかどうか決めるとか?
624 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:28:26 ] >>622 透明にすればいいんじゃない
625 名前:デフォルトの名無しさん [2010/03/12(金) 19:31:30 ] >>624 textboxは透明にするのは難しいんじゃないかな? なんかこのスレかふらっとC#でバックカラーとかをいじっても透明にできなかった とか書き込みがあった記憶が
626 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:33:03 ] GDI+を使えばいいと思うよ
627 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:27:14 ] 今日気がついたんだけど、Windows Form上のコントロールのアプリケーション設定 (プロパティバインディングって言った方がいいのかな)ってローカライズに 対応してないのかな。 何が言いたいかというと、FormのLanguageで設定する各言語ごとに プロパティバインディングされたプロパティのデフォルト値を設定する方法がないものかと。 とりあえずリソースと同じようにSettings.settingsをコピーしてSettings.en.settings とかやってみたがダメだった。
628 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:38:29 ] >>622 普通に誰でも思いつく泥臭い法でいいんじゃない? つまりFormのMouseMoveイベントでマウスの座標を監視して、(hideしてある) TextBoxの場所にマウスポインタが来たらShow()すると。
629 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 22:36:28 ] 同じ座標に無地のピクチャーボックスを置いて そっちでイベントを受け取ってみるとか
630 名前:622 mailto:sage [2010/03/12(金) 23:35:19 ] WPFのトンネルイベントみたいなのがあるかと思ったらそんなことはなかったぜ!と言う事かあ 見た目だけじゃなく存在自体が消えてしまうのは何とかならないのかなあ>Hide()
631 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 23:38:19 ] >>630 Visible=false;
632 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 00:13:56 ] 派生クラスで適当に幾つかオーバーライドするだけじゃないの とりあえず、OnPaint, OnMouseEnter(OnMouseHover), OnMouseLeave あたり もしかしたら、OnPaintBackground も必要かも
633 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 00:26:36 ] マウスオーバーでテキストボックス出てくるとか使いにくすぎるw どういう使い道なんだ
634 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 00:31:33 ] >>622 作ってみた。でもかなり対症療法的なコードなのであまり真に受けない方がいいかも。 class TextBoxEx:TextBox { private bool SuppressesPaint { get; set; } private bool mIsTransparent = false; private bool IsTransparent { get { return mIsTransparent; } set { if (value != mIsTransparent) { mIsTransparent = value; if (IsTransparent) { SetVisibleCore(false); SuppressesPaint = true; SetVisibleCore(true); } else { SuppressesPaint = false; SetVisibleCore(false); SetVisibleCore(true); } } } }
635 名前:634 mailto:sage [2010/03/13(土) 00:32:35 ] protected override void OnMouseEnter(EventArgs e) { base.OnMouseEnter(e); IsTransparent = false; } protected override void OnMouseLeave(EventArgs e) { base.OnMouseLeave(e); IsTransparent = !Focused; } protected override void OnEnter(EventArgs e) { base.OnEnter(e); IsTransparent = false; } protected override void OnLeave(EventArgs e) { base.OnLeave(e); IsTransparent = true; }
636 名前:634 mailto:sage [2010/03/13(土) 00:34:10 ] protected override void WndProc(ref Message m) { const int WM_PAINT = 0x000F; const int WM_NCPAINT = 0x0085; switch (m.Msg) { case WM_PAINT: case WM_NCPAINT: if (SuppressesPaint) return; break; default: break; } base.WndProc(ref m); } } - 以上 -
637 名前:634 mailto:sage [2010/03/13(土) 00:50:28 ] 親がアクティブじゃない時の挙動がおかしいな。 コントロール関係はいろいろ面倒臭いなやっぱりw 思いもよらないところに落とし穴が潜んでたりするし。
638 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 01:15:19 ] VC#に最初から入ってるコントロールはイベント処理が微妙なのが多い気がする。 やりたいことがなかなかできなくて、結局自前でフラグ立てながら状態遷移を管理するハメになったり。
639 名前:デフォルトの名無しさん [2010/03/13(土) 07:05:42 ] 配列構造体で、 struct vector { public int x; public int y; } private void method{ vector[,] point = new vector[100, 100]; for (int i = 0; i < 100; i++) { for (int j = 0; j < 100; j++) { point[i, j].x = i; point[i, j].y = j; } } } private void exchange() { } このプログラムで、exchangeでmethodで定義したpoint[,].xを使いたいですけれども、どうすればいいんだ
640 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 07:14:17 ] 無理だろ。引数で渡すとかスコープを変えるとかせんと。
641 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 08:09:02 ] 関数の戻値か同じクラス内ならメンバーに持てばいいだろ。 private vector[,] method() { : return point; }
642 名前:デフォルトの名無しさん [2010/03/13(土) 11:23:51 ] それじゃまだ実現不可能。
643 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:27:49 ] 一応>>634 がいい奴だってことはわかった
644 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:48:19 ] 認識しないからといってインデントに全角スペースを使う男の人って…
645 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:57:19 ] >>644 やめて〜!!
646 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 12:03:13 ] 2ちゃんねるではよく使うなぁ
647 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 12:16:55 ] 全角スペース便利 みんなこれからもどんどん使おうね
648 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 12:17:39 ] むしろ2ちゃんだと先頭の半角とかは無視されなかった?
649 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 12:54:23 ] 無視はされない。datでもcgiでもちゃんと残っている
650 名前:デフォルトの名無しさん [2010/03/13(土) 13:02:08 ] codepadとか使えよ codepad.org/ C#は選択肢にないけどCにしておいて右下のRun Codeのチェックはずしてsubmitボタン押すだけじゃねーか codepad.org/HfKzapzv
651 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:02:29 ] 2ちゃんビューワとかブラウザで見ると無視されるな
652 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:14:46 ] 通常WWW UAは連続するホワイトスペースは一つの半角スペースに置き換えて表示するからね こういった利用者が書式を指定できない掲示板では仕方がない
653 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:19:46 ] preタグを認識してくれればいいんだけどな
654 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:58:19 ] nbsp使えよ
655 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 16:18:37 ] nbsp使ったら、>>レス番 でポップアップしたときに nbspって文字列でてこなかったっけ?
656 名前:655 mailto:sage [2010/03/13(土) 16:19:39 ] でてきませんでした。
657 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 16:44:27 ] test \s \t %89 test test
658 名前:デフォルトの名無しさん [2010/03/13(土) 17:44:29 ] C#4.0も良いけど、C#からC++のクラスや関数をC++/CLIを経由すること なしに簡単に(透過的に)呼び出せるようにしてほしい。 C++/CLIなんていらない。文法がややこしくなるだけだ。VC++は .Net Frameworkと同じインターフェースをもったNativeなGUI ライブラリの開発に専念してほしい。 C++0xが正式に確定していない現在、動きがとれんだろうけど 以上の事をMSがやってくれたらC#を使う気になる。
659 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:46:58 ] 使わなくていいよ。
660 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:49:08 ] >>658 使う気になるとか C#しか使えない人に失礼だろw
661 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:57:45 ] そんなに使いたくないなら使わなければいいのに 他にも選択肢はあるよ
662 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 18:11:53 ] 自分の好みやわがままで言語を選べるなんて、ずいぶんと恵まれた職場だな
663 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 18:19:57 ] >662 それなんの社畜自慢?
664 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 18:27:50 ] 一生その職場にいて自分だけがメンテするならなんでも選べます
665 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 18:34:30 ] 既存のシステムがあったら大きく外れられないだろ というかコンベンションというかガイドラインくらいどこにでもあるだろw
666 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 18:36:56 ] うちはむしろ特別な事情(ユーザーの指定とか旧環境との兼ね合いとか) がないかぎり Windows アプリは C# にするってことにしたけどな
667 名前:デフォルトの名無しさん [2010/03/13(土) 18:38:19 ] 制約なければwindowsはc#で書きたいなあ 部分的にC/C++は入れたとしてもGUIはC#だわ
668 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 18:42:36 ] 「チッ.NET入れるのかよ」 というお客様も最近は減ってきました
669 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 18:44:21 ] Vista以降で入ってるしね。
670 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 19:41:48 ] とりあえず、意味不明のダイアログを表示して落ちるのもアレなので、 .NETが必要だというメッセージを表示するぐらいの配慮はするべき。
671 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 19:44:11 ] デフォルトで出る様になってなかったっけ? ただ英語なのでアホは読んでくれない
672 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 19:46:47 ] 確かにあれはいただけないな
673 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 19:52:50 ] まあバイナリを裸で配布するのは邪道、っていう前提に立ってるんでしょう。 イストーラで配れと。 それにしても、.NET Frameworkは単独でアンインストール可能なわけだから、 そういうケースをもう少し想定すべきとは思うけど。
674 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 22:07:38 ] ちっ、うっせーな
675 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 23:04:13 ] うっ、ちっせーな
676 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 23:08:52 ] C++のクラスとか旧時代のゴミ持ち込むなよ
677 名前:デフォルトの名無しさん [2010/03/13(土) 23:54:40 ] C#もろくに使えねぇ癖に 黙ってろカス
678 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 01:59:46 ] 反省してまーす
679 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 02:10:53 ] >>617-621 クラスやそれ以上の粗さ(アセンブリなど)でよければ、 Visual Studio 2010の依存関係グラフというやつで、図にしてくれるぞ。 www.microsoft.com/japan/msdn/vstudio/2010/product/architecture_new.aspx
680 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 03:12:02 ] doxygenもいいぞ
681 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 07:10:37 ] コンボボックスのドロップダウンリスト部で右クリックが押されたことを検知するには どうしたらいいでしょうか? MouseClickやMouseDownで見張っていても呼ばれないようです
682 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 07:25:31 ] そんなマニアックなイベントは無いと思う 一番簡単そうなのはドロップダウン部分のウィンドウハンドルを NativeWindowに食わせることかなぁ ハンドルはGetComboBoxInfoで取れる
683 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 08:32:47 ] 2010またソリューションとか変わるんだよな… 2008と混在できるけど、いまやってるプロジェクトまわりのやつは皆が2010に切り替えるまで2010でいじれないよね。 依存関係グラフで見たいのあるけど、なんかうまいやりかたある?
684 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 08:33:39 ] >>682 ドロップダウン部分をサブクラス化してメッセージを自前で処理ですか・・・ ちょっと敷居が高そうですが頑張ってみます ありがとうございました
685 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 11:05:03 ] そんなアメリカンなUI、使う方にも敷居が高そうだ。
686 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 11:43:24 ] >>679 2010か
687 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 21:45:42 ] Visual C# ExpressEditionのエディタで、 半角スペースを可視化する設定はありませんか?
688 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 21:50:36 ] >>687 編集→詳細→スペースの表示 ショートカットはCtrl+R→Ctrl+W
689 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 22:00:28 ] >>688 ありがとうございます。 続いて質問ですが、半角スペースと全角スペースを区別する方法はありませんか? 見た目の幅が微妙に違うだけで、一目で判断するのは難しいのですが
690 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 22:17:13 ] >>689 微妙っていっても表示される点の位置がずれるのでそれで区別しかないと思う。 インデントをタブにして普段は半角スペースを入れない方が判りやすいと思うんだけどね。
691 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 22:19:48 ] 全角が混ざったかわからないときはプロジェクトで考えるより 普通のテキストとみたてて置換した方が早くない?
692 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 22:23:42 ] 全角を気にしないというのはどうか?
693 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 22:26:18 ] 開発環境が何かしらないけど スペースの可視化くらいできるだろ
694 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 22:26:58 ] って上に書いてあったか
695 名前:689 mailto:sage [2010/03/14(日) 22:36:44 ] 皆様回答ありがとうございます。 >>690-692 辺りを参考に、使い勝手を試しながら使いやすい設定を探していこうと思います。
696 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 22:43:42 ] まあリテラル文字列中以外は、全角スペースは勝手に半角に修正されるんですけどね 違ったっけ。
697 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 13:30:35 ] 全角スペースも空白として扱われる、だろう
698 名前:622 mailto:sage [2010/03/15(月) 16:17:26 ] >>634 亀ですがありがとう 参考にさせてもらいます