[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 03/30 17:15 / Filesize : 214 KB / Number-of Response : 904
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっとC#,C♯,C#(初心者用) Part43



1 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 11:01:47 ]
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

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

前スレ
ふらっとC#,C♯,C#(初心者用) Part42
pc12.2ch.net/test/read.cgi/tech/1245836827/


653 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 03:10:20 ]
WPF上での話ですが、
Canvas内でImageクラスの画像を操作(拡大・縮小・回転・移動等)したい場合、
この操作に関するコードはどのクラスに置くのがいいですか?

654 名前:デフォルトの名無しさん [2009/08/20(木) 06:42:17 ]
>>644
の説明は本当に合ってるのか?

655 名前:デフォルトの名無しさん [2009/08/20(木) 07:15:10 ]
ラベルやテキストボックス、コマンドボタンやラジオボタンなどのコントロールを100個ほど並べましたが、
タブオーダーがおかしくなりました。
全コントロールのタブオーダーを早く調べる方法はありますか?

656 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 07:35:06 ]
>>653
むしろそれはXAML中にStoryboardで書く。

657 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 09:50:25 ]
>>644
control.TopMost=true;
control.TopMost=false;
のほうが早くない?(試してない)

>>655
表示-タブオーダー


658 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 10:07:50 ]
>>657
デザイン時の話じゃ寝 >644

659 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 10:12:28 ]
>>658
デザイナーなら最前面に移動のボタンがあるじゃん。

660 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 11:52:49 ]
最背面がわかっててなぜ最前面がわからないんだろうか

661 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 12:51:10 ]
ってか、重なる場合はユーザーコントロールで画面をバラバラに作っておいて、
実行時にコンストラクタでAddじゃないの?
画面増えたりUI変更したら死なない?



662 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 13:32:08 ]
というか、重なってるパネルは表示中の1つを除いて非表示にしておくものだと思うんだがどうか。

663 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 13:58:56 ]
>>656
ありがとう。その方向でやってみます

664 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 14:28:51 ]
俺もUC.Addがいいと思う

665 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 15:04:46 ]
DataGridViewでAccessのmdbをソース指定して実行したんですが、データが表示されません
他に何をいじればいいんですか?

666 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 15:11:39 ]
>>665
どんなコードをかいたんだ?

667 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 15:13:58 ]
コードは書いてません
コントロールをフォームに置いて、右上の三角を押してデータソースを選択しただけです

668 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 15:24:08 ]
表示命令を書かなきゃ表示されるわけないだろ

669 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 15:27:10 ]
うーん、設定の仕方がまずっていると思われる。
テーブルの設定も行っている?

670 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 15:42:36 ]
テープルにもチェック入れました。
mdbの簡単な奴を作ってみてソースに指定したんですが表示されません
項目名は表示されるんです。
右上三角のデータのプレビューを押すとズラーっと表示されるんですが
アプリ実行時には項目名だけで、データが表示されないんです。

671 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 15:43:15 ]
おそらく、Form1_Load()あたりの先頭にTableAdapter.Fill()の呼び出しが
追加されてると思うけど、それをtry catchで挟んで捕捉できるようにしてみ。



672 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 15:58:47 ]
わかりました。
Form1_Load()自体が存在してませんでした
Form上でDataGridViewを置いたらForm1_LoadにTableAdapter.Fillが追加されて実行後データが出てきました
ありがとうございました。

673 名前:デフォルトの名無しさん [2009/08/20(木) 16:05:28 ]
一方のビジブルをフォルスにして他方を前面に出すのと、
一方をブリングトゥフロントにして前面に出すのとでは、
どうちがうの?

674 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 16:19:27 ]
重なったパネルをやめてユーザーコントロールにしたんですが
ユーザーコントロールにDockがなくて詰まりました。
基本クラスをUserControlからPanelにしたりとか考えたんですが名前空間が通りません。どうすればいいですか?

675 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 16:22:02 ]
Webの検索サイトとかでテキストボックスにキーワードを入れて検索ボタンを押すまでの処理をC#でやる場合何を勉強すればいいんでしょうか

676 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 16:36:45 ]
>>675
GUIアプリとして実装するのとWeb上のサービスとして実装するのとで話がぜんぜん変わってくる。
もっと目的を詳しく説明しないと誰も答えられない。

677 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 16:38:35 ]
unmanagedなリソースを複数のインスタンスで共有したいのですが、
参照カウンタ的な形で管理するには自前で実装するしかないのでしょうか。
それとも.NETの共通ライブラリにそれをやるための仕組みが用意されていますか?

678 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 16:45:07 ]
>>676
GUIアプリです。例えば検索したいキーワードの一覧も持っていて、それを順番に検索にかけヒット数などを記録していくソフトにしたいんです。

679 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 18:14:01 ]
>>674
すいません解決しました。自分を親にDockさせるんじゃなくて親に子をDockさせる様に書いたらコンパイルできました。

680 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 18:24:20 ]
>>678
取り敢えずHTTPとHTMLの勉強

>>677
どこまで汎用でやればいいのかって話なので無いんじゃね
まあそんな大層なモンでもないだろ

681 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 19:38:00 ]
>>677
SafeHandleでラップして、破棄はGCに任せれば?



682 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 20:24:28 ]
>>681
どもです。前提が抜けてましたが、基本的に管理対象はCOMオブジェクトのインスタンスです。

683 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 20:47:38 ]
配列に配列を追加する方法を教えてください。
string[] textFiles = Directory.GetFiles(Path, "*.txt");
で、テキストファイル一覧を配列に入れることができます。
これにたとえば拡張子.logを追加するにはどうしたらよいですか?


684 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 20:52:25 ]
ConcatしてToArrayとか
Array.Resizeして残りをArray.Copyとか

685 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 20:55:08 ]
Linq使えば。

686 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 21:12:10 ]
>>673
フォーカスとか

