ふらっとC#,C♯,C#(初心者用) Part67
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2010/12/16(木) 18:23:33「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっとC#,C♯,C#(初心者用) Part66
http://hibari.2ch.net/test/read.cgi/tech/1290854247/
■関連スレ
C#, C♯, C#相談室 Part63
http://hibari.2ch.net/test/read.cgi/tech/1289733048/
VB.NET質問スレ(Part35)
http://hibari.2ch.net/test/read.cgi/tech/1284423653/
くだすれC++/CLI(初心者用)part2
http://pc12.2ch.net/test/read.cgi/tech/1268613679/
■備考
コードの量が多い場合は下記サイトを使うなどしたほうがいいかも
http://ideone.com/
コードを貼り付けてRun codeのチェックをはずしてsubmitボタンを押すと
コードを鯖側にアップして専用のアドレスが発行されます。
直接貼る場合は下記サイトなどを利用してhtmlエンコードした方が
インデントも残って見やすいです
http://kawama.jp/php/encode_html.php
0002デフォルトの名無しさん
2010/12/16(木) 18:27:190003デフォルトの名無しさん
2010/12/16(木) 19:10:57「乙」とは十干(じっかん、甲乙丙丁戊己庚辛壬癸)の第2番目。「きのと」とも読む。五行は木、陰陽は陰。草花を象徴し、協調・社交・和合を意味する。
または甲で始まる順位の第2位。「乙種」「甲乙つけがたい」
乙>>1
0004デフォルトの名無しさん
2010/12/17(金) 10:37:49早速質問なんですが、xmlデータの取込の際にタグで
<ns0:root xmlns:ns0="http:〜">のタグって名前空間とまで分かったのですが
public T Deserialize<T>(string fileName, string encode = "Shift_JIS")
{
var serializer = new XmlSerializer(typeof(T));
using (var tr = new StreamReader(fileName, Encoding.GetEncoding(encode)))
{
return (T)serializer.Deserialize(tr);
}
}
の形で取り込む時に<T>のクラス指定での名前空間の指定(?)の方法がわかりません;w;
どなたか分かる方いらっしゃいますか?
説明下手ですいません。。。
0005デフォルトの名無しさん
2010/12/17(金) 10:44:1300064
2010/12/17(金) 10:55:26新規の業者に名前空間が付いていることと、既存の取込方法をしようして
取り込みたいのでどうぞよろしくおねがいいたします。
0007デフォルトの名無しさん
2010/12/17(金) 11:21:390008デフォルトの名無しさん
2010/12/17(金) 11:26:22そのクラスが独自に存在するならそういうデータを作ってそのクラスの型を調べればいいんじゃね?
0009デフォルトの名無しさん
2010/12/17(金) 11:30:190010デフォルトの名無しさん
2010/12/17(金) 11:33:46それなら簡単だし。。。
0011デフォルトの名無しさん
2010/12/17(金) 11:35:45昔のようにメモリかつかつな時代でもないんだし
従来のロジック+新しいロジックの併用運用すればいいじゃん
新しい方でもいけるならそっちに切り替えるとかすればいいんだし
0012デフォルトの名無しさん
2010/12/17(金) 11:51:310013デフォルトの名無しさん
2010/12/17(金) 14:33:27XmlSerializerに食わせれば一発だよ
0014デフォルトの名無しさん
2010/12/17(金) 15:28:24今のストリームの位置を変数かなんかに
保存してbinaryreader でそこから読んでいきたいんですが
可能ですか?素直にbinaryreader で一文字ずつ読んで
改行文字を追うべきでしょうか
0015デフォルトの名無しさん
2010/12/17(金) 15:30:250016デフォルトの名無しさん
2010/12/17(金) 15:48:05便利そうなので・・・
0017デフォルトの名無しさん
2010/12/17(金) 16:11:07StreamReaderはある程度の量をバッファーに読み込みながら処理しているんだけど、
そのバッファーをどこまで使ったかはプライベートになっているので外部からではわからない。
文字列の長さから位置を割り出そうとしても、改行文字が\nか\r\nかわからないし、
エンコーディングの関係でずれる可能性があるので難しい。
リフレクション使えばなんとかなるかもしれないけど、
素直にbinaryreaderで一文字ずつ読んで改行文字を追っていったほうが楽そう。
0018デフォルトの名無しさん
2010/12/17(金) 16:14:14というかテキストとバイナリの境目って何で判断するのって話だな
テキストデータってのはバイナリコードをあるルールに従って扱ってるだけの話だし
作ってる人間はここまでがテキストここからはバイナリと思ってても
コードだけみたんじゃあわからないぞ
0019デフォルトの名無しさん
2010/12/17(金) 16:15:33streamreader.CurrentEncoding.GetByteCount使えば文字列の長さは割り出せるね
0020デフォルトの名無しさん
2010/12/17(金) 16:28:38だいたいそれ使うならオンメモリだからストリーム戻す必要なんかない
最初から別のbyte配列に読んでしまえばいいだけのこと
0021デフォルトの名無しさん
2010/12/17(金) 16:29:37テキストとしてみたとき
4行だけ読めば良い、とか特定の文字の出現ででテキストとして解釈できる
範囲が確定できる場合を想定してるんです
0022デフォルトの名無しさん
2010/12/17(金) 16:53:12class BinaryReaderEx : BinaryReader {
public BinaryReaderEx(Stream input) : base(input) {
}
public string ReadLine() {
StringBuilder sb = new StringBuilder();
char c;
while ((c = this.ReadChar()) != '\n') {
if (c == '\r') continue;
sb.Append(c);
}
return sb.ToString();
}
}
}
}
0023デフォルトの名無しさん
2010/12/17(金) 18:38:530024デフォルトの名無しさん
2010/12/17(金) 18:44:15どの言語から来たかしらないがクラスを覚える必要があるけど
基本はそんなに難しくないと思うのでここでも一読を
http://ufcpp.net/study/csharp/index.html
まあどの言語から来るかにもよるんですけどね・・・・
0025デフォルトの名無しさん
2010/12/17(金) 18:45:44MSが用意したクラスを覚える必要があるけど
0026デフォルトの名無しさん
2010/12/17(金) 18:50:11標準講座C#
978-4798114736
なんかどう?
0027デフォルトの名無しさん
2010/12/17(金) 18:56:31>>24>>26
なかなか分かりやすそうでよさげですね
そこそこ良いお値段するけど中身も良さそうなのでちょっと書店で目を通してみます
0029デフォルトの名無しさん
2010/12/17(金) 22:59:020030デフォルトの名無しさん
2010/12/17(金) 23:09:28明らかに消せそうだったので
もう直せましたし
0031デフォルトの名無しさん
2010/12/17(金) 23:17:04保障されるの?
0032デフォルトの名無しさん
2010/12/18(土) 00:38:15GoogleのAPIでGoogleカレンダーをc#で表示するにはどうしたらいいんでしょうか。SDKはDL済み、環境はVS2008です
いろいろいじってみたのですが全くわかりませんでした。
0033デフォルトの名無しさん
2010/12/18(土) 06:45:52Bitmap bmp = (略
pictureBox1.Image = bmp;
それともこうしなきゃだめ?
Bitmap bmp = (略
Image old = pictureBox1.Image;
pictureBox1.Image = bmp;
old.Dispose();
0034デフォルトの名無しさん
2010/12/18(土) 08:21:01web系のAPIってぶっちゃけると単なるURLでしょ
>>33
なんのためのGCかと
0035デフォルトの名無しさん
2010/12/18(土) 09:02:27なんか懐かしいw
DCにブラシやペンを設定〜
0036デフォルトの名無しさん
2010/12/18(土) 09:12:57c#でもブラシやペン使うときはDisposeするよ
http://dobon.net/vb/dotnet/graphics/fillrectangel.html
Dispose書き忘れが嫌ならusingで囲っちゃえばいいだけだし
PictureBoxに渡してあったImageは新しいImageを渡すことで
切り離されていずれGCが開放するだろうけど
0037デフォルトの名無しさん
2010/12/18(土) 10:33:36同じ処理したことあるけど、考えたことなかった。
確かに Dispose() したくなるね。
pictureBox.Image の set 時に、 勝手にDispose()してくれるとうれしいけど、どうだろう。
以下のサンプルではDispose()してないから、不要かな。
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.picturebox.image%28v=VS.80%29.aspx
0038デフォルトの名無しさん
2010/12/18(土) 10:46:49勝手にDisposeされたら怖いわ
二つのImageを状況に応じて切り替えとかできねぇじゃん
たまに替えるだけなら基本はGCまかせでOK
ビューアとかならちゃんと以前のはDispose
003933
2010/12/18(土) 15:03:24それなりにぱかぱかBitmap生成して切り替えるからDispose必要ですね(精神衛生上)
コードが冗長になって凹むけど一応書いておこう
0040デフォルトの名無しさん
2010/12/18(土) 15:10:15Imageが占有するメモリはGCが関知しないから解放がすごく遅れる可能性が高い
0041デフォルトの名無しさん
2010/12/18(土) 15:23:19MSDNサンプルを実行してみたのですが,
ttp://msdn.microsoft.com/ja-jp/library/9ha04z01.aspx
table.Columns.Add(column);
でAddしたcolumnはどこに格納されるのでしょうか?
table.Columnsの中身を探しても見つかりません.
0042デフォルトの名無しさん
2010/12/18(土) 15:43:29table.Columns.Count は増えてる?
0043デフォルトの名無しさん
2010/12/18(土) 15:50:04foreach (DataColumn dc in table.Columns)
MessageBox.Show(dc.ColumnName);
とすると中身も表示されます.
ただ,デバッグ画面のローカルって所を探してもAddした情報がないので,
どこに格納されているのかなと思いまして.
0044デフォルトの名無しさん
2010/12/18(土) 16:01:02格納されているのは、認識通りでいいよ。
ちゃんと探せば出てくる。表示名がインターフェースに変わって、見つけづらいのかも。
0045デフォルトの名無しさん
2010/12/18(土) 16:55:49Bitmap bmp = (略
pictureBox1.Image.Dispose();;
pictureBox1.Image = bmp;
じゃだめなん?
PictureBox使ったことないからよくわからんけど
0046デフォルトの名無しさん
2010/12/18(土) 17:08:32ゆっくりやるとダメ。早くやれば問題がでづらいかも。
少し気持ち悪い。
004733
2010/12/18(土) 19:22:11まとめるとこう?
oldで挟むよりは気持ちいい
Bitmap bmp = (略
using(Image old = pictureBox1.Image){
pictureBox1.Image = bmp;
}
Bitmapクラスの内部がどうなってるか知らないけど
BITMAPハンドル保持してるとかだったら
自前でDisposeしないと危ないね
0049デフォルトの名無しさん
2010/12/18(土) 20:41:52なんでPictureBox使えなくなるの?
HTML使った事ないから、まとな画像処理できねぇよwww
0050デフォルトの名無しさん
2010/12/18(土) 20:43:01たいがいなんでもできるよ
0051デフォルトの名無しさん
2010/12/18(土) 21:02:16画像処理するだけならPictureBoxはいらないでしょ。
0052デフォルトの名無しさん
2010/12/18(土) 21:05:28ブラウザはサーバーが生成したHTMLをただ表示してるだけで
C#のコードは全部サーバー側で動作するんだよ? Windowsアプリとは全く違うんだけど理解してる?
ブラウザ側でC#動かして画像処理とかやりたいならSilverlightでも使わないと
0053デフォルトの名無しさん
2010/12/18(土) 21:14:17お前アホか。GUIコンポーネントがサーバで使えるわけねーだろ。
WebとHTMLを基礎から勉強してこい。
0054デフォルトの名無しさん
2010/12/18(土) 21:22:33silverlightググってみた、やりたかった事全部行けそうです!
マジで感謝!MS最高だわwww
>>51
PictureBox使わないと背景画像に透明の画像かぶせて、
その上に点とか線描画できないと思ってたんだ
>>52
そりゃ.NETって言うぐらいだから、Webアプリ用のフレームワークでしょ?
俺バカだけどそんぐらい理解してるっつーの!
0055デフォルトの名無しさん
2010/12/18(土) 21:31:52SilverlightはWinFormsとは比べ物にならない表現力があるけど
ASP.NET以上にWinFormsの知識が役に立たない
0056デフォルトの名無しさん
2010/12/18(土) 23:28:460057デフォルトの名無しさん
2010/12/19(日) 00:06:09Flashが辛うじて残るかどうかだ
0058デフォルトの名無しさん
2010/12/19(日) 00:10:17HTML5は軸が違うから比べても意味ない。
Windows 系の GUI が Silverlight になってく。
ただ、置き換わるのは数年後かねぇ。
「Silverlight の時代」って言うにはちょっと早い。
0059デフォルトの名無しさん
2010/12/19(日) 00:12:240060デフォルトの名無しさん
2010/12/19(日) 00:12:36簡単にビジネスアプリケーションを配布するための仕組みになった
ClickOnceに近い位置づけ
0061デフォルトの名無しさん
2010/12/19(日) 00:19:46極端な話だけどやろうと思えはWinFormsやWPFもSilverlightの上で動かせるね
単にクライアント専用の簡易版.NETを目指してるんだよ
0062デフォルトの名無しさん
2010/12/19(日) 00:20:540063デフォルトの名無しさん
2010/12/19(日) 01:01:05それがたぶん、数年後。
0065デフォルトの名無しさん
2010/12/19(日) 01:14:340066デフォルトの名無しさん
2010/12/19(日) 01:18:130067デフォルトの名無しさん
2010/12/19(日) 01:33:50WP7かなんかと勘違いしてるだろ
SilverlightはVS2008や2010で正式にサポートされてるし
Express版のWebDeveloperもVC#と同時にリリースされてる
0068デフォルトの名無しさん
2010/12/19(日) 01:39:4049ですが、時代はWPFだと思うよ!!
試しにWPFでプロジェクト作成したら
普通にIEから、Windowsフォーム呼び出せたwww
Win32も使えるみたいだし、既存のWindowsアプリをWeb化するならWPF最強じゃん!!
おかげで1人月の案件が3日で終わりそうwww
0069デフォルトの名無しさん
2010/12/19(日) 01:44:21それ、対応してるブラウザー少ないよ。
それでいいって言われる案件なら、普通にデスクトップ版の WPF でいいと思うんだけど。
ClickOnce 配布いいよ。
0070デフォルトの名無しさん
2010/12/19(日) 02:34:46安心してwpf勉強するわ。
0071デフォルトの名無しさん
2010/12/19(日) 10:27:010072デフォルトの名無しさん
2010/12/19(日) 12:13:39XBAPなんてウインドウ枠がIEになっただけ
0073デフォルトの名無しさん
2010/12/19(日) 12:21:36silverlightにしろwpfにしろ、クライアントだけで完結するものをwebアプリと呼ぶのかどうか
0074デフォルトの名無しさん
2010/12/19(日) 12:30:18webサービスじゃなイカ
0075デフォルトの名無しさん
2010/12/19(日) 12:31:18いや、WCF サービスとかでサーバーサイド作っておけば、
例えクライアント側がデスクトップアプリであっても Web 化と呼べるとは思うが。
0076デフォルトの名無しさん
2010/12/19(日) 13:29:56処理がサーバなのかクライアントなのかなんて関係ない。
0077デフォルトの名無しさん
2010/12/19(日) 13:40:13俺らから見たらそうでも一般の利用者からしたらWeb化=ブラウザ上で使えるって思うかと
0078デフォルトの名無しさん
2010/12/19(日) 13:41:400079デフォルトの名無しさん
2010/12/19(日) 13:54:15あほな顧客が多くて困るって奴ですね。
いや、困らないのか、むしろその方がぼったくれて。
0080デフォルトの名無しさん
2010/12/19(日) 13:58:210081デフォルトの名無しさん
2010/12/19(日) 15:15:45可能な環境がないと動かせないからなw
何の意味もありません
0082デフォルトの名無しさん
2010/12/19(日) 15:36:31サービス化してデータだけプログラム的に取れるようにしとくことだと思う。
正直、HTML5が理念通りに完全に互換性保てるとは思えないし、
UI 技術はすぐに入れ替わるし、プラットフォームごとに変わる。
で、そのサービスを受け取る側のクライアントアプリは、
もうクロスとか気にせず、WPF とかで作ればいいと思う。
凝ったUI作るなら、多重開発した方がマシ。
0083デフォルトの名無しさん
2010/12/19(日) 15:49:37>>76-77みたいなのはそんなにおかしくないな
0084デフォルトの名無しさん
2010/12/19(日) 15:52:06業務系だとあれよ、Webですキリッって言いつつ、
帳票印刷の部分はClickOnceでデスクトップアプリ起動とかが普通よ。
0085デフォルトの名無しさん
2010/12/19(日) 16:00:44うるせえ
0086デフォルトの名無しさん
2010/12/19(日) 16:11:02まさにそういうニーズに応えるのがSilverlightでしょ
妙なイメージが付いちゃってるから名前変えればいいのに
0087デフォルトの名無しさん
2010/12/19(日) 16:16:161人月が3日でできたとか言ってたらダメってことだ。
0088デフォルトの名無しさん
2010/12/19(日) 17:21:06は?残りの時間、自分の好きな事できるんだぜ
全然ダメじゃ無いじゃんwww
0089デフォルトの名無しさん
2010/12/19(日) 17:33:40「1人月が3日になります」なら普通納得してもらえるけどもね。
0090デフォルトの名無しさん
2010/12/19(日) 17:45:37じゃあ安くしてって言うでしょ。
それでも1人月払うよっていうならすごいいい客だな。
しっかり捕まえておかないと。
0091デフォルトの名無しさん
2010/12/19(日) 18:27:030092デフォルトの名無しさん
2010/12/19(日) 18:44:33未だにLinq、ADO.Net,SQLがさっぱりわからないし
必要と思ったこともない
ラムダ式は一応やるけど
0093デフォルトの名無しさん
2010/12/19(日) 18:50:23存在すら知らないとそれは選択肢を減らすことになるからどうかと思うけど。
0094デフォルトの名無しさん
2010/12/19(日) 18:51:06DBを使う必要がなければとことん必要無い
0095デフォルトの名無しさん
2010/12/19(日) 18:51:400096デフォルトの名無しさん
2010/12/19(日) 18:53:07リストを保存したりするのはよくあることだと思うんだけど
そういうときに使うと便利なの?
0097デフォルトの名無しさん
2010/12/19(日) 19:15:310098デフォルトの名無しさん
2010/12/19(日) 19:19:36そこまでのデータ扱うか?ってあるけどなw
肥大化してもっさりとか言われながらw
0099デフォルトの名無しさん
2010/12/19(日) 19:21:390100デフォルトの名無しさん
2010/12/19(日) 19:37:410101デフォルトの名無しさん
2010/12/19(日) 19:40:33DBと関係なくLINQ便利だよな
■ このスレッドは過去ログ倉庫に格納されています