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


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

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



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

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

前スレ

ふらっとC#,C♯,C#(初心者用) Part41
pc12.2ch.net/test/read.cgi/tech/1244259018/


552 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 13:57:59 ]
ぐぐれ

553 名前:デフォルトの名無しさん [2009/07/12(日) 14:21:55 ]
>>552
ググったけどなかった。

554 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 14:35:36 ]
一番上に出るじゃないか

555 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 14:35:39 ]
>>553
うそつき

556 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 14:40:05 ]
最悪w

557 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 14:43:17 ]
>>553
うそつき

558 名前:デフォルトの名無しさん [2009/07/12(日) 14:45:32 ]
すみません。ありました。
yahooで見ていました。

559 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 14:46:27 ]
死罪

560 名前:デフォルトの名無しさん [2009/07/12(日) 14:49:26 ]
店舗月の売上一覧を作りたいと思っています。
DBから固定項目を単票形式で見栄え良く表示させるには、
何が一番適しているでしょうか。
datagridviewでしょうか。



561 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 14:53:52 ]
SQL

562 名前:デフォルトの名無しさん [2009/07/12(日) 14:55:13 ]
>>561
SQLそのものが表示コントロールになるの?

563 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 14:55:28 ]
ExcelとAccess

564 名前:デフォルトの名無しさん [2009/07/12(日) 14:58:38 ]
既存のC#アプリのpanel内に新たに表示させなければいけないんです。

565 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 15:00:47 ]
じゃあDataGridViewで良いんじゃないかな

566 名前:デフォルトの名無しさん [2009/07/13(月) 20:35:02 ]
DataGrid にはカラム名の上に、CaptionText という
タイトル名を表示するエリアがあったのですが
DataGridView にそれらしきプロパティが見つかりません。
DataGridView では CaptionText に相当する機能は切捨てられたのでしょうか?
よろしくお願いします。

567 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 18:09:07 ]
DataGridは複数の階層状テーブルを表示する機能があったから必要だったけど
DataGridViewは単一テーブル表示になったから不要になった

568 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 19:39:56 ]
>>567
そういう経緯があったんですか
ありがとうございます

569 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 09:34:20 ]
Application.Idleにイベントハンドラを登録してディスプレイの毎フレームごとに処理を行うように
作っているところなのですが、
アプリケーションがアクティブなときは問題ないものの、(毎秒60回呼び出される)
アクティブでなくなったときは20フレーム程度まで落ちてしまいます。
これを回避する方法はありませんでしょうか?

570 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 09:46:21 ]
>>569
呼び出す方法を変える



571 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 09:54:37 ]
>>570
呼び出す方法を変えるとしたら、どのような方法が挙げられますか?

572 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 10:26:24 ]
>>571
タイマーを使うとか、きっちり画面に同期させたいならDirectXを使うとか

573 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 10:57:12 ]
>>572
タイマーでは50ms程度の精度しか出ないので60フレーム(16ms)レベルの処理では使えません。

ずばりDirectXを使用しているプログラムです。
リフレッシュレートが60Hzを超えているディスプレイでも秒間60フレームを維持できるようにしようと考えています。

DirectXのフレーム同期では、結果としてリフレッシュレートに同期することになると思うのですがいかがでしょうか。

574 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 12:19:33 ]
>>573
APIで用意されているタイマーには種類がいくつかあって、約55ms間隔のもあるけど
もう少し速い約16ms間隔というのもある。

で、DirectX使ってるのに同期すると困るの?

575 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 12:49:46 ]
その手のリアルタイム処理は標準的なメッセージループと相性があまりよくない
だからそこ弄るか素直にそういうことやってるの使うと吉

576 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 13:14:11 ]
時間測って、必要に応じて中で何度か更新処理だけ繰り返せばいいだろ
描画のタイミングさえあっていれば、更新処理自体は別に等時間間隔で呼び出す必要はないんだから

577 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 13:44:12 ]
質問内容については自己解決しました。
アクティブでないときに50msのウェイトをかける処理が残っていただけでした。

>>574
興味深いですね。そのような精度のタイマー(System.Timer)があるんですね。
System.Threading.Timerとは使い方が微妙に違うようです。
今回は結果として必要なくなったのですが、また必要になったときに詳しく調べてみることにします。
どうもありがとうございます。