687 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 22:16:33 ]
>>683
string [] exts = { ".txt", ".log" };
var fileNames = from filename in System.IO.Directory.GetFiles (Path)
let ext = System.IO.Path.GetExtension (filename).ToLower ()
where exts.Contains(ext)
select System.IO.Path.GetFileName (filename);
foreach (var file in fileNames){
Console.WriteLine("Filename:{0}", file);
}

688 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 23:21:20 ]
>>684
Array.Resizeをforで回して追加できました。
感謝します。


689 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 23:24:35 ]
いやまてResizeをforとかそんなVB上がりなまねはよせ
追加する配列のLength分だけ一気に増やせば済むことだろ

690 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 23:37:13 ]
ListにAddRangeが常道だろ。

691 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 23:40:34 ]
>>687
古い人間なんで、こっちが分かりやすい・・・やっぱ古いんだなぁと思わざるをえない。

string[] exts = { ".txt", ".log" };
List<string> fileNames = new List<string>();
foreach (string filename in System.IO.Directory.GetFiles(Path)) {
string ext = System.IO.Path.GetExtension(filename).ToLower();
if (exts.Contains(ext)) {
fileNames.Add(System.IO.Path.GetFileName(filename));
}
}
foreach (var file in fileNames) {
Console.WriteLine("Filename:{0}", file);
}

うーんうーん、でも近頃はXML統合機能に心惹かれてる・・・



692 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 23:57:17 ]
>>689
ぜんぜんVBはやったことないです〜。
プログラム言語に触るのはC#だけの純粋初心者です。

最初、Concatを試したんです。
でもうまくいかず、見事討ち死にして、
Array.Resizeにじっくり取り組みました。

検索したサイトに、Array.Copyが書いてなかったんです。
それを真似したもんで、forで回す泥臭い展開に。

さっきこちらに報告したときに、
Array.Copyと書いてあったのに気づいて、
ひょっとして、Array.Copyを使えば、
Lengthを追加したところに、
どばっと1回でコピーできるのだろうと気づいたのですが、
とりあえずできてしまったので、それは次回のお楽しみ。

>>690
Listはまだ使ったことないので、これもそのうちお楽しみ、
と思ったら…。

>>687
>>691
ありがとうございます。
これも参考にします。
いや〜、ここ親切ですね。


693 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 00:08:47 ]
>>687
試しました!
これすごいです。

再帰的にゲットするには、どう改変したらよいですか?


694 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 00:19:04 ]
複数の配列の連結はそれなりに需要あるな

static class ArrayEx {
  public static T[] Concat<T>(params T[][] arrays) {
    return arrays.SelectMany(array => array).ToArray();
  }
}

>>693
Directory.GetFiles (String, String, SearchOption)
ああ、完全には自分の管理下にないディレクトリを検索してUnauthorizedAccessExceptionが出るとか言い出すのはやめてね

695 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 00:42:17 ]
すいません、これからC#を勉強しようと思うのですが
この言語で作られたexeは.NET FrameworkがインストールされてるPCでないと動作しないのでしょうか?

696 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 00:48:05 ]
>>693
static class FileHelper {
public static List<string> GetFilesRecursive(string path) {
List<string> result = new List<string>();
Stack<string> stack = new Stack<string>();
stack.Push(path);
while (stack.Count > 0) {
string dir = stack.Pop();
try {
result.AddRange(Directory.GetFiles(dir));
foreach (string dn in Directory.GetDirectories(dir)) {
stack.Push(dn);
}
}
catch {
}
}
return result;
}
}

string [] exts = { ".txt", ".log" };
var fileNames = from filename in FileHelper.GetFilesRecursive (Path).
let ext = System.IO.Path.GetExtension (filename).ToLower ()
where exts.Contains(ext)
select System.IO.Path.GetFileName (filename);
foreach (var file in fileNames){
Console.WriteLine("Filename:{0}", file);
}



697 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 00:50:42 ]
>>695
うん

698 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 01:19:41 ]
>>695
勉強するなら、そんな程度の事をいちいち聞くな

699 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 01:25:06 ]
>>695
同意だがお前は>>1が読めんのか


700 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 01:26:28 ]
安価ミス
>>699>>698宛て

701 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 01:27:44 ]
>>696
これおもしろい。

public delegate Func<A, R> Recursive<A, R>(Recursive<A, R> r);
public static Func<A, R> Y<A, R> (Func<Func<A, R>, Func<A, R>> f) {
Recursive<A, R> rec = r => a => f(r(r))(a);
return rec(rec);
}

var RecGetFiles = Y<string, IEnumerable<string>> (f => d => System.IO.Directory.GetFiles (d).Concat (System.IO.Directory.GetDirectories (d).SelectMany (f)));
foreach (var f in RecGetFiles(System.IO.Directory.GetCurrentDirectory())) {
Console.WriteLine(f);
}



702 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 01:47:26 ]
>>699
1には正論書くなと書かれてないようだが?

703 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 01:59:19 ]
>>702
>>700

704 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 02:01:36 ]
>>703
1には正論書くなと書かれてないようだが?

705 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 02:05:40 ]
いちいち足跡残していかなくていいから

706 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 02:07:03 ]
いちいち足跡残していかなくていいから

707 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 02:35:57 ]
いちいち足跡残していかなくていいから

708 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 10:56:12 ]
質問があります。
複数のjpeg画像をクリックするたびに順番にスライド表示したいと思います。
配列に、
01.jpg
02.jpg……
と入れたところまではよかったのですが、くり返しかと考えて、
private void Button_Click(object sender, EventArgs e){
for (int i = 0; i < phptos.Length -1; i++) {
pictureBox.Image = Bitmap.FromFile(photos[i]);
}
}
としたら、いちどにぜんぶ表示して終わっちゃいました。
そりゃそうなんですが、こういう場合ってどうすればいいんですか?


709 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 11:04:50 ]
現在表示中の画像のインデックスをフィールドに置いとく
クリックごとに次のインデックスの画像を表示させる

あと表示し終わったImageオブジェクトはDisposeする

710 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 11:10:28 ]
インデックスというか、この場合は配列なりリストなりのコンテナのEnumeratorだろうな。

