ふらっとC#,C♯,C#(初心者用) Part45at TECH
ふらっとC#,C♯,C#(初心者用) Part45 - 暇つぶし2ch613:デフォルトの名無しさん
09/10/07 16:53:28
URLリンク(www.atmarkit.co.jp)

ここのソース貼り付けて実行したらWPFだとちゃんと動くけどSilverlightだと動かない
んですけどなぜなんです?

614:デフォルトの名無しさん
09/10/07 16:55:19
試用なんだぜ

615:デフォルトの名無しさん
09/10/07 18:10:55
>>603
Content.IE5フォルダの下に30JAKIJ7みたいなフォルダがあることはわかってます。

隠しフォルダのなかのファイルを再帰的に列挙するにはどうしたらよいですか?


616:デフォルトの名無しさん
09/10/07 18:37:01
3番目にSearchOption.AllDirectoriesつけたら?

617:デフォルトの名無しさん
09/10/07 18:52:44
>>616
SearchOption.AllDirectoriesは600でもう試しました。

618:デフォルトの名無しさん
09/10/07 19:00:03
あのさー
こっちは実際に動かして出ることを確認してレスしてんだよ
エクスプローラで見るとそこにちゃんとあるのか?
環境は?
IEのオプションでもそこに設定してあるか?

619:デフォルトの名無しさん
09/10/07 19:01:47
実体が無いんだろ

620:デフォルトの名無しさん
09/10/07 19:28:10
>>618
失礼しました。
あらためてもういちどトライしたらできました。
すみません。ありがとうございました。


621:デフォルトの名無しさん
09/10/07 22:57:34
しーね

622:デフォルトの名無しさん
09/10/08 00:33:44
試してなかったのか試したつもりで見すってたのか
どっちにしろきちんと試さんと自分が困るだけだよ。


623:デフォルトの名無しさん
09/10/08 01:29:24
>>618
ちゃんとこのスレにもまともな回答者がいたんですね。
尊敬します。これからも初心者を見捨てずお願いします。

624:デフォルトの名無しさん
09/10/08 05:31:46
いままでまともな解答者がいないと思ってたのに質問してたのか
変なの

625:デフォルトの名無しさん
09/10/08 07:44:34
リストボックスにアイテム追加して水平スクロールが出たとき、
水平方向の一番後ろを表示する方法を教えてください

626:デフォルトの名無しさん
09/10/08 09:56:06
>>625
スクロールバーが出たときに一番後ろを表示すればいい

627:デフォルトの名無しさん
09/10/08 09:56:54
>>625
ヒント:マウスホイール

628:デフォルトの名無しさん
09/10/08 12:11:20
リストボックスに水平スクロールバーって出せたっけ?

629:デフォルトの名無しさん
09/10/08 15:00:48
普通に出せる

630:デフォルトの名無しさん
09/10/08 15:11:33
ActiveX 経由で Windows Media Plyaer を使おうと思います。

_player = new AxWindowsMediaPlayer;
_player.uiMode = "none";

とすると2行目でエラーが発生します。
まだ、ActiveX コントロールが生成されてないからと思います。

いまは、タイマーで __player.Created を監視して、
true になるのを待つという方法で回避していますが、
ActiveX コントロールが生成されたというイベントはないでしょうか?


631:デフォルトの名無しさん
09/10/08 15:25:58
FormのLoadイベントでならだいじょぶ

632:デフォルトの名無しさん
09/10/08 19:06:07
質問よろしいでしょうか?
Windowsでコピー&ペーストのペースト先の情報(ファイル名やファイルのパス)を得るにはどうすればよいでしょうか?
よろしくお願いします.

633:デフォルトの名無しさん
09/10/08 19:27:01
C# ファイル ドロップ
でググる

634:デフォルトの名無しさん
09/10/08 19:30:35
ペーストされたアプリの側の自由だろ
わかるわけがない

635:デフォルトの名無しさん
09/10/08 19:37:09
すみません.言葉足りずでした
Windows上のアプリケーションを監視するソフトを考えているのですが,
例えば文字列をコピーしたものをパワーポイントに貼り付けた場合,
貼り付け先のパワーポイントのファイル名やファイルのパスを得たいという質問の内容です.


636:デフォルトの名無しさん
09/10/08 19:57:33
もし、張り付け先がファイルとか扱わないソフトだったら?

637:デフォルトの名無しさん
09/10/08 20:20:10
ペーストされたデータの扱いや、どのファイルを開いているかなどは完全にアプリケーションの責任
一般には対象のアプリのプログラムを意味論で解析でもしないかぎり不可能

638:630
09/10/08 20:26:33
>>631
レスありがとうございます。
Loadイベントなら大丈夫とは知りませんでした。
しかし、今回は、フォームデザイナで配置して使用している訳ではなく、
コード内でオブジェクトを作っているため、生成済み通知してくれる
イベントがあればいいなと思い質問しました。

639:デフォルトの名無しさん
09/10/08 20:33:56
タイトルバーにファイルパスやファイル名を表示するタイプのソフトなら
そっから取得できるか?すべてのソフトでどうなってるのか調べなきゃだが

640:デフォルトの名無しさん
09/10/08 20:47:45
開いてるファイルとは全く無関係なところへのペーストだったら?
どう頑張っても使いものにならないから諦めろ

641:デフォルトの名無しさん
09/10/09 06:18:21
asp.netにて リピーターを使ってDataTableをDataSorceにDataBindしています。
DataColumnとしてcolTitle, colValue があるとします。
asp側のコードで
<%# Eval("colTitle") %> <img src="./img/hoge.jpg"> <%# Eval("colValue") $#>
として colTitleとcolValueの間に画像を表示しています。
colValueは文字列で、文字列が空もしくはnullのとき、
hoge.jpgを表示させないようにしたいのですが、
どうしたらいいのかさっぱりわかりません。
<% if ([条件]) { %> <% } %> とするとデータバインド後に一回しか
実行されませんし、
DataBoundイベントを使った場合、どう記述したらいいのか思いつきません。
どなたか教えていただけませんか?

642:641
09/10/09 06:20:08
<%# Eval("colValue") $#> 訂正→<%# Eval("colValue") #>
なんで$マーク。



643:デフォルトの名無しさん
09/10/09 06:20:49
職業的にもCでは使えない状況ですし。


644:デフォルトの名無しさん
09/10/09 10:44:22
お前の職業なんか知らぬ!

645:641
09/10/09 15:38:44
自己解決。

646:デフォルトの名無しさん
09/10/09 18:16:03
>>625
だれかお願いします。
言葉が足りませんでした。
マウス操作やキーボード操作無しで表示する方法です。

647:デフォルトの名無しさん
09/10/09 18:37:59
TopIndex

648:デフォルトの名無しさん
09/10/09 22:48:47
私はとうとう会社を辞めることにしました。
コボラーだった私が今春に社内SEに採用され、
急に未経験のC#をやれと言われてがむしゃらに勉強しましたが、
結局誰も協力はしてくれず1人で中途半端なシステムを作ってしまいました。
土日祝日もC#に明け暮れる毎日。
会社のために休みを完全に削ってがんばってきました。
ここでも何度か質問をし、回答をいただきました。

最終的には最悪な評価に終わりそうです。
私は会社を辞めます。
このスレの皆さんに代わってもらいたいです。

皆さんありがとうございました。
会社は離れてもC#は大切にします。

649:デフォルトの名無しさん
09/10/09 23:03:54
せっかくスポーツニュース見て浮かれてる所に
切ない文章を書くな

650:デフォルトの名無しさん
09/10/09 23:10:49
皆さんが質問に答えてくださったおかげで、
ユーザビリティーの高いシステムになりました。
本当は、使いやすいシステムなんです。
けど、納期が厳しすぎました。バグが出てしまったんです。
悔しいですが、誰もテストしてくれなかったし時間がありませんでした。
今となっては言い訳ですが…。
無理のあるスケジュールに振り回された自分を戒めつつ、
退職してしばらくC#の未消化技術を習得し、
明日につなげたいと思います。

651:デフォルトの名無しさん
09/10/09 23:43:35
うちで働かないか

652:デフォルトの名無しさん
09/10/10 00:03:03
C#そして.NETはおもしろい言語とフレームワークだから会社と関係なく楽しめるよ
C#とは関係ないが納期についておもしろいスライドがあった
URLリンク(www-06.ibm.com)

653:デフォルトの名無しさん
09/10/10 00:03:09
俺はC#どころかCですらHello worldレベルのプログラムしか作ったことなかったのに
納期ギリギリで人が足りないからってC#のプロジェクトに引きずり込まれて、
その日の帰りに慌てて本屋で入門書を買ってVS2008Expressをインスコして徹夜で勉強して…

654:デフォルトの名無しさん
09/10/10 00:05:28
マ板でやれ

655:デフォルトの名無しさん
09/10/10 11:55:39
マ板って何?

656:デフォルトの名無しさん
09/10/10 12:01:37
>>652
読んだけど意味が高度すぎてよく分からなかった。
要するに、
「ウチは、スケジュールに遅れずにいい品質の開発をしまっせ!」
ということ?

657:デフォルトの名無しさん
09/10/10 14:10:10
>>651
C#の経験者だけど、今、転職は難しいんだろうなぁ。
なんとなく肩身が狭くなってきたので会社を去りたいんだが。

658:デフォルトの名無しさん
09/10/10 14:47:14
会社やめて同人エロゲ作って1年で家買えたわ
やめてよかった

659:デフォルトの名無しさん
09/10/10 15:01:53
スレチ乙

660:デフォルトの名無しさん
09/10/10 18:07:58
俺は転職に失敗したからアルバイトのコーダーになっちまったよまったく

661:デフォルトの名無しさん
09/10/10 18:28:45
>>653
インスコってなんだい?

662:デフォルトの名無しさん
09/10/10 18:34:34
インストだろ インストール
文脈も読めないの?

663:デフォルトの名無しさん
09/10/10 20:01:55
FTPサーバーのファイルをサーバー上で移動できますか?
wc.DownloadFile(fileName, locelfileName);
wc.UploadFile(newfileName, locelfileName);
ではできます。
この場合、通信の途中でエラーがあると、ファイルが破損するので、サーバーだけで操作したいと考えてます。
アドバイスお願いします。


664:デフォルトの名無しさん
09/10/10 20:07:40
できます

665:デフォルトの名無しさん
09/10/10 20:15:14
>>663
どっかからftpクライアントのライブラリをもってくるのがいいと思う。

666:デフォルトの名無しさん
09/10/10 21:26:18
あと、通信中に切れてもいいように、転送先の一時ファイルに転送して、転送
終了後にリネームするのが定石。ダウンロードも当然同じく。

667:デフォルトの名無しさん
09/10/10 23:17:25
>>666
何いってんだおまえは

668:デフォルトの名無しさん
09/10/11 00:13:20
サーバー間でコピーさせたいんでしょ
FtpWebRequest みたいなんではできないと思う
Socketで片方Passiveにしてそのポートでもう片方ひらいてStoreとRetieveする

