暇つぶし2chat TECH
- 暇つぶし2ch600:デフォルトの名無しさん (ワッチョイ 1258-3CwI)
17/02/14 11:30:18.74 8kq18t1J0.net
音声をSoundPlaerで再生しようとするプログラムを作っています
単純にプロジェクト作成で作られるForm1に音声再生用クラス(SoundPlayer)を用意
別スレッドで再生する関数(SoundPlayer.Play)を作って音声再生を実施する形にしてます
そこで実体化とかで親フォーム(Form1)を指定する形にして再生終了したときに
form1.Invork((MethodInvoker)delegate(){form1.endPlayEvent()});
で関数呼び出すと終了時のForm1のボタンとかが操作ができるのはわかります
しかし別プログラムに再生用クラスを持っていくときに
できるだけこのクラスを書き換えしたくないので
Formに通知してイベントを起動する形とかできるのでしょうか?

601:デフォルトの名無しさん (ワッチョイ 124c-YCZx)
17/02/14 11:32:16.56 CQeCieXf0.net
>>589
もうちょい詳しく。
プロセス間通信みたいなもん?

602:デフォルトの名無しさん (アウアウウー Sab3-cZcy)
17/02/14 11:38:24.01 PdY4D7f4a.net
そんな難しい話じゃなく、恐らくFormに処理を書いちゃってるVBerなノリの人なんでしょう

603:デフォルトの名無しさん (ワッチョイ 1258-3CwI)
17/02/14 11:49:51.24 8kq18t1J0.net
>>590
VBerかはわからないけどこれから色々書いていって学ばないと行けないのは分かってる
とりあえずやってみようとしているのは
Form1のボタンクリック(ボタンの無効化)

音声データを作って、再生クラスへ投げる

別スレッドで処理開始(await Task.Run()=>を使用)

SoundPlayer.PlaySync()で再生

再生終了したときにForm1に終了を通知

通知を受けたForm1が再生終了の処理(ボタンの有効化)
今回はボタンの無効化だけど、他の処理もやることになるかもと思って聞いてみた

604:デフォルトの名無しさん (ワッチョイ 124c-YCZx)
17/02/14 11:58:52.16 CQeCieXf0.net
何か、Programに静的メンバーでその再生クラスを入れればいいんじゃね
とエスパー?

605:デフォルトの名無しさん (ワッチョイ 3223-ENO3)
17/02/14 12:12:01.84 zkaGzzQt0.net
>>592
要するにコントロールのスレッドセーフな呼び出しでしょ?外部からInvokeするより、やはりTaskを返すべきじゃないかなぁ
TaskCompletionSourceで実体のない任意に状態を設定できるTaskも作れる、あとはForm側でawaitするなり
TaskScheduler.FromCurrentSynchronizationContext()を与えてContinueWithしておくなり…

606:デフォルトの名無しさん (アウアウウー Sab3-cZcy)
17/02/14 12:13:11.38 PdY4D7f4a.net
>>592
真面目な話、何が聞きたいのかちゃんと他人に理解できるように書かないと
誰も回答しようがないよ。
悪いけど何がしたくて何を質問してるのかさっぱりわからない

607:デフォルトの名無しさん (ワッチョイ 1258-3CwI)
17/02/14 12:18:48.12 8kq18t1J0.net
>>593-595
わけわからない質問してごめん
色々ゴチャゴチャになってて考えとかが纏まってない気がしてきた
ちょっと休憩とかして、頭をクリアにしてから書いて貰ったことを調べてみる

608:デフォルトの名無しさん (ワッチョイ 2790-jWyY)
17/02/14 12:37:48.40 Nim8Pln30.net
>>588
すいません、関係する組み合わせとはなんですか?

609:デフォルトの名無しさん (ワッチョイ df6d-DR2M)
17/02/14 12:55:23.20 XyImroZT0.net
初心者は大人しくバックトラックで解いた方がいいんでないの

610:デフォルトの名無しさん (ワッチョイ df6d-DR2M)
17/02/14 12:58:55.86 XyImroZT0.net
何らかの事情で劇的な速度が欲しいならSATソルバー使う方が速い

611:デフォルトの名無しさん (ワッチョイ 93bb-cGUq)
17/02/14 13:09:33.16 dpHbb6/Q0.net
>>597
9*(決まってない空白数)だけパターン数があると考えてすべて整合性チェックすればいいんだよ。
あとは自由に最適化しろ。

612:デフォルトの名無しさん (ワッチョイ 635b-t8AD)
17/02/14 17:38:40.59 BsjgcFem0.net
複数選択可のListBoxのSelectedIndexChangedイベントにおいて、
今まさに選択されたアイテムのindex (VBのListBox.ListIndexのような感じです)を得るにはどうすれば良いですか。

613:デフォルトの名無しさん (ラクッペ MMc7-iIq0)
17/02/14 18:37:27.66 e3yTVnI+M.net
formアプリとただのASP.NETと
VBはもうサポートしなくて良いよね
分散しまくってるから
リソース集中して欲しい

614:デフォルトの名無しさん (アウアウウー Sab3-cZcy)
17/02/14 18:42:24.50 PdY4D7f4a.net
>>601
そのイベントって選択解除や選択されている項目を削除した時も発生するし、
ListBoxってShiftキー押しながらクリックで複数項目を選択したり解除したりできた気が

615:デフォルトの名無しさん (ワッチョイ 635b-t8AD)
17/02/14 20:04:39.55 BsjgcFem0.net
>>603
言い忘れていましたが、C# 2.0の話です。
ListBoxのプロパティSelectionModeをMultiSimple等にすると、複数選択できるようになります。
何をやりたいかというと、1つのListBoxで項目を6個以上選択できない(5個までなら選択できる)ようにしたいのです。

616:デフォルトの名無しさん (ワッチョイ 7642-LB0c)
17/02/14 20:29:01.97 8xZyzg4v0.net
>>587
C#ってかアルゴリズムだと思うけど9×9の数独なら力技でもそんな時間かからんぞ
空きマスに1置けるか?置けないなら2置けるか?
ってチェックしていって置ける数字がでたら次の空きマスに移動
移動した先で置ける数字がなくなったら1個戻って数字を変える
みたいな処理を再起で組めばいける
この手法だと回答が複数ある時、あるいはパズルとして成立しない時(途中で手詰まりになる時)でも無理やり回答を出してしまうっていう問題があるけど

617:デフォルトの名無しさん (ワッチョイ 2790-jWyY)
17/02/14 22:01:03.75 Nim8Pln30.net
>>605
空きマスに1置けるか?置けないなら2置けるか…ってやっていくのはわかるんですが
自分がやっている縦横同ブロック検索しておける数字が一つに絞り込めた場合、代入するようにしてるんですがこれ違うんですか?

618:デフォルトの名無しさん (ブーイモ MM4b-ZWt2)
17/02/14 22:09:41.60 mO6RmRZWM.net
>>606
数独を解いたことあれば、それだけではクリア出来ないのは良くあることなんだけど……

619:デフォルトの名無しさん (ワッチョイ 7642-LB0c)
17/02/14 22:11:49.93 8xZyzg4v0.net
>>606
一つに絞り込めなくても現時点で置けるならとりあえず置いて次に行くの
順次進めて行ってどこかのマスで何の数字も置けないようになってしまったら今まで置いてきた数字に何処かに誤りがあったってことだから戻って別候補にするって感じ
マスに入る数字を一つに絞り込んで進めていくやり方は数独のテクニックを理解してそれをプログラミングしていく必要がある
上級問題は当然そのテクニックも難解になるから上下左右ブロックを見るだけ程度のテクニックだけでは解ききれない
問題制作側で回答チェック等まで踏まえたツールなんかを作成するなら当然このあたりまで考慮して製作する必要があるけど
ひとまず回答だけ求めるなら前半に書いた手法で十分だよ

620:デフォルトの名無しさん (ブーイモ MM4b-ZWt2)
17/02/14 22:19:23.18 mO6RmRZWM.net
あれ?そもそも最上段の左から2番目埋まってないな。
やろうとしてるロジックも未完成なんじゃね?

621:デフォルトの名無しさん (ワッチョイ 7230-VyiL)
17/02/14 22:25:20.31 5IUCJa7e0.net
もう諦めてsquatでもしてこいよ

622:デフォルトの名無しさん (ワッチョイ 2790-jWyY)
17/02/14 22:40:12.49 Nim8Pln30.net
>>608
再起がすごい苦手なんですが・・・どこまで潜っていくのかわからないですし
どう抜ければどう書けばいいのかもわかりません

623:デフォルトの名無しさん (アウアウウー Sab3-cZcy)
17/02/14 22:45:26.95 PdY4D7f4a.net
>>604
完璧じゃないけどこの辺で妥協?
IEnumerable<object> mPrevSelectedItems = new object[0];
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
  var selectedItems = listBox1.SelectedItems.OfType<object>();
  var removeCount = selectedItems.Count() - 5;
  if (removeCount > 0)
  {
    var ex = selectedItems.Except(mPrevSelectedItems);
    var skipCount = ex.Count() - removeCount;
    if(skipCount >-1)
    {
      var items = ex.Skip(skipCount);
      Array.ForEach(items.ToArray(), x => listBox1.SelectedItems.Remove(x));
    }
  }
  mPrevSelectedItems = selectedItems.ToArray();
}
思ったより面倒くさいなあ

624:デフォルトの名無しさん (ワッチョイ 7642-LB0c)
17/02/14 23:13:26.80 8xZyzg4v0.net
>>611
別に実装は再起じゃなくても問題ないよ
アルゴリズムが理解できれば普通にループと分岐だけで組める

625:デフォルトの名無しさん (ワッチョイ 7bdc-3OfB)
17/02/14 23:35:48.88 +J5Ev49B0.net
>>611
こういう問題は手続きじゃなくてトップダウンで関数型的に考えると機械的に解ける
解 = 数独を解く(初期状態, []).FirstOrDefault();
数独を解く = (状態, 探索済) => 解けている(状態) ? [状態] : 次の候補(状態, 探索済).SelectMany(候補 => 数独を解く(候補, 探索済 + 状態)).First();
次の候補 = (状態, 探索済) => 数字を適当に1つ置いてみるときの全ての置き方(状態).Where(状態 => 矛盾してない(状態) && 探索済.含まない(状態));
数字を適当に1つ置いてみるときの全ての置き方 = 状態 => …
こんな感じで大雑把なところから細部を詰めていくの
具体的な動作をイメージしづらいかもしれないけど、結局やってることは ID: 8xZyzg4v0 と同じ

626:デフォルトの名無しさん (ワントンキン MM62-S0So)
17/02/14 23:40:20.02 UB3JXf9tM.net
数独はSQLで解くのがトレンド

627:デフォルトの名無しさん (ワッチョイ 323c-zlRv)
17/02/14 23:46:21.93 3qnQ1Gfx0.net
>>606
ここら辺を参考にしてみるとか
URLリンク(www.slideshare.net)

628:デフォルトの名無しさん (ワッチョイ 93bb-cGUq)
17/02/15 06:53:14.94 apHpeiac0.net
自分の頭で解けない奴には、その解法を仕様化できるわけがない。

629:デフォルトの名無しさん (スフッ Sd52-AyEu)
17/02/15 08:38:52.62 4NekN3gFd.net
9(縦)x9(横)x9(ありえる数字)のboolの配列持って、
まず既知のセルの8個の数字を消しこんで、
その次に、全セルを順番に縦、横、3x3のブロックでそれぞれ、あり得ない数字(≒縦、横、ブロック内の、ひとつだけになっているセル)を消しこんでいって、一周しても何も消せなくなるまで回って、
その後、ありえる数字の組み合わせの総当りにした方が多分良い。
ありえる数字の組み合わせを考えるから辛い。
あり得ない数字は別のセルから導出できるんだし。

630:デフォルトの名無しさん (ワッチョイ 7642-LB0c)
17/02/15 08:55:15.39 yJTbA8M80.net
>>618
処理が前後半の2段階になってるけど質問者は前半だけじゃ解けない問題に直面して困ってる&後半だけで解ける
って状態なんだからひとまず前半は要らない
後半作って上手く行ったなら処理速度向上とか考慮して前半みたいな処理を追加すればいい

631:600 (ワッチョイ 635b-t8AD)
17/02/15 09:42:28.85 J55wC/o80.net
>>612
うまくいきました。やはり選択されたアイテムを覚えさせておく方法が良いようですね。
どうもありがとうございました。

632:デフォルトの名無しさん (ワッチョイ df07-VyiL)
17/02/15 12:45:30.38 uvXQ5Mwv0.net
数独ソルバー程度で悩む奴もいるんだなあ
俺は厨房のころ作ったけど

633:デフォルトの名無しさん (スフッ Sd52-AyEu)
17/02/15 13:17:31.37 4NekN3gFd.net
>>619
うーん、総当りって現実的な時間には終わらんと思うが。

634:デフォルトの名無しさん (ワッチョイ df6a-VyiL)
17/02/15 13:59:57.66 1Sp8YgZp0.net
いまPythonで書いてみたけど5年前のMacMiniでも数秒で終わる

635:デフォルトの名無しさん (ワッチョイ df6a-VyiL)
17/02/15 14:06:17.53 1Sp8YgZp0.net
ideoneでも余裕で動いた
URLリンク(ideone.com)

636:デフォルトの名無しさん (ワッチョイ 7642-LB0c)
17/02/15 14:39:28.56 yJTbA8M80.net
>>622
作ったことないんでしょ
9✕9なんて一瞬、処理途中を描画しながらで数秒レベル
組み合わせは最大81の9乗あるから仮数字を全部入れてチェックなんて手法取ったらそら終わらん。
順番に仮置きして矛盾が発生した場合戻るってすれば、いわゆる枝切りみたいなのがどんどん発生するからすぐ終わる
計算量は知らん