711 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 11:38:51 ]
>>709
できました!
int c = 0;
private void Button_Click(object sender, EventArgs e){
pictureBox.Image.Dispose();
pictureBox.Image = Bitmap.FromFile(phoho[c]);
c++;
}
ありがとう。
>>710
Enumeratorってどう使うんですか?
上のを書き換えるとしたら?




712 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 11:40:18 ]
>>711
そのまま行くと突き抜けるぞ。

713 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 11:56:57 ]
横やりだけどyeild returnで回すのかな?

714 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 13:14:14 ]
他のアプリが使用してるデータをC#アプリから使用したいんですけど
どうすればできるんでしょうか?
具体的にはMetatrader4というソフトのリアルタイムのプライスデータを取得したいです。

715 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 13:33:58 ]
>>714
MT4のAPIを使えば出来ます。
dotnetremoting.com/Download/Meta1011/MT4NetSetup.exe

716 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 13:39:26 ]
>>714
あと、ここもプロミシングだね。
www.openforexplatform.com/

717 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 13:39:26 ]
>>713
GetEnumerator()呼ぶだけじゃん

718 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 13:41:52 ]
>>717
戻るボタン追加したいときにどうする?

719 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 13:56:18 ]
>>715
ありがとうございます!
実はそれちょっとまえに見つけたのですが、お恥ずかしながら
何がなにやらさっぱりわからずどうやって使っていいものかもわからず・・・orz
もうちょっとよくそれ見てみます!

あと、今見つけたんですけどttp://gurizuri0505.halfmoon.jp/develop/csharp/processmessage
にあるようにIpcServerChannelクラスとIpcClientChannelクラスを使っても出来るんでしょうかね?
にIpcServerChannelで作ったdllをMT4のカスタムインジケータに読み込んでやって
使うことができるのかな?とか想像してるんですが、その考え方はあってますか?

ここでMT4の即レスもらえるとは思ってなかったんですが
C#+MT4で使ってらっしゃるんですか?

720 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 14:23:56 ]
>>719
使い方はここが参考になると思う。
forum.mql4.com/20644

趣味プログラマなので、これ自体は使った事ない。
昔、会社でこそっとトレードする用タスクバーアプリを作った事があるくらいだな。

721 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 02:16:19 ]
【Anti Virus】Kaspersky Lab Part87【カスペルスキー】
pc11.2ch.net/test/read.cgi/sec/1248541340/806

806 :名無しさん@お腹いっぱい。 [] :2009/08/13(木) 17:45:58
何だこのスレwww

このスレを見ている人はこんなスレも見ています。(ver 0.20)
女子小中学生に性欲わかないやつは異常3 [生活サロン]
小学生のこどもおっぱいをちゅーちゅーしたい [大規模MMO]
小学生のこどもおっぱいをちゅーちゅーしたい [スカパー]
小・中学校のちょっとエッチな淡い思い出 [セピア]
小学生のこどもおっぱいをちゅーちゅーしたい [U-15タレント]




【Anti Virus】Kaspersky Lab Part87【カスペルスキー】実質Part88
pc11.2ch.net/test/read.cgi/sec/1248628556/364

364 :名無しさん@お腹いっぱい。 [sage] :2009/08/21(金) 23:20:36
23時20分

■ おすすめ2ちゃんねる 開発中。。。 by FOX ★
このスレを見ている人はこんなスレも見ています。(ver 0.20)
女子小中学生に性欲わかないやつは異常3 [生活サロン]
小学生のこどもおっぱいをちゅーちゅーしたい [スカパー]
小・中学校のちょっとエッチな淡い思い出 [セピア]
小学生のこどもおっぱいをちゅーちゅーしたい [U-15タレント]
小学生のこどもおっぱいをちゅーちゅーしたい [大規模MMO]



722 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 02:17:01 ]
●前科2犯・中尾嘉宏(46)(=2chコテハン:FOX★)について
アダルトサイト PINKちゃんねるの責任者であり、2ちゃんねるの影の責任者。
2chコテハン FOX★=中尾嘉宏(46)

■2ちゃんねる幹部・中尾嘉宏(46)(FOX★)は詐欺(出資法違反)および児童買春斡旋で
逮捕されていた。
web.archive.org/web/20050305185414/http://jsimin.at.infoseek.co.jp/opinion/newrich.html

北海道警生活環境課と札幌・中央署は1997年5月6日、インターネットを利用し
不特定多数の人から金を集めていたとして、出資法違反(預かり金の禁止) の疑いで
札幌市厚別区もみじ台南七丁目、パソコンソフト開発販売会社社長 中尾嘉宏容疑者(当時37)
を逮捕した。

■解説
中尾嘉宏(46)は、詐欺(出資法違反)と児童買春斡旋の罪とあわせて前科2犯。
2ちゃんねるのサーバー管理者で、ピンクちゃんねる管理者でもある。

723 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 02:17:44 ]
2009/6/25「Kaspersky Internet Security 2010」欧州で発売
internet.watch.impress.co.jp/docs/news/20090625_296612.html

露Kaspersky Labは24日、個人向けの総合セキュリティソフト
「Kaspersky Internet Security 2010(KIS2010)」とウイルス対策ソフト
「Kaspersky Anti-Virus 2010(KAV2010)」を発表した。
KIS2010とKAV2010は現在、ドイツ、フランス、スペイン、イタリアで販売されている。
米国と英国では7月に発売する予定。
日本国内の発売日は未定だが、Kaspersky製品を販売するジャストシステムによれば、
「例年通りであれば秋口に発売する」としている。


手を打たないと蕪価下がりますよw

724 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 02:33:18 ]
プロジェクトにクラスを追加したときに、
毎回 using System.Diagnostics; を
手作業で追加しています。

クラス追加時にデフォルトで
追加されてるようにする方法はないでしょうか?


725 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 02:44:36 ]
テンプレート変更すれば
てか、スマートタグでは不満?