669:デフォルトの名無しさん
09/10/11 00:28:37
FTPじゃできんだろ

670:デフォルトの名無しさん
09/10/11 00:37:12
同一サーバー上なら、ディレクトリ間の移動はリネームするだけのはずなんだが。
サーバー間の移動ならFTPよりrsyncがお勧め。

671:デフォルトの名無しさん
09/10/11 00:40:26
プロトコル自体にリネームがないと思うが
まあ、davでも使えと

672:デフォルトの名無しさん
09/10/11 00:47:07
davならぁ~

673:デフォルトの名無しさん
09/10/11 00:50:23
クソ
不意をつかれた


674:デフォルトの名無しさん
09/10/11 00:56:24
ほい、あるよ。
URLリンク(ja.wikipedia.org)

675:デフォルトの名無しさん
09/10/11 00:58:18
671みたいな古臭い脳みその人は順次退場して欲しいもんだ

676:デフォルトの名無しさん
09/10/11 00:59:20
563 名前:仕様書無しさん[sage] 投稿日:2009/09/23(水) 20:15:18
    2chで調べ物をしたい時は「教えてください」って書いても
    なかなか教えてもらえない。

    そういう時は、知ったかぶり風に間違ったことを自信満々に書く。
    そうすると、ものすごい勢いでツッコミを入れてもらえる。


677:デフォルトの名無しさん
09/10/11 01:01:31
コピペ君って馬鹿だな、まで読んだ

678:デフォルトの名無しさん
09/10/11 01:08:46
>>667
・・・仕事としてやったこと無いんだな坊ちゃん。

679:デフォルトの名無しさん
09/10/11 04:07:18
>>187
選択状態、位置の管理を君がしてないから

これ以上の説明が必要ならソース出せ

680:デフォルトの名無しさん
09/10/11 10:25:54
たぶんもう見てない

681:デフォルトの名無しさん
09/10/11 12:26:47
C#で人工知能作れますか?

682:デフォルトの名無しさん
09/10/11 12:31:28
天然無能にC#は使えません

683:デフォルトの名無しさん
09/10/11 15:19:24
最強に初心者でちょっとプログラミングってものに興味持ち出したんですが
何から始めたらいいかよくわからなくて
このスレにいけとかここのサイトから見て始めろとかあれば教えてもらえるとありがたいです。

684:デフォルトの名無しさん
09/10/11 15:24:10
前提がわからんと何とも、、、本当に何もなし?
とりあえずここ見て、どこからわからんか考えてみ
URLリンク(www.atmarkit.co.jp)

685:デフォルトの名無しさん
09/10/11 15:27:51
>>684
恥ずかしながら無いに等しいと思います。
VB?というやつですか?それなら少しだけしたことはあるのですがそれもとても簡単なやつだったと思います。
URLありがとです。
とりあえず読んでみます!


686:デフォルトの名無しさん
09/10/11 15:27:59
>>683
C#は基本的にはビジネスユースのプロが使う言語だからな。
裾野も広ければ奥行きもある。
本格的にやりたいなら入門書を買うことをお勧めする。

まあ、だからといってアマチュアが触れないのかといえばそうでもないが。

まず、ここは外せないな。
URLリンク(ufcpp.net)

本当にゼロから始めるならここでもいいが、
URLリンク(homepage2.nifty.com)

こっちは技術的なうそがいっぱい書かれてることで有名なところだから、
(にもかかわらず分かりやすいということで書籍化までされているのが厄介)
うそをうそと見抜けるようになるまで勉強したまえ。

687:デフォルトの名無しさん
09/10/11 15:40:12
>>686
PCをゲーム機としてだけで置いておくのはかわいそうだと思ってやってみようかと
とりあえずブックマークさしてもらいました!

いきなり質問と言うか躓いてしまったのですが
Visual Studio .NETというソフトは有料なんでしょうか?
もし代わりとなるようなソフトがあればありがたいとは思うのですが・・・

688:デフォルトの名無しさん
09/10/11 15:42:46
express edition なら無料で使える

689:デフォルトの名無しさん
09/10/11 15:48:02
Visual Studio .NETってのは2002の頃ので有料版だけど、
2005以降は無料のExpressEditionがあってMSのサイトからDLできる。
最新は2008SP1ね

690:685
09/10/11 15:50:01
>>688>>689
ありがとうございます!
Visual C# 2008 Express Edition with Service Pack 1というのでおkですかね?

691:デフォルトの名無しさん
09/10/11 15:59:31
それでおk

692:685
09/10/11 16:07:47
インスコしてみたのですがどうしても2008SQLサーバー?ですかね
それだけインスコできませんでしたとの表示が出て終了してしまうのですが・・・w
なにかインスコに関して制約とかこのOSだと駄目とかそういうものは

693:デフォルトの名無しさん
09/10/11 16:08:28
最近組んだファイルの管理を行うロジックでDirectory.filenameとか言うのを叩いてファイルの列挙してるんだけど、
配列じゃなくコレクション型を使いたいということで後先考えずIListを使ってしまって
今になってよかったのかと思ってる。
クラスとかじゃなく、インターフェイスとなっているものを直に変数として宣言するのは気持ち悪いんだけど、この場合何か別の方法ってないのかな?

string tempFN = Directry.filename(***);
List<string> FN = List<string>();
FN.Addrange=tempFN;

とかなんか回りくどいのがあまり好きじゃないし、俺の低脳さも好きじゃない。
知恵と知識をおくれ

694:デフォルトの名無しさん
09/10/11 16:11:09
>>693
原則として、フォルダ中のファイル一覧のような外部の事情で
いつ変更が加わってもおかしくないような
リソースに対してはキャッシュそのものを行わず、
必要なときにそのたびに取得するようにする。

695:デフォルトの名無しさん
09/10/11 16:11:35
始めてプログラムするならC#とC++どっちがお勧めですか?

696:デフォルトの名無しさん
09/10/11 16:15:20
断然C#
初めてでいきなりC++に挑戦すると挫折する可能性が高い

697:デフォルトの名無しさん
09/10/11 16:16:44
というか、ことWindowsでプログラミングするときに
C++をわざわざ選択する意味がほとんどないな。現在では。

698:デフォルトの名無しさん
09/10/11 16:20:10
>>694
ぅーん・・・、検索とか比較をする必要がある場合だったんでコレクション型に落として処理したかったんだけど、
こういったstring[]系のものを一発でList<string>に変換できる技があればなと思ってる。

配列から検索とか比較するのってなにか複雑に見えてしまう。
それにあの構文が見た目不安定に思えて仕方ないw

699:デフォルトの名無しさん
09/10/11 16:22:34
配列は IEnumerable だから List のコンストラクタに入れられるだろ

700:デフォルトの名無しさん
09/10/11 16:29:56
暗黙的に変換できないから一々Addrangeしないといけないからやだなぁって。
そういうことじゃない?

701:デフォルトの名無しさん
09/10/11 16:33:55
ごめん・・・
.ToList();でけた

702:デフォルトの名無しさん
09/10/11 16:34:22
LINQ使えるんだったらそもそもリストにする必要ないだろ

703:デフォルトの名無しさん
09/10/11 16:34:40
つ DarkBASIC

704:デフォルトの名無しさん
09/10/11 16:34:41
.NET 3.5 で C# 3.0 だったのかよ

705:デフォルトの名無しさん
09/10/11 16:37:03
List<T>.FindなんかそのうちObsolete来るかもね
Silverlightではすでに削除されてる

706:デフォルトの名無しさん
09/10/11 16:39:24
>>705
なぜ?

707:デフォルトの名無しさん
09/10/11 16:40:09
LINQ (to Objects)があれば不要だから

708:デフォルトの名無しさん
09/10/11 16:42:44
聞いたことはあるけど使ったことが無い。
というよりあまり魅力とは思わないんだけど、使い始めたらやめられない位つかうことになる?

709:デフォルトの名無しさん
09/10/11 16:43:26
>>707
そんな理由で非推奨にしたらどれだけのメソッドが非推奨になるんだい

710:デフォルトの名無しさん
09/10/11 16:45:17
>>692
とりあえずSQLサーバーとかいらんだろ

711:デフォルトの名無しさん
09/10/11 16:47:38
とりあえずVisual Stadioはサーバー系とモバイル系、オフィス系を省いて、C++をフルインストール、後はデフォルト。
C++はフルにしないとツールや、コンパイルのときAnyCPUの選択ができなくなる。

712:デフォルトの名無しさん
09/10/11 16:48:58
あとはDXperience

713:デフォルトの名無しさん
09/10/11 16:52:27
>>708
よくWebの記事なので紹介されてるクエリ式( from x in items where … ) はあまり使わないだろうけど
メソッド形式( items.Where(x => x.Value < 10).ToList() みたいに書く方)は使いまくることになる
MSDNでSystem.Linq.Enumerableクラスを見てみるといいよ

714:デフォルトの名無しさん
09/10/11 16:59:55
何かちょっと魅力と思えてきた。
これ使いこなせれば、今書いてるコードとかキュッと出来そうw

人に渡すと説明いりそうだけどw

715:デフォルトの名無しさん
09/10/11 17:54:54
LINQは麻薬

716:デフォルトの名無しさん
09/10/11 18:06:07
アルゴリズムを分かった前提でLINQを使ってほしいね
組み合わせ問題をLINQで無理やり書いて
速度が出ないコードを量産されたらたまらん

717:デフォルトの名無しさん
09/10/11 18:06:31
何でもLINQで書きたくなる病を発症する人は多いな。

718:デフォルトの名無しさん
09/10/11 18:09:16
今必死に抑えてるよ…

719:デフォルトの名無しさん
09/10/11 18:18:46
LINQ to flickrとかね

720:デフォルトの名無しさん
09/10/11 18:20:42
っは・・・し、静まれ・・・俺のLINQよ・・・怒りを静めろ!!

721:デフォルトの名無しさん
09/10/11 18:25:34
やめろぉおおおおお
なんでもかんでもIEnumerableインターフェースを実装しようとするんじゃねエエエエエエエエエ

722:デフォルトの名無しさん
09/10/11 18:26:09
あるあるw

723:デフォルトの名無しさん
09/10/11 20:02:06
ほうらこんなものも列挙できるんだよ・・・
みてごらん・・・

724:デフォルトの名無しさん
09/10/11 20:09:06
本当に麻薬だなw

725:デフォルトの名無しさん
09/10/11 20:20:53
javaの1.4で仕事してるけど、ループを書くたびに、linqならああ書けるのにって
妄想してしまう。

726:デフォルトの名無しさん
09/10/11 20:21:49
今時Java 1.4なんて苦行そのものだな。お疲れさん。