578 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 13:54:13 ]
>>576
ほかのウィンドウメッセージと同期的に動かさないといけないので、(フルスクリーンモード切替とか)
他のスレッドを立ててまわすのはまずいんです。

まあ、やってできないことはないんですけどね。

579 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 19:07:57 ]
WebBrowser.NavigateToString メソッド が使いたくてソリューションエクスプローラー参照の追加で
PresentationFrameworkを追加し、namespace WindowsFormsApplication1内に
using System.Windows.Controls;
と記述しても
「'System.Windows.Forms.WebBrowser' に 'NavigateToString' の定義が含まれておらず、
型 'System.Windows.Forms.WebBrowser' の最初の引数を受け付ける拡張メソッドが見つかりません
でした。using ディレクティブまたはアセンブリ参照が不足しています。」
とエラー表示されて使用出来ません
同じ名前空間とアセンブリのWebBrowser.Navigate メソッドは問題なく使えるのですが
設定の仕方が間違っているのでしょうか?

580 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 19:27:11 ]
System.Windows.Controls.WebBrowser使わないと駄目だぜ
でWinForm上で表示するならSystem.Windows.Forms.Integration.ElementHostが必要



581 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 19:45:35 ]
つかHTMLを表示したいだけならSystem.Windows.Forms.WebBrowserでもDocumentTextとか使えば良いんだが…

582 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 20:30:56 ]
>>578
自前でループ書き、メッセージ処理はApplication.DoEventsで処理させるというのはどう?

583 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 20:48:33 ]
>>580
System.Windows.Forms.Integration.ElementHostが必要ということでまだそれを理解するには時間がかかりそうです
勉強してみます ありがとうございました

>>581
.WebBrowser1.DocumentText = "test";
と書いて表示する事が出来ました
ヘルプから調べられるWebBrowserメンバでtextとかstringで検索しても出てこなかったので
あることすら知りませんでした ありがとうございました



584 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 22:17:21 ]
Windows.Formのクラスが

Form1.cs
Form2.cs
Form3.cs



とあってそれらフォームのタイトル、Textを取得することはできますか?
リフレクションでクラス名は取得できたんですが。
そのクラス名からActivator.CreateInstance()してTextも取れるんですが、
どうにも遅いです。
簡単に速い方法があったら教えてください。

585 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 22:21:55 ]
ありません
そんなものが必要になること自体間違っています
まずは考え方を矯正しましょう

586 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 22:51:13 ]
初心者がリフレクションを使う場合、本当は必要ないことがほとんどだ。

587 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 00:09:53 ]
あらかじめ(静的に)FormのタイトルとTextを格納したデータを持てば?

588 名前:デフォルトの名無しさん [2009/07/16(木) 00:14:51 ]
if(hoge==null){return}
if(hoge!=null){...}
nullチェックってどっちがいいんでしょうか?好みでいいんですね?

589 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 00:24:43 ]
>>588
nullかどうかの問題じゃなくて、
if-else は短い方から書けっていう格言があったりする。

590 名前:デフォルトの名無しさん [2009/07/16(木) 00:28:35 ]
APIを利用する為にテキストボックスに入力されたテキストを
constにする必要があるんですがどうすれば良いでしょうか?



591 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 00:29:50 ]
>>589
ありがとうございます。
そんな格言があるんですね。いつも長い方から書いていた。この場合は前者を使用すべきですね。

592 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 01:01:03 ]
>>590
ちょっとそのAPIのDllImportしてるところ書いてみろ

593 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 01:19:10 ]
>>592
DllImportしてるなんて微塵も書いてないが…

594 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 01:26:37 ]
じゃあどうやってAPI呼んでるんだ?

595 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 01:39:01 ]
「APIを利用」とは何の事だよ

596 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 02:13:15 ]
LoadLibraryとGetProcAddressをDllImportして
関数ポインタにMarshal.GetDelegateForFunctionPtr使ってデリゲート取得してAPI呼んでるとか?

597 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 02:27:35 ]
>DllImportしてるなんて微塵も書いてないが
で、してるの?してないの?

598 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 02:43:36 ]
APIを常人とは違う意味で使っているに10ゲイツポイント

599 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 03:35:54 ]
APIと言っただけで、Win32APIと言った訳ではないしね

600 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 05:39:31 ]
それがどうした



601 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 08:00:39 ]
>>598
a πとか?