726 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 08:00:52 ]
一瞬コピペスレかと思って、>>724を罵倒しそうになった

727 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 12:35:59 ]
TestDriven.NET で IDE から
始めたテストをキャンセルする
ことはできますか?

キャンセル方法がわからないので、 devenv.exe
を強制終了させているんですが、
もっといい方法はないかと・・・。

728 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 14:29:06 ]
>>727
なんでVS標準のテスト機構を使わないの?

729 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 16:24:33 ]
2005か、2008EEだからか

730 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 17:14:28 ]
string型 2008-5-3
をDateTime型に変換するにはどうすればいいですか?

731 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 17:15:21 ]
正規表現を使おうと思い、「using System.Text.RegularExpressions」と書いたのですが、
「型または名前空間名 'RegularExpressions' は名前空間 'System.Text' に存在しません。アセンブリ参照が不足しています。」
とコンパイルエラーが出てしまいました。何が悪いのでしょうか。



732 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 17:18:43 ]
>>730
DateTime.TryParseExact

733 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 17:25:12 ]
DateTime.Parse( string );
で一発

734 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 17:35:47 ]
>>731
末尾のsいらん

735 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 17:41:12 ]
>>734
どちらでも同じエラーが出ます。

736 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 17:57:34 ]
エラーにちゃんと書いてある通り参照設定が足りてないんだろ
どういう環境でコンパイルしたのかは知らんけど。

あと末尾のsはない方が困る

737 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 18:16:05 ]
Systemの参照を追加していなかったせいのようです。
ありがとうございました。

738 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 18:38:57 ]
in演算子がほしいです
if (int i in {1,2,3}) みたいに書きたいです
おねがいします

739 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 18:40:57 ]
>>712
突き抜けてます。例外…。
>>713
yeild return
ってのがあるんですか?
yield return i;
と使うらしい。

int c = 0;
private void Button_Click(object sender, EventArgs e){
pictureBox.Image.Dispose();
pictureBox.Image = Bitmap.FromFile(phoho[c]);
c++;
yield return c;
}

'void' は反復子インターフェイス型ではないため、'Button_Click(object, System.EventArgs)' の本体は反復子ブロックにできません
まあ、forじゃないからな〜。


740 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 19:07:40 ]
>>738
強いて言えばContains()メソッドだな。
だが、C#はそんな書き方をする言語じゃない。
LINQを使え。

741 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 19:25:15 ]
誰もがLINQを使えると思ってンのか?
まだ.NET2.0な現場は多い。



742 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 19:26:11 ]
初心者スレに現場人が来てんじゃねえよ

743 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 19:29:03 ]
現場(苦笑)

744 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 19:31:28 ]
>>741
>738 は.NET のバージョンを指定してないんだから、
C#の世界で一般的に一番便利な方法を教えておけばそれでいい。

>>742
741に言ってくれ。

745 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 19:36:04 ]
>>740
Contains() そんなのあるのか!
とりあえずそれで事足りそうです
ありがとうございます

746 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 00:20:52 ]
Math.Roundが小数点以下までしか丸められないんですけど、
1の位から下を切り捨てるにはどうすればいいんですか?

747 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 00:43:57 ]
まずAPIリファレンスくらい読・・・言っても無駄か。
Floor とか Ceiling とか Truncate みてみ。

748 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 01:21:27 ]
>>746
質問が日本語でオケ過ぎるんじゃない?
小数点より上で丸めたい、って意味か?

たぶんぴったりのメソッドは用意されてない。
こんな風に自分で作るしかないんじゃないのか?
一応言っとくけど、多分厳密には正しい処理じゃないと思う。

// 小数点より上の場合は負の数を指定する。
double RoundEx(double x, int digit, MidpointRounding mode)
{
  if (digit< 0)
  {
    int divider = (int)Math.Pow(10, -digit);
    return Math.Round(Math.Round(x / divider, 0, mode) * divider, 0);
  }
  else
  {
    return Math.Round(x, digit, mode);
  }      
}

749 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 02:13:27 ]
昨日、小数点第一位以下きりすての処理で、
10倍した後、int型にキャストし、10分の1にするというソースを発見してしまった。

750 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 02:32:16 ]
decimal data = 12.34;
data = Math.Round(data / 10, 0) * 10;
// data = 10

751 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 02:42:47 ]
え?



752 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 02:56:54 ]
やりたいようにやりゃええねん

753 名前:デフォルトの名無しさん [2009/08/23(日) 04:13:43 ]
Dns.GetHostEntry メソッド (String)に関してなのですが、
MSDNをには
>ホスト名として空の文字列が渡されると、このメソッドはローカル ホストの IPv4 アドレスを返します。
と書いてあるのに、実際にやってみるとIPHostEntry.AddressListにIPV6のアドレスが入っています。
これはなぜでしょうか?

754 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 06:45:30 ]
double data = 12.34;
int a = (int)(data / 10) * 10

755 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 06:50:10 ]
Accesseに繋いだんですがめちゃくちゃ重いです。
スクロール地獄です。どうすればいいと思いますか?

756 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 09:43:49 ]
死ねばいいと思うよ。

757 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 10:14:22 ]
>>755
DataTableへ取り込めばいいと思うよ。

758 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 10:39:06 ]
>>753
ドキュメントのミスだろ
英語版の方でツッコミが入ってる

759 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 12:05:24 ]
>>757
AccesseってDataTableに取り込めるものなの?

760 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 12:11:39 ]
>>759
なんで取り込めないと思ったのかこっちが聞きたいくらいだ。

761 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 12:12:59 ]
SqlDataAdapter.Fillで簡単にできる



762 名前:759≠755 mailto:sage [2009/08/23(日) 12:20:36 ]
DataTableに取り込み可能な"Accesse"というものの存在を知らないから訊いた

763 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 12:28:05 ]
>>762
君の読解力のなさは人生をあきらめた方が良いレベル。

764 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 14:01:36 ]
SとMが集まるのはこのスレであってますか?

765 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 15:13:13 ]
>>747
Foolに見えたw