727:デフォルトの名無しさん
09/10/11 20:41:21
>>693
var files= Directory.GetFiles(@"c:\work", "*.*", SearchOption.AllDirectories)
.Select(f => new FileInfo(f));
// .Select(x => new FileInfo(x)).ToArray()で配列;
foreach (var file in files)
Console.WriteLine(file.ToString());



728:デフォルトの名無しさん
09/10/12 00:52:04
>>727
わざわざありがとうございます!

何か作っているうちにいろいろやって見たんだけど、これ中毒化する・・・。
ハンドルとか捕ってく時に無駄に使いまわしそうw
.Selectがいっぱい尻尾に着くとかとても自己満z

729:デフォルトの名無しさん
09/10/12 12:49:57
DrawStringで矩形の中に改行しながら最大に近いサイズで文字を表示する方法を教えてください。

730:デフォルトの名無しさん
09/10/12 12:56:04
DrawString(string, Font, Brush, RectangleF)

731:デフォルトの名無しさん
09/10/12 12:57:24
MeasureText
MeasureString


732:デフォルトの名無しさん
09/10/12 13:49:08
フォントサイズを変更しながらMeasureStringで収まってるかどうかループ回すってことですか?

それしかないのか・・・


733:デフォルトの名無しさん
09/10/12 13:56:46
えーっと、比例とか分数って小3ぐらいで習うよな…
仮にそれで誤差が出るとしても、バイナリーサーチと同じアルゴリズムが使えると思うが

734:デフォルトの名無しさん
09/10/12 14:36:28
そっか!

735:デフォルトの名無しさん
09/10/12 18:55:51
音楽プレイヤーについて質問があります。
WindowsMediaPlayerを使って音楽を再生しようとしています。
再生はできたので、次の段階で、評価の値を取得して、気に入った曲だけ再生しようとしています。
URLリンク(d.hatena.ne.jp)
を参考に、メタデータを取得しようとしています。
ここで疑問点が出てきました。
評価の項目が見当たらないのです。
曲の評価は5なのですが、値が5のデータもありません。
評価を取得するにはどうしたらよいでしょう。

736:デフォルトの名無しさん
09/10/12 19:10:51
列挙したら何が取れるの?

737:デフォルトの名無しさん
09/10/12 19:11:52
ちっとはMSDN見ろ?
URLリンク(msdn.microsoft.com)
属性の名前についてはこっち見ろと書いてある
URLリンク(msdn.microsoft.com)
オーディオ関連に使用する属性に限定したリストがこれ
URLリンク(msdn.microsoft.com)
で評価は大体ratingの訳語だからratingをページ内検索
後は片っ端から詳細ページを確認

738:デフォルトの名無しさん
09/10/12 21:45:47
>>737
thanks

739:デフォルトの名無しさん
09/10/12 23:39:13
ちと悩んでて質問させてくれ
C#のフォームに複数のswf組み込んでそのswfに同時キー処理を渡したいんだ
どうすればいい?
swfを貼り付けるとこまではサイト見ながらなんとか出来たが
swfの同時処理がわからん・・・。1日調べたけどお手上げだった俺に誰か救いの手をくれ

740:デフォルトの名無しさん
09/10/13 00:01:28
同時ってのがあれだけど、スレッドとかか?
でもブラウザにswfにキーイベントとか渡せるかどうかわかんない

741:デフォルトの名無しさん
09/10/13 00:17:03
いや、普通のフラッシュゲームとかと考えてもらっていい
イメージ的には1つのフォームに2つ以上のフラッシュゲームをおいて
キー操作で全く同じ動きする感じ。

742:デフォルトの名無しさん
09/10/13 00:23:35
そもそも、そのswfが同時入力という概念があるのかすら決まってないんじゃないの?

743:デフォルトの名無しさん
09/10/13 00:33:21
フォームに組み込むからフォーム側でコントロールすれば複数のオブジェクト(今の場合はswf)に
キーイベントを送ることは出来るとは思うんだが・・・。
リストとかテキストボックス複数に同時に同じキーイベント送ることが出来たからswfでも出来ると思ったけど
swfは無理なのかのう(´・ω・`)

744:デフォルトの名無しさん
09/10/13 00:35:05
複数に同時、ってのは無理。

745:デフォルトの名無しさん
09/10/13 00:40:16
無理なのか・・・(;´Д`)
他に方法は無いだろうか?もうC#じゃなくてもいいや

746:デフォルトの名無しさん
09/10/13 00:42:21
じゃ、スレ違いだからどこかに消えてなくなれよ。

747:デフォルトの名無しさん
09/10/13 00:51:30
どんな言語だろうと同時は無理だろう

748:デフォルトの名無しさん
09/10/13 01:13:43
キーの制御だからC系でいけると思ったけど
C#で無理ならしゃーないな(´・ω・`)
ありがとう

749:デフォルトの名無しさん
09/10/13 02:15:36
お前らの同時は質問者の同時と別だろうなw

750:デフォルトの名無しさん
09/10/13 02:48:15
キー制御とか書いてあるから人間が操作する前提のフラッシュゲームを
自動で動かしたいとかそんなことなんだろう。
ならばリフレッシュレートより短い時間差があっても問題になることは少ないはず。
この程度の考察ができないようでは、とてもまともなプログラマーとは言えない。
許容誤差とか、仕様に不明な点があれば確認すべきだし。

751:デフォルトの名無しさん
09/10/13 03:06:08
仕様ってなんだよw
仕事じゃあるまいし、なんでそんなに懇切丁寧にやらにゃならんのだ。
頭おかしいんじゃないの?

752:デフォルトの名無しさん
09/10/13 03:29:46
遊びで手を抜くやつは仕事でも手を抜くんだよなあ
人間、そんなに器用に習慣を変えることなんてできないんだから
ちょっとしたことでも態度に出たのを見られてるから注意した方がいいよ

753:デフォルトの名無しさん
09/10/13 03:37:12
仕事で手を抜くのは基本
仕事振られずに給料もらうのがベストソリューション

754:デフォルトの名無しさん
09/10/13 06:44:18
>>752
おまえ働いたことないだろw

755:デフォルトの名無しさん
09/10/13 08:06:09
いかに品質を落とさずに手を抜くかだよな~
あらゆるツールはそのためにある

756:739
09/10/13 08:22:01
>>750が言う通り少々の時間誤差あるくらいなら全然構わない
ちと説明不足だったすまない

757:デフォルトの名無しさん
09/10/13 08:40:35
飛行機のネジには遊びがあるんだぜ
全てのネジを完璧に締めちゃうと飛び立った後で空中分解するんだぜ
仕事も同じ
俺は後輩にこう教えて来た

758:デフォルトの名無しさん
09/10/13 09:42:00
今は接着剤だがなw

759:デフォルトの名無しさん
09/10/13 09:49:24
それがツールというものか。

なんかつながった

760:デフォルトの名無しさん
09/10/13 10:01:43
効率化を提言すると手を抜いてると言い出すのは日本の会社の宿命だよ
今まで自分が築いたものを否定されるに等しいと思ってるからね
帰属意識を持てという割に共同体だという概念がない

761:デフォルトの名無しさん
09/10/13 10:14:11
んなこたない

762:デフォルトの名無しさん
09/10/13 10:58:17
ツールツール言ってる奴はツールに問題があった時の
工数増加まで見積ってるんだろうな?

763:デフォルトの名無しさん
09/10/13 10:58:54
当たり前

764:デフォルトの名無しさん
09/10/13 11:06:17
というかツールってなんだよ、アドインとかか?ライブラリか?

765:デフォルトの名無しさん
09/10/13 11:35:45
ツール・ド・フランス

766:デフォルトの名無しさん
09/10/13 12:16:49
パスツール

767:739
09/10/13 12:25:48
739だがいつの間にかかやの外にいてワロタ
で、結局>>739は実現可能なのだろうか?
ちょっと前にも書いたけど少しの誤差は無問題
似たような処理ならどんな方法でも基本おkだ
よろしくたのむ

768:デフォルトの名無しさん
09/10/13 12:56:09
>>767
並列処理させればいいだけだろ
おまえにはポジトロニックブレインがついてないのか?

769:デフォルトの名無しさん
09/10/13 13:57:41
カタブツとよく言われております

770:739
09/10/13 14:05:00
ポジなんとかはよくわからんがその並行処理のやり方がわからないんだ
swfにキーを並行処理で渡すってのが俺の中で超難解

771:デフォルトの名無しさん
09/10/13 14:42:57
多少の時間差があってもいいんなら、順番に処理すればいいだけ
人間の目には同時に見えるる

772:739
09/10/13 15:16:59
何度も申し訳ない説明不足だった
swfを組み込むのが初めてでキーコントロールの渡し方もわからんトーシロなんだ
その辺も含めて教えてくれると助かる
ソースコードとか

773:デフォルトの名無しさん
09/10/13 15:27:25
今はどうやって表示してるの?
ActiveXかなんか?

774:デフォルトの名無しさん
09/10/13 15:41:42
>>739
ここで回答を待つよりも賢明な方法がある
ぐぐれ

775:739
09/10/13 15:57:14
SHOCKWAVEなんたらって出るからたぶんActiveX

ぐぐりながら今もいろいろ試してるけど全然ダメなんだ…
なんせC#自体ほとんど触ったことないから(´・ω・`)

776:デフォルトの名無しさん
09/10/13 16:13:10
CopyFromScreenで取得した2枚の画像を
高速で比較して、異なる部分を抜き出す方法ってある?

777:デフォルトの名無しさん
09/10/13 16:19:54
知ってるなら教えてあげればいいのに。


778:デフォルトの名無しさん
09/10/13 16:23:32
異なる部分とは?
単純に差分でなくて、林檎と蜜柑の違いとか?

779:デフォルトの名無しさん
09/10/13 16:24:15
上で偉そうにしてた奴は、騒ぐだけ騒いで教えずに居なくなったな

780:デフォルトの名無しさん
09/10/13 16:26:42
>>776
バイナリで比較すればいい

781:デフォルトの名無しさん
09/10/13 16:30:32
>>775
C#というよりプログラミング自体初心者に近いんじゃないのか?
横着しないでまず文法を理解しなさい

782:デフォルトの名無しさん
09/10/13 16:37:18
>>775
単純な差分。
CombineRgnのRGN_DIFFみないな。

>>780
1ピクセルづつ比較したら遅くね?



783:デフォルトの名無しさん
09/10/13 16:46:35
>>782
基本的にCPUで処理する場合は1ピクセルずつ処理するしかないぞ。
せいぜいSSEなどのパックド命令を使うことだけどこれはC++でやるべきこと。
Graphics/Bitmapで差による描画がないようなら自前でやるしかないな。
Marshal.Copyを使えばそれほど難しいことではないだろう。

784:デフォルトの名無しさん
09/10/13 16:49:33
>>783
Marshal.Copyの後、
forループで比較?
やっぱりこれしかない?
1280x1024 のbitmapの場合、0x500000の配列になるんだよね・・・


785:デフォルトの名無しさん
09/10/13 16:56:43
ポインタ使えばええやろ

