ふらっと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
0669デフォルトの名無しさん
2011/01/07(金) 13:06:02active reportはあるけど6.0ではないので縦書きができないという罠
まぁ、改行とか駆使してやればいいんだろうけど・・・・
もちっと楽に縦書きをやってみたかった
0670デフォルトの名無しさん
2011/01/07(金) 13:20:400671デフォルトの名無しさん
2011/01/07(金) 13:37:14まぁどちらにしろある程度の自動化はさせたい
ちょっと挿し込みやる方法調べてみるかな
0672妖犬 ◆youkenkF9Y
2011/01/07(金) 15:52:30try
{
int a = Int32.Parse(Console.ReadLine());
int b = Int32.Parse(Console.ReadLine());
Console.WriteLine(a + b);
}
catch (Exception)
{
Console.WriteLine("例外");
}
finally
{
Console.WriteLine("終了");
}
0673デフォルトの名無しさん
2011/01/07(金) 15:57:410674デフォルトの名無しさん
2011/01/07(金) 16:01:09class Test
{
object obj { set; get }
}
上記クラスをPropertyGridにセットし、objにセットされている型に応じた操作を行いたいのですが読み取り専用となってしまいます
当たり前と言えば当たり前なのですが、現在の型に応じてセット出来るようにするにはどうしたらいいのでしょうか
TypeConverterあたりで出来そうな気がしますがなかなかうまくいきません
0675デフォルトの名無しさん
2011/01/07(金) 16:16:080676デフォルトの名無しさん
2011/01/07(金) 16:56:490677デフォルトの名無しさん
2011/01/07(金) 17:12:01PropertyGridにTestをセットすると、PropertyGridのプロパティリストにobjが現れるのですが読み取り専用になってしまいます。
このときたとえばobjにstringが代入されていればPropertyGrid上で文字列操作を
objにboolが代入されていればtrue、falseの選択を
列挙型が代入されていれば対応する各値の選択を行いたいのです
現状はProeprtyGrid上で読み取り専用となってしまい、変更が出来ないんです
0678デフォルトの名無しさん
2011/01/07(金) 17:28:12そんなもん何に使うの? PropertyGridって開発者向けのツール作るためのもんだよ?
0679デフォルトの名無しさん
2011/01/07(金) 19:09:23このプロセスCのPIDをプロセスAは直接的な方法で取得することは可能でしょうか?
プロセスCは複数起動されることがあるため、プロセス名だけでは判断できなくて困っています
0680デフォルトの名無しさん
2011/01/07(金) 19:11:45AがCを直接しるのは無理じゃないの?
BがCを管理してAからの要求に答えるかCを起動の度に
デリゲートでAの通知用メソッドを呼び出すようにするとか
0681デフォルトの名無しさん
2011/01/07(金) 19:43:39リモーティングかパイプで通信
0682デフォルトの名無しさん
2011/01/07(金) 20:27:02起動したらプログラム終了しなくなるけど他はどうですか?
もし使える物ならFileSystemWatcherの代わりに使いたいんですが
0683デフォルトの名無しさん
2011/01/07(金) 22:36:36どなたかご存知ありませんか?
ShowWithoutActivationでtrueを返したり
CreateParamsでcp.ExStyle |= (int)(WS_EX_NOACTIVATE | WS_EX_TOOLWINDOW)したりしましたが
クリックするとアクティブってしまいました
どなたかこの卑しい豚に助言という名のえさをお与えください
0684デフォルトの名無しさん
2011/01/07(金) 22:42:01∧_∧
(´・ω・) いやどす
ハ∨/~丶
ノ[三ノ |
(L|く_ノ
|* |
ハ、__|
""~""""""~""~""~""
0685デフォルトの名無しさん
2011/01/07(金) 23:03:08ありがとうございました
やはりBやCに何らかの手を加えない限り無理みたいですね
とりあえずは最新に起動された物がどれか判別できればいいのでProcess.StartTimeを比較することで実現できました
0686デフォルトの名無しさん
2011/01/08(土) 00:42:13単純に「親フォーム」とやらをオーナーにするだけじゃダメなの?
0687デフォルトの名無しさん
2011/01/08(土) 01:46:01常に手前に表示されるようになるだけで、触れるとアクティブになってしまう
0688デフォルトの名無しさん
2011/01/08(土) 02:00:180689デフォルトの名無しさん
2011/01/08(土) 02:05:02こういういかにも下手にでましたので教えろや!!って本音が見えるような書き込みがなければ教えたんだが・・・
0690デフォルトの名無しさん
2011/01/08(土) 02:08:46そこまで気を使う場所じゃないし、かえって不気味
0691デフォルトの名無しさん
2011/01/08(土) 02:11:340692デフォルトの名無しさん
2011/01/08(土) 02:11:460693デフォルトの名無しさん
2011/01/08(土) 02:13:15アクティブにしたくないFormとそのFormに貼り付けるコントロールにもコードを追加しないとだめだよ
サンプル
http://cs2ch.blog123.fc2.com/blog-entry-85.html
0694デフォルトの名無しさん
2011/01/08(土) 02:16:55どなたかこの貴い豚に追加情報という名のえさをお与えください
0695デフォルトの名無しさん
2011/01/08(土) 02:20:020696デフォルトの名無しさん
2011/01/08(土) 02:29:44怖い
>>693
それはすでに試したけど動かなかったよ
後これもなぜかアクティブになってしまった
ttp://d.hatena.ne.jp/ku__ra__ge/20080612/p1
本当に動くのかな
>>694
大元のウィンドウをアクティブにしたままFormにwebbrowserはっつけて作ったポップアップウィンドウにhtml表示したいだけ
0697デフォルトの名無しさん
2011/01/08(土) 02:39:50ホントにやったのか?
アクティブにしたくないFormに対策するのと
そのFormに貼るコントロールにも対策するだぞ
0698デフォルトの名無しさん
2011/01/08(土) 02:44:09昨日の時点で既になんだ
そして挫折し、放浪し、ここに至る
0699デフォルトの名無しさん
2011/01/08(土) 02:45:11どうせコピペした際にFormのイベントとかちゃんと動くようにしてないんだろ
0700デフォルトの名無しさん
2011/01/08(土) 02:52:46イベントまでコピーしてどうすんだ
0701デフォルトの名無しさん
2011/01/08(土) 02:58:07関連するポイント無視してコピーして動きませんってそりゃあまりにもボケナスすぎだろ
0702デフォルトの名無しさん
2011/01/08(土) 03:08:31勝手に解釈して当たり前の話ばかりするんじゃない
鬱陶しいからもういい
0703デフォルトの名無しさん
2011/01/08(土) 03:30:03どうせミスってるんだろうし
0704デフォルトの名無しさん
2011/01/08(土) 04:21:33こういうこと?
http://www.dotup.org/uploda/www.dotup.org1346606.zip
0705デフォルトの名無しさん
2011/01/08(土) 04:31:500706デフォルトの名無しさん
2011/01/08(土) 04:38:21ドキュメントからタイトルタグ探せばいいんじゃね?
0707デフォルトの名無しさん
2011/01/08(土) 05:09:55ありがとです
0708デフォルトの名無しさん
2011/01/08(土) 08:38:35整数の範囲をチェックするには、
0 < a && a < 100
とか書けば良いと思いますが、これをビット演算等でやる方法はあるでしょうか?
0709デフォルトの名無しさん
2011/01/08(土) 10:04:320710デフォルトの名無しさん
2011/01/08(土) 10:11:480711デフォルトの名無しさん
2011/01/08(土) 10:13:25私が断定しました
お引取りください
0712デフォルトの名無しさん
2011/01/08(土) 10:23:000713デフォルトの名無しさん
2011/01/08(土) 10:59:170714デフォルトの名無しさん
2011/01/08(土) 11:02:250715デフォルトの名無しさん
2011/01/08(土) 11:03:38だが、なんでビット演算なんだよ>宿題以外考えられないな。
0716デフォルトの名無しさん
2011/01/08(土) 11:08:13こんな歯抜けをビット演算だけでやるくらいならifで大小比較した方が速いわ
0717デフォルトの名無しさん
2011/01/08(土) 11:09:280718デフォルトの名無しさん
2011/01/08(土) 11:10:40特定のビットがあるかどうかのチェックならビット演算する意味あるけど
そのくらいなら普通に計算した方がいいよね
というかいまどきビット演算を使うことなんてそうそうねーだろ
0719デフォルトの名無しさん
2011/01/08(土) 11:11:38宿題にしても無駄すぎる
出題する教師がバカなのか教師ゆえに時代遅れで化石なのか
0720デフォルトの名無しさん
2011/01/08(土) 11:52:540721デフォルトの名無しさん
2011/01/08(土) 11:54:38無駄ってそのことだろ
0722デフォルトの名無しさん
2011/01/08(土) 11:58:470723デフォルトの名無しさん
2011/01/08(土) 12:13:270724デフォルトの名無しさん
2011/01/08(土) 12:14:270725デフォルトの名無しさん
2011/01/08(土) 12:56:59public static bool Contains<T,V>(this T e, V flag) where T : Enum {
}
これ書けりゃ汎用化できて最高なのに
0726デフォルトの名無しさん
2011/01/08(土) 12:59:57リフレクションなので糞遅いけど、ジェネリック使ったからといってもリフレクション使って実装するしかないはず
0727デフォルトの名無しさん
2011/01/08(土) 13:05:080728デフォルトの名無しさん
2011/01/08(土) 13:17:25後でまた使うかもしれないからとりあえずキャッシュをしばらく置いときたいようなときには
WeakReferenceではすぐ消えてしまってあんまり役に立たないよ
型ごとにキャッシュを持つなら際限なくリークするようなことはないはずだから
普通にstatic Dictionary<Type, キャッシュ>とかでいいと思う
0729デフォルトの名無しさん
2011/01/08(土) 13:33:45ExpressionTreeで式作る
0730デフォルトの名無しさん
2011/01/08(土) 14:12:340731デフォルトの名無しさん
2011/01/08(土) 14:41:24floatとかstring型にそのままぶち込むことが可能ですか?
0732デフォルトの名無しさん
2011/01/08(土) 14:44:45BitConverterとかEncodingとか使うと良いよ。
0733デフォルトの名無しさん
2011/01/08(土) 14:45:34あるのはToDoubleだ
stringはBitConverter.ToStringでいけると思う
0734デフォルトの名無しさん
2011/01/08(土) 14:50:38floatはToSingle
0735デフォルトの名無しさん
2011/01/08(土) 14:51:06ほうw
サンクスw
0736デフォルトの名無しさん
2011/01/08(土) 15:01:05一瞬ToStringleかと思った
0737デフォルトの名無しさん
2011/01/08(土) 15:03:36Stringはどういう形式をどういう形式にしたいのか分からんとなんとも言えんけど
0738デフォルトの名無しさん
2011/01/08(土) 15:28:160739デフォルトの名無しさん
2011/01/08(土) 18:34:090740デフォルトの名無しさん
2011/01/08(土) 20:51:35のような条件式のとき、○がfalseだと□を飛ばして△が評価されるという動作であってます?
0741デフォルトの名無しさん
2011/01/08(土) 20:59:15string y = string.Empty;
if ((x != null && x.Length > 0) || (y.Length > 0))
{
//
}
でも試してみたら
例外が出たら□は評価される
0742デフォルトの名無しさん
2011/01/08(土) 21:31:24いや、こういうこと
ポッパーイ4の動きを実装したかったんだ
大元がアクティブなままなところが重要なんだ
ttp://kineko.dyndns.org/~touhou/up/source/up7513.zip
違うアプリがアクティブになったことを検知する方法調べなきゃ
自分が非アクティブな状態でできるのかそんなこと
あるいは自分のプロセスが非アクティブになる瞬間を検知できるのか
めんこくせ(´・ω・`)
0743デフォルトの名無しさん
2011/01/08(土) 21:35:19リンクできないや
アゲナオシタ
ttp://aryarya.net/up/img/5007.zip
0744デフォルトの名無しさん
2011/01/08(土) 21:35:33いい加減なアドレスはるな
0745デフォルトの名無しさん
2011/01/08(土) 21:38:040746デフォルトの名無しさん
2011/01/08(土) 21:54:150747デフォルトの名無しさん
2011/01/08(土) 22:02:11確かに親Formから呼び出したFormとしてはダメだけど
Program.csをこんな感じで書き換えて直接3を実行すると上で紹介されてる動きするけど・・・
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace DoraemonPopup
{
    static class Program
    {
        /// <summary>
        /// アプリケーションのメイン エントリ ポイントです。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            //Application.Run(new Form1());
            Application.Run(new Form_Popup3());
        }
    }
}
0748デフォルトの名無しさん
2011/01/08(土) 22:15:100749デフォルトの名無しさん
2011/01/08(土) 22:16:23え、一緒だよ
>>747
それはわかってるよ
その動き方じゃ駄目だったから質問したんだ
0750デフォルトの名無しさん
2011/01/08(土) 22:22:52同じプロセスなのが駄目なら、違うプロセスで動かせばいいんだと思ったが
やり方を全く知らないし、調べるのがめんどくさそうなので放置した
いま、「一応」動いてるし、一応・・・
0751デフォルトの名無しさん
2011/01/08(土) 22:24:49Form_Popup3にActivatedイベントを追加してそこへ
this.Owner.Activate();
と追加すれば>>747に近い動きしたよ
>>747と違ってウインドウの移動もスムーズだし
0752デフォルトの名無しさん
2011/01/08(土) 22:39:31ありがとう
Janeのポップアップと同じもの作ろうとしてるようなものなんだ
それだと常にオーナーがアクティブになるのでポップアップが操作を受け付けなくなってしまう
あと一瞬フォーカスが移るからタイトルバーが微妙に点滅してる
ありがとう、後は自分で何とかするよ
俺は煽られると煽り返すタイプだからいないほうがいいし
0753デフォルトの名無しさん
2011/01/08(土) 22:45:15隣接するマスに地雷が置かれていないとき自動で開ける方法を教えろ
0754デフォルトの名無しさん
2011/01/08(土) 22:48:010755デフォルトの名無しさん
2011/01/08(土) 23:02:08なるほどそうやって確かめるのか。
結果はちゃんと□を飛ばしてくれました。
0756デフォルトの名無しさん
2011/01/08(土) 23:04:18詳しくはないけど迷路探索のあたりの考えが使えるんじゃないかな?
0757デフォルトの名無しさん
2011/01/08(土) 23:11:45aとbだけじゃマスが開いてるかどうかわからないからboolの配列を増やす
そうするとaはbが決まれば変わらないので、ループの外で計算する
c,d入力後にaが0で開いているマスの隣接マスを開く、これを開けなくなるまで繰り返す
0758デフォルトの名無しさん
2011/01/08(土) 23:12:23if (範囲外(x, y) || もう開いてる(x, y) || チェック済み(x, y)) { return; }
if (!隣接するマスに地雷がある(x, y)) { 開ける(x, y); }
自動で開ける(x - 1, y);自動で開ける(x + 1, y);自動で開ける(x, y - 1);自動で開ける(x, y + 1);
チェック済みにする(x, y);
}
こん感じじゃないの
0759デフォルトの名無しさん
2011/01/08(土) 23:13:18つ足し算、引き算
0760作本
2011/01/09(日) 05:39:01�@ 複数の端末でその日の記録を入力する。
�A シャットダウン時に、ネットワークの共有フォルダにその内容をテキスト出力
�B 起動時には、その共有フォルダ内のテキスト全件を読み込み、他端末の入力情報も取り込む
以上の仕組みを作っていますが、
どの端末も毎日起動しているので、当然の結果として、
共有フォルダにテキストデータが1000件近く溜まってきました。
なので起動時に重たくなってきています。
共有サーバにデータベースを置けないのでそうしたのですが、
(1)
このようなテキストデータがある程度の件数蓄積されてきたら、
自動でフォルダを生成し、一定の過去データを移動し自動で圧縮をかける
ことはC#でできますでしょうか。
また、
(2)圧縮フォルダを解凍する
ことも可能でしょうか。
お手数ですがよろしくお願いいたします。
0761デフォルトの名無しさん
2011/01/09(日) 05:55:16>このようなテキストデータがある程度の件数蓄積されてきたら、
>自動でフォルダを生成し、一定の過去データを移動し自動で圧縮をかける
できない
>(2)圧縮フォルダを解凍する
できない
両方とも自動でなんてのは無理
それより各端末のファイルをたとえば
yyyymmdd_hhmmss_ID.txt
とかファイルでわければいいんじゃないの?
で読み込む範囲を日付で絞るとかすればいいだけだろうし
0762デフォルトの名無しさん
2011/01/09(日) 06:57:01ファイルのみで扱えるデータベースもある
(SQLSever CompactやSQLiteとか、MDBはやめとけよ)
0763作本
2011/01/09(日) 08:36:40>>762さん
ご返信くださりありがとうございます。
>>761さん
日付で読み込むファイルを絞る方法、大変参考になりました。
かなり所要時間が短縮されると思います。
あとは、30,000件ほどにファイルが増大した場合に、日付判定を含めてどれくらいの負荷があるか、
試験したいと思います。
>>762さん
圧縮・解凍方法は、dobonさんのページにあるF#の機能を使用する方法でしょうか。
また、ファイルのみで扱えるデータベースとはどういうものでしょうか。
よろしくお願いいたします。
0764デフォルトの名無しさん
2011/01/09(日) 08:48:28どんな難解ニュースでも掲示板の書き込みを読んで簡単に理解。
ニュースを勢い順にカテゴリー別で表示する"2NN"(2ちゃんねるニュース速報+ナビゲーター)もどうぞ。
0765デフォルトの名無しさん
2011/01/09(日) 08:57:24ネットなんだからリンクを貼れよ
これでいいんじゃね?
DotNetZip(Ionic Zip Library)を使ってZIP書庫を作成する - DoboWiki
http://wiki.dobon.net/index.php?.NET%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%B8%A6%B5%E6%2F93
0766デフォルトの名無しさん
2011/01/09(日) 10:15:49SQLite等は、DBMSのプログラム一式がクライアントソフト内に取り込めるタイプのデータベースです
だから共有サーバーには一切プログラムインストールしなくてもデータファイルを置いておくだけで使えます
C#ならhttp://sqlite.phxsoftware.com/をインストールするだけで使えます
ただし一度に書き込めるのは一人だけなので、それをケアできるようにプログラムしないといけません
0767デフォルトの名無しさん
2011/01/09(日) 10:35:40管理とか面倒だから>>761を提案してるのに・・・・
他の端末と排他制御したりとデータの整合性を取らないといけないとかあほらしい
>>763
まあ日付跨ぐようなブラックな企業かどうかわからんけど
日付跨がないのであればその日の年月日(yyyymmdd)でフォルダを作ってそこへ出力すればいいのとちゃう?
0768作本
2011/01/09(日) 10:42:55ありがとうございます。
dobonさんの紹介サイトは
http://dobon.net/vb/dotnet/links/createzipfile.html
です。
ただ、難易度や長所短所などは分かりません。
教えていただいた内容を踏まえ、
規定期間内のデータを取り込み、一定期間をさかのぼる過去のものは圧縮していき、
月日が経つごとに、過去のものになったデータも圧縮ファイルに納めていく…
という方法も効率てきかなと思っています。
■ このスレッドは過去ログ倉庫に格納されています