602 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 08:39:34 ]
>>597
俺にきくな

603 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 11:09:05 ]
>>600>>602
何で一々噛みついてんの?

604 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 18:04:11 ]
APIはDLLだけだと思ってる人があらわれた!

605 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 18:12:03 ]
あらわれなくていいよ

606 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 18:43:42 ]
>>590は現れろよ

607 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 18:45:37 ]
もう逃げたってば

608 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 19:30:34 ]
WebAPIの類とか・・・
そんでもTextBox.Textがほにゃららの件は意味分からんけど

609 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 19:35:39 ]
const char*の引数を持つAPIに
stringを渡したいけどどうすればいいかと
聞いてるだけとか

んで書き込んだ直後に解決してほったらかし

610 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 19:36:51 ]
593が要らん突込みをしなければこんな伸びなかったな。



611 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 19:47:33 ]
みんなこれくらいなら答えられそうだと思っててうずうずしてるんでしょ

612 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 22:54:46 ]
C#ってフリーの開発環境あるんですか?

613 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 22:55:58 ]
まずフリーの意味をだな

614 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 23:02:00 ]
>>612
MONOというものがあるので使ってみたら?

615 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 23:21:31 ]
フリーの開発環境・・・VisualStudioExpressEditionとSharpDevelopがあるが。

616 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 00:15:33 ]
emacsでいいよ

617 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 00:17:44 ]
へぼすぎて却下

618 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 00:52:15 ]
emacsって、慣れてる人には良いんだろうけど、
とても俺には向いてない。

619 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 01:39:12 ]
スクリプト言語ならともかくC#でemacsはかえって損だろw

>>603
どのあたりが噛まれてるんだ?
一方的におまいがプッツンしてるようにしかみえん



620 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 02:01:20 ]
>>619
>どのあたりが噛まれてるんだ?
>一方的におまいがプッツンしてるようにしかみえん
↑こういうのが 噛みつく って言うんじゃね?
おまいもプッツンしてるようにしかみえん



621 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 02:49:05 ]
いいからもう失せろよゴミ君

622 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 05:41:04 ]
>>621
プッツンしてるの?

623 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 06:35:32 ]
してないよチンカス君

624 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 06:51:44 ]
「プッツン」って懐かしいなw

625 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 06:56:10 ]
グリコが作ってるプリンだっけ

626 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 08:49:52 ]
それプッチンや

627 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 09:03:57 ]
>プッツン・ゴミ君・チンカス君
言葉の選び方が古臭いのは何でだろう。書いてる人の年齢が気になるw

628 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 09:35:04 ]
IDありなら真っ赤な奴がいるな
単発のフリもしてそうだな

629 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 11:30:48 ]
今、入力チェックの勉強中。
Validatingでやるのがいいようだけど問題もいろいろあるみたいで悲しい。
いまいちValidatingが発生する条件が分からん。
TextBox1にいてフィールド移動するとなぜかTextBox5のValidatingが発生したりする・・・
その時はTextBox5でエラー値入れてESCキャンセルでTextBox5のValidatingをスキップするようにしてTextBox1にフォーカス移動してる。
スキップはここ参考にした。www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=29042&forum=7
で、TextBox1からフィールド移動するとなぜかTextBox5のValidatingが発生・・・
VS2003だけど古いから変なのかな?
マシン古いからVS2003でも遅いぜよ(Delphi2007はさくさく動いてるけど)

630 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 12:40:20 ]
>>629
リソースファイルをエディタで書き換えると、コントロールとイベントハンドラの
関連付けがおかしくなるよ。
そういう変なことはやってないと言い切れるなら、あとは…

別のテキストボックスへ移る時、キーボード操作(Tabキーなど)とマウスの時とで
イベントの発生する順序が変わるってのがある。
ttp://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.validated.aspx



631 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 15:13:10 ]
XmlDocument doc = new XmlDocument();
doc.LoadXml("file.xhtml");

こんな感じで、DOCTYPE宣言のあるxhtmlを読み込んでみたんですが、
たかだか4kくらいのファイルでも1分はかかってしまいます。
こういう仕様なのでしょうか。


632 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 15:33:24 ]
外部エンティティとか使ってない?

633 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 16:33:00 ]
>>630
> リソースファイルをエディタで書き換えると、コントロールとイベントハンドラの
それは触ってない、っていうかC#始めたばっかりで
リソースファイルが何なのか分からなかったり。