786:デフォルトの名無しさん
09/10/13 17:00:41
9000枚くらい画像処理してるけど結構速いよ

787:デフォルトの名無しさん
09/10/13 17:05:18
>>784
今更1Mピクセルくらいなによ、って感じ。

>>785
C#はアンマネージドなバッファに対するアクセス法が3種類ほどあるが、
ポインタとしてアクセスするのはunsafeキーワードでも足りず、
プログラムのビルドオプションを変更する必要がある。
そうするとほかのモジュールとのリンクも影響を受けかねないし、
よほどボトルネックになってない限りはお勧めできない。

>>786
同意。

788:デフォルトの名無しさん
09/10/13 17:10:30
>>786
>>787

そうか、そんなものか。
とりあえずやってみるよ。
サンキュ。

789:786
09/10/13 17:13:29
類似画像比較の処理を書いていて、
最初はサンプリング部だけC++のモジュールに投げようと思ってたんだけど
試したら3%も早くならなかったので止めてC#で書いた

790:デフォルトの名無しさん
09/10/13 17:17:16
あんま、参考にならないと思うけど、
一応、俺も類似画像検索ツール作ったことがある。
50x50サイズの画像を10000件検索したときは約5秒かかった。

791:デフォルトの名無しさん
09/10/13 17:19:13
イメージほど遅くはなくなったんだけどな
イメージ先行してるよなw

792:デフォルトの名無しさん
09/10/13 17:25:49
画期的なアルゴリズムを編み出したいんだろうけど
画像なんてのは規則性がないからな
異なる部分を抜き出すだけなら
1ピクセルごとに比較するのが単純で速い

類似画像検索となると、それなりの手法がいるがな

793:デフォルトの名無しさん
09/10/13 18:08:42
>類似画像検索
たとえば、どんな風にやるの?

794:デフォルトの名無しさん
09/10/13 18:26:07
大雑把な説明だと、各画像の特徴ベクトルを算出して比較

特徴ベクトルの中身や算出方法の具体的なアルゴリズムは説明しきれないから、
興味があるなら画像処理スレ行くとか、適当に論文を当たるとかしてくれ


795:デフォルトの名無しさん
09/10/13 18:30:36
まあ、でも普通は2枚の画像の差分を目で評価できれば十分なので。
以前とあるマイナーな画像形式のコンバーターを作ったんだが、
可逆なはずの色域変換の逆変換でデータが化けてしまったときにお世話になった。

あ、そうだ。便乗質問するんだが、.NETの標準で対応してない画像形式のローダーを.NET向きに作るときって、
なにとして読めるように作ったらいいんだ?
汎用ローダーならIO.Streamでいいんだが……。

796:デフォルトの名無しさん
09/10/13 18:37:23
WinForm向けならSystem.Drawing.Image(実体はBitmapだろうけど)
WPFも視野に入れるなら……DIB的なもの

797:デフォルトの名無しさん
09/10/13 18:38:56
>>775
同時処理以前にキーの送信もできてなかったのか。
そっちを先に聞くべきだったね。
フラッシュ側でどうやってキー入力とってるかにもよるんじゃないのかな。

試しにSendInput使ったら送れたけど、これだと送る前にフォーカスセットしなくちゃならないけど
それでもいいかな?ちなみにキーボードフォーカスはPC上で1つしか持てないから
このやりかただと同時は不可能

798:デフォルトの名無しさん
09/10/13 19:25:21
>>795
WIC(Windows Imaging Component)


799:デフォルトの名無しさん
09/10/13 20:14:39
フォーカスの切り替えも一瞬だから
切り替えとキーイベントなりキーコード送信を順番にやればいいだけだよ

800:デフォルトの名無しさん
09/10/13 21:19:46
C#に向いてるエディタってありますか?

801:デフォルトの名無しさん
09/10/13 21:20:28
VisualC#2008以外ありえない

802:デフォルトの名無しさん
09/10/13 21:58:18
誰もがお前らの思いどうりには行動しません。

協調とは性格や考え方の違うもの同士が譲り合って調和をはかること
すなわち同調ではない。
自分と他人は違う人間なんだから、
十人十色、いろんな考え、趣味、価値観があって当然。

よく私たちは「誤解された」といって憤慨することがありますが、
そのような人は自分の考えをはっきりと発言しているのでしょうか。 
自分の意見を明確に発言もしないで、誤解されたと憤慨するのは、
自分で一言も発言しないで「俺の考えていることを当てて見ろ」
と言っているのと同じことではありませんか。
お互いに自分の意見をもっとはっきり言うべきだと思います。 
自己主張をするときに最も注意すべき点は、感情的にならないことです。 
感情的になったら、勝ち負けを争っていることになります。 
主張するときは冷静で、しかも論理的に話すことが求められます。 
自分の常識が相手にも通じる時代は終わったのです。 
自分と相手の常識は違うのです。よく言えば価値観が多様化してしまったのです。


803:デフォルトの名無しさん
09/10/13 22:05:18
コピペ君って馬鹿だな、まで読んだ。

804:デフォルトの名無しさん
09/10/13 22:06:05
まず.NET Frameworkのクラスライブラリはインテリセンス環境で使うことが前提だから
やたら綴りが多くてとてもじゃないけどふつうのテキストエディタでは書いてられない。

805:デフォルトの名無しさん
09/10/13 22:10:47
MonoDevelop

806:デフォルトの名無しさん
09/10/13 22:20:46
それは秀丸+csc+NUnit+NAnt+NDocでグループウェア作った俺への挑戦だな。
っていうか、確かにシンどいです御免なさい勘弁してください。

ついでにサーバは秀丸+javac+JUnit+Antですた。御免なさい勘弁してください。

807:デフォルトの名無しさん
09/10/13 22:28:42
C#のためにVisualC#が作られたというより,
VisualC#のために作られた言語だし

808:デフォルトの名無しさん
09/10/13 22:30:13
ん?VisualC#の為じゃなく.NETの為に作られたのがC#だろ?

809:デフォルトの名無しさん
09/10/13 22:32:49
実際VSとセットで設計されてるんだよ

810:デフォルトの名無しさん
09/10/13 22:42:44
VisualJがクソミソにされたからブチぎれて大金かけてパクった言語ですが?

811:デフォルトの名無しさん
09/10/13 22:46:19
はやくJava7出せよw

812:デフォルトの名無しさん
09/10/13 22:51:04
Visual Jはこけてくれた良かった。
お陰でC#という最高の言語の一つが出来たのだから。

813:デフォルトの名無しさん
09/10/13 22:54:51
Java7大したもの実装されなそうなのに何であんな時間かかってるんだろうな
正直言って見限り気味

814:739
09/10/13 23:08:53
>>797
ありがとう参考になった。sendinputは使ってなかったわ

とりあえず今日も一日頑張ったけど無理だった。方法としては
・フォームをKeyPreview = trueに設定する⇒特殊アプリ(swfとか)には無効
・KeyDown += delegate(object o, KeyEventArgs e)の後に普通に
 ActiveControl = swf1;
 ActiveControl = swf2;と処理⇒片方しかキー処理しない
・上記のswf2をスレッド処理⇒片方しかキー処理しない

そもそもキーの渡し方がわからんかったからこんな変な処理になった
もうお手上げ\(^o^)/

815:デフォルトの名無しさん
09/10/13 23:44:21
質問させてください。Excelに差込印刷をしてみたいので
C#が良いと後輩に教えてもらいました。

部下に指示するにしても、自分でまずやったほうがい良いと思い書き込みしてます。

どうやればいいでしょうか?

816:デフォルトの名無しさん
09/10/13 23:53:16
>>815
騙されてるよ。
C#はCOMと相性が悪い。
普通にVBAでいい。

817:デフォルトの名無しさん
09/10/13 23:56:32
>>815
お前は部下持ちなのに、自分の頭で考える能力も経験もないのか?

818:デフォルトの名無しさん
09/10/13 23:57:49
>>816
なるほど。VBAを購入してマスターすればいいのですね。
大変参考になりました。60点です。

819:デフォルトの名無しさん
09/10/14 00:01:49
>>818
おまえは0点だよw


820:デフォルトの名無しさん
09/10/14 00:08:14
>>798
ふぅ~む……。
Vistaでは標準で入ってるけどXPでは.NET Framework 3.5に同梱かぁ。
COMベースであるところが気に入らないが、HD Photoも対応してるようだし
サードパーティーが拡張できるようにすること前提になってるようだし、興味深いな。

WIC、使ったことある人があれば感想とか聞いてみたいね。

試して見る価値はあるような気がする。ありがとう。
ただ自分の使いたい用途とは必ずしも一致しない。
System.IO.Stream系で1行あたりのバイト数で区切られた
長方形状のメモリに直接読み書きできるようなクラスがあれば
それの形で実装できればなと思ってる。

821:デフォルトの名無しさん
09/10/14 00:08:50
>>818
VBAを購入するのか
大変だなw

822:デフォルトの名無しさん
09/10/14 03:10:31
あまりに初歩的で申し訳ないのですが

たとえばApplication.cs から Option.cs を開くために
Application.cs[Design] で Option 項目を作成し
クリックされた時のイベントに何を書けば
Option のウィンドウを開くことができるのでしょうか?

823:デフォルトの名無しさん
09/10/14 04:29:07
アプリケーションの作成手順が知りたいんだけど

例えば、URLを右クリックして保存する時に出てくるウィンドウを設計する場合

まず、フォームにコンポーネントを追加していって
作業に必要なデータセットをつくって
次はイベント処理を作っていくのが一般的?

824:デフォルトの名無しさん
09/10/14 06:31:22
そんなんでデータセットなんて使わんだろ。

825:デフォルトの名無しさん
09/10/14 08:41:16
>>822
Application.csからOption.csを開くって何?
C#ではソースコード同士を開いたりという概念は無いよ。
(コンパイルしたら実行時には関係なくなるから)

それから、その2つはFormを定義してるのかな?
それなら、そんなクラス名をつけるのはあまり一般的ではないよ。
Formクラスを継承するんだらMainFormとかそういう名前をつけるといい。

ちょっと基本的なレベルで突っ込みどころが多すぎるので、
まずは教科書どおりに書いてその意味を考えてもらえないだろうか。

826:815
09/10/14 10:03:19
今日、部下に相談したら「私がやりますから」って不機嫌そうな顔をしてたので
彼は左遷だと社長に直訴しました。私をだれだと思ってるんだまったく。

827:デフォルトの名無しさん
09/10/14 10:07:28
>>826
お前論外。カエレ

828:デフォルトの名無しさん
09/10/14 10:08:21
まさかとは思いますが、この部下とは、あなたの想像上の存在にすぎないのではないでしょうか。

829:デフォルトの名無しさん
09/10/14 10:20:46
たぶん自分が上司という設定も想像上

830:デフォルトの名無しさん
09/10/14 11:35:19
みんな何と戦ってるんだ……