766 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 15:13:44 ]
Javaスレから流れてきただけだろ

767 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 16:03:17 ]
>>758
ありがとうございます。
英語の方見てみます。

768 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 16:19:03 ]
XXXDataSet.OOODataTable test;
test = this.OOOTableAdapter.GetData();
this.OOOTableAdapter.Fill( test );

GetDataしたんですが、データが表示されないです。どうすればいいですか?

769 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 16:25:36 ]
あきらめたら?

770 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 16:28:18 ]
あきらめました。今ADO.NET2.0を注文しましたすいません

771 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 16:33:53 ]
解決しました。
dataGridView.DataSource = test;




772 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 16:35:39 ]
酷すぎるぞ

773 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 17:21:26 ]
これはひどい

774 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 17:23:04 ]
みんな初心に帰ろう。

775 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 17:35:40 ]
ここで聞けばいいのか分かりませんが
今MeCabという形態素解析のC#ラッパー?のMeCabSharpというのを使ってみようとしているのですが、解析された結果をひとつずつとる為に
MeCab.Tagger mecab = new MeCab.Tagger();

MeCab.Node test = mecab.parseToNode("形態素解析器MeCabを使うテストです");
for (int i=1;i<=10;++i)
{
Console.WriteLine(test.surface);
test = test.next;
}

とすることで一応要素を表示することが出来たのですが、要素の数の取得の仕方が分からずループの回数の設定が出来ません(上のコードの10は試してみて決めた数です)
もしここを10以上にすると
ハンドルされていない例外: System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。
というエラーが出ます。
文章が変ってもすべての要素を取り出したいのですが
どのようにすればいいのでしょうか

776 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 17:40:08 ]
Nextで走査してるくらいだからExistsNextNodeとかありそうだが

777 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 17:41:58 ]
そういう意味合いのメソッドやらプロパティがありそうという意味だからね
実際にどんな名前で存在するかは知らんよ

778 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 17:49:07 ]
>MeCab::Node は, 双方向リストとして表現されており, next, prev というメンバ変数があります. それぞれ, 次の形態素, 前の形態素を MeCab::Node クラスのインスタンスとして返します. 全形態素には, next を順次呼ぶことでアクセスできます.

って書いてあるからnullきたら終端だろ多分。

779 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 17:54:16 ]
nullでやってみたらいけました
みなさんありがとうございました

780 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 17:55:50 ]
おう

781 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 18:12:44 ]
というか、初めて使うライブラリはまずデバッガで止めて、
作られたオブジェクトに何のプロパティがあるのか眺めるところから始めると思うんだが……?



782 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 18:56:53 ]
dataGridView.DataSource = test;

でもスクロール動作重いです
どういうことですか?
mdbから読みこんでるから遅いという流れなんじゃないんですか?
それでインスタンスに取り込んでそれをソースに指定して重いってどうなってるんですか?

783 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 19:05:34 ]
知るかハゲ

784 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 19:40:13 ]
>>782
てめぇの作りが悪い

785 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 20:10:27 ]
助けてくださいお願いします

786 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 20:49:19 ]
オマエだったら、オマエが挙げた情報だけで原因までわかるか?
どうしてもって言うなら、関係する箇所すべてのコードをどっかに上げてごらん。

787 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 20:57:18 ]
壁紙について教えてください。
現在の壁紙をはがすにはどうしたらよいでしょう?
VBだと
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, vbNullChar, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)
でできるらしく、
vbNullCharは0らしいので、
n = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "0", SPIF_SENDWININICHANGE);
としてみたのですが、なにも起きないでいます。
どうすりゃよいですか?
現在の壁紙のパスを取得するにはどうしたらよいでしょう?
アドバイスお願いします。


788 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 21:01:29 ]
”0”じゃなくてString.Emptyにしてみ

パスはSPI_GETDESKTOP〜使えよ

789 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 21:01:31 ]
GetData()で解決するんですか?
これで習得したテーブルをソースにしても早くならないということは
DataGridViewの限界ってことなんでしょうか?
そうするとGetDataの意味がないのでこれで解決すると教えてくれた方アドバイスお願いします!

790 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 21:07:58 ]
GetDataって参照を渡してるだけだから結局mdbにアクセスしてるんじゃなかろうか?

791 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 21:09:13 ]
うるせぇ少しは自分で調べろ



792 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 21:18:52 ]
夏休みがまだあると思ったら、インフルでの学級閉鎖で
2学期開始が早くなってたんだな。で、宿題まだと。
こんなとこで現実逃避してないで早くやっちゃいなよ。

793 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 21:18:58 ]
頭悪すぎる

794 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 21:19:20 ]
どうせ列がものすごい数とか、そんなオチだろw

795 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 21:24:22 ]
>>789
仕様です。エクセルシートにコピーしてぐりぐりスクロールしてください

796 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 21:42:33 ]
お前らめちゃくちゃだから
知らないのにいちいち足跡残さなくていいから

797 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 21:46:44 ]
は?dataGridViewが使いものにならないの常識だろ

798 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 22:02:14 ]
>>788
できました。ありがとうございます。

現在の壁紙のパスを取得するほうは、どうしたらよいでしょう?


799 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 22:04:17 ]
第三引数をStringBuilderにして渡せばいい

800 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 22:29:16 ]
スレチかもしれないけど、ネットブックでVisualStudio C# express editionって結構スムーズに動くもんだね。
ちょっと驚いた。もちろん本格的にネットブックで開発しようとは思わないけど
ちょっと屋外でメールとかWebをチェックするついでに小さなコード試したりするには便利かなと思った。

801 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 22:35:11 ]
>>800
そういう目的で買おうかなぁって考えてたところだから、
その情報はすごく助かります。スレチだけど。。。



802 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 22:38:44 ]
スレ違いだから

803 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 22:48:06 ]
>>799
n = WinAPI.SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, StringBuilder, SPI_SENDWININICHANGE);
ですか?


804 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 22:51:50 ]
やってみたらエラーになるだろよ・・・