> 別のテキストボックスへ移る時、キーボード操作(Tabキーなど)とマウスの時とで
> イベントの発生する順序が変わるってのがある。
その情報は見つけて問題ないようにはしたんだよねー

なんとなくこれと同じ感じなのかなって気が。
www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=22041&forum=7
仕様なのか・・・ ウヒー

634 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 18:50:08 ]
>>633
仕様じゃしょうがないよね。
イベントの発生順序はコントロールできないから、
グローバル変数に状態を覚えておいて
自前で制御ってのはよく使う手。

635 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 18:57:43 ]
>>632
使ってないですー


636 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 19:07:54 ]
>>635
DOCTYPE宣言でttp://のDTD読み込んでないの?

637 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 23:08:32 ]
[DllImport("ws2_32.dll", CharSet = CharSet.Unicode, SetLastError = true, CallingConvention = CallingConvention.StdCall)]
static extern Int32 recv(
Int32 s,
IntPtr buf,
Int32 Len,
Int32 flags);

こんな風にしてDLLを直接呼び出すんだけどwsock32.dllの方も同時に使いたい場合はどう書けばいいの?
例えばwinsock32の方はrecv1でws2_32の方はrecv2で呼び出せるようにしたい

直接呼び出すことに意味のあるプログラムなんで、他に便利なクラスがあるだろとか
片方だけ使えとかそういうのは無しの方向でお願いします

638 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 23:20:27 ]
[DllImport("wsock32.dll", CharSet = CharSet.Unicode, SetLastError = true, CallingConvention = CallingConvention.StdCall)]
static extern Int32 recv1(
Int32 s,
IntPtr buf,
Int32 Len,
Int32 flags);

[DllImport("ws2_32.dll", CharSet = CharSet.Unicode, SetLastError = true, CallingConvention = CallingConvention.StdCall)]
static extern Int32 recv2(
Int32 s,
IntPtr buf,
Int32 Len,
Int32 flags);

639 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 23:22:03 ]

[DllImport("wsock32.dll", CharSet = CharSet.Unicode, SetLastError = true, CallingConvention = CallingConvention.StdCall, EntryPoint="recv")]
static extern Int32 recv1(
Int32 s,
IntPtr buf,
Int32 Len,
Int32 flags);

[DllImport("ws2_32.dll", CharSet = CharSet.Unicode, SetLastError = true, CallingConvention = CallingConvention.StdCall, EntryPoint="recv")]
static extern Int32 recv2(
Int32 s,
IntPtr buf,
Int32 Len,
Int32 flags);

640 名前:637 mailto:sage [2009/07/17(金) 23:22:37 ]
自己解決した



641 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 23:23:20 ]
>>639
その通りでした。どもども

642 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 23:28:01 ]
クラス分けるとかって手もあるけどな

643 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 00:31:37 ]
AutoElipsis = trueの時にテキストの省略された部分が
...ではなく…になるのは日本固有の領土ですか?

644 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 00:40:12 ]
>>643
フォントの問題では?
欧文フォントだと「…」のグリフが、 ... のように下のほうに点が配置されているのはよくあるよ。
実際、MS Sans Serif、TahomaやSegoe UIとかの歴代の欧米のUIフォントも軒並みそうなっている。

645 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 00:50:21 ]
とりあえず「日本固有の領土」と関係ないのは確かだw

646 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 01:32:11 ]
MS-IMEの変換候補でも下の方に小さい点が並んだやつが出てくる
まぎらわしいからやめてほしいんだが

647 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 02:35:20 ]
>>481
簡単にいってよー
プロばかりじゃないんだよー

648 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 02:56:53 ]
>>647
JITに任せておけば勝手に上手い事やってくれる。 これだけ頭に入れときゃおk

649 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 08:09:13 ]
>>643
同じ約物であっても言語によって組み方が変わるのはよくあること。

650 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 19:25:57 ]
Winsockで作ったSOCKETをSocketクラスに割り当てることって出来ますか?



651 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 19:34:24 ]
>>650
「割り当てる」ってなにをすること?

652 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 20:16:55 ]
「SafeFileHandleを引数に取るFileStreamコンストラクタのようなもの」のソケット版が欲しいということだろう。

653 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 20:46:16 ]
List<string> hogeA の中身