831:デフォルトの名無しさん
09/10/14 12:13:59
>>826
おまえみたいな仕事の出来ないSEが多くてかなわん

832:デフォルトの名無しさん
09/10/14 12:48:05
そうだ、その席俺によこせ

833:デフォルトの名無しさん
09/10/14 14:26:51
>>825
レスありがとうございます。
共にFormクラスを継承していますので名前を変更しました。

まず、MainFormを作って次にOptionFormを作った場合
実行するとMainFormのみ表示されます。

実行時にOptionFormを表示するにはどのようにすれば良いのでしょうか?

834:デフォルトの名無しさん
09/10/14 14:30:57
OptionFormをいつ表示させたいの?
MainFormの代わりならnew MainForm() してるとこを探してみそ。

任意の時点なら、new OptionForm()して.ShowDialog()とか

835:デフォルトの名無しさん
09/10/14 14:31:42
ソースコード全部漁るとMainメソッドでApplication.Runを実行している所がある
そこで引数として渡すFormを変更する

836:デフォルトの名無しさん
09/10/14 15:26:29
>>834
できました。ありがとうございます。

837:デフォルトの名無しさん
09/10/14 20:32:33
abstract class Foo}

838:デフォルトの名無しさん
09/10/14 20:47:28
コンパイルエラーになりますた


839:デフォルトの名無しさん
09/10/14 20:52:25
public abstract class Foo{}
public class Bar:Foo{}
public class Baz:Foo{}

public class BarContainer{
public List<Bar> Children;
}

public class BazContainer{
public List<Baz> Children;
}

というクラスがあって、BarContainer と BazContainer の両方を扱えるように、

interface IParent<T> where T:Foo
{
List<Foo> Children;
}

public class BarContainer:IParent<Bar>{
public List<Bar> Children;
}

というのを定義したんですが、
var x=(IParent<Foo>)(new BarContainer());
とはできないんですね。

なんかいい方法ない?


840:デフォルトの名無しさん
09/10/14 20:55:03
public abstract class FooContainer {

841:デフォルトの名無しさん
09/10/14 21:01:02
>>839
URLリンク(msdn.microsoft.com)
その問題についてはこの記事が詳しい
MSDNの中でも指折りの良質な記事だと思う

842:デフォルトの名無しさん
09/10/14 21:21:22
単純に
public abstract class Foo { }
public class Bar : Foo { }
public class Baz : Foo { }
interface IParent<T> where T : Foo {
List<T> Children { get; set; }
}
public class MyContainer<T> : IParent<T> where T : Foo {
List<T> lis;
public List<T> Children {
get { return lis; }
set { lis = value; }
}
}
class Program {
static void Main(string[] args) {
var x = (IParent<Foo>)(new MyContainer<Bar>());
var y = (IParent<Foo>)(new MyContainer<Baz>());
}
}
という話ではないのか?と思ったんだが、違うのか。

843:デフォルトの名無しさん
09/10/14 21:25:35
一見正しそうに見えるけどコンパイル通らないよそれ
理由は>>843を嫁

844:デフォルトの名無しさん
09/10/14 21:27:37
こんにちは

質問があります。
今座席表を簡単なものを作っています。

ラベルで席の場所を作り、その中に名前を入れておくのですが
このときの名前はForm2にメンバー表をテキストボックスで作っておき
それに対応したラベルをForm1で参照して表示にしようと思っています。

そして、Form2のテキストボックスの名前を変えて保存ボタンを
押せば簡単に席替えしたときに変えられる
と言うな物を作りたいのですが。

①Form1からForm2のテキストボックスが参照できない
②exeで起動したときテキストボックスの中身を入力で替えたとき
保存は出来るのか?

以上を教えてください。なお、あまりよくない作りになりそうでしたら
そこも助言いただけるとうれしいです

845:839
09/10/14 21:32:23
みなさまレスありがとう。
>>840
ごめん、サンプルでは簡略化のために省きましたが、
Bar/BazContainer には基底クラスがあるので、その手は使えないっす。

>>841
ビンゴなレスありがとう。お礼にフェラチオしてやりたいくらいだ。
でも、記事内容がちょっと俺には高度っぽい。
理解できるだろうか。

>>842
>System.InvalidCastException はハンドルされませんでした。
>Message="型 'ConsoleApplication1.MyContainer`1[ConsoleApplication1.Bar]' のオブジェクトを型 'ConsoleApplication1.IParent`1[ConsoleApplication1.Foo]' にキャストできません。"


846:デフォルトの名無しさん
09/10/14 21:33:25
>>844
フォーム等の特定の入出力に依存しない座席表クラスを作って,
そのインスタンスを両方のフォームから参照する。
保存や読み込みもそのインスタンスだけ。

847:デフォルトの名無しさん
09/10/14 21:38:38
>>839
よく見てないけど、
C#4.0でサポートされるジェネリックの共変・反変性と関係するのかな?
ちと調べてみる。

848:デフォルトの名無しさん
09/10/14 21:40:23
関係は大いにあるけどC#4.0では解決しない
List<T>は書き込みと読み取りの両方の操作をサポートしているので共変も反変も使えない

849:842
09/10/14 21:48:14
なるほど、だから >841 なのか。納得しました。

850:デフォルトの名無しさん
09/10/14 21:53:51
>>846
なるほどテキストボックスとかで貼り付けたのを使うのでなく
あくまでもプログラムで参照させるやり方ですね?

初心者で申し訳ないですが

座席表クラスには座席番号と氏名を入れて
それを対応したラベルなりに表示させるようにして
変更時は
Form2に保存ボタンを作り名前が入ってるテキストボックスに入力させて
ボタン押してプログラムに上書きをさせていく感じでしょうか?

一応座席が76個ほどあります・・・・
初心者ですいません。

851:デフォルトの名無しさん
09/10/14 22:30:41
>>850
初心者スレで初心者ですみませんとか何度も言われると煽られているのかと思ってしまう。

それはさておき、>>846の言うことがよく理解できないなら
テキストボックスを参照させたいならテキストボックスのアクセシビリティを
デフォルトの private から internal とかに上げる方法もある。

852:デフォルトの名無しさん
09/10/14 22:41:45
こないだわからないことがあったんで質問します


<asp:FormView ID="formView1" runat="server">
<ItemTemplate>
      ・・・・
<asp:Panel ID = panel1 runat="server">
・・・・

コードの概要は上記のような形で.cs側でpanle1のvisibleを制御したいんだけどやりかたがわかりませんでした。
調べたら恐らくできるんだろうことはわかったんですが・・・

試したことは

 Panel pnl = (Panel)formview1.findcontrol("panel1");
   これでpnlがnullになってしまいます