805 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 22:58:59 ]
エラーが3つも出てます…。
'System.Text.StringBuilder' は '型' ですが、'変数' のように使用されています。
'WindowsFormsApplication1.Form1.WinAPI.SystemParametersInfo(int, int, string, int)' に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。
引数 '3': 'System.Text.StringBuilder' から 'string' に変換できません。

806 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 23:03:37 ]
>>805
少しは自分の頭で考えてみろよ

807 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 23:03:39 ]
>>805
この辺でも読め
msdn.microsoft.com/ja-jp/library/aa288468%28VS.71%29.aspx
www.atmarkit.co.jp/fdotnet/dotnettips/024w32api/w32api.html

808 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 23:32:09 ]
StringBudlderの使い方はなんとなくわかりました。
System.Text.StringBuilder sb = new System.Text.StringBuilder();
for (int i = 0; i < 1000; i++)
{sb.Append("abc");}
とか。
で、第3引数になにとなにをStringBuilderにすればいいんでしょう?


809 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 23:33:51 ]
駄目だコリア

810 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 23:35:31 ]
ふざけてるのか??

811 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 23:38:20 ]
ふざけてないです。
初心者なのでお手柔らかにお願いします。




812 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 23:58:30 ]
MSDNのプラットフォーム呼び出しの項目読めよ

813 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 00:24:01 ]
お前には無理だ。

814 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 00:37:32 ]
黙れ糞やるお

815 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 02:11:08 ]
>>811
貴方が今の700倍優秀でも教えてもらえないです。
能力の問題ではないんです。姿勢の問題です。
自分で努力したというものが伝わってこないのです。
私達の目には楽をして答えを得ようとしているようにうつるのです。
貴方は聞きグセが付き始めています。
このクセがつくとプログラマーとしてあらゆるスタートが遅れます。
先輩方にウザがられるので、チームとしても支障が出ます。
このままでは貴方はダメになります。ゴミです。永遠の初心者です。
現時点で最良の選択は>>812ではないかと思います。
貴方の成長を心より応援ゴミです。大事な事なので二度言いました。

816 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 03:22:21 ]
Panelのドッキングなんですが、DockでTopを選んで、アプリを拡大縮小した時に、下の余白の長さは固定にしたいんですが、どうすればいいんでしょうか
TopでDockした方のPanelは縦の長さが固定なんですが、固定部分を余白と逆にしたいんです。
いろいろ組み合わせて試したんですがだめなんです。教えてください。

817 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 03:26:51 ]
PanelはDock.Fillにして、余白とやらをControlにでもしてそれをDock.Bottomにすれ
つかAnchorの方がその場合楽な気がする

818 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 03:40:26 ]
すごいできました!ありがとうございました

819 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 13:32:13 ]
正規表現を使って、s = "hoge0" と言う文字列に対して

Regex r = new Regex("hoge([0-9])");
Match m = r.Match(s);

とすればグループ値 m.Group[] が取得出来ますが、この逆のことを行うメソッドは
ありますでしょうか?つまり

"0" と "hoge([0-9])" の2つの文字列から "hoge0" を導き出しのです。

820 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 13:39:41 ]
>>819
m.Valueかな?

821 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 13:49:20 ]
Formで自分のウィンドウクラス名を取得するにはどうしたらいいんでしょうか?

this.CreateParams.ClassNameだとnullが返ってきましたorz



822 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 13:52:31 ]
GetClassName関数

823 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 13:59:31 ]
>>822
おーーー!thxです!

824 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 14:32:59 ]
>>820
お前、アフォだろ?

825 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 17:39:32 ]
Visual Studio 2008 Express Editionでキーボードマクロを使いたいのですが、メニューを探しても
項目が見つからず、Ctrl + Shift + Rを押しても何も起きません。
Express Editionだと使えないのでしょうか?


826 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 21:00:40 ]
>>819
Matchの反対ならReplaceでいいかな?

827 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 21:43:44 ]
えっ?

828 名前:デフォルトの名無しさん [2009/08/24(月) 21:56:17 ]
すみません。とてつもなく初歩的な質問をします。
C#でゲームを作っているのですが、Playsound()を使ってBGMと効果音を同時に演奏しようとし場合、
BGMが停止してしまいます。
効果音を演奏するときにBGMが停止しないようにするにはどうすればいいんでしょうか。

829 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 22:03:52 ]
あああsage忘れたすみません

830 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 22:08:12 ]
SND_ASYNC で。

831 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 22:19:10 ]
PlaySoundは同時に一つしか再生できんはず
手軽なのはmciSendStringかなー



832 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 22:43:24 ]
自分でミキシング

833 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 22:50:33 ]
時間がかかる処理をバックグラウンドでやるにはどうすればいいですか?
Visual C#でプロジェクト全体を検索すると、一定時間が経つとダイアログが表示されて
中止できるように、途中で処理を中止できるようにしたいんです。処理が行われている間も
GUIが応答するようにしたいです。

834 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 22:53:57 ]
ばっくぐらうんどわーかー

835 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 22:57:54 ]
そんなもん使わず、自分でスレッド起動した方がずっと分かりやすいよ。

836 名前:833 mailto:sage [2009/08/24(月) 23:05:53 ]
じゃあスレッドを使うことにします
ありがとうございました。
OpenGL使う予定なのでスレッドが絡むとちょっとややこしそうですが、仕方ないですね

837 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 23:27:36 ]
>>828
OpenALは?

838 名前:デフォルトの名無しさん [2009/08/25(火) 08:03:24 ]
4階層のtreeviewを作成し、ノード検索ボックスも設けましたが、
treeが全て収縮している状態で検索をかけると、検索したいノード名のルートだけではなく、検索したいノードの同レベルにある他ノードまで展開されてしまいます。
ルートだけ表示させることはできないでしょうか。

839 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 09:21:23 ]
初心者スレに変なのが沸いてるな。
煽りや荒らし以外はもう一度>>1

まぁVBスレやAPIスレにいた荒らしだろうけど