637:デフォルトの名無しさん (スフッ Sd52-AyEu)
17/02/15 16:40:03.68 4NekN3gFd.net
>>625
矛盾があれば手戻り、と、矛盾を刈り込むのとはあんまり変わらん気がするけど。
そりゃどちらでも描画してるうちに終わるだろうけど、
どちらでもない方を言ってるんだよ、その愚直に置く方。

638:デフォルトの名無しさん (ワッチョイ 7642-LB0c)
17/02/15 16:53:27.86 yJTbA8M80.net
>>626
矛盾があれば手戻りは計算量が多くなるから基本コンピュータじゃないと現実的じゃない
その代わりどんな問題も解ける(以前書いたような例外はある)
計算量が多いって言ってもコンピュータからすれば大したことは無い
矛盾を刈り取りは一般的に人が解く際の行動をプログラミングしたものなので解法(テクニック的なもの)を実装することができればどんな問題でも解ける
その代わり数独であってもテクニックは難解な物がある
で刈り取りした後に手戻りすればいいじゃん、って言うけど手戻りだけで事足りるのになんでいきなり両方実装すんの?って話
ぶっちゃけ初めは現実時間で終わらんような愚直な実装でもいいと思う
そこからチューニングするとか何かアルゴリズム考えるとかすれば学べるんだから

639:デフォルトの名無しさん (スフッ Sd52-AyEu)
17/02/15 17:59:08.57 4NekN3gFd.net
>>627
それだと、矛盾が無いだけの解がただの計算順で一意に決まってしまうじゃん。
根本的な解決ではないと思うが。

640:デフォルトの名無しさん (ワッチョイ 7642-LB0c)
17/02/15 19:40:01.33 yJTbA8M80.net
>>628
だからその問題点は一番初めに言ってるじゃん
話ずらしまくるのやめよ?

641:デフォルトの名無しさん (ワッチョイ df6d-VyiL)
17/02/15 19:43:20.79 W/gL5Tp30.net
>>628
だから何だ質問者がいつその条件を求めたんだよ
コード書いたこともねえ雑魚は引っ込んでろ

642:デフォルトの名無しさん (スププ Sd52-YCZx)
17/02/15 20:47:50.66 kYO6iRfyd.net
投稿者は、この解を得るアルゴリズムを作成するというロマンがあるんだよ。

643:デフォルトの名無しさん (ブーイモ MM52-CvLw)
17/02/15 20:51:44.83 GPHsk9GRM.net
>>628
仮定法でも全ての解は得られるよ?
>>614のアルゴリズムでFirstを外せばできるはず

644:デフォルトの名無しさん (ワッチョイ 173c-CIv3)
17/02/15 21:22:49.38 ZsrpE5Vs0.net
APIからwebsocketをつかってJSONを取得したいのですがネットを色々見てもさっぱりわかりません。
具体的には
URLリンク(corp.zaif.jp)
のストリーミングAPIのbtc_jpyです。
ヒントや参考になるサイトでも構いません。よろしくお願いします。

645:デフォルトの名無しさん (ワッチョイ e223-CIv3)
17/02/15 22:38:19.69 DiO+GUbF0.net
>組み合わせは最大81の9乗あるから
本質的にはどうでも良い話だが、「同じ行、列には同じ数字は使えない」と言うルールを無視しすぎていて気になっちまう
「ものすごく多い」ってことが表現できているから何も問題ないんだけどな

646:デフォルトの名無しさん (ブーイモ MM52-CvLw)
17/02/15 22:42:17.14 9FXA/5kCM.net
>>633
クライアントライブラリあるじゃん
C#用はないみたいだけどC#わかるんならJavaなら楽勝だろ

647:デフォルトの名無しさん (ワッチョイ eb77-6bgE)
17/02/16 00:10:21.41 QO0gpLt00.net
>>633
codeprojectにjsonビューアのソースがあったような

648:デフォルトの名無しさん (ワッチョイ 3b3c-P9CU)
17/02/16 00:40:31.38 /E7gOtLl0.net
>>635
申し訳ないです。Javaのを見てもわかりませんでした。
>>636
jsonの処理は何とか出来るのですがwebsoketでの取得がわからないんです

649:デフォルトの名無しさん (ワッチョイ 5f30-O7jY)
17/02/16 05:22:57.59 1M26REHO0.net
そんなに分かりにくいところあるか…?
URLリンク(ideone.com)
JSONの切れ目は自分で探して
金儲けのためならその程度の維持は出して見せろ
その程度の才能もないなら発注サイトに行って金払って作ってもらえ

650:デフォルトの名無しさん (スププ Sd7f-6skL)
17/02/16 07:32:00.22 /4MLopCid.net
偉そうに

651:デフォルトの名無しさん (ワッチョイ 3b3c-P9CU)
17/02/16 10:57:00.19 /E7gOtLl0.net
>>638
これは参考になりそうです。ありがとうございます。

652:デフォルトの名無しさん (オッペケ Sr9f-PPpI)
17/02/16 12:50:57.39 Fl7cxYnSr.net
WebBrowserって今後もずっとIEなのかね?
Edgeにはならないんだ?

653:デフォルトの名無しさん (ブーイモ MM7f-FKuk)
17/02/16 15:05:24.57 SJI/N2PkM.net
絶対にない
WinFormsが業務向けのプラットフォームであること、既に開発が終了していることを忘れてはいけない

654:デフォルトの名無しさん (ワッチョイ 8bbb-eq+O)
17/02/16 15:33:56.56 QchVkuhj0.net
結局、Winform最強か。

655:デフォルトの名無しさん (アウアウオー Sa7f-xIS6)
17/02/16 16:23:17.22 /R92/z+7a.net
WebBrowserコントロールはIWebBrowserのだからIEのままでしょ
EditコントロールがEditで、リッチエディットコントロールになってないのと似たようなもん
WindowsUI.Xaml.WebViewかそんなとこでEdgeコントロールとしてはもう既に実装されてるんじゃないのかな

656:デフォルトの名無しさん (オッペケ Sr9f-PPpI)
17/02/16 17:18:26.44 Fl7cxYnSr.net
そうなのかあ
しかし困る人多いよね

657:デフォルトの名無しさん (アウアウウー Sa1f-Tc/C)
17/02/16 18:03:45.


658:02 ID:nVGauASoa.net



659:デフォルトの名無しさん (ワッチョイ 4bd6-eq+O)
17/02/16 18:53:57.26 yaBP1ZBT0.net
レジストリいじればEdge相当になったはず

660:デフォルトの名無しさん (ワッチョイ 0f9d-eq+O)
17/02/16 19:19:37.31 cjCClO980.net
WinFormsの開発再開すればいいのにね

661:デフォルトの名無しさん (オッペケ Sr9f-PPpI)
17/02/16 19:33:08.37 Fl7cxYnSr.net
>>647
そうなのかー
しかしユーザーがEdge持ってるとは限らないから面倒だね

662:610 (ワッチョイ 9b90-XdR7)
17/02/17 23:35:39.67 8hvoyQw40.net
レス遅くなってしまってすいません
>>618の後半なんですが、
1,候補の中の確定できない数字をとりあえず入れてみる
2.次のマスに移動、数値が入れられなかったら1に戻る
この繰り返しですよね?もしこれを複数回繰り返して戻らない場合2回以上前に入れた数値まで戻らないといけない場合ってありますか?

663:デフォルトの名無しさん (ワッチョイ 0f42-1n7Z)
17/02/18 02:25:11.55 f0aH9wlg0.net
>>650
2の手順は1に戻るじゃなくて1つ前に数字を入れたマスに戻るだね
1個前に入れたマスに戻って別の数字を探しても見つからなければ更に1個前に戻る
これを繰り返す
当然戻りまくって最初のマスに戻ることもある最初に入れた仮数字が間違ってたってことだから
要は全数字を入れるパターンを検索して矛盾が出ないパターンを求めてる
ただし途中で矛盾が出たら以降はそのパターンに紐づく内容は無視することで大幅に検索回数を削減できて結果的にコンピュータレベルの計算速度を用いればそれなりの速度で検索可能って寸法
理解が難しければ空きマスが超少ない問題で手を使って動きを確かめてみると良いかも
別にこの問題に限った話ではないけど大抵のプログラムは原理を理解できないと実装できないからね

664:610 (ワッチョイ 9b90-XdR7)
17/02/18 03:12:52.58 zyhHTWXk0.net
>>651
原理はわかってはいるつもりなんですが、どう書けばいいのかわかりません
1、4、7と入れてきて7の次に入れるものがない場合、4を変更しないといけないわけですがこれをどうやって渡すか
またもう一つ戻らないといけない場合、自分の理解の範疇を超えオーバーフローしてしまいます
他人のソースを読んでも頭に入ってきません

665:デフォルトの名無しさん (ワッチョイ 0f42-1n7Z)
17/02/18 04:35:14.78 f0aH9wlg0.net
>>652
あらま、その段階か
例えば仮数字を入れて次に進む時、今仮数字を入れた場所を記憶しておく配列を用意しておくとかどうだろう
進むたびに配列に仮数字を入れた場所が順次追加されていく感じ
戻る時は後ろから順に見ていけばいい
戻ってまた進む時は用意した配列を再度進むところから上書きする感じ
「5」番目のマスに1を入れた
「8」番目のマスに4を入れた
「10」番目のマスに入れられる数字がない
「8」番目に戻る
8番目には4が入ってるけどダメらしいので5以降で置ける数字無いか確認
それでも無ければ「5」番目に戻る
用意する配列には「5 8 10」って入ってるってことね
この配列のどこを今操作しているか?を指し示す変数もあったほうが分かりやすいかもね
○番目って言うのは左上のマスを1、右下のマスを81と仮定しての話ね
XYで管理してるならこの配列を2次元にしても良い
そんな効率良い方法じゃないけど直感的には理解はしやすいかと思うけどどうだろう
他に何か分かりやすい案があるかもしれん

666:610 (ワッチョイ 6b90-XdR7)
17/02/18 06:29:59.40 ULV0oBLe0.net
>>653
ありがとうございます、これだと書ける気がします

あと配列の中にある値のインデックスをLINQで取得しているのを拡張メソッドで定義したいですがうまくいきません
First()やCount()の定義を見よう見真似で書きましたが、Whereに何を入れたらいいのかわかりません
public static Type Index<Type>(this IEnumerable<Type> source, Func<Type, bool> predicate)
where Type : IEnumerable<Type>
{
return source.Select((value, index) => new { Index = index, Value = value })
.Where(item => )
.Select(item => item.Value).FirstOrDefault();
}
ひょっとして述語は引数として受けられませんか?

667:デフォルトの名無しさん (ワッチョイ 8b7b-eq+O)
17/02/18 08:10:24.40 bn0z7G5m0.net
あえてLinqで書くならこうかな?でもこういう場合foreachで書く方が速いし自然だと思う
public static int Index<T>(this IEnumerable<T> source, Func<T, bool> predicate)
{
  try
  {
    return source.Select((value, index) => new { Index = index, Value = value })
        .First(item => predicate(item.Value)).Index;
  }
  catch (InvalidOperationException) { return -1; }
}

668:デフォルトの名無しさん (ワッチョイ 0f42-1n7Z)
17/02/18 09:33:35.33 f0aH9wlg0.net
プログラム初心者だと思ってたら突然linqでてきてワロタ
俺には>>653の説明でなんで>>654に行けたか不思議だよ
linqは奥が深いけど面白いね

669:デフォルトの名無しさん (ワッチョイ 9b7b-g7u9)
17/02/18 12:02:11.53 H3MLhpM30.net
OpenFileDialog.ShowDialogを使用するとフリーズします。
昔からある障害のようなんですが、
>cymon.sysというファイルの排他制御関連の処理に不具合があるのが原因
らしいのですが、該当ファイルはありません。
他のアプリの排他制御関連のバグなんて特定出来る気がしません。
どうすれば正常に動かせますか?

670:デフォルトの名無しさん (スププ Sd7f-6bgE)
17/02/18 12:12:10.55 F1GmP7Hpd.net
>>657
もうちょい詳しく。
再現するOSや、不具合が再現するソースとかないん?

671:デフォルトの名無しさん (ワッチョイ 0f7b-TuOZ)
17/02/18 12:18:44.45 AobYyoSr0.net
ニコリの数独・カックロを、力任せに解く方法か?
バックトラック法だろ
「バックトラック法 数独」で検索!

672:デフォルトの名無しさん (ワッチョイ 0f9d-eq+O)
17/02/18 12:19:58.05 7QDYBSyf0.net
>>657
URLリンク(www.cyphertec.co.jp)
これのことだとしたら、修正プログラム入れるしかないのでは?
cymon.sysが本当に存在しないならもっと情報が必要だね

673:デフォルトの名無しさん (JP 0H1f-vlft)
17/02/18 12:43:04.59 1c96nb+dH.net
特定のソフト入れた時にそのソフトのバグで干渉するってだけやん
入れてないなら関係ないし入れてるなら
メーカーの修正あてるかアンインストールするかの2択やろ

674:デフォルトの名無しさん (ワッチョイ fb0d-NHlF)
17/02/18 14:47:28.87 lgYaiLIy0.net
CookieContainerの中身をWPFのDataGridで表示したいのですがどうすればいいですか?

675:デフォルトの名無しさん (ワッチョイ df4c-6bgE)
17/02/18 15:01:37.60 oF9zQOK10.net
そこでデーターバインディングでづよ

676:デフォルトの名無しさん (ワッチョイ df4c-6bgE)
17/02/18 15:25:02.48 oF9zQOK10.net
CookieCollection collection = new CookieCollection();
for (int i = 0; i < 16; i++)
{
collection.Add(new Cookie() { Name = i.ToString() });
}
dataGrid.ItemsSource = collection;

677:デフォルトの名無しさん (ワッチョイ df4c-6bgE)
17/02/18 15:25:23.75 oF9zQOK10.net
あとは自分で