 Panel pnl = (Panel)formview1.row.findcontrol("panel1");
   rowに何もはいってません

なんか推測でも理由分かる人いたらおねがいします





853:デフォルトの名無しさん
09/10/14 22:42:55
>>850
一個一個入力という意味?それでも問題ないけど。

一例として入力フォームはダイアログボックスとして席の位置に76個のテキストボックスを配置。
モーダル表示した時に846の座席表クラスの76個のString(配列とかリストとか)からそれぞれ貼り付け。
変更後にOKボタンで逆に座席表クラスに取り込む。Cancelなら内容は破棄。
なんてのはどう?

モーダルにしない場合、他の画面で更新かかったときに動的に書き換えたりと初心者の範疇を越えてしまう。

854:850
09/10/14 23:04:07
>>851
ごめんなさいそういうつもりは一切ありません。
言わんとしてることは分かるのですが、どうも説明したり
口で言うのが苦手なのでうまくまとめられてないです。

internal明日会社で調べてみます!ありがとうございます。

>>853
ダイアログ使ったことないんでちょっと調べてみて
参考にしたいと思います!

しない場合は難易度アップなんですね・・・
明日会社で検討してみます!
ありがとうございます。

またクルかと思いますが申し訳ないですがそのときはよろしくお願いします。

855:デフォルトの名無しさん
09/10/14 23:19:30
C#, C♯, C#相談室 Part54 で質問したんですが
スレが終了してしまったのでこちらで再質問させていただきます。
-------------------------------------------------
ArrayList.Add でリストの最後ではなく
リストの最初に追加するにはどうすれば良いですか?
-------------------------------------------------

995 名前:デフォルトの名無しさん[sage] 投稿日:2009/10/14(水) 20:20:40
関係ないけど今更ArrayListなんか使うな

1000 名前:デフォルトの名無しさん[sage] 投稿日:2009/10/14(水) 20:47:19
List<T>

というレスをもらいましたが、Listでも
リストの最初に要素を追加する方法はわかりませんでした。
回答いただけたら大変助かります。

856:デフォルトの名無しさん
09/10/14 23:25:16
C#, C♯, C#相談室 Part55
スレリンク(tech板)

立てといた

857:デフォルトの名無しさん
09/10/14 23:26:05
>>855
994でレスもらってるじゃねーか

>>856


858:デフォルトの名無しさん
09/10/14 23:26:40
>>855
list.Insert(0, x);

859:デフォルトの名無しさん
09/10/14 23:27:02
994 名前: デフォルトの名無しさん [sage] 投稿日: 2009/10/14(水) 17:28:58
Insert

↑なんでこれみてないの?これ答えたの俺じゃないけど、答えそのままじゃん。
List<T> でも同じ名前と同じやり方だよ。

860:デフォルトの名無しさん
09/10/14 23:28:01
45→55ってどういうこと?

861:デフォルトの名無しさん
09/10/14 23:28:40
バージョンアップ

862:デフォルトの名無しさん
09/10/14 23:32:26
一瞬立て間違えたかと思ってビビった

863:デフォルトの名無しさん
09/10/14 23:38:18
>>859
アンカーも付いてないのになんでもくそもないわ。
答える側の能力が低いだけだ。

864:デフォルトの名無しさん
09/10/14 23:44:04
質問の直後のレスで、その言い方はないわ
ほかに混同するレスもないのに

865:デフォルトの名無しさん
09/10/15 00:02:10
c:\data\a\good01.jpg
c:\data\a\bad02.jpg
c:\data\a\other03.txt
c:\data\b\good04.jpg
c:\data\b\bad05.jpg
c:\data\b\music06.mp3
c:\data\c\good07.jpg
c:\data\c\bad08.jpg
のような構造から、goodのjpgだけ抜き出したいと考えました。
string[] photofiles;
string[] allphotofiles = Directory.GetFiles(@"c:\data", "*.jpg", SearchOption.AllDirectories);
string photolist;
foreach(string allphotofile in allphotofiles) {
if (allphotofile.Contains("good)){
photolist = photolist + allphotofile + "\n";
}
}
photofiles = photolist.Split('\n');
でできているのですが、ひどく無駄な処理をしている気がしてます。
こういうときに、LINQを使うとスマートになるんですか?


866:デフォルトの名無しさん
09/10/15 00:07:43
何が「ひどく」とまでいうほど無駄と感じるわけ?
別にLINQ使ったからって大して変わるわけでもないけど。

867:デフォルトの名無しさん
09/10/15 00:13:15
配列に入れたものを文字列にして、
もう一度配列にしているのが無駄な気がしてます。
直接配列に入らないのかな~と。
あと、LINQはこのあいだ盛り上がっていたのと、
まだ使ったことがないので、なんとなくあこがれて。


868:デフォルトの名無しさん
09/10/15 00:15:52
yield returnだろうとLINQだろうと配列コピーだろうとなんだろうと
目的の機能を達成すれば全ておk
好きな方法を使え

869:デフォルトの名無しさん
09/10/15 00:17:04
>>857>>858
あ、ほんとだ。
すいません、2回ぐらい見たはずなのに
自分へのレスだと気づけませんでした…。

870:デフォルトの名無しさん
09/10/15 00:17:55
Directory.GetFiles(@"c:\data", "good*.jpg", SearchOption.AllDirectories);

こうはできないんだっけ

871:デフォルトの名無しさん
09/10/15 00:27:43
>>864
まあそうなんだけどさ、それは分かってる側の理屈だよね。
もちろん答える側の自由なんだけど、せっかく答えたのに
相手に伝わらなければもったいないよ。
質問内容で明らかにかなりの初心者だってわかるんだし、
その僅かな気配りが出来るか出来ないかで能力に雲泥の差が出るよね。

872:デフォルトの名無しさん
09/10/15 00:27:52
var files= Directory.GetFiles(@"c:\work", "*good*.jpg", SearchOption.AllDirectories)
.Select(f => new FileInfo(f));
でできるよ。

873:デフォルトの名無しさん
09/10/15 00:36:25
わかってる、というより質問しといて新しいレスが増えたのに、
自分宛じゃないからって無視する精神の方がおかしいわ

874:デフォルトの名無しさん
09/10/15 00:37:17
コードは、な

875:874
09/10/15 00:39:37
ごば

876:デフォルトの名無しさん
09/10/15 00:47:05
>>873
うん、だからさ、その程度の事はアンカーを付ければ
簡単に避けれるのは理解できるかな?

決して気づかなかった無能な初心者を庇っている訳ではないんです。

877:デフォルトの名無しさん
09/10/15 00:54:40
>>876
まあ、日本人は説明能力が欠如してる人間が多すぎるからね。

質問側にも回答側にも、本人とエスパー以外に読解不可能な文章を平気で書いて
それで人に伝わるつもりになってる奴が多すぎる。
明らかに教育の問題だな。

まあ、君がもし回答者は質問者に親切に<すべき>と思ってるなら、
そういうクレーマーチックな押し付けがましい考えもどうかと思うけど。

878:デフォルトの名無しさん
09/10/15 01:12:38
質問です。
病院、診療所の検索システムを作成しています。
病院の検索ボックスに、例えば「ちゅうおう」と入力すると、
文字列変換前に、右手のパネルに「ちゅうおう」のフリガナを含む全病院、診療所が表示され、
そこで、Enterキーで確定させる前に、
Tabキーまたは右カーソルキーの押下で右手のパネルにフォーカスを移したいと思っています。
Enterキーで確定後に右手にフォーカス遷移させることはできたのですが、
確定させる前の、入力文字列に点線の下線がある状態で、
Tabキーまたは右カーソルを検出し、フォーカスを移動させたいんです。
それは可能でしょうか?
もしできるなら、どのようなコーディングになるのでしょうか。
教えてください。よろしくお願いします。

879:デフォルトの名無しさん
09/10/15 01:39:01
2ちゃんでの答えに説明力不足もくそもない。
直後に書いた答えに説明力不足もくそもない。
一言使うメソッド教えるのに説明力不足もくそもない。
読解不可能な答えでも何でもない。


880:デフォルトの名無しさん
09/10/15 01:45:05
>>872
System.IO.FileInfoって、配列じゃなくない?
>>870
できそうなのですが、条件を間違えてました…。
c:\data\a\good\photo01.jpg
c:\data\a\bad\photo02.jpg
c:\data\a\other\text03.txt
c:\data\b\good\photo04.jpg
c:\data\b\bad\photo05.jpg
c:\data\b\music\music06.mp3
c:\data\c\good\photo07.jpg
c:\data\c\bad\photo08.jpg
でした。
Directory.GetFiles(@"c:\data", @"\good\*.jpg", SearchOption.AllDirectories);
とかやったけどだめっぽい。


881:デフォルトの名無しさん
09/10/15 01:49:10
>>879
後輩に嫌われそうなタイプだなw

882:デフォルトの名無しさん
09/10/15 01:51:35
自アプリ以外から起動したinternet explorerの特定のタブのHtmlDocumentを取得するのって自前でCOMの処理書かないと無理なの?
簡単にアクセス出来るクラスとか無いの?
COM使った実装は実現出来ているんだけどもっと簡単な方法が無いかなって思っての質問だけど

883:デフォルトの名無しさん
09/10/15 01:54:48
少なくとも標準ライブラリにはない
Shell32とか使えば多少は楽になるかも知れんがまあ大差なかろ

884:デフォルトの名無しさん
09/10/15 01:56:14
>>881
ここは2ちゃん


885:デフォルトの名無しさん
09/10/15 02:00:53
>>883
サンクス
なんかこの当たりもっと対応して欲しいよね
C#は先進の技術で作られているのにM$純正のアプリですらレガシーな技術を使わないとアクセス出来ないとか意味不明すぎる
IEに至っては構造が歪すぎて本来COMで提供されているべき機能がWindowMessageを使わないとアクセス出来ない機能まであるし

886:デフォルトの名無しさん
09/10/15 02:03:40
>>880
パスに含まれる、ならそりゃ第二引数は使えない これはファイル名のフィルタだから
Whereなりif文なり自分で分けるしかないな

Selectは型の変換 IEnumerable<TInput>をIEnumerable<TOutput>にする
GetFilesならstring[] : IEnumerable<string> で、
SelectでそれぞれのstringがそれぞれFileInfoに置き換えられてIEnumerable<FileInfo>を返す
まあFileInfoがいらないならこのSelect文は不要だな

取り敢えず\nでくっつけて後でSplitはあり得ない
List<string>にAddしていくようにすれば良いんじゃね

887:デフォルトの名無しさん
09/10/15 02:05:38
>>885
他のプロセスの内容をのぞき見るとか、マネージドという方向性とは正反対じゃねーか

888:デフォルトの名無しさん
09/10/15 02:08:14
>>884
それも含めて言ってる

889:デフォルトの名無しさん
09/10/15 02:11:45
>>887
いやいやw自分のアセンブリから他のアセンブリのパブリックメソッドを呼び出すのは実にマネージド的じゃんw
IEがアセンブリでちゃんとそう言うメソッドを公開していれば
ブラックボックスになっている他プロセスをわざわざ覗き見る必要なんてないじゃんかよ?w

890:デフォルトの名無しさん
09/10/15 02:21:11
>>880
・GetDirectories()→GetFiles()の2段階にする
・条件緩めてGetFiles()→自前でフィルタ
のどちらかだろうな

とりあえず前者をLINQで書いてみた (SelectMany便利だねぇ)

Directory.GetDirectories(@"c:\data", "good", SearchOption.AllDirectories)
    .SelectMany(d => Directory.GetFiles(d, "*.jpg"))

891:デフォルトの名無しさん
09/10/15 03:17:44
>>886
\nでくっつけて後でSplitはあり得ない
自分でもそう思います。はい。レベルアップしたいです。
List<string>を試してみます。
List<string>って、ListBoxと扱いはいっしょ?

>>890
これがLINQですか…。
string[] photofiles = Directory.GetDirectories(@"c:\data", "good", SearchOption.AllDirectories)
.SelectMany(d => Directory.GetFiles(d, "*.jpg"))
だと、
型 'System.Collections.Generic.IEnumerable<string>' を 'string[]' に暗黙的に変換できません。明示的な変換が存在します。(cast が不足していないかどうかを確認してください)
なんですけど、この変換が、886さんのいう型変換ですか?


892:デフォルトの名無しさん
09/10/15 04:07:29
ToArray()でクエリを評価して結果の配列を受け取ればおk
列挙子(IEnumerable<string>)が返されるってのはLINQの重要なポイントなんで、今は分からなくとも頭の隅に置いとくといい。

string[] photofiles = Directory.GetDirectories(@"c:\data", "good", SearchOption.AllDirectories)
.SelectMany(d => Directory.GetFiles(d, "*.jpg")).ToArray();

893:デフォルトの名無しさん
09/10/15 06:05:10
>>891
個人的な意見だが
今のレベルではLINQ理解しようとしてもただただ混乱が増えるだけに見える。

勉強目的ならば、Listを使って>>865を改善できるように頑張った方がいい
LINQにこだわりたいのならば、誰かに作ってもらった動くものを
今はコピペするだけにとどめておいた方がいい
と思う。


あと変数名の付け方もちょっと気になる

894:デフォルトの名無しさん
09/10/15 06:26:23
>>880
ToArray()

もうちった勉強しろ

895:デフォルトの名無しさん
09/10/15 06:42:22
>>878
ですが、どなたかご存知ではないでしょうか?
これができれば使いやすくなるのですが…。

896:デフォルトの名無しさん
09/10/15 07:07:22
右パネルに移動したとして検索フォームには何も入力されないまま?
というかそれ使いやすいか?

897:デフォルトの名無しさん
09/10/15 07:16:59
昔はImmほにゃらら関数とWM_IME_COMPOSITIONで可能だった
今はどうだかしらんが

898:デフォルトの名無しさん
09/10/15 08:15:47
>>878
そんなIMEの実装に依存するような動作はやめたほうがいいと思う。
MS-IMEは変換中のキー入力の起動を任意にカスタマイズできるし、
ほかのIMEが入ってる環境ならなおさらだ。

899:デフォルトの名無しさん
09/10/15 09:19:57
>>876
?

900:デフォルトの名無しさん
09/10/15 11:21:29
>>878
表示される文字とは別にKeyDownイベントで
キー入力だけチェックするのはどうよ

「ちゅうおう」って打ってる後ろで
[chuuou]って取得しつつ検索結果を常に別窓に表示する

901:デフォルトの名無しさん
09/10/15 12:00:03
>>878
個人的には>>898,896と同感

あと
>右手のパネルに「ちゅうおう」のフリガナを含む全病院、診療所が表示され、
って、それは読み仮名検索を実装していて病院名検索とは別のもの、ってこと?


>>900
それは、後々整合性保つのがめんどくなっていくと思うなあ

902:デフォルトの名無しさん
09/10/15 12:05:53
今議論してる話は、Youtubeの検索欄が実現できてるな。
(どうやってブラウザで確定前の入力が取れるのかが激しく謎だが)

便利かなと思わないでもないが、確定前に候補が出てくるので
今入力中の検索ワードを確定したらいいのかせんでいいのか迷ってしまう感じ。

903:デフォルトの名無しさん
09/10/15 12:20:26
というか、googleのインクリメンタルサーチだと思ったが
いやまあ根本的に同じものなんだけどさ
まあアレはブラウザのサイズによってはすごくキモイ挙動になるけど・・・
クリックでも、確定してから矢印キー操作でもお好きな方でどうぞ。

ブラウザ上だったら、タイマー使って簡単に実現できるよ
DOMからvalueの中身を見るだけで未確定でも取ってこれる。

904:デフォルトの名無しさん
09/10/15 12:48:44
少し逸れた質問かもしれないが、変換ツールがIMEかそれ以外かを判定しる方法ってありますか?


905:デフォルトの名無しさん
09/10/15 12:53:00
>>904
ユーザーに『パン作った少年』と変換・入力させて、
『パンツ食った少年』が入力されればMS-IME :)

906:デフォルトの名無しさん
09/10/15 13:07:25
>>905
すでに修正変換していた場合、むりだろw

907:デフォルトの名無しさん
09/10/15 13:12:44
Messagebox.Show("パンツは食えません!","エラー");

908:デフォルトの名無しさん
09/10/15 13:20:01
ImmGetDescriptionとかImmGetIMEFileNameとかで判断する

909:デフォルトの名無しさん
09/10/15 17:46:39
>>892
できました。動きました。大感謝。
>>893
おっしゃるとおり。LINQはとりあえず892さんの作っていただいたのを眺めながら勉強したいと思います。
そう、そのまえに自分ではListをやってみないと。
Listで865を直してみます。
>>894
わかった!
ありがと。勉強するぜっ!


910:850
09/10/15 19:00:53
お世話になってます。
なんとか参照して表示までこぎつけましたが内部はかなりへんてこなきがします
どうなのでしょうか

public class zasseki
{
public string zs1()
{
string a = "名前";
return a;
}
と言うのを73個作り
newを使いクラス生成
そして、form1に
public void Form1_Load(object sender, System.EventArgs e)
{
label1.Text = zsk.zs1();
とずらーっと入れました。
なんか他にも出来そうですが一応表示は出来てるので
このまま進めてもいいんでしょうか

911:デフォルトの名無しさん
09/10/15 19:03:04
> と言うのを73個作り


  /'           !   ━┓┃┃
-‐'―ニ二二二二ニ>ヽ、    ┃   ━━━━
ァ   /,,ィ=-;;,,, , ,,_ ト-、 )    ┃               ┃┃┃
'   Y  ー==j 〈,,二,゙ !  )    。                  ┛
ゝ.  {、  - ,. ヾ "^ }  } ゚ 。
   )  ,. ‘-,,'   ≦ 三
ゞ, ∧ヾ  ゝ'゚       ≦ 三 ゚。 ゚
'=-/ ヽ゚ 。≧         三 ==-
/ |ヽ  \-ァ,          ≧=- 。
  ! \  イレ,、         >三  。゚ ・ ゚
  |   >≦`Vヾ        ヾ ≧
  〉 ,く 。゚ /。・イハ 、、     `ミ 。 ゚ 。 ・

912:デフォルトの名無しさん
09/10/15 19:03:45
話を聞くだけで頭が痛くなるコードだな…

913:デフォルトの名無しさん
09/10/15 19:06:44
もういっそエクセルでやってくれ・・・

914:デフォルトの名無しさん
09/10/15 19:12:14
もうそれ紙に書いた方が良いよw

915:デフォルトの名無しさん
09/10/15 19:15:36
>>910
もうどこから指摘して良いのやら全然ダメなやり方です
C#の本を1冊買って読みながら作った方がいいと思うよ
基礎をおろそかにしては次のステップへは進めない

916:デフォルトの名無しさん
09/10/15 19:20:19
まずクラス名のザッセキが気になる

917:デフォルトの名無しさん
09/10/15 19:28:27
うん、まずは配列覚えようか

918:デフォルトの名無しさん
09/10/15 19:31:55
取り合えず
配列
でググろうか

919:デフォルトの名無しさん
09/10/15 19:32:49
俺は本なんてよまないからいまだにオブジェクト指向とか意味わかってないけど経験でなんとかやってこれた。
あたって砕けて覚えていくのが楽しいものですといいたが、苦労したくなかったら本読め

920:デフォルトの名無しさん
09/10/15 19:44:28
さすがに本読んでなくても
70も同じコード書いてたらなんかおかしいって思うだろ普通

921:デフォルトの名無しさん
09/10/15 19:51:18
プログラム書くときって普通合理化しようと思うものじゃないの?
初心者とか以前に最低限、初心者用の本を読むとかアルゴリズムの入門編くらいは知っておけよ

922:デフォルトの名無しさん
09/10/15 19:52:46
テキストボックスに、数字以外のものを入力させたくないのですが
どのような方法があるでしょうか?

右クリック、コピペでの貼り付けは考えなくて結構です。


923:デフォルトの名無しさん
09/10/15 20:11:09
>>922
Validatingとか

924:デフォルトの名無しさん
09/10/15 20:18:59
かれこれ2ヶ月やってこれです。

死んだほうがいいですかね。


925:デフォルトの名無しさん
09/10/15 20:21:03
あ、↑910です

まじめに会社を辞めようかとも思ってます。ありがとうございます

926:デフォルトの名無しさん
09/10/15 20:26:36
>>924
二つ質問があるんだけど
本は読んでいますか?読んでいれば何という本を読んでいますか?

927:デフォルトの名無しさん
09/10/15 20:29:50
>>926
読んでいる最中で
猫でもわかるのC#を読んでいます。

やってるときは普通にこれじゃ意味ないなとか思ってたんですが
どうしたらいいか分からず上のようになっています。

ちゃんと読んで、サンプルも作ったり改造したりしてるのですが
全然だめですね。ほんとに死にたくなると同時に無能さを感じました。

928:デフォルトの名無しさん
09/10/15 20:31:00
>>924
うそ、だろ・・・
俺も8月頃C#始めたけど(勉強のためにこのスレ見てる)
さすがに配列くらいわかるわ・・・

929:デフォルトの名無しさん
09/10/15 20:34:11
初心者本が初心者にやさしいとは限らないからねえ
910の場合、本読んでるなら本の影響だろ

930:デフォルトの名無しさん
09/10/15 20:39:45
どんな初心者本でも配列くらい載ってると思うけど…

931:デフォルトの名無しさん
09/10/15 20:45:55
プログラムにバグがあるとき以外
発生しない状態になったときは
InvalidOperationException 投げておけばいい?

それとも、ApplicationException?

932:デフォルトの名無しさん
09/10/15 20:54:17
>>931
その状態ってのが具体的にどういう場合なのか
引数がおかしければInvalidArgumentだし
メンバが変な値になってればInvalidOperationだし
なんかアプリ固有の例外を投げるべきかも知れないし
どんな例外もピンと来ない場合はなんとなくInvalidOperation投げることもあるけど

ApplicationExceptionは元々アプリ固有の例外を定義するための基底クラスとして用意されてた
ただし全部Exceptionから派生するようにガイドラインが変更されたので死にクラス

933:デフォルトの名無しさん
09/10/15 21:02:54
「使い方が間違ってる。コードを修正しろ。」という意味で例外を投げる場合は
InvalidArgumentExceptionやInvalidOperationExceptionのようないい加減な例外を投げておくべき。
わざわざ固有の型を作るとキャッチしてくれという意味に取られかねない。

934:デフォルトの名無しさん
09/10/15 21:08:02
>>922
KeyPress() イベントで e.KeyChar と e.Handled を使ってふんだらら。
ごめん。詳しくは覚えてない。

935:デフォルトの名無しさん
09/10/15 21:08:34
zassekiにほれたのでやってみた。
呼び出し側のForm

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.ZassekiEvent += Sekigae;
frm.Show();
}
private void Sekigae(object sender, EventArgs e)
{
var txtBox = sender as TextBox;
if (txtBox != null)
{
this.Controls.OfType<TextBox>()
.Where(t => t.Name == txtBox.Name)
.Single().Text = txtBox.Text;
}
}
}