c:\temp\01.dat
c:\temp\02.dat
c:\temp\03.dat
c:\temp\04.dat
c:\temp\05.dat


List<string> hogeB の中身

01.dat
03.dat
05.dat


hogeAのうち、hogeBに含まれない
c:\temp\02.dat
c:\temp\05.dat
を残し、これをあらためてhogeAとしたいです。

これを実現するにはどのようにプログラムを組めばよろしいでしょうか?

654 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 20:49:53 ]
1. hogeA の要素を列挙する
2. 各要素が hogeB に含まれているか判断する
3. 含まれていなければ、 hogeC に追加
4. これを繰り返す
5. hogeC を hogeA に設定

655 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 20:50:28 ]
hogeB に含まれてたら、hogeA から削除、って方がわかりやすいね。

656 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 20:57:53 ]
LINQ に Except ってのがあるよ。
ufcpp.net/study/csharp/sp3_stdqueryo.html#set

657 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 20:59:01 ]
2重のfor文を回す必要があるというわけでしょうか?

658 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 21:01:20 ]
>>657
突き詰めればその通り。
List<T>.ExistsとかEnumerable.Exceptで見た目上のループは減らせるけどな。

659 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 21:03:31 ]
この辺の繰り返し処理はプログラミングの基本の基本。便利なライブラリの機能に
お任せしちゃうのではなく、一度は自分で実装してみることをお勧めするよ。

660 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 21:24:42 ]
そして一度実装したあとは、ライブラリの機能のほうを使うようにすべき、だね。



661 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 22:47:22 ]
バーで繋いで正規表現にする方法もあるな。あまりお勧めは出来ないが。



662 名前:653 mailto:sage [2009/07/19(日) 23:08:25 ]
removeAllメソッドを使って除去しようと試みました。

for (int i = 0; i < hogeB.Count; i++){
 hogeA.removeAll(
  delegate(string s)

 );
}

663 名前:653 mailto:sage [2009/07/19(日) 23:10:26 ]
失礼、途中で投稿してしまいましたorz・・・

removeAllメソッドを使って除去しようと試みました。

for (int i = 0; i < hogeB.Count; i++){
 hogeA.removeAll(
  delegate(string s)
   {
    s == @"c:\temp\" + hogeB[i];
   }
 );
}

ただこれだとコンパイル時にエラーが発生してしまいました。
どこか書き方に間違いでもあるでしょうか?

664 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 23:16:01 ]
エラー読めよ

665 名前:653 mailto:sage [2009/07/19(日) 23:20:54 ]
最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。
匿名メソッド' から 'System.Predicate<string>' に変換できません。
割り当て、呼び出し、インクリメント、デクリメント、および新しいオブジェクトの式のみがステートメントとして使用できます。

表示されているエラーはこの3つでした

666 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 23:22:06 ]
匿名メソッドの戻り値が明示されていない
returnをしてないし

667 名前:653 mailto:sage [2009/07/19(日) 23:38:18 ]
>>666
そういうことでしたか( ̄□ ̄;)!!

for (int i = 0; i < hogeB.Count; i++){
 hogeA.removeAll(
  delegate(string s)
   {
    if ( s == @"c:\temp\" + hogeB[i] )
     return true;
    else
     return false;
   }
 );
}

で、ひとまずはビルドは通ったようです。
これで様子を見てみます。
ありがとうございました。

ちなみにこれよりもっとスマートな記述方法はあると思いますか?
ベースは C#2.0 + .Net Framework2.0 ということで。

668 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 23:39:51 ]
.NET 2.0はともかく、C#2.0はもう捨てようよ。