678:デフォルトの名無しさん (ワッチョイ fb0d-NHlF)
17/02/18 19:51:02.62 lgYaiLIy0.net
CookieContainerをBindingさせるのは無理なんですね
そうなるとCookieContainerからCookieCollectionを取り出す必要が出てきますが
どうすれば関連付けされているUriを使わずにCookieCollectionを取り出せますか?(forやforeachを使いたい)

679:デフォルトの名無しさん (ワッチョイ 0f7b-eq+O)
17/02/19 01:31:58.50 bXEy6Thf0.net
他のツールなんかで動画とか音楽ををダウンロードしながらそれを開いて
先頭から順に読み込むツールを作ろうと思ってるんだけど

System.IO.FileStream fs = new System.IO.FileStream(@"C:\test.mp3",System.IO.FileMode.Open)

例えばこんな感じでmp3を開くとした場合って開いた瞬間のデータ量しか取得できないですよね?
増えていってるデータを順に取得していくいい方法って無いですかね?

680:デフォルトの名無しさん (アウアウウー Sa1f-Tc/C)
17/02/19 02:03:05.71 6CKE/L0Oa.net
>>667
タイマーでも使ってポーリングするだけじゃないの?

681:デフォルトの名無しさん (ワッチョイ 8bbb-eq+O)
17/02/19 05:52:50.50 mRSsjBQo0.net
日本ではダウロンードは違法。

682:デフォルトの名無しさん (ワッチョイ 6f20-eq+O)
17/02/19 10:21:49.03 7g+LYPG/0.net
音声合成APIを使ってみたくて
下記のサンプルコードを実行したのですが
音声が再生された後にプログラムが終了せず
残っています
どのようにすれば音声再生後にプログラムが
終了するでしょうか?
static void Main(string[] args)
{
var player = new SoundPlayer();
var http = new HttpClient();
// BASIC認証
http.DefaultRequestHeaders.Add("Authorization"
, "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes("hoge")));
// POST要求
http.PostAsync("URLリンク(api.voicetext.jp) new FormUrlEncodedContent(
new[]{
// リクエストパラメータ
new KeyValuePair<string , string>( "text" , "test" ),
new KeyValuePair<string , string>( "speaker" , "haruka" ),
}
)).ContinueWith(async task =>
{
// 音声データでない場合、例外が発生するので、適切な対処すべき…
player.Stream = await task.Result.Content.ReadAsStreamAsync();
player.Play();
});
Console.ReadLine();
}

683:デフォルトの名無しさん (ワッチョイ eb1e-1BHe)
17/02/19 10:29:46.11 FVPzcms80.net
>>670
再生後、コンソールでEnterキーを押す
または最後のConsole.ReadLineを削除

684:デフォルトの名無しさん (ワッチョイ eb77-B7Z5)
17/02/19 10:37:13.44 gToSbtQT0.net
>>671
後者じゃ、再生終わる前に終了しないかな

685:669 (ワッチョイ 6f20-eq+O)
17/02/19 10:41:11.22 7g+LYPG/0.net
Console.ReadLineの削除で
プログラムが終了したので悩みが解消したのですが、
音声再生が開始される前にプログラムが終了するという
新しい悩みが生まれました
音声再生の完了をコールバック等で受け取る方法は
あるでしょうか?

686:デフォルトの名無しさん (ワッチョイ eb77-B7Z5)
17/02/19 10:54:41.14 gToSbtQT0.net
>>673
player.Play();の次の行にEnvironment.Exit(0);でどうですか

687:デフォルトの名無しさん (ワッチョイ 6f20-eq+O)
17/02/19 11:06:34.51 7g+LYPG/0.net
>>674
試してみましたが、音声再生前にプログラムが終了しました

javascriptなら、コールバックとか取れそうですが
C#はいまひとつ解らず

688:デフォルトの名無しさん (ワッチョイ 6bdc-fFgi)
17/02/19 11:11:22.59 7Avz8j0c0.net
最後にTask.Waitしろ

689:デフォルトの名無しさん (ワッチョイ eb77-B7Z5)
17/02/19 11:28:40.83 gToSbtQT0.net
>>675
>>674やった上で、player.Play()をplayer.PlaySync()に書き換えて

690:デフォルトの名無しさん (ワッチョイ 6f20-eq+O)
17/02/19 11:35:24.12 7g+LYPG/0.net
player.Play();
task.Wait();
と書いてみたのですが
音声が再生される前に
プログラムが終了します
URIにPOSTする処理は
リクエストしたら状態が取れないのかなという
気がしています

691:デフォルトの名無しさん (ワッチョイ 6f20-eq+O)
17/02/19 11:38:27.06 7g+LYPG/0.net
>>677
player.PlaySync();
Environment.Exit(0);
としましたが、音声再生の前に
プログラムが終了しました

692:デフォルトの名無しさん (ワッチョイ eb77-B7Z5)
17/02/19 11:40:39.60 gToSbtQT0.net
>>679
元のConsole.ReadLine();消してちゃってない?
これも必要だよ。

693:デフォルトの名無しさん (ワッチョイ 6f20-eq+O)
17/02/19 11:48:07.03 7g+LYPG/0.net
>>680
音声再生の後にプログラムが終了しました
期待通りの動作です

ありがとうございます

694:デフォルトの名無しさん (ワッチョイ 0f7b-eq+O)
17/02/19 17:21:32.80 bXEy6Thf0.net
>>668
まだ勉強し始めた素人なのでポーリングというやり方があるんですね。
試してみます、ありがとうございました。
>>669
再生が最後まで行く、もしくはソフトを閉じる時に消去すれば
キャッシュという形になるから違法ではないと思いますし、
たしかあの法律は違法にアップロードされたコンテンツ(ゲームや音楽)を
知りつつダウンロードする行為が違法なんですよね?
YouTubeやTwitch、ニコ生などのライブ配信や動画を専ブラのような形で
なおかつ自分で使いやすいように作るのは違法でないという認識なのですが間違っていますでしょうか?

695:デフォルトの名無しさん (ワッチョイ 5b19-S9Lo)
17/02/19 17:23:40.86 djgzWXGW0.net
保存しなきゃセーフでしょ
ブラウザを作るのに認可がいるわけじゃないし

696:610 (ワッチョイ 6b90-XdR7)
17/02/20 01:42:50.37 Vf7595PK0.net
>>655
foreachで書く方法がわかりません、どんなふうに書くのでしょうか?



あと条件にあったインデックスを全て返す拡張メソッドを作りたいのですが、うまくいきません

int{} num = { 11, 12, 13, 14, 15 }
これで条件を「x > 12」にした場合「2、3、4」と返ってきてほしいのですがチャレンジしてもできません