936:デフォルトの名無しさん
09/10/15 21:09:55
席の情報をもつForm

駄作だがうけとってくれw

public partial class Form2 : Form
{
public delegate void ZassekiEventHandler(object sender, EventArgs e);
public event ZassekiEventHandler ZassekiEvent;

public Form2()
{
InitializeComponent();

foreach (var txt in this.Controls.OfType<TextBox>())
{
txt.TextChanged += new EventHandler(zasseki_TextChanged);
}
}
void zasseki_TextChanged(object sender, EventArgs e)
{
ZassekiEvent(sender, e);
}
}


937:デフォルトの名無しさん
09/10/15 21:12:07
Form1とForm2のTextBoxは同じ名前という前提で頼む。
Form1.TextBox1とForm2.TextBox1がつがいになる。
保存を考えたら外部のリソースにたいしてバインドするほうがいいだろうな。


938:デフォルトの名無しさん
09/10/15 22:16:34
リソースとバインドの意味がわかりません

939:デフォルトの名無しさん
09/10/15 22:19:36
>>846みたいな設計にするってことだろ
いわゆるデータバインディングなどを使うかどうかは別にして

940:デフォルトの名無しさん
09/10/15 22:19:48
辞書ひけカス

941:デフォルトの名無しさん
09/10/15 22:24:49
C#初心者って言ってんのにデリゲート唱えるコードとかwwwドSw

942:デフォルトの名無しさん
09/10/15 22:31:27
LINQ避けてわざわざforeachで回されると長くなってうざい
どうせイベントとか使ってる時点で理解できないだろうから短く貼ってくれた方がいい

943:デフォルトの名無しさん
09/10/15 22:34:54
この程度で長いって……

944:デフォルトの名無しさん
09/10/15 22:37:24
ここでLINQを使うならいったいどのように書くんだ?
そっちの方が横に長くなると思うけど

945:デフォルトの名無しさん
09/10/15 22:44:45
奥に長くしてくれ

946:942
09/10/15 22:45:52
いや>>941が.Where(t => t.Name == txtBox.Name)に文句付けてるのかと勘違いした
たぶんイベント使ってるのが難しいと言いたいんだろうな

947:デフォルトの名無しさん
09/10/15 22:56:42
初心者がやるならテキストファイルから入出力でしょうね。
配列、入出力あたりは早めに覚えておきたい。

948:942
09/10/15 23:01:34
フォーム間のやり取りにわざわざテキストファイルを介するの?
そこまでして無理に今やることはないと思うぞ
さっさとオブジェクト指向の勉強とか済ませてしまった方が早い

949:デフォルトの名無しさん
09/10/15 23:52:32
それよりいまの問題は配列をしらない事だろうw

950:デフォルトの名無しさん
09/10/15 23:53:55
これを題材に、一歩ずつ学べるようにリファクタリング&機能追加するような教材を作ったら・・・
別に売れないかなw