840 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 09:38:01 ]
>>838
展開しなければ良いんではないだろうか
どうやって検索してるんかしらんけど
つーかTreeViewってWinFormにもWebにもWPFにもあるしなー

> ルートだけ表示させることはできないでしょうか。
ルートって普通rootのこと指すから、こういう使い方しない方が良い

841 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 10:39:22 ]
あほか



842 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 10:50:45 ]
ポカーン

843 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 10:54:48 ]
        ∧∧
       ヽ(・ω・)/   ズコー
      \(.\ ノ
    、ハ,,、  ̄
     ̄


844 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 11:13:10 ]
Staticとかそういう明示的なことをしない場合、
C#でインスタンス化したメソッドは抜けているのに
メモリが確保されたままっていうことはありますか?

フォルダ内の数千ファイルを読み込んで
内容をDBに登録するだけのプログラムなんですが
30分ほど放っておくとメモリがタスクマネージャ上で2Gとかになっています(起動時50MB程度)
ファイル読み込みループ内でファイルのIOクラスとデータベース登録クラスをインスタンス化しているので,
新しいファイルを読み込むたびに前回までのメモリが解放されているイメージなのですが,
この認識って間違っていますでしょうか?

845 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 11:13:45 ]
> ルートって普通rootのこと指すから
そんなこと無いと思うけど。
ttp://e-words.jp/w/E383ABE383BCE38388E38387E382A3E383ACE382AFE38388E383AA.html

846 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 11:34:18 ]
>>845
きみは何が言いたいのか?

847 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 11:37:59 ]
>>841-843
こいつらは誰に対していってんのか

848 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 11:46:09 ]
>>847
どうみても>>840でしょ。
>>840がいってることは正しい。
馬鹿(>>841-843)はスルーしたほうがいいよ。

849 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 11:46:41 ]
>>846
>>840の文脈から理解出来ないの?説明するつもりはない

850 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 11:49:15 ]
空気悪いね

851 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 11:51:06 ]
昨日VSスレに居た荒しがこっちに流れてきたか?



852 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 11:59:51 ]
rootはルートだろ
838が言ってるのはそりゃ「経路」だ

853 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 12:01:27 ]
>>846じゃないが

>そんなこと無いと思うけど。
といっているのに、リンク先の内容は
> ルートって普通rootのこと指すから
と同じことが書かれていると思われるんだが。

854 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 12:04:20 ]
route
root


855 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 12:22:11 ]
TreeViewでrouteという単語は一切使用されていない。

856 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 12:30:51 ]
わざわざ調べたのか…。

857 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 12:32:00 ]
>>844
C#の世界では通常メソッドはインスタンス化されない。クラスはされるけどな。

ファイルを読み込むってことは、Stream関係のオブジェクトが開放されてないんじゃないの?
アンマネージドなデータを含んでるオブジェクトは明示的にDispose()してやる必要があるよ。
もしくはusing構文を使うかだ。

858 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 15:06:04 ]
>>838
「ノードAが展開されている」というのは、簡単に言うと「ノードAの子ノードが見える状態」であって、
「ノードAが見える状態」ではない。

このことは理解してる?
因みに、理解していて>>838の質問なら>>840(前半)に帰結する。

859 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 16:37:41 ]
>857
ストリームをCloseしてるだけでDisposeしていませんでした.
メモリ使用量は気持ち減った感じですが,
まだ上がり続けているので,もうちょっとソース見てみます

ありがとうございました

860 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 16:53:03 ]
DataTable SrcTable = チョメチョメ;
DataTable NewTable = SrcTable.Clone();
foreach( DataRow Target in SrcTable.Select( "ColName < 1" ) )
 NewTable.ImportRow( Target );
チョメチョメ = NewTable;

これをLinqはどのように書くのでしょうか?


861 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 17:37:17 ]
一応managedだからこのスレでいいのだろうと思うので
MFCでDLLを作ってそれをC++/CLIでラップしました
次にそれをC#やVB.netから呼び出したいのだけど文字列ですね
const char *みたいなものにSystem.Stringのデータが渡せないって怒られます
どうやって変換すればいいんでしょう?
配布するものなんで言語環境に依存しない形で呼び出せるようにしたいのですが



862 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 17:44:18 ]
>>861
よくねえよ。C++/CLIスレがあるからそっちいけ

String^で受けてmarshal_as<std::string>

863 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 17:58:19 ]
>>860
DataViewでFilterとToTable使った方が楽だと思うけど
なぜあえてLINQ?

864 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 18:47:38 ]
>>863
LINQを使う(覚える)のが目的でした。
LINQ使えばこの手の処理がかなり簡素にできるのかなと。
構造体のlistならサンプルでなんとなくわかった(ような気がする)
のですがDataTableの場合、項目名をどう書けばよいのかわか
りませんでした。


865 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 20:00:44 ]
>>859
StreamはCloseだけでも大丈夫だよ。
正確には大丈夫ではないが、今回の現象に関しては。
※もちろんusingなどを使って確実にDisposeするのが正しい。

DBアクセス用のクラスの方の、接続とかの管理(Close)は大丈夫なのか?


866 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 20:02:16 ]
ただ、普通に考えて2G使うってのはちょっとおかしいな。
Disposeとかだけの問題でもなさそうな気がするな。


867 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 20:12:57 ]
>>864
型付きかどうかで変わるけど、
var table = (from row in table.AsEnumerable()
             where row.Field<int>("ColName") > 15
             select row).CopyToDataTable();
ただのDataTableならこんな感じ
AllowDBNullならnullチェックが必要になるが

868 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 20:41:19 ]
>865-866
レスありがとうございます

プロジェクト全体に「Stream」で検索掛けて関係ありそうなのは全部Close Disposeかけました
(StreamReaderなども)
DBに関しては
DbConnection,DbTransactionのClose Dispose
DbCommandのDispose
を徹底しました

でもまだ使用率が上がってます
現在1G使用率を上げるのに2時間かかるかんじです
(ファイルサイズがバラバラなので変化には誤差があるのでしょうが)