669 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 23:40:28 ]
return (s == @"c:\temp\" + hogeB[i]);

670 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 23:41:36 ]
3.0
removeAll( (s)=>(s == @"c:\temp\" + hogeB[i]) );



671 名前:653 mailto:sage [2009/07/19(日) 23:48:52 ]
>>669
あ、そんな略記があったのね(;^ω^)

>>668
>>670
それが持ってるのがVS2005なもんで(´・ω・`)・・・

672 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 23:49:55 ]
略記って……
おまえが勝手に複雑に書いてるだけだろ……

673 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 23:50:59 ]
低品質なスレですね

674 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 01:37:43 ]
>>671
2005 でも LINQ 使えるようにできるだろ

675 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 01:39:09 ]
すまん LINQ じゃなくてラムダ式か

676 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 01:43:14 ]
>>674
2008で.NET 2.0対象のときでもラムダ式を含むC# 3.0の構文が使えるということとごっちゃにしていない?

677 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 02:12:31 ]
>>671
Expressでいいからとっとと2008にすべき

678 名前:653 mailto:sage [2009/07/20(月) 02:12:39 ]
>>674
2005じゃλは使えない気が(;・∀・)・・・

679 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 02:18:56 ]
hogeBのループはforじゃなくてforeach使うべきだね

680 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 02:27:11 ]
JITなんだジットってもー
地頭か?何だ?簡単に頼むよ



681 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 02:47:26 ]

λ......        ザッザッザッ… λ......       λ......λ......         λ......       λ......
     λ......            λ......λ......         λ......       λ......
樹     λ......      λ......            λ......λ......         λ......       λ......
海  λ......                  λ......λ......         λ......       λ......
←       λ......          λ......λ......         λ......       λ......
                λ......λ......         λ......       λ......
    λ......       λ......        λ......         λ......       λ......  λ......トボトボ
                              ザッザッザッザ…

682 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 02:49:36 ]
>>679
どうして?

>>681
ちょっwwwww

683 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 09:25:26 ]
C#2,0捨てようとかアホか。
ラムダ式なんて無理に使う必要ねーよ。

684 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 10:15:07 ]
ラムダ式をありがたがる心理って簡潔至上主義だと思ってるが、どうなんだろ。
簡潔さ以外にメリットある?
そして簡潔さによる保守性低減のトレードオフって収支は本当にプラス?

685 名前:デフォルトの名無しさん [2009/07/20(月) 10:21:06 ]
>>684
2chスレのラムダ支持層レベルだとトレードオフにはならないね。
無駄に使いたがる印象しかない。

686 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 11:39:29 ]
>>684
遠く離れたところに1行関数を作って呼ぶよりも、ラムダにしたほうが簡潔で保守性は良くなるね。

それ以上に凝るのは趣味の世界だね〜。

687 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 11:40:53 ]
>>684
その場に処理書かないとかえって見づらい場合ない?

1・2行だけDispatcher.Invokeしたいときとか、
変換テーブル作りたいときとか。

要するに↓みたいな。

Dispatcher.BeginInvoke(() => { OutputText.Text = hoge; });

var table = new Dictionary<string, Func<int, int>> {
 { "TypeA", x => x * x },
 { "TypeB", x => Math.Abs(x) },
...

688 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 11:43:01 ]
LINQ の仕組みにはラムダ必須だし、

あと、ローカル変数をキャプチャしたい場合、
ラムダ(というか匿名デリゲート)がなかったら
わざわざinnerクラス1個書かなきゃいけなくなるしねぇ。


689 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 11:48:18 ]
>>686
デリゲート使えば遠くに関数作る必要はない。

690 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 12:07:54 ]
匿名メソッドで済むって話でそ。
まあ最初からラムダが使えれば匿名メソッドはあんまいらんけど。
濫用するような話とはまた別ね。




691 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 12:18:38 ]
あー、() => {} 構文じゃなくて delegate(){} 構文使うのじゃダメかって話か。

あれもでも、C# 開発者曰く
「ラムダを先に導入してたらdelegate構文なんて用意しなかった」
って言ってるしなぁ。


692 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 12:29:58 ]
{}で囲めばラムダでも複数のステートメントもreturnも書けるから実際匿名メソッドは要らない
匿名メソッドの唯一のメリットはパラメータを省略できることだけど、
それだけのために表記のゆらぎを許す価値があるかどうか

693 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 12:37:41 ]
そのうちMSがガイドラインで何か言い出すんじゃないかと思ってる

694 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 12:44:38 ]
λ式のトレードオフを語っている割に、デメリットが出ていない気がw

695 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 12:47:32 ]
delegateより視認しにくいくらいじゃねえの

696 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 12:56:09 ]
言語の方向性として、関数型を取り入れていくよと明言されてるわけで
わかりにくいとかいうのは無意味だな

697 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 13:12:06 ]
構文の親和性の低さによる視認性の悪さもあるけど
引数の型を省略できることの分かりづらさってのはどうなの。

698 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 13:12:59 ]
いずれにせよ、初心者用スレで延々と語る話じゃない。

699 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 13:31:53 ]
キャプチャ周りの罠は初心者も気をつけるべきだろ

700 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 14:07:20 ]
保守性下がるので業務では使えない。



701 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 14:29:34 ]
保守性下がるのでC#は使えない。

702 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 14:50:59 ]
ラムダ厨はテスト端折るので一緒に仕事したくない。

703 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 15:00:41 ]

462 名前:デフォルトの名無しさん[sage] 投稿日:2009/07/06(月) 20:59:27
LINQ書く奴ってなんでテスト端折る奴ばかりなんだ?

469 名前:デフォルトの名無しさん[sage] 投稿日:2009/07/06(月) 21:58:25
テストまで1/3にしないでください。

702 名前:デフォルトの名無しさん[sage] 投稿日:2009/07/20(月) 14:50:59
ラムダ厨はテスト端折るので一緒に仕事したくない。






余程な職場環境におかれておられる様で
無様で惨めだな

704 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 15:07:01 ]
職場とか業務でどうとか言われてもねえ…。
ここ初心者スレだし、「そうですか。おつかれさまです」としか言いようがないな。

それともあれか?報われないのを褒めて欲しいのか?
そういうのはマ板でやってくれよ。

705 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 15:08:26 ]
3.0仕事で導入してるのってどんぐらいなんだろうな
今はまだ2.0のほうが意思合わせ楽そうだけど

706 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 15:13:06 ]
>>704
どこの初心者スレも似たようなもんだけどな
javaスレとか

明らかに底辺ドカタのストレス発散場になってる
そんなことをしていてもお前の暮らしは向上しないのにな

707 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 15:19:57 ]
独立すりゃいいのに

708 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 15:22:04 ]
ラムダスレとか建てても、結局初心者スレを荒らしに来るから意味なし。

709 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 15:28:41 ]
弱い者達が夕暮れさらに弱い者をたたく構図ですね、わかります。

710 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 15:41:38 ]
c#はまだおわらんよ!でもVCのほうも同じぐらい力入れてくれるとありがたいです;;



711 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 15:43:42 ]
C#でWindowsコンポーネントを使わないUIってどうやったら作れますか?
情報が載ってる本かサイトを教えてもらえると嬉しいです。
例えば、Mac風デザインのような感じです。

712 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 15:49:45 ]
>>711
GUI ツールキットを使うことになるんだろうけど、あんまりないなぁ。
Qt は使えるんだっけ。

713 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 15:51:32 ]
WPFだろ
デザインは自由自在

714 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 16:02:31 ]
WPFってガワ部分は変えられないんですか?

715 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 16:05:14 ]
ガワ?

716 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 16:13:32 ]
最大化や閉じるボタンなどがある枠です。
その内側では何でもできそうな感じで、かなり素晴らしいのですが。

717 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 16:13:43 ]
ウィンドウの枠を非表示にしてそれっぽいのを自分で描く

718 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 16:16:47 ]
>>717
なるほど。WPFをMSサイトで勉強してきます。
参考になりました。ありがとう。

719 名前:デフォルトの名無しさん [2009/07/20(月) 17:10:08 ]
入門書でC#の基礎文法を一通り勉強しました。
しかし、今までスクリプター(Perl, JavaScript, Ruby)で、
GUIアプリケーションの制作経験は皆無であるため、
Visulal Studio でGUIアプリケーションを作る方法がよく理解できません。
何となくならいじれるのですが、体系的に勉強するにはどうするのがオススメでしょうか?

720 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 17:14:19 ]
>>719
畳の上の水泳より、下手でもとにかく水の中で泳ぐほうが学習効率高いんじゃない?
GUIは特にそうだと思うけど。
(必要なら)体系的学習は後追いでもできるし。



721 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 17:22:27 ]
>>720
入門書は全てcsc.exeを使ってコンソールで作業していたので、
まずは、チュートリアル的なサンプルアプリケーションを何個か作りたいんですよね。

広く浅くでいいので、VSおよびGUIアプリ制作を把握したいのですが、
MS公式の解説書は何だかMSDNチュートリアル同様で、入門の入門という感じだし、
他の入門書は、VSについてほとんど書かれていないしで困っています。

訳分からなくてもとりあえず慣れるがベストなのかなぁ? やはり。


722 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 17:31:14 ]
フォームに手当たり次第にコントロール貼りまくって適当に連動させてごらんよ
方向性は決めなくていいから

723 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 17:36:17 ]
どのコントロールでどんなことができるか、を一通り確認するくらいかなぁ。

具体的な実装は、システム要件に応じて考えるし。

724 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 18:04:40 ]
>>721
C#でcsc.exeを使わせる入門書って、なんて悪書?

725 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 18:11:30 ]
MSの公式解説書だろ
C#できると言ってcsc.exe使えないなんて話もあるまい

726 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 18:23:13 ]
>>724
独習C#です……。プログラミングC#は、最初からは敷居高いかなと思って。

727 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 20:06:49 ]
cscのオプションなんて覚えてもいないぜ。


728 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 21:31:56 ]
>>726
あーあ、かっちゃったかw

729 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 21:33:18 ]
あんなもん立ち読みでいいのに

730 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 23:47:04 ]
泳げないやつは沈めばいい



731 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 23:53:31 ]
プログラミングC#が敷居高いって絶対読んでなさそう
GUIオンリーだった俺はRonRやってるがスクリプトわけわかめw

732 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 01:34:19 ]
delegateとかもうちょっと綺麗に実装出来なかったのかね

733 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 02:06:53 ]
例えばどういう風に?

734 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 02:30:50 ]
例えばキーワードを省略してdelにするとか

735 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 02:47:47 ]
delだとdeleteの略みたいになるから却下

736 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 03:10:41 ]
もうちょっと綺麗に実装 → 省略してdelに

wwwwwwwwwwwwwww

737 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 03:38:19 ]
俺の知ってる英単語を使ってくれ
デレゲートなんて意味がわからんわ

738 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 03:54:37 ]
普通にクラスポインタみたいなのを残せばいいのに
なんでいちいち全部の関数のdelegateを定義して呼ばないといけないんだ

739 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 04:28:36 ]
>>735
じゃあdeleで

740 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 05:28:15 ]
tsun-dele



741 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 08:26:30 ]
tsun-delete

742 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 08:35:08 ]
>>738
FuncとかActionがあるけど

743 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 09:49:41 ]
>>734
キーワードの省略は最悪。
Unix 系のライブラリとか、ときどき見れたもんじゃないのがある。

C# は省略形のキーワード1つもないでしょ。

>>738
型安全性のため。

744 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 14:15:48 ]
タイプセーフはデリゲートの目的であって理由じゃない

そうなると別にどういう構文でもタイプセーフなら良いことになるでしょ
実際にそうなってるしね

745 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 15:28:29 ]
複数のファイルを連結する方法を教えてください。
下記のようなことって、C#だとどう書くんですか?
ひとつひとつFile.ReadしてFile.Writeしないとだめですか?
copy file01.txt+file02.txt+file03.txt+file04.txt newfile.txt


746 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 15:45:26 ]
C#で製品を作ってる会社はexeを暗号化してるんでしょうか?
ソースコード丸見え・・・

747 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 15:47:34 ]
>>745
File.ReadAllText()で読んでFile.AppendAllText()で追加してけば楽なんじゃない
使ったことないけどw

748 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 15:48:12 ]
今時はライセンスで縛るから丸見えでもどうでもいいのです
難読化くらいはしてるかもね

でも初心者には関係ないよ
お前のコードなんてわざわざ見る気にもならないからね

749 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 15:53:53 ]
>>747
やっぱりそれしかないんだ…。
配列に配列を追加するにはどうしたらよいですか?
copy file01.txt+file02.txt+file03.txt+file04.txt newfile.txt
string[] keywords = File.ReadAllLines("file01.txt");
keywords = keywords + File.ReadAllLines("file02.txt");
keywords = keywords + File.ReadAllLines("file03.txt");
keywords = keywords + File.ReadAllLines("file04.txt");
とかで追加できるんですか?


750 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 15:55:06 ]
どの言語でも初心者が一番初めに気にする所だよな。
「ゲームは作れますか?」と「中身の暗号化できますか?」は。

少なくともそんなことを聞かなきゃ分からない内は全く関係のない話だ。



751 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 15:56:33 ]
>>749
配列ってさあ

string[] strArray = new string[]{ "aaaaa" , "bbbbb" , "ccccc" }

こう書けるのは分かる?






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

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

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