return source.Select((value, index) => {if(predicate(value) return index; return 0; })
こういうふうにを書くと「x > 12」の場合「0,0,2,3,4」と返ってきてしまいます
どうかけばいいかヒント教えてください

697:デフォルトの名無しさん (ワッチョイ eb77-B7Z5)
17/02/20 02:30:59.52 M2SnzGbV0.net
>>684
値が要らない項目は、Select()する前にWhere()で弾いとかないと。

698:610 (ワッチョイ 6b90-XdR7)
17/02/20 03:25:39.28 Vf7595PK0.net
public static IEnumerable<int> IndexCollection(IEnumerable<Type> source, Func<Type, bool> predicate)
{
return source.Where(_ => predicate(_)).Select((value, index) => index);
}

こういうことですか?でもなぜかこう書くと評価されなくて返り値がnullのままになります

var list = num.Where(_ => _ > 12).Select((value, index) => index);

こう書くときちんと評価されるのですが・・・さっぱりわかりません

699:デフォルトの名無しさん (ワッチョイ 8b7b-eq+O)
17/02/20 03:28:01.67 Cim83SJm0.net
>>684
別に難しくなくて、素直に書けばいいと思うけど

public static int FirstIndex<T>(this IEnumerable<T> source, Func<T, bool> predicate)
{
  int index = 0;
  foreach (var val in source)
  {
    if (predicate(val)) return index;
    index++;
  }
  return -1;
}

条件にあったのも全て返すなら yield return を使う

public static IEnumerable<int> WhereIndex<T>(this IEnumerable<T> source, Func<T, bool> predicate)
{
  int index = 0;
  foreach (var val in source)
  {
    if (predicate(val)) yield return index;
    index++;
  }
}

700:デフォルトの名無しさん (ワッチョイ 8b7b-eq+O)
17/02/20 03:33:55.65 Cim83SJm0.net
無理矢理Linqで書くならこんな感じだろうか
public static IEnumerable<int> WhereIndex<T>(this IEnumerable<T> source, Func<T, bool> predicate)
{
  return source.Select((value, index) => new { Index = index, Value = value })
     .Where(x => predicate(x.Value)).Select(x => x.Index);
}

値が0以上限定ならこんな風にも書ける
public static IEnumerable<int> WhereIndex<T>(this IEnumerable<T> source, Func<T, bool> predicate)
{
  return source.Select((value, index) => predicate(value) ? index : -1)
      .Where(x => x >= 0);
}

701:デフォルトの名無しさん (ワッチョイ 8b7b-eq+O)
17/02/20 04:12:20.09 Cim83SJm0.net
>>686
IndexCollectionの後に<Type>が抜けてるね。あと引数のthisも抜けてる
Linqに慣れてないなら、最初から繋げていかないで一個ずつ結果を見た方がいいよ
var a = num.Where(_ => _ > 12);
var b = a.Select((value, index) => index);
ここではaが {13, 14, 15 } ってリストになる(Whereは条件式でフィルタした新しい配列を作る)
bはその配列をインデックスの値に変換した新しいリストを返すから値は { 0, 1, 2 } となる
あと勘違いしてたけどインデックスは当然0以上なので>>688の後者の書き方で問題なかった

702:デフォルトの名無しさん (ワッチョイ 8bbb-eq+O)
17/02/20 07:23:54.57 73+nzjfL0.net
>>683
日本では回避ツール作るのも違法。

703:610 (ワッチョイ 6b90-XdR7)
17/02/20 10:04:48.66 Vf7595PK0.net
>>687
yield returnというのを忘れていました

引数のthisを忘れていたのに拡張メソッドみたいに呼べたのが不思議です。エラー出ると思ってました

704:デフォルトの名無しさん (ワントンキン MM7f-Z7AI)
17/02/20 11:08:17.98 M0lXkX5gM.net
文字列ポインタを返すC言語のwin32 dll を VS2005のWindowsアプリで利用しているのですが、今までWindowsXPで動作していたものをWindows7で動作させると関数から戻ってくる時に死んでしまいます。情報を送信する旨のダイアログの出るヤツです。
<hoge.dll>
BYTE msg[1024];
BYTE* WINAPI hoge(WORD w)
{
sprintf(msg, "xxx");
return msg;
}
<FormMain.vb>
<DllImport("hoge.dll")>Public Shared Sub hoge(Byval w As Int16) As String
End Function
Dim msg As String = Space(1024)
Call部分-> msg = hoge(0)
dllで領域確保した文字列ポインタをvbで領域確保したString型に代入している部分がおかしいのでしょうか?
同じやり方の別アプリはWindows7でも問題なく動作しているらしいです。
回避策としては、StringBuilderを引数にして情報を取得する方法を考えてますが、原因を知りたいです。
何かヒントを頂けないでしょうか。よろしくお願いします。

705:デフォルトの名無しさん (アウアウウー Sa1f-Tc/C)
17/02/20 12:12:58.76 OgBdAYpra.net
>>692
ここC#のスレだよw
インポートした関数のシグネチャはそれで間違ってないと思う
(戻り値の文字列の種類の明示的な指定がない以外は)
だから間違いはそこに書かれていないところにある気がする
知らんけど

706:デフォルトの名無しさん (ワントンキン MM7f-Z7AI)
17/02/20 13:06:34.63 M0lXkX5gM.net
>>692
失礼しました。自分が普段C#使ってていつも見ているもので、思わず質問してしまいました。

Stringって純粋な参照型じゃないので、dll内の文字列がアプリ側の確保されたStringにコピーされるものなのか、どうなのか?
と思って質問しました。

問題ないようですので、他の部分を当たってみます。

ありがとうございました。

707:デフォルトの名無しさん (スフッ Sd7f-LjcY)
17/02/20 13:28:11.49 vCAMt98Xd.net
ビット数とかかねえ

708:デフォルトの名無しさん (ワッチョイ eb19-sbgu)
17/02/20 14:07:41.64 w4qWsIgy0.net
DllImportで返値にStringを使うと対象アドレスのメモリを解放しようとするからその辺のせいかな
ポインタが返される場合IntPtrで受け取るべき
文字列ならMarshal.PtrToStringAuto(/Ansi/Uni)で変換

709:デフォルトの名無しさん (アウアウウー Sa1f-Tc/C)
17/02/20 14:54:15.70 OgBdAYpra.net
あーここにそんなこと書いてあるな
URLリンク(msdn.microsoft.com)


710:xb6xc.aspx 全然知らんかったw 文字列を戻り値で返すような関数使ったことないし。 こういう重要な話を辺鄙なページにだけさらっと書くのやめてほしいよな 余計なお世話のようだけど、よく考えたらポインタでもらっておかないと 手動で開放しようがないんだからまあ当然といえば当然の処置か



711:デフォルトの名無しさん (アウアウオー Sa7f-xIS6)
17/02/20 15:20:01.73 2ibs+hQta.net
>>692そのままでもvb側でLPCSTRだって指定してやれば動きそう。LPWSTRとして処理して動かなくなってるんじゃないかな

712:デフォルトの名無しさん (ワッチョイ 8bbb-eq+O)
17/02/20 15:52:07.71 73+nzjfL0.net
vb使うとアホになるからな。

713:デフォルトの名無しさん (ワントンキン MM7f-Z7AI)
17/02/20 15:55:20.33 M0lXkX5gM.net
>>696
>>697
有益な情報、ありがとうございました。

少なくとも、あまりよろしくないコードだったって事ですよね。
今までまともに動作してたのはたまたま?

とりあえずIntPtrで受けてMarshal.PtrToStringAnsiで文字列に変換するとうまくいきました。

714:デフォルトの名無しさん (ワキゲー MM7f-iYFJ)
17/02/20 19:15:05.48 jZ2IzQ6sM.net
>>698
DllImport.CharSetの既定値はAnsi

715:デフォルトの名無しさん (ワッチョイ 9b7b-g7u9)
17/02/20 20:06:09.92 i/9URA2G0.net
WPFの勉強を始めたんですが、動的にコントロールを追加していく場合、
デザイン側(XAML)のコードではなくC#のコードに生成と追加ロジックを書いて増やすしかないんですよね?

コントロールのデザインはXAMLでするけど、それのインスタンス生成はC#側でするという理解でいいのでしょうか?

716:デフォルトの名無しさん (ワッチョイ 5f30-O7jY)
17/02/20 20:56:23.77 DEynAIXr0.net
どういうコントロールかに寄るんじゃねーの
ItemsControlが使えるようなケースならコードで生成なんかしないだろう

717:デフォルトの名無しさん (ワッチョイ 8b7b-iYFJ)
17/02/20 20:59:03.92 ZcW/L6QM0.net
大体ItemsControlとその派生クラス+DataTemplateでまかなえる

718:デフォルトの名無しさん (ワッチョイ df4c-6bgE)
17/02/20 21:18:59.61 c6eY6nM80.net
>>702
アイテム類?

719:デフォルトの名無しさん (ブーイモ MM7f-FKuk)
17/02/20 21:19:02.98 La0YxfKFM.net
>>702
C#からコントロールを追加するんじゃなくて、
1. C#がコレクションに対してデータオブジェクト(コントロールではない!)を追加する
2. コレクションのバインド先のコントロールのDataTemplateに従ってコントロールが生成される
という仕組み
まあでも最近はUWPではそのへんのWPF時代の複雑怪奇な仕組みを使わずに
イージーにC#からコントロールを触っちゃうケースも多くなっているので、
普通にコードビハインドでコントロール作ってもいいと思うよ

720:デフォルトの名無しさん (ワッチョイ 6bdc-FKuk)
17/02/20 21:35:53.40 K6NHiZ6b0.net
Reactみたいに仮想DOMを導入してテンプレートエンジン感覚でXAML書けるようにしてほしいわ
ControlTemplateを駆使した複雑怪奇なバインディングはWPFが失敗した大きな要因の一つ

721:610 (ワッチョイ 6b90-XdR7)
17/02/20 22:42:28.62 Vf7595PK0.net
数独を解くアルゴリズムがどうしても自分で作れなかったのでCのソースをLINQ使わずにC#に書き直しました
でももうちょっとアルゴリズムについて理解を深めたいのですが、どうすれば深められますか?

722:デフォルトの名無しさん (ワントンキン MM7f-yXFx)
17/02/20 22:44:42.03 SIhte37HM.net
数学を勉強する

723:デフォルトの名無しさん (ワッチョイ 0f7b-TuOZ)
17/02/20 23:41:44.10 mClGTBrk0.net
アルゴリズムの本を読むとか、

プログラミング・コンテスト
AOJ(AIZU ONLINE JUDGE、会津大学)
Topcoder, Google Code Jam

724:デフォルトの名無しさん (ブーイモ MM7f-FKuk)
17/02/21 01:16:12.37 zJ/N/+AdM.net
>>708
アルゴリズムで大事なのは細かい操作ではなくルール
ルールで考えられるようになるには関数型言語を学ぶのが一番近道だと思う

725:デフォルトの名無しさん (ワッチョイ 5b3c-8pXy)
17/02/21 02:14:21.50 R0f1kRGV0.net
専ブラを作りたいんですが
何を参考にやっていけば良いでしょうか

c#の入門文法書を読んでVS2015でフォームアプリのプロジェクト作成しました

726:デフォルトの名無しさん (スプッッ Sd7f-QCKt)
17/02/21 07:35:28.82 N8MlGejAd.net
OpenJaneのソースを読む

727:デフォルトの名無しさん (ブーイモ MM7f-9g8o)
17/02/21 08:20:20.91 QZgbo1BXM.net
APIになってから新規参入できんの?

728:デフォルトの名無しさん (ブーイモ MM1f-S2Ow)
17/02/21 10:29:01.70 zahF8gYKM.net
普通のブラウザが読めるんだから
なにもAPI頼らんでもいいんじゃないか?
ブラウザの表記と履歴がクソなだけだから
それを使い勝手いいようにしただけの専ブラはあってもいい

729:デフォルトの名無しさん (ワッチョイ 9b7b-g7u9)
17/02/21 19:34:36.64 cHX/MaIe0.net
TextBoxだけが2つあるフォームで、Enterが押された際に、2つとも値が入力されている場合だけフォームを閉じるようにしたいのですが、
TextBoxにAcceptButtonと同じ機能を持たせるにはどうしたらいいでしょうか。

730:デフォルトの名無しさん (ワッチョイ db17-QCKt)
17/02/21 20:40:59.99 iji2PQkS0.net
KeyDownでEnterを取得してTextBoxの中身をチェックして分岐

731:デフォルトの名無しさん (ワッチョイ 0f5e-P9CU)
17/02/21 20:48:25.46 R7uSuoR20.net
>>716
TextBox2つとFormでEnter入力待って
Enter入力されたときにTextBoxの内容チェックしたらいいだけじゃない?
AcceptButtonは知らなかったけど別にボタン作って無いとだめみたいだし
ボタン別に作った方がUIとしてはわかりやすいと思うけど

732:デフォルトの名無しさん (アウアウウー Sa1f-Tc/C)
17/02/21 21:36:29.50 OY4bcTcha.net
>>716
いっちゃなんだけどセンスないUIだねw

733:デフォルトの名無しさん (ワッチョイ 0f9d-eq+O)
17/02/21 21:41:21.06 Kul562Pw0.net
>>715
APIに頼らずにウェブスクレイピングを使った専ブラの開発/公開は
禁止されているんじゃなかった?

734:デフォルトの名無しさん (アウアウウー Sa1f-Tc/C)
17/02/21 21:41:57.12 OY4bcTcha.net
まあ批判するだけじゃアレなんで、そういうの普通はさ、
検証結果がOKならAcceptButtonをイネーブルにするのが正攻法だと思うよ

735:デフォルトの名無しさん (アウアウオー Sa7f-xIS6)
17/02/21 21:48:44.09 rWOcc73ca.net
センスないUIが使いやすいシーンあるからな。分かっててそうすること多い。>>717は違うだろうがw
エンターがあったら入力されてるか調べて、入力されてたらフラグ立ててClose()呼べば

736:デフォルトの名無しさん (ワッチョイ 4fce-qUVP)
17/02/22 04:06:31.98 BUDCRKLi0.net
結局最後にEnter押させるならAcceptButtonで正しいか判定すればいいんじゃないの
KeyDownで捕捉とかAcceptButtonイネーブルとかアホみたいよ

737:デフォルトの名無しさん (ワッチョイ 5f90-XdR7)
17/02/22 04:41:08.56 OP1dthjc0.net
まずtextbox2つに何か入力されている状態でEnter押すと閉じるってどういう状況で使うのか気になる

738:デフォルトの名無しさん (ワッチョイ 0f7b-eq+O)
17/02/22 05:19:23.28 4Le3p92K0.net
C#でDirectShowを使ってサーバーからデータを受信してストリーミング再生をしようと思っているのですが、
ストリーミングしながら再生する場合、10秒、20秒先にシークする時にデータを取得できていないと
シークできないと思うのですが、シークしたい位置までデータが取得できているかどうかを、どうやって確認したらいいのでしょうか?

739:デフォルトの名無しさん (ワッチョイ db17-QCKt)
17/02/22 06:36:28.96 S8XiJiJW0.net
できなくていいじゃん
YouTubeでも未取得部分までシークしたら一瞬止まってそこから再取得でしょ

740:デフォルトの名無しさん (アウアウウー Sa1f-Tc/C)
17/02/22 10:41:54.09 IUleyyqVa.net
>>723
それだとNGの時何らかのメッセージを、ほとんどの場合はモーダルの
メッセージボックスを使って表示することになるが、これが鬱陶しい。

だからOK�


741:フ場合のみ何らかのアクションが可能になるようにしたい、というところまでは >>716は妥当。



742:デフォルトの名無しさん (アウアウオー Sa7f-xIS6)
17/02/22 10:48:43.23 gHr01PmWa.net
条件満たすまでokボタン無効化

743:デフォルトの名無しさん (スフッ Sd7f-LjcY)
17/02/22 11:33:04.49 +pPmbeWDd.net
ついでにtextbox赤色にでもしとけ

744:デフォルトの名無しさん (ワッチョイ 6f37-eq+O)
17/02/22 13:11:12.83 NE6Tq68d0.net
>>771
たしか「twinテール」とかいう使えなくなった2chブラウザがC#で書かれていたので参考にしてみてはいかが

745:デフォルトの名無しさん (ワッチョイ 1e7b-8lb6)
17/02/23 01:11:41.53 IxVO5ZJu0.net
>>726
言葉足らずでしたすいません。
シークした際に取得したデータより先であれば、シークできる最大の位置から再生したいので、
取得できているデータの最大秒数を知りたいと質問したかったんです。

746:デフォルトの名無しさん (ワッチョイ 1e9d-d4M5)
17/02/23 20:19:27.12 cRI54QPm0.net
C#ってWEBもデスクトップアプリもVisual Studioでいいの?

747:デフォルトの名無しさん (ワッチョイ 4a3c-F6/z)
17/02/23 20:42:44.96 boStFqTs0.net
いいよ
別にVisual Studioじゃなくてもいいよ

748:デフォルトの名無しさん (ワッチョイ 7fbb-8lb6)
17/02/23 21:03:52.53 SDiG8DJL0.net
C#のような欠陥言語はVSじゃないと使い物にならないよ。

749:デフォルトの名無しさん (ブーイモ MMef-o4aT)
17/02/23 21:38:51.04 5vR45Ym7M.net
そもそもRADで使うことを前提に設計された言語だから当たり前
ヘイトになってない

750:デフォルトの名無しさん (スフッ Sdaa-i5z9)
17/02/23 22:14:55.27 IXRr1zZLd.net
まだイーマックスに固執してる奴いるのか

751:デフォルトの名無しさん (ワンミングク MMfa-LqKA)
17/02/23 22:19:16.99 osMc+8cAM.net
Javaは環境整えるのめんどくさいしエコシステムが洗練されない素人仕事って感じだし言語機能貧弱だし色々クソすぎて速攻で切り捨てた
C#は良く出来てる

752:デフォルトの名無しさん (ワッチョイ 7fbb-8lb6)
17/02/23 22:21:06.99 SDiG8DJL0.net
var data = b.GetData();

varで一気に欠陥言語となった。
ライブラリ丸暗記してるか、マウスカーソルで指さないと型が分からないとかマジ欠陥言語。

753:デフォルトの名無しさん (ワッチョイ 533c-uVIS)
17/02/23 22:21:19.22 VhvYxHZG0.net
何を使おうが、成果物と生産性が全てよ

そりゃ、言語によってある程度機能の優劣が無いとは言わないが
究極的には、「使う奴がその言語に習熟してるかどうか」に帰結する話なので
他言語との比較戦争はやめとけ

754:デフォルトの名無しさん (ワッチョイ cfd6-8lb6)
17/02/23 22:25:13.45 /zzReBsa0.net
>>738
おじいちゃんはおうちにかえりましょうねー

755:デフォルトの名無しさん (ワッチョイ 7fbb-8lb6)
17/02/23 22:30:40.75 SDiG8DJL0.net
>>740
無職はいいなぁ。

756:デフォルトの名無しさん (ワッチョイ 2777-h8GH)
17/02/23 22:32:06.38 Gcuw8dft0.net
>>738
C++にすら、autoって型推論が追加になったわけだが。

757:デフォルトの名無しさん (ワッチョイ bb99-bdSd)
17/02/23 22:34:18.39 OjaB8M7n0.net
え?型推論のない言語があるの?

758:デフォルトの名無しさん (ワンミングク MMfa-LqKA)
17/02/23 22:34:28.26 osMc+8cAM.net
varがダメな人って変数のスコープがやたら長かったりクラスの責務が複数あったりメソッド名がわかりにくい印象がある

759:デフォルトの名無しさん (ワッチョイ 7fbb-8lb6)
17/02/23 22:40:33.39 SDiG8DJL0.net
はるか昔、C++も糞化、オナニー言語になって捨てられて、シンプル化したJavaやC#に多くが逃げてきた。
すると、言語オタク馬鹿がJavaとC#でオナニーを始めたというだけ。
C#は幸運にも普及する前に糞化してくれたので被害者は少ないが、Javaは相当被害者が出るだろう。

まぁ、未だ.net2.0 + winform案件の多さからしてほんとトンデモ擁護してる輩は無職だろうな。

760:デフォルトの名無しさん (ワッチョイ 8a23-d4M5)
17/02/23 22:41:51.99 LD/mBXzl0.net
varに噛み付く割にはdynamicをスルーなんだよな
結局知らない人だって自白しているようなものです

761:デフォルトの名無しさん (ワッチョイ 4613-i5z9)
17/02/23 23:11:03.64 STaIjfZE0.net
自分の理解できない仕様を含む言語は全部糞なんだな

762:デフォルトの名無しさん (ワッチョイ 4a3c-F6/z)
17/02/23 23:13:19.44 boStFqTs0.net
>>738
斬新な意見やな

763:デフォルトの名無しさん (ワッチョイ 8790-weqm)
17/02/23 23:13:57.36 fEmyL96O0.net
C#のすごいところはvarの使用を禁止できることなんだよね

764:デフォルトの名無しさん (ワッチョイ 4a3c-F6/z)
17/02/23 23:14:34.97 boStFqTs0.net
>>738
>マウスカーソルで指さないと
あとキーボード使うといいと思うよ

765:デフォルトの名無しさん (スフッ Sdaa-Hx5d)
17/02/23 23:19:03.31 fCBY3OKed.net
逆だよなぁ。
その型が変わったとしても帳尻合わせるために直接関係のない部分を直さんで済む。
型推論を横着するための機能と考えるから変な話になってくる。

766:デフォルトの名無しさん (ワッチョイ 0a4a-d4M5)
17/02/23 23:57:02.37 Xdm75SB30.net
マウスカーソル当てないと推論できない頭なんだろ
察して差し上げろ

767:デフォルトの名無しさん (ワッチョイ 0ecb-NqGB)
17/02/24 00:09:58.97 sMce7DLg0.net
使ってないソースのが圧倒的に読みやすいけどね

768:デフォルトの名無しさん (アウアウウー Sacf-TXya)
17/02/24 00:24:57.75 Oi+tTZOha.net
varの話はもうほとんどボケ老人の繰り言だねw
論点は出尽くしてるし結論も明らか(だから採用されている)のによく飽きないなと思うわ。

769:デフォルトの名無しさん (アウアウウー Sacf-TXya)
17/02/24 00:26:20.78 Oi+tTZOha.net
あれだ、もうネトウヨが8月になると朝生とか見て毎年毎年同じこと言ってるのとよく似てるわw

770:デフォルトの名無しさん (ワッチョイ 4613-i5z9)
17/02/24 00:34:06.16 KvudGu/Z0.net
Action<・・・>とかTask<・・・>とか型推論なしでいちいち書いとれんわ

771:デフォルトの名無しさん (ワッチョイ 533c-LVYP)
17/02/24 03:35:06.91 DZX2b5jN0.net
>>756
IEnumarableもだよね

772:デフォルトの名無しさん (ワッチョイ ca30-bdSd)
17/02/24 05:44:47.60 7M0bhqrr0.net
ド低脳と仕事をしているために未だにC#2.0相当のコーディングを強いられているというのが真相である
無職はいいなあという発言がそれを物語っている

ド低脳と仕事せざるを得ない状況にあるのは自分がド低脳なせいだとは知る由もない
なぜならド低脳だから

773:デフォルトの名無しさん (ワンミングク MMfa-LqKA)
17/02/24 07:33:10.08 MgbB+KPvM.net
ジャップランドだとレベルの低い同僚に合わせないといけないからね

774:デフォルトの名無しさん (ワッチョイ bb3c-xMKC)
17/02/24 08:17:18.01 YSZ/aLRo0.net
これが自分が高レベルだと勘違いしてる人にありがちな考え方ですよ~
初心者の皆さんはよ~く覚えておきましょうね~

775:デフォルトの名無しさん (ワントンキン MMfa-HyQo)
17/02/24 11:34:57.57 rumrh9icM.net
別PC上でソケット通信のサーバのソフトが動作しています。
そのソフトにクライアントとして接続するアプリです。

今までサーバソフトが動作するPCがXPの時は問題なく接続できていたのですが、
windows7に変えたところ「対象のコンピュータに拒否されたため、接続できませんでした」となります。

using System.Net.Sockets;

TcpClient myClient = new TcpClient();

myClient.Connect(IPaddress, port);

何か他に設定等必要なのでしょうか?

776:デフォルトの名無しさん (ワッチョイ a3c0-d4M5)
17/02/24 11:39:55.37 WmxnDnjh0.net
>>761
Windows7のファイアーウォール設定で接続ポートが塞がれているんじゃね

777:デフォルトの名無しさん (ワントンキン MMfa-HyQo)
17/02/24 11:53:52.45 rumrh9icM.net
>>762

情報不足ですみません。
ファイアーウォールは全て無効にしています。
今、念のため全てのポートを開放してみましたが状況変わらずです。

Windows7のPCは、セットアップした素の状態にネットワーク設定して、ファイアーウォール無効にしただけの状態です。
少なくとも2台のWindows7でこの現象を確認しています。

778:デフォルトの名無しさん (ワッチョイ 2719-YZdX)
17/02/24 12:47:58.59 og9jdWQJ0.net
pingが通るか確認する
アドレスとポート番号を確認する

779:デフォルトの名無しさん (ワッチョイ 8a3c-9513)
17/02/24 12:53:29.50 YZGHPd2K0.net
>>761
> windows7に変えたところ「対象のコンピュータに拒否されたため、接続できませんでした」となります。
サーバープロセスが動いてない
サーバー側で netstat -a やってみ

>>762
ポート塞がれてたらたいてい接続タイムアウトになる

780:デフォルトの名無しさん (ワントンキン MMfa-HyQo)
17/02/24 13:40:28.43 rumrh9icM.net
サーバのソフトを確認してもらいました。

従来、
IPHostEntry hst;
hst = Dns.GetHostEntry(Dns.GetHostName());
TcpListener server = new TcpListener(hst.AddressList[0], port番号);

としてたところ、
IPAddress.Any にすると接続できるようになりました。

OSによって挙動が変わる理由は何故でしょうか?

781:デフォルトの名無しさん (ワッチョイ 2719-YZdX)
17/02/24 13:55:20.36 og9jdWQJ0.net
IPv6のアドレスが[0]に入ってたとかそんなんじゃね

782:デフォルトの名無しさん (ワントンキン MMfa-HyQo)
17/02/24 14:11:36.34 rumrh9icM.net
>>767

確認してもらったところ、おっしゃるとおりIPv6が入ってました。

どーもお騒がせしました。

783:デフォルトの名無しさん (ワッチョイ 8790-weqm)
17/02/25 03:11:03.30 bkNRV9RG0.net
HttpWebRequestクラスを継承して派生クラスを作るのはひょっとして不可能ですか?
引数なしの親コンストラクタないって言われてしまうのですが・・・

784:デフォルトの名無しさん (ワッチョイ 4a3c-F6/z)
17/02/25 03:29:06.72 IvVV1H8V0.net
そうみたい
Extension使えば
URLリンク(stackoverflow.com)

785:デフォルトの名無しさん (ワッチョイ 8790-weqm)
17/02/25 06:00:38.63 bkNRV9RG0.net
Cookieの設定をもっと楽にしようとSetCookie()メソッドを作ってみようってだけだったので・・・
ラッパーにしてしまえば呼び出し方法は変わりますが、何かデメリットありますか?

786:デフォルトの名無しさん (ワッチョイ 7f7b-xV3R)
17/02/25 14:21:15.52 xOc+8hLN0.net
目的がそれだけなら拡張メソッドで良いよ

787:デフォルトの名無しさん (ワッチョイ 8a11-bM86)
17/02/25 17:39:57.89 55IAItyF0.net
System.IO.File.Copy でファイルをコピーしようとしたら、コピー先のドライブの空き容量が足らないのに
例外が発生しないで(何もキャッチされず)進んでいきます。
コピーが正常完了していない場合は、どのようにエラーをキャッチしたらいいですか?

788:デフォルトの名無しさん (ワッチョイ 1e5e-d4M5)
17/02/25 17:48:38.25 Zzp1j43Z0.net
>>773
書き込んだ先のFile.Existsとサイズ確認したら

789:デフォルトの名無しさん (アウアウオー Sac2-pore)
17/02/25 17:54:59.90 IfKbzrsTa.net
>>773
試したら例外でたぞ

790:772 (ワッチョイ 8a11-bM86)
17/02/25 18:04:57.59 55IAItyF0.net
>>774
そのやり方で正常か確認します。

>>775
どのような内容で例外が出てきましたか?

791:デフォルトの名無しさん (アウアウオー Sac2-pore)
17/02/25 18:07:41.25 IfKbzrsTa.net
Messageは容量がたりませんって

792:デフォルトの名無しさん (アウアウウー Sacf-TXya)
17/02/25 18:21:10.66 5cuy11p+a.net
Task


793:に投げっぱなしで例外が来ないと文句言ってるなんてオチだったりして



794:772 (ワッチョイ 8a11-bM86)
17/02/25 18:30:16.63 55IAItyF0.net
>>777
今は、コピー先のドライブをUSBメモリで試してるのですが、やはり例外は発生しません。
違う環境だったら発生するかもしれませんので色々試してみます。

>>778
コピー処理はTaskでマルチスレッド内で処理してます。
でも、他の例外はキャッチできるので、なぜCopyメソッドだけがスルーされるかが気になります。

795:デフォルトの名無しさん (アウアウウー Sacf-TXya)
17/02/25 18:39:04.29 5cuy11p+a.net
あー遅延書き込み(だっけ?)がらみの問題かなあ

USBとかネットワーク上のドライブだと書き込み中に切断されても例外が起こらないような
気がしたなあそういえば

796:デフォルトの名無しさん (アウアウオー Sac2-pore)
17/02/25 19:49:09.43 IfKbzrsTa.net
例外キャッチコードが悪いのかも

797:デフォルトの名無しさん (ワッチョイ 8790-weqm)
17/02/25 20:01:30.35 bkNRV9RG0.net
>>772
盲点でした!あとHttpWebRequestのHeadersプロパティについてなんですが、既存のプロパティをHeadersプロパティで代入しようとするとエラーが出ます
Headersプロパティのほうに統一したいのですが方法はないのでしょうか?

798:デフォルトの名無しさん (ワッチョイ 7f7b-xV3R)
17/02/25 20:22:43.20 xOc+8hLN0.net
そっちはどうしようもないはず
せいぜいSetHeaderとかいう拡張メソッド作ってその中で
既存のプロパティならプロパティ設定に流すぐらいかな

799:デフォルトの名無しさん (ワッチョイ 8790-weqm)
17/02/26 17:58:17.52 nIUORy8+0.net
そうですか、ありがとうございます
こういった自分で作った拡張メソッドを他のプロジェクト(今はC#のみ将来的にはC++もあるかも)でも使って行きたいのですがどうするのが吉でしょうか?
クラスライブラリ(dll)として作るのが一番良いのでしょうか?

800:デフォルトの名無しさん (ブーイモ MMef-nCc/)
17/02/26 18:10:10.17 58FG/mcmM.net
そういう小物はコピペの方がいい
依存関係やバージョン管理が複雑になりすぎる

801:デフォルトの名無しさん (ワッチョイ 4a3c-F6/z)
17/02/26 18:37:26.98 /2VmdLBu0.net
>>782
Enum使ってもダメ?
Headers[HttpRequestHeader.Accept]

802:デフォルトの名無しさん (ワッチョイ 8790-weqm)
17/02/27 04:44:19.84 Ar8/UbRm0.net
だめでした
req.Headers[HttpRequestHeader.Accept] = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
上記のもので試しましたが、ArgumentExceptionが出ます

803:デフォルトの名無しさん (ワッチョイ 8790-weqm)
17/02/27 04:46:45.84 Ar8/UbRm0.net
>>785
連レスすいません
だいたいどのくらいの規模で分ければいいですか?

804:デフォルトの名無しさん (ワッチョイ 87dc-nCc/)
17/02/27 06:53:25.01 b74ECDn30.net
>>788
大事なのは規模より凝集度
ごちゃまぜの便利ユーティリティ集みたいなのは結局個別に変更が入りまくって確実に破綻する

805:デフォルトの名無しさん (ワッチョイ 8790-weqm)
17/02/27 08:45:50.71 Ar8/UbRm0.net
一応クラス分けはしています
ごちゃまぜってわけではないと思うんですが・・・

806:デフォルトの名無しさん (アウアウオー Sac2-pore)
17/02/27 08:55:40.47 zyKpb96Na.net
クラス分けしててもしてなくてもいいだろ。どれだけ汎用的なのを作れるかだな
便利ユーティリティ集でもちゃんと作れば破綻も個別変更もすることなく10年単位で使いまわせる

でも、どうするのが一番いいかなんて聞く頭じゃ、そういうのは作れないから諦めなw
頭の隅に自分ライブラリ計画を置きながら、ソース使いまわさずに毎回書き直すのがいいよ

807:デフォルトの名無しさん (ワッチョイ 0ecb-NqGB)
17/02/27 14:07:53.79 IXzsv4Rb0.net
いや設計書通りに作れよ

808:デフォルトの名無しさん (ワッチョイ ab0d-rIZz)
17/02/27 22:44:15.30 06KqeLby0.net
DataGridTemplateColumnのCellTemplateを外部ファイルのResourceDictionaryに定義して利用したいのですがBindingの方法がわからないので教えてください
以下のようなイメージです
(実際はもっと複雑なTemplateなのでDataGridTextColumnは使えません)


<ResourceDictionary ...>
<DataTemplate x:Key="MyCellTemplate">
<TextBlock Text="{Binding}" />
</DataTemplate>
</ResourceDictionary>


<DataGrid.Columns>
<DataGridTemplateColumn Header="..." CellTemplate="{StaticResource MyCellTemplate}" Binding="{Binding Text}" /> ←Bindingしたい
</DataGrid.Columns>

809:792 (ワッチョイ ab0d-rIZz)
17/02/27 22:46:58.24 06KqeLby0.net
補足です
同じTemplateを異なるDataGridで使いまわすのが目的です
Binding名はそれぞれ違います

810:デフォルトの名無しさん (ワッチョイ 7f7b-xV3R)
17/02/27 23:24:15.09 r7hwcqtC0.net
public class DataGridBoundTemplateColumn : DataGridTemplateColumn {
public BindingBase Binding { get; set; }
protected override FrameworkElement GenerateElement(DataGridCell cell, object dataItem) {
var element = base.GenerateElement(cell, dataItem);
BindingOperations.SetBinding(element, ContentPresenter.ContentProperty, this.Binding);
return element;
}
}

811:デフォルトの名無しさん (ワッチョイ 8ab6-d4M5)
17/02/28 14:37:36.16 GKPFI9ic0.net
常駐してMessage QueueをListenしてメッセージ駆動で処理する、JavaでいうJMSみたいな標準的な仕組みはありますか?
ググったらWebSphereR MQ classes for .NETってのがあるのは分かりましたが、OSSのみでMSMQ向けに開発できればうれしいんですが・・・
自前で常駐アプリ作るしかないですか?

812:ワッチョイ (ワッチョイ 1e31-y359)
17/02/28 18:39:44.06 pIiGTdLD0.net
この板に10年近く居る初心者なんだけど、
いい本、教えてくれ

書籍は日本語で頼む

813:デフォルトの名無しさん (アウアウオー Sac2-pore)
17/02/28 18:48:29.36 +WocOs48a.net
10年いたら何百回も同じ質問回答見てんだろ。それで選べないような奴向けの書籍は存在しないよ

814:ワッチョイ (ワッチョイ 1e31-y359)
17/02/28 19:41:55.53 pIiGTdLD0.net
心眼で何とかするしか無いか……

815:デフォルトの名無しさん (ワンミングク MMfa-1leb)
17/02/28 19:45:31.01 k+KkrlHaM.net
>>796
MSMQは.NET4以降で使えた筈

816:デフォルトの名無しさん (ブーイモ MMef-ZSEG)
17/03/01 07:58:25.62 ch1dK+X7M.net
VBAはいいのに、C#は禁止
という意味不明なお触れが出てしもた(TT)

817:デフォルトの名無しさん (ブーイモ MMc7-nCc/)
17/03/01 08:24:08.01 ILMptHRyM.net
その程度の会社にしか居場所がないならお前もその程度ってことだ
違うと思うなら転職しろ

818:デフォルトの名無しさん (ドコグロ MM7f-NqGB)
17/03/01 08:33:50.70 KIFQ5s++M.net
単価の数字を見てって意味なら理解できる
無駄に安かったりするんだよね

819:デフォルトの名無しさん (ワッチョイ 1e7b-efmn)
17/03/01 09:32:07.98 yuocqMDO0.net
>>797
猫でもわかるC#プログラミング 第3版、粂井(くめい)康孝、2016

820:デフォルトの名無しさん (アークセー Sx23-bB+7)
17/03/01 12:02:32.78 XUb7kHxXx.net
>>797
ミジンコでも分からせるC#
民明書房

821:デフォルトの名無しさん (ワッチョイ 7fbb-8lb6)
17/03/01 12:30:59.03 RAuT14LS0.net
C#はもう業務では使えないよ。趣味用の言語。perlみたいなもの。

822:デフォルトの名無しさん (スププ Sdaa-L/ed)
17/03/01 18:08:15.69 BlDV/sC+d.net
>>806
理由は?

823:デフォルトの名無しさん (ワッチョイ 1e9d-d4M5)
17/03/01 18:19:58.85 ZH+ht5qq0.net
>>806
じゃあ業務では何使えばいいですか?

824:デフォルトの名無しさん (アウアウウー Sacf-TXya)
17/03/01 18:21:54.62 CsuWabtqa.net
なーにーやっちまったな
男は黙ってCOBOL

825:デフォルトの名無しさん (スプッッ Sd4a-xMKC)
17/03/01 18:34:47.06 mz3by4fld.net
女は黙ってFORTRAN

826:デフォルトの名無しさん (ワンミングク MMfa-LqKA)
17/03/01 18:57:55.89 PR7YLHWZM.net
>>801
それってどうやって禁止するんだ?

827:デフォルトの名無しさん (ワッチョイ 7fbb-8lb6)
17/03/01 18:59:56.97 RAuT14LS0.net
>>808
鉄板のCOBOLとJAVAですよ。

828:デフォルトの名無しさん (ワッチョイ bbc3-bdSd)
17/03/01 19:19:48.23 BukY6Teo0.net
ことこと煮詰めたPerl(読めない)

829:デフォルトの名無しさん (ワッチョイ 1e31-bRgR)
17/03/01 20:27:41.90 r70GDLNP0.net
>>797
汝!隣の嫁を愛せ!! C#

830:ワッチョイ (ワッチョイ 1e31-bRgR)
17/03/01 20:28:19.50 r70GDLNP0.net
ワッチョイで自演がバレちゃうwww

831:デフォルトの名無しさん (ワッチョイ cfd6-8lb6)
17/03/01 20:43:06.08 LaylmXrB0.net
すごく…かっこ悪いです…

832:デフォルトの名無しさん (ワッチョイ 1e9d-8lb6)
17/03/01 20:48:20.77 U2Od4VRx0.net
NEC PC-8001 BASIC Ver 1.1
Copyright 1979 (C) by Microsoft

Ok


833:デフォルトの名無しさん (ワンミングク MMfa-1leb)
17/03/01 21:21:32.69 Yvg0gU5LM.net
>>817
mon
*tm

834:デフォルトの名無しさん (ワッチョイ 1e31-y359)
17/03/01 21:23:11.06 r70GDLNP0.net
就職用にソフト作るとして、どの程度の作品を作らなきゃ評価
されないのか、誰か教えてくれ

835:デフォルトの名無しさん (ワッチョイ 8a3c-9513)
17/03/01 22:09:13.37 TpZN5x5p0.net
>>811
グループポリシーで csc.exe を実行禁止とかかな
弊害知らんけど

836:デフォルトの名無しさん (ワッチョイ 03a1-zLYe)
17/03/01 22:24:49.41 wQqERzxI0.net
vbc.exeは動いたとかだったら面白いんだけどね

837:デフォルトの名無しさん (ワッチョイ 8bc0-NqFr)
17/03/02 00:11:24.12 lUnnJDsN0.net
>>745で未だに2.0とかねーよwwwと思ってたら10年前のC#システム改修案件来た
.NET4.5.2とか贅沢言わないのでせめて3.5で作らせて下さい・・・

838:デフォルトの名無しさん (JP 0Hef-NqFr)
17/03/02 06:08:44.13 T8mz/VrOH.net
C#案件とか.NET案件で一括りされるから面倒だよな

839:デフォルトの名無しさん (スププ Sd3f-GcmM)
17/03/02 08:25:58.59 sITpgG7dd.net
されませんけど

840:デフォルトの名無しさん (ワッチョイ eb0c-BJNc)
17/03/02 10:34:35.36 ZT4/tAUe0.net
WPFの解説ブログ書いてた大田一希、富士通の子会社からマイクロソフトに転職したってよ
URLリンク(blog.okazuki.jp)

841:デフォルトの名無しさん (スププ Sd3f-GcmM)
17/03/02 11:40:42.47 sITpgG7dd.net
>>825
ドメイン見て気づいたけどこの人の作ったVisual Studio Codeのプラグイン使ってるわ
シーケンス図書くやつ

842:デフォルトの名無しさん (ワッチョイ ab99-PBd5)
17/03/02 12:56:07.90 BMLMSkag0.net
WPFのおくりびとにでもなるのか?

843:デフォルトの名無しさん (ワッチョイ bb19-/EJX)
17/03/02 13:11:50.84 bkixketX0.net
ここはプログラマ板ではないしネットウォッチ板でもない

844:デフォルトの名無しさん (アウアウウー Sa2f-G6vc)
17/03/02 13:44:58.65 GnKpLkBNa.net
>>825
ネットストーカーきもっ
っていうか、公人でも何でもないんだからいい歳こいてるならさん付けぐらいしろよバカ

845:デフォルトの名無しさん (アウアウオー Sabf-rrQM)
17/03/02 14:22:53.36 j0RdOmJSa.net
>>829
いい歳こいてるならガキみたいな言葉遣いやめろよバカ

846:デフォルトの名無しさん (ワッチョイ 1fb6-NqFr)
17/03/02 16:57:06.80 7GIcFobN0.net
>>800
遅くなりましたが、レスありがとうございます
MSMQを使うこと自体は問題ないのですが、.
NET FrameworkにはJavaのMessageDrivenBeanみたいな標準仕様があるのか知りたかったのですが、
どうも無さそうということで考えた方が良さそうですね・・・

847:デフォルトの名無しさん (ワンミングク MM3f-swil)
17/03/02 22:01:03.86 l6Qo/SsEM.net
>>831
メッセージキュートリガーじゃ代替出来ないような処理なの?

848:デフォルトの名無しさん (ワッチョイ ef7b-anrw)
17/03/03 00:47:09.29 DpV0ZA8P0.net
WPFのnativeコンパイル早くー

849:デフォルトの名無しさん (ブーイモ MM3f-d4C0)
17/03/03 06:44:37.15 ivKlbKhzM.net
>>833
不可能でしょ
WPFって裏で勝手にプロセス動かしたりするし

850:デフォルトの名無しさん (ワッチョイ 8b4f-M3Ci)
17/03/03 14:07:24.12 WzLWeeja0.net
今後はWPFをフェードアウトさせて、
UWPを普及させるつもりなんじゃね?

851:デフォルトの名無しさん (ワッチョイ abc3-PBd5)
17/03/03 14:38:10.68 xoyAwVxu0.net
マジか…

852:デフォルトの名無しさん (ワッチョイ 3b90-Mt2S)
17/03/03 17:55:33.68 yDKPEtIM0.net
数独を解くアプリを作っているのですがどのコントロールでユーザーに入力してもらったらいいかわかりません
URLリンク(algorithm.main.jp)
こんな感じに作りたい場合どんなコントロールを使いますか?

853:デフォルトの名無しさん (アウアウウー Sa2f-G6vc)
17/03/03 18:18:23.19 M1qcN5qza.net
今デジャビューを感じた

854:デフォルトの名無しさん (ワッチョイ 0f9d-NqFr)
17/03/03 19:23:27.45 W1tulntN0.net
UWPってストアに上げないと配布できないの?Win8以前のじゃ動かいないし
よくわからん

855:デフォルトの名無しさん (ワッチョイ 0ba1-c3r2)
17/03/03 21:52:37.85 TSrsvtYD0.net
ユーザーが設定すればサイドローディング可能

856:デフォルトの名無しさん (ワッチョイ 0f31-3D2C)
17/03/03 22:27:45.30 eezZKf7v0.net
MonoDevelopの使い方がイマイチ分からん

これって、ビジュアルスタイディオから移行する意味あるのか?

857:デフォルトの名無しさん (ワッチョイ 4fcb-re10)
17/03/03 22:50:43.99 KGCeex070.net
>>841
意味なくね?
だってコントロールクラス的なものないっしょ?
画面作れなくね?
描画関係ってwin32のラッパじゃねーの?

858:デフォルトの名無しさん (ワッチョイ 0f7b-liqg)
17/03/03 23:22:28.28 VmWbxx1t0.net
>>837
HTMLなら、表かな?

Grid-View みたいなもの?

859:デフォルトの名無しさん (RU 0H7f-YS1u)
17/03/04 00:38:07.38 WtTkhvloH.net
あーあー
テストテスト

860:デフォルトの名無しさん (RU 0H7f-YS1u)
17/03/04 00:40:41.72 WtTkhvloH.net
テスト2

861:デフォルトの名無しさん (ワッチョイ 7b14-YS1u)
17/03/04 00:42:29.33 SJvxZRgO0.net
テスト3

862:デフォルトの名無しさん (ワッチョイ 6b3c-NqFr)
17/03/04 04:10:31.34 ymzArQkK0.net
RUって海外鯖?非国民?

863:デフォルトの名無しさん (ワッチョイ 3b42-T7IB)
17/03/04 12:04:06.46 rEOlgOeo0.net
>>819
印刷プレビュー付きテキストエディタあたりで大丈夫だろ
メモ帳に印刷プレビューを付けたやつ
10Mバイト程度のテキストの印刷プレビューでも固まらないようにな

864:デフォルトの名無しさん (ワッチョイ ef5b-EkCO)
17/03/04 13:08:14.58 aE/wnzST0.net
>>848
そんなの意味あるの?
どっかに転がってるソース提出できるじゃん。

オレは始めたばかりだから初心者だけど、どんな言語でも少し喋ればスキルなんてバレバレだろ。
どんなものを作ったかと苦労した点とか聞けばだいたい分かるもんだろ。

865:デフォルトの名無しさん (ワッチョイ cb34-PBd5)
17/03/04 13:18:59.82 svzWwCAT0.net
githubでスター100個とか200個ついたリポジトリ抱えてれば
面接に言ったとき向こうからおべっか使ってくれるよ

866:デフォルトの名無しさん (アウアウオー Sabf-rrQM)
17/03/04 13:20:00.59 nGVyMKq0a.net
その程度しかできないんだな。そんなにできるんだな
事前の目安になるからどんなんでもいいんだよ。「事前の」目安な

867:デフォルトの名無しさん (ワッチョイ eb0d-wJyW)
17/03/04 13:41:15.75 3ybLjFYo0.net
WebHeaderCollectionから"Set-Cookie"をすべて取得したいのですが、どうすればいいでしょうか?
GetValues()はカンマで区切られる為使い物になりませんでした

868:デフォルトの名無しさん (ワッチョイ 3b90-Mt2S)
17/03/04 16:45:35.72 pgVcOV4B0.net
Proxy併用してCookieも変えながらエロ画像DLするアプリだとどんな評価されるんだろうか

869:デフォルトの名無しさん (ワッチョイ 3b90-Mt2S)
17/03/04 16:48:03.55 pgVcOV4B0.net
>>852
自分で区切られているのを好きな形にするメソッドを作るとか

870:デフォルトの名無しさん (ワッチョイ 1f30-PBd5)
17/03/04 18:32:13.09 zFoXIyA10.net
私が17歳だった頃くらいの技術力かなって評価する

871:デフォルトの名無しさん (ササクッテロレ Spef-w/oi)
17/03/04 19:16:47.62 ePKaLPUep.net
>>852
GetValues(int)なら分割されないはず

872:デフォルトの名無しさん (ワッチョイ 1f90-Mt2S)
17/03/04 23:00:54.14 nqKolQrS0.net
サイトを巡回して画像をDLするアプリを作っているのですが、Keep-aliveがtrueの場合
HttpWebRequestなどはstaticな変数、もしくはクラス変数のほうがいいですか?
Keep-aliveがfalseの場合、どちらでもいいですか?

873:デフォルトの名無しさん (ワッチョイ 1f90-Mt2S)
17/03/05 08:23:18.11 ci1fnKDv0.net
HttpWebResponseで受け取ったCookieを次のHttpWebRequestのCookieにしたいのですがうまくいきません
どこがおかしいのでしょうか?
URLリンク(ideone.com)

874:デフォルトの名無しさん (ワンミングク MM3f-swil)
17/03/05 08:45:58.71 iZvzQ0XvM.net
>>855
わたしゃこの商売60年やってるよ。と続けないと

875:デフォルトの名無しさん (ワッチョイ 1f23-NqFr)
17/03/05 08:47:51.24 dvtekz6g0.net
17歳の頃と言えばジャニス・イアンだな
URLリンク(www.youtube.com)

876:デフォルトの名無しさん (ワッチョイ aba7-bSi4)
17/03/05 10:56:08.64 2PYsxDr30.net
17位の時は、モデムを海外サーバーにつなぐ、0990のソフトつくってた

877:デフォルトの名無しさん (ワッチョイ 1f90-Mt2S)
17/03/05 11:28:37.36 ci1fnKDv0.net
今日は誰もいないんですか?
できれば回答がほしいんですけど・・・

878:デフォルトの名無しさん (アークセー Sxef-CqFM)
17/03/05 11:31:38.07 d0KLgtk9x.net
>>861
今は何位?

879:デフォルトの名無しさん (ワッチョイ 3bdc-0QZk)
17/03/05 11:50:01.18 4Mp9Np6+0.net
>>862
>>858の質問の意図が俺には理解できない
何をしようとしてどう考えてそのコードを書いてどういう結果を期待していて実際の結果が期待とどう違っているのかを具体的に書いて

880:デフォルトの名無しさん (ワッチョイ 1f90-Mt2S)
17/03/05 12:12:52.85 ci1fnKDv0.net
>>858についてですが、すいません、自己解決しました
単なるコードミスでした。あと>>857についてお願いします

881:デフォルトの名無しさん (オッペケ Sref-udCm)
17/03/05 12:16:11.13 oDjd797Or.net
>>865
せめてどう解決したのかくらい書きなよ?

882:デフォルトの名無しさん (ワッチョイ 1f90-Mt2S)
17/03/05 12:37:10.11 ci1fnKDv0.net
すいません
やりたいことは>>858
受信したCookieを保存するList<Cookie>型のreceivedCookieをwhile文の中で宣言していて
次にリクエストを送信する場合、受信したCookieは空にしてしまっていたのです

883:デフォルトの名無しさん (アウアウウー Sa2f-G6vc)
17/03/05 12:48:02.23 u6nsQtE2a.net
森高千里を連想するとオッサンで、南沙織を連想するとジジイか

884:デフォルトの名無しさん (ワッチョイ 3b90-Mt2S)
17/03/05 12:52:13.20 4N1+21XT0.net
コートの上から抱きしめといてちょっと太ったなんて聞くやつってどうかと思う

885:デフォルトの名無しさん (ワッチョイ ef59-2BvX)
17/03/05 13:29:08.38 sGCSwFPI0.net
netstatすればkeepaliveかどうかわかると思う

886:デフォルトの名無しさん (ワッチョイ 3b90-Mt2S)
17/03/05 18:00:28.29 NskbqDfx0.net
既存のList<T>を継承してXmlシリアライズ・デシリアライズ機能をつけたものを使っていたのですが
拡張メソッドで継承することなく機能をつけようとしてなぜかInvalidOperationExceptionが投げられるようになりました
どうしたことかもともと継承していたやつまでInvalidOperationExceptionを吐くようになってしまいました
InnerExceptionでは「<elem xmlns=''> は指定できません。」と出ます、自作ではなくC#のXMLシリアライザを使用して吐き出したものです
どなたか解決方法教えてください

public class XmlData<Type> { public Type[] data; }

public static void LoadXml<Type>(this List<Type> list, string path)
{
list.Clear();

XmlData<Type> xmldata = null;

XmlDocument xdoc = new System.Xml.XmlDocument();
XmlSerializer xml = new System.Xml.Serialization.XmlSerializer(typeof(XmlData<Type>));

xdoc.PreserveWhitespace = true;
xdoc.Load(path);

XmlNodeReader xnr = new System.Xml.XmlNodeReader(xdoc.DocumentElement);

xmldata = (XmlData<Type>)xml.Deserialize(xnr);

for (int i = 0; i < xmldata.data.Length; i++)
list.Add(xmldata.data[i]);
}

887:デフォルトの名無しさん (ワッチョイ 1f17-Mt2S)
17/03/05 20:31:41.58 8jeOdUNR0.net
呼び出し側ではどういう風に呼び出してる?
Type で指定する型によっては InvalidOperationException 例外が発生するようだけど。 ex) System.Type

あと、この例では読み込みだけだけど、書き出しはどういう風に書いてる?
書き出しと読み出しで Type の型が違うなんてないよね。(型が違うとくだんの例外が発生する)

あと dobon だけど、このあたりを見てみるとか。
URLリンク(dobon.net)

888:デフォルトの名無しさん (ワッチョイ 3b90-Mt2S)
17/03/06 09:54:44.28 MVjKwV/p0.net
以下のとおりになります
URLリンク(ideone.com)
最初はListクラスを継承したListExクラスでXmlシリアライズして、そのシリアライズしたものを拡張メソッドLoadXmlで読もうとしています
シリアライズするクラスは同じものです

889:デフォルトの名無しさん (ワッチョイ 4fcb-re10)
17/03/06 10:55:10.06 iAI6G3090.net
シリアナライク
オシリアラエズ

890:デフォルトの名無しさん (ワッチョイ 0f7b-BJNc)
17/03/06 13:28:57.02 xh0zMCOO0.net
c#でjavascript(JS)を使いたいんですが、
ローカルフォルダにMainというHTMLに以下のコードを記載
URLリンク(dotnetfiddle.net)

C#のコードの方に
URLリンク(dotnetfiddle.net)

JSの関数 test を実行しているはずが、nullとなってしまい、返り値を取得できないのですが、何かが間違っているのでしょうか?

891:デフォルトの名無しさん (アウアウオー Sabf-rrQM)
17/03/06 15:35:25.99 SM9wIIjZa.net
documentcompleted待ってないからとか?

892:872 (ワッチョイ 3b90-Mt2S)
17/03/06 15:57:21.11 MVjKwV/p0.net
すいません、そもそもジェネリッククラスのシリアライズ化ってできるんですか?
Listが持っているものをジェネリックメソッドを使用してシリアライズ化したいのですが・・・

893:デフォルトの名無しさん (ワッチョイ bb19-/EJX)
17/03/06 16:13:30.95 3WR0U+Fi0.net
できる
XmlDataとかいうクラスを作る必要はない T[]を使えば良い
あと、型引数の名前にTypeはSystem.TypeとごっちゃになるからTだけ使う

894:872 (ワッチョイ 3b90-Mt2S)
17/03/06 16:41:02.74 MVjKwV/p0.net
すいませんジェネリック使いながら「T」の使い方がわからないのです
調べても出てこないですし、なんとなくTypeと書いていたのです
何か違いがあるのでしょうか?

895:デフォルトの名無しさん (アウアウウー Sa2f-G6vc)
17/03/06 17:26:25.11 SfExdTzoa.net
ない(あるわけないw)けど、型パラメータが一つしかないならTにするのが
暗黙の慣習みたいなものだし、それで可読性が落ちる理由もないし、
あえて変な自己主張してもいいことないよね

896:872 (ワッチョイ 3b90-Mt2S)
17/03/06 21:51:17.87 ACVl84t/0.net
>>878
ありがとうございます、仰るとおりにしたらできました

897:デフォルトの名無しさん (ワンミングク MM3f-prdN)
17/03/06 22:21:32.75 AYI7ZDZ8M.net
TSelectorとか意味わかる名前にしたほうがいいだろ
コレクションの型パラメータみたいに本当に何でもいいなら構わんけど
何でもかんでもT, Uじゃ不親切

898:デフォルトの名無しさん (アウアウウー Sa2f-G6vc)
17/03/07 00:00:53.81 iPWuig5na.net
そんなケースは皆無とは言わないけどあんまりないと思うよw

899:デフォルトの名無しさん (ワッチョイ 0f42-wc60)
17/03/07 00:57:34.30 +YV7asI40.net
型の意味書かなきゃならんってことは何か設計が微妙なんじゃないかって気がする

900:デフォルトの名無しさん (ワッチョイ 1f90-Mt2S)
17/03/07 00:59:34.58 GXNElMqV0.net
静的クラスのデストラクターは定義できないとのことですが、デストラクターの内容を書いたメソッドを呼ぶしかないのでしょうか?

901:872 (ワッチョイ ab90-Mt2S)
17/03/07 01:52:20.69 ruRUpvB50.net
また質問させてください
Listクラス以外の自作クラスのシリアライズも拡張メソッドで行いたいと思って以下のようなコードを書いたのですがエラーも例外も吐かないのに読み込めません
public static void LoadXml<T>(this T obj, string path)
{
XmlDocument xdoc = new XmlDocument();
XmlSerializer xml = new XmlSerializer(typeof(T));

xdoc.Load(path);

XmlNodeReader xnr = new XmlNodeReader(xdoc.DocumentElement);

obj = (T)xml.Deserialize(xnr);
}

これがデシリアライズするクラスの例です
public class MyClass
{ public string value1, value2; }

902:デフォルトの名無しさん (アウアウウー Sa2f-G6vc)
17/03/07 02:25:06.04 iPWuig5na.net
>>885
そもそもデストラクターそのものがあくまでフェイルセーフ的な物のはずだと思うんですが...
っていうか静的クラスのデストラクタって何だかなあw

Windows FormアプリならApplicationのApplicationExitイベントに紐づけするとか、確かWPFにも
似たようなイベントがあったと思ったけど、こういうの使うとイベントハンドラが呼び出される順序で
ハマったりするんだよなあ

903:デフォルトの名無しさん (ワッチョイ 8bc0-NqFr)
17/03/07 02:28:11.35 X44GHN6S0.net
>>885
リソース破棄を明示したいならそもそも静的クラスにすべきじゃないかと

904:デフォルトの名無しさん (ワッチョイ ef4a-m4jB)
17/03/07 05:57:46.86 l3aZYBuT0.net
質問させてください
「変数に値を設定する拡張メソッド」を作りたいのですが
エラーも例外も儚いのにうまくいきません

public static void SetValue<T>(this T obj, T value>
{ obj = value; }

これが使用例です
int i = 0;
i.SetValue(3);
Console.WriteLine(i);

905:デフォルトの名無しさん (ワッチョイ 6bd4-Mt2S)
17/03/07 06:47:30.83 WbHpL/G50.net
それ拡張メソッドじゃなくても無理だよね?
そもそもそんな意味不明なメソッドを作りたいというのがおかしい

906:デフォルトの名無しさん (ワンミングク MM3f-prdN)
17/03/07 07:54:40.64 SGq4g/IKM.net
VBならできるよ

907:デフォルトの名無しさん (ブーイモ MM3f-ZTLi)
17/03/07 08:29:24.98 SQQuUM2SM.net
儚いなあ

908:デフォルトの名無しさん (ワッチョイ bb19-/EJX)
17/03/07 09:38:09.03 1NFra9UW0.net
>>886
ファイルの中身がTに合ってないんじゃねーの

909:デフォルトの名無しさん (ブーイモ MM3f-fL7a)
17/03/07 10:26:04.21 IHsSpNAMM.net
>>889
参照渡しと拡張メソッド(this)が共存しないので無理。素直に代入したら?

910:872 (ワッチョイ ab90-Mt2S)
17/03/07 11:05:38.59 ruRUpvB50.net
>>893
ファイルの中身が違っていたら例外吐くと思っていたのですが違うのですか?

911:>>874 (ワッチョイ 0f7b-BJNc)
17/03/07 11:56:02.27 S+1e7jR70.net
>>876
おっしゃる通り、ページ読み込み完了していないので取得できていなかったみたいです。
確かにページ読み込みが完了してないとスプリクト使えないですよね

912:デフォルトの名無しさん (ワッチョイ 3b9f-m4jB)
17/03/07 11:59:21.35 FPiytoRz0.net
SQLAzure databaseにEntity framework6と.NET Framework4.6.1を利用して接続しています。
アプリ実行時、初回のデータ読み込みに10秒ほどかかるのですが解決方法はないでしょうか?
同じ処理をlocalDBに接続をして試すと3秒ほどです。

テーブル数は1、レコード数も1です。

913:デフォルトの名無しさん (ワンミングク MM3f-PlVy)
17/03/07 13:56:31.38 3EZIVbrWM.net
EFを使わない

914:デフォルトの名無しさん (ワッチョイ 8bc0-NqFr)
17/03/07 19:06:34.88 X44GHN6S0.net
localDBでもレコード1行読み込むのに3秒とか何かがおかしいような
プロファイラで何がネックになっているか調べてみたら?

915:デフォルトの名無しさん (ブーイモ MMaf-d4C0)
17/03/07 20:10:26.97 xCLX0I7rM.net
>>897
ORMはサーバーで使うもんだよ

916:>>872 (ワッチョイ ab90-Mt2S)
17/03/07 20:38:41.72 ruRUpvB50.net
誰か教えてください
最近この人が少ないですね

917:>>872 (ワッチョイ ab90-Mt2S)
17/03/07 20:39:36.79 ruRUpvB50.net
×この人が少ないですね
○ここの人が少ないですね

918:デフォルトの名無しさん (ブーイモ MM3f-fL7a)
17/03/07 21:17:41.73 IHsSpNAMM.net
>>886 >>889 と同じ理由



920:>>872 (ワッチョイ ab90-Mt2S)
17/03/07 22:01:28.13 ruRUpvB50.net
>>903
intが参照渡ししていないので>>889がダメな理由はなんとなくわかります
でもクラスのインスタンスは参照型だと思うのですが、ひょっとしてジェネリックだとそういう制約があるんですか?
シリアライズできてもデシリアライズはできないみたいですが・・・

921:デフォルトの名無しさん (ブーイモ MM3f-fL7a)
17/03/07 22:04:38.86 IHsSpNAMM.net
>>904
参照型の値渡しになってる。
参照渡ししたければrefかoutが必要。

922:>>872 (ワッチョイ ab90-Mt2S)
17/03/07 22:32:22.55 ruRUpvB50.net
ありがとうございます
ジェネリックでも配列やListはシリアライズできて、クラスのインスタンスはシリアル化できないのはなんか腑に落ちませんがなんとな納得してみます

923:デフォルトの名無しさん (ワッチョイ dbbb-BJNc)
17/03/07 22:36:23.03 hjB1k2kx0.net
iniファイルがお似合い。

924:デフォルトの名無しさん (スププ Sd3f-GcmM)
17/03/07 22:56:00.79 JT5OyNStd.net
>>907
iniファイルは標準では非サポートだから初心者向きではないと思います

925:デフォルトの名無しさん (ワッチョイ dbbb-BJNc)
17/03/07 23:44:41.25 hjB1k2kx0.net
iniファイルすらサポートが必要なレベルなのか。

926:デフォルトの名無しさん (スププ Sd3f-GcmM)
17/03/07 23:51:22.65 JT5OyNStd.net
ここは初心者用スレですけど?

927:デフォルトの名無しさん (ワッチョイ 6b19-pp/g)
17/03/08 00:04:08.23 nUQhPPyB0.net
初心者とは言え文字を1行ごとに取り込んでSplit('=')で分割して順番にListにぶち込むだけで取りあえず読み込めるし似た手順で書き込みもできると思う

928:デフォルトの名無しさん (ワッチョイ dbbb-BJNc)
17/03/08 00:06:07.47 YUr8l1RF0.net
そうだね。ここは初心者スレだったね。iniファイルの自前で読み書きはレベルが高すぎたね。

929:デフォルトの名無しさん (スププ Sd3f-GcmM)
17/03/08 00:07:10.07 MhhWeDADd.net
>>911
値が改行コード入りの文字列の時だってあるんですよ

930:デフォルトの名無しさん (ワッチョイ 0ba1-R7fB)
17/03/08 00:09:44.28 nYBrtmF60.net
iniは柔軟すぎて困る

931:デフォルトの名無しさん (ワントンキン MM3f-prdN)
17/03/08 00:12:34.68 swHBt9geM.net
iniはサポートされただろ

932:デフォルトの名無しさん (アウアウオー Sabf-rrQM)
17/03/08 00:12:50.48 +9c4AYMpa.net
ini推しはC#初心者だろうな

933:デフォルトの名無しさん (ワッチョイ 6b19-pp/g)
17/03/08 00:35:21.61 nUQhPPyB0.net
>>913
思いつかなかった
そういやそういう時ってどうやるのが正しいの?
思い返せば自分が似たようなことやった時は書くときに改行コードを<br>に置き換えて一行で読めるようにしてて読み込むメソッドで<br>をEnvironment.NewLineに置換してた
その時はiniじゃなくてcsvだったけど

934:デフォルトの名無しさん (スププ Sd3f-GcmM)
17/03/08 00:45:02.22 MhhWeDADd.net
>>917
自分がCSVパーサー作ったときは一文字づつ解析していったよ
“で囲われてるフィールドがあったり、“そのものは““になっていたりするから一文字ずつ読むのが手っ取り早い

935:デフォルトの名無しさん (ワッチョイ 6b19-pp/g)
17/03/08 00:50:31.95 nUQhPPyB0.net
なるほど
そういうやり方もあるのかthx

936:デフォルトの名無しさん (アウアウウー Sa2f-G6vc)
17/03/08 00:55:26.32 DQTGg9gCa.net
>>906
だーから、(恐らく)シリアライズ/デシリアライズの問題じゃないってばw

インスタンスメソッドだろうが拡張メソッドだろうが、オブジェクトを操作してそのオブジェクトが
入っている変数自身を書き換えようって発想がおかしいのw
自分の首をつかんで自分を持ち上げようとしても無理なのと同じだよww

素直にユーティリティークラスにTを返すメソッドとして実装しましょう。

937:>>872 (ワッチョイ ab90-Mt2S)
17/03/08 01:29:06.79 wRk+GbAW0.net
すいません、どういうことがおかしいのかわからないです
配列やListクラスに拡張メソッドを定義して、その値をどうのこうのするのはおかしいんですか?
拡張メソッドを使用せずに以下のように書くんですか?よくわからないです
obj = LoadXml("C:\\hoge.dat");

938:デフォルトの名無しさん (ワッチョイ 1f23-2BvX)
17/03/08 01:44:21.45 CceDL3fb0.net
>>921
thisはさ、拡張メソッドでもインスタンスメソッドでも値渡しされたインスタンス参照なんだよ
だからそれに代入しても引数の参照先が変わるだけ、元には何の影響も与えない、refも併用できないしね
読み取り専用であるため 'this' に割り当てできません、ってのと同じ、メンバに対する操作のみが有効

939:デフォルトの名無しさん (アウアウウー Sa2f-G6vc)
17/03/08 02:37:50.73 aAsk3kKya.net
>>921
そんな難しい話じゃないと思うけどなあ...

まあ、どうしても拡張メソッドにこだわるなら、変数を書き換えるなんて
馬鹿な考えは捨てて、デシアライズしたオブジェクトから全部の(あるいは必要な)
プロパティーとフィールドをコピーしたらいい。

例えば、

Interface ICopyable<T>
{
  void CopyTo(T source) ;
}

みたいなインターフェイスを定義して、LoadXml<T>のTはICopyableを実装する制約を
つければいいんじゃないかな。知らんけど

940:デフォルトの名無しさん (ブーイモ MM3f-fL7a)
17/03/08 05:15:42.09 FUZAuqxsM.net
>>921
public static void LoadXml<T>(ref T obj, string path)
なら動くんじゃないの?

941:デフォルトの名無しさん (ワッチョイ dbbb-BJNc)
17/03/08 05:20:34.89 YUr8l1RF0.net
ref、thisが分からないってきっとポインタの知識がないんだな。

942:デフォルトの名無しさん (ワッチョイ 1f4c-mC6Z)
17/03/08 07:14:26.58 bhVPr0Ju0.net
シリアライザでググって、ライブラリに突っ込んだ方が早いはず。
Json.Netとか色々あるし

943:デフォルトの名無しさん (ワンミングク MM3f-PlVy)
17/03/08 11:02:49.82 75S/ek5tM.net
>>899
EFなら初回はそんなもの

944:>>872 (ワッチョイ ab90-Mt2S)
17/03/08 12:32:26.51 wRk+GbAW0.net
>>923
どうしても拡張メソッドに拘りたいわけではなくてなぜ書けないのかのほうが知りたいです
足りない頭を端から端まで使っているんですがやっぱりわからないです

たとえばこんな風に書いても16行目18行目20行目では結果が違うのになんでジェネリックになっただけでダメになるのかよくわかりません
URLリンク(ideone.com)

ただのint型でもLoadXml、SaveXmlが呼べてしまうので、もし使えたとしてもなんとなくですがあまり推奨されないのかなと感じます

945:デフォルトの名無しさん (ワッチョイ 1f23-2BvX)
17/03/08 12:59:54.42 CceDL3fb0.net
>>928
だからジェネリック云々の話じゃないって。そのコードは全てメンバに対する代入でしょ?
クラスが参照型というのは変数が直接の実体ではなくインスタンスへの参照というだけ
ChangeExtensionの_myclassに渡るのはmyclass変数への参照ではなくMyclassインスタンスへの参照
値型だろうが参照型だろうが呼び出し元の変数そのものを変えるならrefかoutか返り値を代入するかだよ

946:デフォルトの名無しさん (ブーイモ MM2f-fL7a)
17/03/08 15:05:01.86 mEPgtGPAM.net
>>928
Change()メソッドの中身を

_myclass = new MyClass();
_myclass.value1 = "999";

にしてみ?

947:デフォルトの名無しさん (ワッチョイ dbbb-BJNc)
17/03/08 18:40:42.04 YUr8l1RF0.net
一度意味を勘違いした人の知識を訂正するのは容易なことではありません。

948:デフォルトの名無しさん (ワッチョイ ef02-iS6T)
17/03/08 19:36:09.01 gvo8BpVN0.net
拡張メソッドはほんとにクラスを拡張してると思ってるんじゃないだろうか

949:デフォルトの名無しさん (アウアウウー Sa2f-G6vc)
17/03/08 19:55:54.92 LpkYLhbMa.net
だから、インスタンスメソッドだって自分を参照してる変数を書き換えるなんて
普通はできませんってw

950:>>872 (ワッチョイ ab90-Mt2S)
17/03/08 20:08:48.74 wRk+GbAW0.net
>>929
拡張メソッドでthisに指定しているものは触ることはできないけど、this指定のpublicなメンバなら触ることができる
こういった解釈で間違いないですか?

配列は問題なくできますが、それはどういった理由からですか?配列の要素もメンバ扱いなのでしょうか?

951:デフォルトの名無しさん (ワッチョイ aba0-PBd5)
17/03/08 20:11:40.47 jS0zQn/F0.net
死ね低脳
畑でも耕してろ

952:デフォルトの名無しさん (ワッチョイ 1f23-2BvX)
17/03/08 21:17:35.55 CceDL3fb0.net
>>934
まぁ有り体に言えばそうなんだけど、拡張メソッドとかthisとか、もはやこの際関係ないんだ
まず値型を考える。int i = 0;のとき、変数「i」は4バイトで値0という実体がそのまま入る
次に参照型、Myclass myclass = new Myclass();だと変数myclassには実体へのアドレスが入る

そこまでは理解していると思うけど、メソッドに渡された時、通常はどちらも値渡しなんだよ
値型だと内容が引数にコピーされるのは勿論、参照型も変数の中身=実体アドレスが渡されるだけ
なぜ参照型のメンバのみ元に反映されるか、それは実体アドレスを介した間接参照になって同じ場所を指すから
だけど参照型の引数自体に割り当てても、それは引数が指すものが変わるだけで、元のmyclassが指す場所は変わらない
refやoutで(実体もしくは実体アドレスではなく)変数のアドレスが渡されることで初めて呼び出し元の変数自体を変えられる

953:デフォルトの名無しさん (ワッチョイ ef02-iS6T)
17/03/08 22:38:35.99 gvo8BpVN0.net
参照型と参照渡しの区別がついてないだけか

954:デフォルトの名無しさん (ワッチョイ bfa7-6uAD)
17/03/09 20:07:53.94 f0dyr0g70.net
File.Existsって、ファイル名にスペース入ってるとうまく機能しないのね。

みんなどうしてるん?
ショートファイル名にするのかな?

955:デフォルトの名無しさん (JP 0Ha7-csvI)
17/03/09 20:16:11.18 OnmTFZZNH.net
なに言ってんだ

956:デフォルトの名無しさん (アウアウオー Saca-Dvjv)
17/03/09 20:16:17.75 kp/XS3ena.net
>>938
機能するよ

957:>>872 (ワッチョイ 0790-JiRs)
17/03/09 22:07:48.05 C2ayowr10.net
>>936
なるほど、オブジェクト指向って深いですね

958:デフォルトの名無しさん (ワッチョイ fb59-Gnhz)
17/03/09 22:09:18.05 FW6HepzM0.net
Directory.EnumerateFiles()の拡張子の扱いのが嫌だ
*.htmって指定したのに*.htmlもヒットする

959:デフォルトの名無しさん (ワッチョイ f73c-krjd)
17/03/09 22:10:57.44 ZZ1gzprq0.net
>>938
どこの世界の話だよ

960:デフォルトの名無しさん (ワッチョイ 3631-LGhm)
17/03/09 22:30:03.59 4L4opgUu0.net
初心者から抜け出せてない感じがする

961:デフォルトの名無しさん (ワッチョイ 365e-csvI)
17/03/09 23:02:19.41 Ly+GUFf00.net
>>942
Visual Studio Community 2017 ターゲットフレームワーク.NET Framework 4.6.2
ならないけど。どんな環境でやった?
>>944
そりゃ初心者のスレだし

962:デフォルトの名無しさん (ワッチョイ fb59-Gnhz)
17/03/09 23:25:52.30 FW6HepzM0.net
>>945
試したのはVisualStudio2015でターゲットは4.5.2。
この挙動はMSDNでも説明されてる。
URLリンク(msdn.microsoft.com)(v=vs.110).aspx

963:デフォルトの名無しさん (ワッチョイ f73c-krjd)
17/03/09 23:33:19.02 ZZ1gzprq0.net
やだね

964:デフォルトの名無しさん (ワッチョイ bfa7-6uAD)
17/03/09 23:38:57.82 f0dyr0g70.net
>>940
>>943
まじ!?

965:デフォルトの名無しさん (ワッチョイ 365e-csvI)
17/03/09 23:42:36.42 Ly+GUFf00.net
>>946
2015で4.52でやっても*.htm?にしないとならんな

966:デフォルトの名無しさん (ワッチョイ f73c-krjd)
17/03/09 23:47:11.27 ZZ1gzprq0.net
>>948
まーじまじまじーろ


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