もうちょいでしょうか...w

869 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 21:02:09 ]
>>862
ツンデレどうもw
とりあえず文字はいけました

870 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 21:06:28 ]
>>868
んー、usingの使い方知ってる?

871 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 21:48:32 ]
あちこち弄る前にプロファイラで現状を把握すべき



872 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 23:01:02 ]
まあ多分プロファイラよりもコードレビューしてもらうのが先なレベルの気もする。
別にプロファイラで見るのもいいんだけど。


873 名前:デフォルトの名無しさん [2009/08/25(火) 23:21:10 ]
SQLでビューを作成し、できたSQLをC♯内にコーディングしました。
これって、linqだと簡単にできるの?

874 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 23:28:29 ]
いや特に

875 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 23:46:01 ]
LINQに対して夢を抱きすぎじゃねえのか

876 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 00:12:20 ]
LINQ悪くないんだけど遅いんだよな。

877 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 00:31:17 ]
鯖で使うんでなければ大した問題にはならないでしょ
鯖で使うのは微妙

878 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 01:02:57 ]
LINQって糖衣構文なだけじゃないの?
展開すると最適化のきかない冗長なコードになるのかな?

879 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 01:14:19 ]
>>878
デリゲート呼び出し分のコストはかかるんで、全部インライン展開した場合と比べると5%くらい遅いことはある。
まあ、あと、変なクエリを ToArray() せずに使うと毎回クエリしなおしで遅くなることもあるけど。


880 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 01:39:12 ]
5%が「鯖で使うのは微妙」なくらい遅いの?

一部の人はどこかのブログとかををうのみにして先入観持ってる気がする

881 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 09:48:01 ]
>>870-872

usingの使い方は知っていますが、接続を切るタイミングは動的にしないといけない事情がありましたので使ってません。

あとメモリリークの原因分かりました
support.microsoft.com/kb/418376/ja
ファイルがXMLでかつ
XSL、DTDの指定があったとき
WebBrowserで読み込んでInnerTextを拾ってくる使用でした.
プロファイラで見たときにWebBrowserのメモリがガンガン上昇していったので気付きました。
XMLDocumentで同じようなことができないか試してみます。




882 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 09:57:26 ]
| 回避策
| WebBrowser コントロールを利用しているアプリケーションを定期的に終了させて下さい。

うわお
>>881

883 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 10:18:14 ]
844からWebBrowserは想像できねーよw

884 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 10:53:13 ]
>>883
たぶん、紙にでもならない限りむりだろうなw。

885 名前:844 mailto:sage [2009/08/26(水) 10:54:27 ]
>883-884
すみませんw
まさかここで引っかかってると思いもしなかったので

886 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 12:32:13 ]
>>885
>すみませんw

なんだよ最後の草はバカにしてるのか

887 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 13:01:17 ]
牛乳飲め

888 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 14:01:37 ]
C++みたいに、引数で渡したオブジェクトの中身は触らないよ!みたいな指定って出来ませんか?


889 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 14:02:11 ]
void FuncA() { Console.WriteLine("A"); }
void FuncB() { Console.WriteLine("B"); }
void FuncC() { Console.WriteLine("C"); }

Action x;
Action y;

x += FuncA;
x += FuncB;
x += FuncC;
y = x;

x -= FuncB; // FuncAとFuncCが残る
y -= x; // FuncBだけ残るはず
y();

Bだけ表示されると思ったのですが、A, B, C全て表示されました。
x -= FuncAやx -= FuncCにした場合は、ちゃんとAだけCだけ表示されます。
なぜでしょうか?

890 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 14:34:38 ]
delegate の -= はコンパイル時に Delegate.Remove に解決される。
で、Delegate.Remove の解説はこれ。
> value の呼び出しリストが source 呼び出しリスト内の隣接している一連の要素と一致する場合は、
> source の呼び出しリスト内に value の呼び出しリストが含まれていると見なされます。
> value の呼び出しリストが source の呼び出しリスト内に複数回出現する場合は、
> 最後に出現した呼び出しリストが削除されます。

x -= FuncB すると x には FuncA, FuncC というリストが残る。
y は FuncA, FuncB, FuncC というリストだから、
「リスト内の隣接している一連の要素」に一致しなくなる。

891 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 14:47:11 ]
>>888
必要とされる理由がないので無い



892 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 15:00:03 ]
>>888
俺もそれ欲しいんだけどなあ。
Dictionaryとか参照だけさせたいときは読み取り専用ラッパで包むしかないんだろうか。

893 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 16:28:23 ]
>>867
ありがとう。参考にさせてもらいます。
思ったより長くなるんですね

894 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 17:22:34 ]
>>891
このメソッドに渡すこのインスタンスは中身が変更されるんだろうか?
って気になることあるじゃんか

サマリーに明記するしかないのかね
例外なんかはサマリーにかけるよね

895 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 17:39:42 ]
そういう場合インスタンス渡さないから気にならないなあ。

896 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 17:59:29 ]
何でもかんでもListとか要求する関数とか書いてそうだな>>892>>894

897 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 18:33:51 ]
C++でconstを活用してない人は疑問に思わないんだろうな

898 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 18:39:25 ]
次はフレンドクラス作れるようにしろとでも言い出すのかよ
バカか

899 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 18:42:19 ]
馬鹿ですけど何か文句あるか?

900 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 18:45:45 ]
>>896
で、こういう場合C#ではどうするの?

901 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 18:46:37 ]
>>897
学習能力衰えた脳筋はC++から出てくんなハゲ。



902 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 18:49:24 ]
>>900
例となるメソッドとクラスを提示してくれよ。

903 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 19:05:34 ]
C#でやるならIReadOnlyHogeとその派生のIHoge(クラスでもいいけど)を作るのが自然だと思う。
C++のconstの概念は、実質的にそういう2つのクラスを作っているも同然だって。

まあ、IList<T>とその周辺はそういう風になっていないけどさ。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<214KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef