ふらっと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でも使わないと
■ このスレッドは過去ログ倉庫に格納されています