951:デフォルトの名無しさん
09/10/15 23:56:38
>>942
保存はどうするの?

952:デフォルトの名無しさん
09/10/15 23:56:46
あれか、一回70個コピペさせて
面倒でしょ?そんな時に配列!ってか

953:デフォルトの名無しさん
09/10/15 23:58:58
配列!そういうのもあるのか!

954:942
09/10/16 00:00:24
Excelでいいじゃん

955:デフォルトの名無しさん
09/10/16 00:01:56
×そういうのもある
○最低限の知識

956:デフォルトの名無しさん
09/10/16 00:07:03
これは面倒すぎるありえないっていう感覚は大事だと思う

957:デフォルトの名無しさん
09/10/16 00:12:35
URLリンク(uchukamen.com)
を参考にして、ファイルをゴミ箱に入れようとしています。

ダイアログを出さないようにフラグを
sh.fFlags = Shell.FOFlags.FOF_NOCONFIRMATION ;
に変えたら、ゴミ箱に入らずに消えてしまいました。

ダイアログを出さないようにゴミ箱に入れるには、FOF_ALLOWUNDOも同時に指定する必要があると思うんですが、
+でつなげても0x0050にしてもエラーが出てしまいます。
同時指定のやり方を教えてもらえませんか。

958:デフォルトの名無しさん
09/10/16 00:17:32
>>955
孤独のグルメ

959:デフォルトの名無しさん
09/10/16 00:24:02
で、その配列とやらをどう活かすですか

960:デフォルトの名無しさん
09/10/16 00:36:42
>>957
組み合わせ可能な列挙体を組み合わせるのはビットごとの論理和演算子である | を使う

961:デフォルトの名無しさん
09/10/16 00:52:36
>>960
あっさりと想定通りの動きをしました。
ありがとうございました。

962:デフォルトの名無しさん
09/10/16 01:02:35
>>935-936
設計と命名以外でダメ出してみる (×:MUST be fixed、△:SHOULD be fixed)

×Form2.ZassekiEventイベントのソースがForm2のインスタンスじゃない
  → ソースはそのイベントを定義している型かその派生にする

×Form2でZassekiEventがnullのときにNullReferenceException
  → nullチェックを入れるかnullにならないようにする

△ZassekiEventHandlerのシグネチャがEventHandlerと同じ
  → 単に無駄というだけでなく、EventHandlerには「イベントデータが無い」という意味がある

△Form1.Sekigaeメソッド内のWhere(...).Single()は無駄
  → Single、Firstなどには条件を指定できるオーバーロードがある

963:デフォルトの名無しさん
09/10/16 01:05:54
ウザ

964:デフォルトの名無しさん
09/10/16 01:29:35
次スレの予感・・・

965:デフォルトの名無しさん
09/10/16 02:05:32
>>924
おれはプログラミングはじめて1ヶ月でAPIを駆使して
winnyのリストボックスの内容を取得して
ハッシュを収集したり無視したり自動でキャッシュ削除するソフトを作ったよ

向いている向いてないがあるんだろうな

966:965
09/10/16 02:11:57
プロパティ、フィールド、クラス、値型とか意味知ってるか?
おれはまず文法を一通り読んだ
それでわからなかったら、初心者サイトで調べ、それでもわからなければ
別の初心者サイトを見る。
わからないことをわからないままで横着して進めようと焦る気持ちはわかるが
他と違って、プログラミングはコツコツ覚えていくしかない

体で覚えていこうなんてするなよ

967:デフォルトの名無しさん
09/10/16 03:02:00
>>965
みんなお前みたいに暇じゃないんだよw
一ヶ月根詰めればそれぐらい出来るわ

968:965
09/10/16 03:16:12
おっさんのおまえらには無理だろうなww

969:デフォルトの名無しさん
09/10/16 07:09:02
細かく調べる前に勘で書いて体で覚えたけど
最初に作りたい物が決まってるならこの方が早い
そのあと詰まった所で随時調べる

970:デフォルトの名無しさん
09/10/16 07:35:24
>>962
指摘thx

>>→ ソースはそのイベントを定義している型かその派生にする
プロパティでget/setできればOK?

>>→ nullチェックを入れるかnullにならないようにする
このケースでnullになるかな?けれどもnullチェックはしたほうがいいね。

>>単に無駄というだけでなく、EventHandlerには「イベントデータが無い」という意味がある
よくわからん。

>> Single、Firstなどには条件を指定できるオーバーロードがある
Whereいらなかったね。ひとつ賢くなった。


971:デフォルトの名無しさん
09/10/16 08:39:02
また夜中なのに異常に伸びたなと思ったら予想通り

972:デフォルトの名無しさん
09/10/16 10:28:50
ポインタを使ったアルゴリズム、チェインとか木とかあるけど
同じような動作をするものでunsafeしないでC#で行うことはできますか?

厳密なメモリアドレスへの操作というわけじゃなくて
あるカプセルの参照と値を持つカプセルを関連付けていければいいだけなんだけど

973:デフォルトの名無しさん
09/10/16 10:35:20
何言ってるかわかんね
LinkedListでも何でも好きなの使えよ

974:デフォルトの名無しさん
09/10/16 10:36:27
>あるカプセルの参照と値を持つカプセルを関連付け

Dictionary<TKey,TValue>で両方に参照同じ渡せば。

975:デフォルトの名無しさん
09/10/16 10:42:57
フォルダを作ってそこにクラスファイルを入れると
そのクラスを利用する場合

フォルダ名.クラス名

としなければなりませんよね?
でも、パっと見でフォルダ名なのかクラス名なのかがわかりにくいと思いませんか?
わざわざフォルダ名を書かなければいけないのっておかしい気がするのですが

976:デフォルトの名無しさん
09/10/16 10:44:19
namespace変更すればいいだろ…
VSに文句言う前に言語仕様から理解しような

977:デフォルトの名無しさん
09/10/16 10:47:07
MyClass.System.TxtReader

があり、TxtReaderをSystemフォルダにいれた場合

System.TxtReader

と書くと、Systemはフォルダ名なのかクラス名なのかわかりにくくないですか?

978:デフォルトの名無しさん
09/10/16 10:48:21
>>976
じゃあ、フォルダの数だけnamespaceを作れと?
namespaceを大量生産するってそれこそありえないと思うんだけど

979:デフォルトの名無しさん
09/10/16 10:48:32
名前空間でググレカス

980:デフォルトの名無しさん
09/10/16 10:49:57
TxtReader.csのnamespaceをMyClassにすりゃいいでしょう。
馬鹿としか言えない。

981:デフォルトの名無しさん
09/10/16 10:50:23
>>978
誰もユニークにしろとは言ってないぞw

982:デフォルトの名無しさん
09/10/16 10:51:30
ググレといのはこのスレの本分ではないと思うのですが?

983:デフォルトの名無しさん
09/10/16 10:52:48
new System.IO.DirectoryInfo(@"c:\");

これの"IO"はフォルダ名なのかクラス名なのか分かりにくいだろうか。

984:デフォルトの名無しさん
09/10/16 10:55:03
フォルダ名と呼ぶのをやめて欲しい
そんな用語はない
VSがフォルダと同じ名前の名前空間を自動生成しているだけ

985:デフォルトの名無しさん
09/10/16 10:55:15
>>978
お前が何を悩んでいてどうしたいのかさっぱり分からない。
C#はjavaと違って好きに名前空間を指定出来るぞ。
俺はフォルダ名と一緒が一番いいと思うが。


986:デフォルトの名無しさん
09/10/16 10:56:10
次ぎたててくる

987:デフォルトの名無しさん
09/10/16 10:57:08
>>984
そういうことかわかった^^

988:デフォルトの名無しさん
09/10/16 10:59:02
スレリンク(tech板)

989:デフォルトの名無しさん
09/10/16 11:13:07
>>975
そんな規則はない。
コーディング規約的にnamespaceとディレクトリ配置が一致していることが望ましいだけ。
間違った思い込みをする前に、MSDNで一次情報に当たる習慣をつけよう。

990:デフォルトの名無しさん
09/10/16 12:58:02
.NETの命名ガイドラインに従うと,確かにA.B.C.Dだけ見て
名前空間とクラスとプロパティを見分けることはできないんだけど
実際それで困ることある? だいたい分かるじゃん
java.lang.System.outとかキモい

991:デフォルトの名無しさん
09/10/16 15:07:04
おそらく、開発環境ソフトが見分けをサポートすべきという思想なんだろうな
カーソルでポイントすればヒントが表示されるみたいな

992:デフォルトの名無しさん
09/10/16 15:11:42
つーか、大文字小文字を打ち間違えたときも、
大文字と小文字を入れ替えたら名前が見つかってエラーがでなくときは、自動で修正してほしいもんだ

993:デフォルトの名無しさん
09/10/16 15:39:45
俺も昔、スペルチェック機能みたいなのが欲しいと思ってた。MS-Wordでできるんだから
Visual Studioでもできるだろう、と。
でも今はインテリセンスあるからいらない。みんな最初から候補に出てくる。

994:デフォルトの名無しさん
09/10/16 15:44:02
>>992
VBは実際にそれやってくれる
C#は大文字と小文字を区別するのでわざとその機能は付けてないんだと思う
仮に現在大文字と小文字だけが違う複数の名前が無かったとしても,
そういう機能があるとつい無頓着になってミスが発生しやすいからね

995:デフォルトの名無しさん
09/10/16 16:03:59
大文字小文字が違うだけの変数名を作ることはまずなのにに
なぜ区別するようにしたんだろうな
publicの場合は先頭だけ大文字、privateは小文字って決め付ければいいのに

996:デフォルトの名無しさん
09/10/16 16:05:58
メインターゲットがC++やJavaからの移行者だから当たり前
それとVBとの差別化

997:デフォルトの名無しさん
09/10/16 16:39:12
List<>の勉強中です。
List<string> photolists = new List<string>();
string[] photofiles = Directory.GetFiles(@"c:\data", "*.jpg", SearchOption.AllDirectories);
foreach(string photofile in photofiles) {
if (photofile.Contains("good")){
photolists.Add(photofile);
}
}
すこし書いてみました。動作のテストもしました。
List<>とstring[]とふたつ使っているところが、まだいまいちな気がします。
もっとスマートになりますよね?
foreachを使わず直接配列を追加することは可能ですか?


998:デフォルトの名無しさん
09/10/16 16:50:35
フィルタリングが入る時点で「直接配列を追加」は不可能だろ
次のステップはContains("good")をメソッドに取り出した上でArray.FindAll、辺りかな
この場合はList<T>の出番が無くなるけど

999:デフォルトの名無しさん
09/10/16 16:52:02
LINQを使うしかない
var goodphotos = photofiles.Select(photofile => photofile.Contains("good"));
photolists.AddRange(goodphotos);

1000:999
09/10/16 16:52:43
ごめんSelectじゃなくてWhereだった

1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch