トップページ⇒tech
1002コメント318KB

ふらっと C#,C♯,C#(初心者用) Part119 [無断転載禁止]©5ch.io

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2016/01/31(日) 00:52:20.67ID:OtXGSzkV
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。

内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part118 [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/tech/1448207673/

■関連スレ
C#, C♯, C#相談室 Part89 [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/tech/1443271409/

■コードを貼る場合は↓を使いましょう。
http://ideone.com/
0002デフォルトの名無しさん2016/01/31(日) 01:08:38.52ID:N9Aq8poo
このスレは早くも終わりなのかよ
0003デフォルトの名無しさん2016/01/31(日) 01:57:57.23ID:OtXGSzkV
よかったね!もう低レベルな質問者はいなかったんだ!
またーりするがよし
0004デフォルトの名無しさん2016/01/31(日) 10:22:44.34ID:QMexAFhe
ideone と比べて↓ってどうなのよ?
https://dotnetfiddle.net/

後、reference sourceもテンプレ入れとけばいいんじゃね?
http://referencesource.microsoft.com/
0005デフォルトの名無しさん2016/01/31(日) 13:39:01.93ID:qH2XkhrX
コード書いてるときに、Ctrl押しながらクリックすると定義が表示されるけど
これならないように設定って変えられないの?
Ctrl+VとCtrl+Cで切り貼りしてるときにたまに定義開いちゃって
定義先にペーストされることがあって邪魔くさい・・・
0006デフォルトの名無しさん2016/01/31(日) 16:00:49.01ID:FdM/jilW
コピペするな
0007デフォルトの名無しさん2016/01/31(日) 16:47:43.84ID:Lk2teTuL
正論だな
コピペする奴が悪い
0008デフォルトの名無しさん2016/01/31(日) 17:54:38.31ID:L9wnRk7F
DataGridViewでコピーペーストする方法教えて下さい。
0009デフォルトの名無しさん2016/01/31(日) 18:27:31.45ID:AEa1Mqyg
string[] stArray = {"a", "b", "c"};   文字列の配列を連結したい場合、
string stJoin1 = string.Join(",", stArray);  出来る
string stJoin2 = stArray.Join(",");     エラー
はなぜですか?
0010デフォルトの名無しさん2016/01/31(日) 19:36:56.86ID:XZC47Qjq
拡張メソッドを書いてないから
0011デフォルトの名無しさん2016/01/31(日) 20:32:06.51ID:FdM/jilW
型が違う。
下は、consみたいなのを自作すれば良い。
0012デフォルトの名無しさん2016/01/31(日) 21:49:23.21ID:eL/uJhf1
constってコンパイル時に値が埋め込まれるのでメソッドの戻り値は駄目と書いてあったんですが、Mathクラスの戻り値ならコンパイル時に埋め込んでもいいと思います
どうしたら出来ますか?
0013デフォルトの名無しさん2016/01/31(日) 22:16:29.82ID:qH2XkhrX
>>7
単純にコードの位置を移したいとかでコピペしちゃいけないもんなんですか?
あと、たとえばrow["hoge"]とかhogeの部分とか型付けされてないところのスペルミス防ぐのに
コピペしてるんですが・・・
0014デフォルトの名無しさん2016/01/31(日) 22:29:15.00ID:FdM/jilW
>>13
上は、そう頻繁にあるものでもあるまい。
それにマウス持ち変えるより、ロールアップキーでも使う方が速いだろう。
下は、nameof使え。
0015デフォルトの名無しさん2016/01/31(日) 22:35:50.78ID:XZC47Qjq
コードの位置を動かす時はリファクタリング支援ツールを使う
最初から型付けされたコードを書く
0016デフォルトの名無しさん2016/01/31(日) 22:38:08.13ID:RnP8OsKU
>>12
無理
static readonlyにするか、事前に関数電卓で計算してベタで書け
0017デフォルトの名無しさん2016/01/31(日) 22:40:37.42ID:eL/uJhf1
>>16
まだMSが対応していないという事ですか?
バージョンアップで対応する可能性はありますか?
0018デフォルトの名無しさん2016/01/31(日) 22:49:44.07ID:QMexAFhe
それはMSに聞いてくれとしか…
0019デフォルトの名無しさん2016/01/31(日) 22:50:53.93ID:x//RUhMN
>>17
シンプルにしてコンパイルを高速にしたいからそうなってるんだろうし、対応はまず無いだろ。
0020デフォルトの名無しさん2016/01/31(日) 22:55:05.54ID:eL/uJhf1
ならメソッドを使わずに切り上げをする方法を教えてください
Mathで使いたいのは切り上げだけです。切り下げなら(int)でいいので
0021デフォルトの名無しさん2016/01/31(日) 22:59:34.79ID:ICO548x3
なんでその質問が出てくるのか理解できないんだが、何がやりたいの?
0022デフォルトの名無しさん2016/01/31(日) 23:03:16.54ID:LmCDpUMw
>>20
コンパイル時に値が確定するんだったら普通にリテラルで書いて
必用ならそのリテラルの意味なり計算式なりをコメントで添えておけばいいでしょ。
何がしたいんでしょ。
0023デフォルトの名無しさん2016/01/31(日) 23:09:13.99ID:eL/uJhf1
>>22
コメントで書くしかないのか
式で書ければ便利と思っただけ
0024デフォルトの名無しさん2016/01/31(日) 23:31:52.22ID:LmCDpUMw
>>23
まあ気持ちだけは分からんでもないけどね。
0025デフォルトの名無しさん2016/01/31(日) 23:37:16.03ID:QMexAFhe
インラインメソッドがあれば可能かもな
無いけど
0026デフォルトの名無しさん2016/01/31(日) 23:39:07.66ID:eL/uJhf1
そういえば>>19見て思ったんだけどc#は実行速度よりコンパイル速度を優先しているのか
コンパイルとか一瞬で終わるのに・・・
0027デフォルトの名無しさん2016/01/31(日) 23:39:18.71ID:W1iwZ4fQ
そもそもstatic readonlyなら遅くてconstなら許容できるようなケースがどれだけあるのかと言いたい
とりあえずstatic readonlyにしといて遅かったら(そして万一constにすることで改善したら)直せばいい
まあはっきり言って絶対にありえないけどね
0028デフォルトの名無しさん2016/01/31(日) 23:46:36.44ID:W1iwZ4fQ
>>26
そうじゃない
Math.Sin(0.1)は定数だが、それをどうやってコンパイラが判断するのか?
Mathクラスのメソッドだけを言語仕様で特別扱いするのか?
それとも const double Sin(double x) のように修飾子で区別するか?
じゃあconstメソッドの中身はどうやって実装する? 結果が定数であることをどう保障する?
くだらないことのために言語が無駄に複雑になりすぎるんだよ
0029デフォルトの名無しさん2016/02/01(月) 00:00:00.12ID:LZvTT2lb
C++のconstexprが欲しいのか
0030デフォルトの名無しさん2016/02/01(月) 00:01:09.11ID:LZvTT2lb
僕は要らねーと思いますよ
理由は27と同じ
0031デフォルトの名無しさん2016/02/01(月) 00:13:35.57ID:OH63tZsW
実行時コンパイルで最適化されるだろ?
0032デフォルトの名無しさん2016/02/01(月) 00:17:47.14ID:LZvTT2lb
ちなみにc++のconstexprは、
constexpr用に制限されたコンパイラもういっこつける方針で設計された(c++14版)ので
実装コストはヤバい
GCCなんかv4のうちは無理!と言ってる
0033デフォルトの名無しさん2016/02/01(月) 00:22:03.93ID:dIlBXeJw
>>28
保証することは無理でもコンパイル時に呼び出してねって言うことなら出来ると思う
const(Math.Hoge(hoge))的な文法追加して
0034デフォルトの名無しさん2016/02/01(月) 00:59:06.40ID:PI4teHGz
>>14-15
VisualStudio2013なので使えないですよね・・・?
ロールアップキー、リファクタリング支援ツールこれまで使ったことがないので勉強してみます
0035デフォルトの名無しさん2016/02/01(月) 02:37:16.26ID:Z3IF5HOp
>>20
(int)hage+1
0036デフォルトの名無しさん2016/02/01(月) 06:41:30.50ID:S6M4IlTn
>>33
C#にはJITがあるんだから無理にコンパイル時にやる必要はない
明らかに定数なら実際最適化されるはず
0037デフォルトの名無しさん2016/02/01(月) 10:07:11.07ID:7cizXyZ3
VisualStudio2013のPro使ってるんだけど2015のcommunityに移行した方がいいの?
高い金だして2013のPro買ったけど、無料版のほうがいいのかね
移行するにしても開発中のプロジェクトって簡単に移せるものなの?
0038デフォルトの名無しさん2016/02/01(月) 12:04:32.20ID:I165EpQr
2015の機能が必要なら移行しないといけないけども、
そうでなきゃ2013で良いんじゃね
0039デフォルトの名無しさん2016/02/01(月) 14:54:14.50ID:aG9hZjMU
こういう配列から、
string[] array=new string[]{
  "",
  "",
  "aaa",
  "",
  "",
  "bbb",
  "ccc",
  "",
  ""
};

前後の空文字列要素を除去して、こんなふうにしたいのですが、
{
  "aaa",
  "",
  "",
  "bbb",
  "ccc",
};
LINQなどでやる方法教えて下さい。
0040デフォルトの名無しさん2016/02/01(月) 15:43:34.78ID:V4hZicDh
あえて書くならこんなんか
array.SkipWhile(_ => _ == "").Reverse().SkipWhile(_ => _ == "").Reverse().ToArray()
0041デフォルトの名無しさん2016/02/01(月) 18:10:43.09ID:/r/8ldkl
Ixに SkipLast があったような無かったような。
0042デフォルトの名無しさん2016/02/01(月) 18:19:24.39ID:EVPhHPfU
>>40
TakeWhile使えばいい
0043422016/02/01(月) 18:20:33.27ID:EVPhHPfU
いやすまんTakeWhileじゃだめだな
0044デフォルトの名無しさん2016/02/01(月) 18:46:51.72ID:czv56jrR
出来たとしても無理にLINQでインラインでやるよりメソッドに出した方が可読性は良いと思う
0045デフォルトの名無しさん2016/02/01(月) 18:52:59.57ID:FFxZxQH+
LINQ使いたがり症候群にそんなこと言ってもムダムダ
0046デフォルトの名無しさん2016/02/01(月) 18:54:36.29ID:+KtViPiM
FuncとAction使ってたら、意味わからんからdelegateで書いてと言われた・・・
0047デフォルトの名無しさん2016/02/01(月) 18:57:09.23ID:LZvTT2lb
低レベルな職場しか選べないと大変だね。
同情するよ。
0048デフォルトの名無しさん2016/02/01(月) 20:14:58.30ID:2W5izw7a
コミュ症治してマトモな会社行きたい
0049デフォルトの名無しさん2016/02/01(月) 21:20:16.63ID:aG9hZjMU
>>40
ありがとうございました
0050デフォルトの名無しさん2016/02/01(月) 21:42:26.45ID:PI4teHGz
みなさんはどのVisualStudioのバージョン使ってるんですか?
無料のComminity?それともMSDNつきのPro以上?
0051デフォルトの名無しさん2016/02/01(月) 21:44:54.24ID:2W5izw7a
家では無料だよ
会社では客によりけり
0052デフォルトの名無しさん2016/02/01(月) 21:47:47.53ID:CMQpk8BM
まともな会社などない
0053デフォルトの名無しさん2016/02/01(月) 21:49:51.39ID:2W5izw7a
じゃあ退職して冒険家になりたい
0054デフォルトの名無しさん2016/02/01(月) 21:50:44.12ID:wNeKxt73
うちは会社としては比較的まともだけど技術はカスだよ
中小のクソブラック(派遣除く)の方が自由にやれるし技術もある
0055デフォルトの名無しさん2016/02/01(月) 21:51:52.81ID:PUKtqVKL
それは社長と自分の力量に恵まれた場合だけに成立する結論では。
0056デフォルトの名無しさん2016/02/01(月) 21:53:40.39ID:2W5izw7a
クソブラックだけど自由全くない
クソみたいな仕様書とクソみたいな規約で雁字搦め
0057デフォルトの名無しさん2016/02/02(火) 04:23:46.44ID:hSQJZAUP
>>39
array
.SkipWhile(s => s.Length == 0)
.SkipWhileLast(s => s.Length == 0)
SkipWhileLast()の実装は
C# SkipWhileLast でググれば出てくる。

LINQ使うコツは、小まめにSkipWhileLastみたいな便利関数を作って行く事。
そうすると、後がドンドン楽になる。
0058デフォルトの名無しさん2016/02/02(火) 04:34:46.35ID:hSQJZAUP
>>34
2015使え。
ライセンスが無いなら、会社に談判しろ。
どうしてもダメなら、CallerMemberNameかExpressionか使って工夫しろ。
ラムダ式使用禁止なら、移動願いでも出せ。
0059デフォルトの名無しさん2016/02/02(火) 04:38:04.48ID:hSQJZAUP
>>50
個人開発ならCommunity一択。
msdnはwebで検索。
ある程度の規模の会社ならPro。
0060デフォルトの名無しさん2016/02/02(火) 06:58:30.82ID:1lbf9bi4
>>57
そういう極めて基本的なユーティリティメソッドを自分で作っちゃうのはあまり良くないな
ソースに個人の癖が出すぎる
典型的な例はforEachとか、Stringに変な拡張メソッド付けるとかな
再利用は目的単位で
0061デフォルトの名無しさん2016/02/02(火) 08:08:12.85ID:hSQJZAUP
便利関数は言葉が悪かったか((笑))
目的関数を作れ。

> 前後の空文字列を除去
この場合
前の除去が、SkipWhile
後の除去が、SkipLastWhile

LINQの最大の利点の一つは、手段ではなく目的がダイレクトに書けること。
0062デフォルトの名無しさん2016/02/02(火) 13:03:48.60ID:yOFSQOe0
>45
LINQ好きな人と嫌いな人は何が違うんでしょうか?
0063デフォルトの名無しさん2016/02/02(火) 13:08:02.67ID:3jsOLIbZ
>>62
書くとき簡潔さやエレガントさを重視する人と、
後でメンテする時のコストや可読性を重視する人の違いが大きいかもね。
0064デフォルトの名無しさん2016/02/02(火) 14:00:47.70ID:31GO6MKM
C#の習得を効率よくしたいのですがオススメの書籍を教えて下さい

Unityで使うのが目的です

PHPとRubyを多少触ったことがあり
クラスまでは何となく分かるくらいのプログラム初心者です
0065デフォルトの名無しさん2016/02/02(火) 15:48:18.70ID:jZDM0b/G
LINQは好きだけどLINQで書くことが目的になってる奴は嫌いだわ
0066デフォルトの名無しさん2016/02/02(火) 19:27:27.78ID:bYmP3hY/
>>63
初心者の自分にどっちがどっちなのか教えて下さい
0067デフォルトの名無しさん2016/02/02(火) 19:43:17.84ID:ZOdX5end
>>63
どっちらもLINQが優勢な気がする。
まあ、可読性は慣れが大きいか。
0068デフォルトの名無しさん2016/02/02(火) 21:16:57.79ID:6fuhRmOR
if(a1>b1&&c1>d1)ほにゃらら
if(a2>b2&&c2<d2)ほにゃらら
if(a3<b3&&c3>d3)ほにゃらら

みたいに等号の向きが違うだけの処理って
等号パターンをパラメーター化したりするような方法ってありますか?

クールにかける方法があればご教授下さい。
0069デフォルトの名無しさん2016/02/02(火) 21:24:07.68ID:6fuhRmOR
ああ自分で書いといて何いってるのか意味がわからない。
a1とかは配列にしてforとかで回して処理できるようにしたいのです
0070デフォルトの名無しさん2016/02/02(火) 21:43:31.72ID:ZOdX5end
X[] a, b, c
の時
Func<X, X, bool>[]
を用意する。
題意を外してたら、ごめん。
0071デフォルトの名無しさん2016/02/02(火) 22:15:51.73ID:6fuhRmOR
>>70
おおお。ありがとうございます。
意図にあってます!

なるほどFuncというのがあるんですね。

こんな感じでしょうか。
若干仮引数部分が冗長な感じがしますが
使い方まちがってますでしょうか。

http://ideone.com/VLeVQN
0072デフォルトの名無しさん2016/02/02(火) 23:25:27.97ID:ijuPgovR
>>67
同意
0073デフォルトの名無しさん2016/02/03(水) 09:53:08.59ID:ToDOcZiy
c:\ddd.txt
が存在していて、それを
c:\aaa\bbb\ccc\ddd.txt
にコピーしたいのですが、
aaa,bbb,cccが存在していないのでエラーします。
自動的にフォルダを作ってコピーしてくれるメソッドはありますか?
0074デフォルトの名無しさん2016/02/03(水) 11:16:12.29ID:j8HR3MFJ
>>73
Directory.CreateDirectory
0075デフォルトの名無しさん2016/02/03(水) 12:25:45.11ID:SF3O1Oce
人の話を話半分に聞く奴
0076デフォルトの名無しさん2016/02/03(水) 14:36:18.68ID:GNXIV+s8
OrderBy(Descending)にIComparer<TKey>を取るバージョンだけあって
Comparison<T>を取るバージョンがないのはなぜ?

不便でしょうがないと思うんだけど。
0077デフォルトの名無しさん2016/02/03(水) 14:52:43.52ID:f1DNv6yV
>>76
Funcでセレクタを指定する方でほとんど十分だから
0078デフォルトの名無しさん2016/02/03(水) 14:54:44.10ID:GNXIV+s8
>>77
まあ確かにそうなんですが...
0079デフォルトの名無しさん2016/02/03(水) 15:02:54.48ID:SF3O1Oce
作者の気持ちは作者に聞けよ
0080デフォルトの名無しさん2016/02/03(水) 15:38:40.16ID:f1DNv6yV
Funcでソートキーを指定する方はクエリ式で必ず必要だから、
ラムダの引数の数が違うだけで全く動作の異なるオーバーロードがあったら紛らわしすぎるだろ
0081デフォルトの名無しさん2016/02/03(水) 18:38:09.82ID:sizrUp1k
CSVのデータ列の縦と横を入れ替えたいのですが、どのようにしたらいいですか?
0082デフォルトの名無しさん2016/02/03(水) 20:05:40.98ID:ET0ey9ws
もっと正確に話して
0083デフォルトの名無しさん2016/02/03(水) 20:31:29.28ID:KiLlRrJ3
>>71
自分なら
X [a b c d]
みたいなクラス作って
Match(Action[])
みたいな関数作るかなあ。
0084デフォルトの名無しさん2016/02/03(水) 20:34:50.63ID:KiLlRrJ3
>>81
csvをパースして、IEmuerable<string[]>を作る。
後は、string[]の長さが全部同じなのを前提にして縦横変える。
0085デフォルトの名無しさん2016/02/03(水) 20:39:10.73ID:/MNciLgK
>>81
エクセルで開いてコピーして形式を選択張り付けで行列を入れ換えにチェックを入れる。
0086デフォルトの名無しさん2016/02/03(水) 21:05:39.56ID:ycDP2Q2/
>>81
何度もやらないなら Excel 使えば?
0087デフォルトの名無しさん2016/02/03(水) 21:47:25.66ID:glKmFo73
C#でyahooジオシティーズのFTPサーバーにアクセスして
ファイルをアップロードするプログラムを作ったのですが
#76でエラーコード530(リモートサーバーにログインされていません)が返って来ます。
passもIDもあっています。何故かわかる方いらっしゃったらよろしくお願いします。


http://ideone.com/URZ7XR
0088デフォルトの名無しさん2016/02/03(水) 21:55:15.11ID:EldvIZCu
>>87
そんなもんftpコマンドでええがな
0089デフォルトの名無しさん2016/02/03(水) 21:56:26.30ID:glKmFo73
C#でyahooジオシティーズのFTPサーバーにアクセスして
ファイルをアップロードするプログラムを作ったのですが
#76でエラーコード530(リモートサーバーにログインされていません)が返って来ます。
passもIDもあっています。何故かわかる方いらっしゃったらよろしくお願いします。


http://ideone.com/URZ7XR
0090デフォルトの名無しさん2016/02/03(水) 21:57:55.35ID:glKmFo73
>>89
ミスです

>>88
できればC#のみで実現したいのですが。。
0091デフォルトの名無しさん2016/02/03(水) 22:02:56.65ID:EldvIZCu
>>90
ファイルに書いてProcess.Start呼ぶだけた
C#だけで実現できるぞ?
0092デフォルトの名無しさん2016/02/03(水) 22:08:08.63ID:eknpwZEf
>>91
わからないなら答えるなよ
0093デフォルトの名無しさん2016/02/03(水) 22:08:17.43ID:VkZvsMH5
そもそもC#で作るようなもんじゃないな
PerlとかPythonとかでいいよ
0094デフォルトの名無しさん2016/02/03(水) 22:11:18.30ID:/MNciLgK
>>89
よくわからないけどー
client.Headers[HttpRequestHeader.Authorization] = "Basic " + base64;
ってFTPでもつうようするん?

client.wc.Credentials = new System.Net.NetworkCredential("username", "password");
では?
0095デフォルトの名無しさん2016/02/03(水) 22:11:38.07ID:glKmFo73
>>91
サンプルプログラム等あればお願いします


>>90
C#でという指定の課題なので。。
0096デフォルトの名無しさん2016/02/03(水) 22:15:10.62ID:glKmFo73
>>94
client.wc.Credentials = new System.Net.NetworkCredential("username", "password");
でも同様のエラーが出ました。
0097デフォルトの名無しさん2016/02/03(水) 22:18:23.55ID:/MNciLgK
>>96
そっかー残念やなー
0098デフォルトの名無しさん2016/02/03(水) 22:46:23.38ID:4yo/6pJu
最近はこんな意味不明な課題を出すようになったんだな
0099デフォルトの名無しさん2016/02/03(水) 22:54:22.63ID:4yo/6pJu
最初に一般的なftpクライアントでサーバーが正しく動いているか確認
正しく動いているならWireSharkでペイロードをキャプチャ
正しく動かないクライアントのペイロードと比較
足らない物を補うなり修正なりする
0100デフォルトの名無しさん2016/02/03(水) 23:49:10.39ID:unol2DYF
>>73
ありません
0101デフォルトの名無しさん2016/02/04(木) 00:40:34.48ID:gWgQAzup
>>99
少し頑張ってみます。
ffftp等であればアクセスできるためサーバーは動いていると思われます。
0102デフォルトの名無しさん2016/02/04(木) 06:47:24.04ID:PFzCzh/c
>>73
> エラーします。
たまにこう書いてる奴見かけるがアホっぽいからやめた方がいい
0103デフォルトの名無しさん2016/02/04(木) 08:50:01.99ID:+vbR9WQv
>>73
FileSystem クラス使ったら行けるんじゃなかったっけ?
https://msdn.microsoft.com/ja-jp/library/microsoft.visualbasic.fileio.filesystem(v=vs.110).aspx
うろ覚えだから間違っていたらごめんね
0104デフォルトの名無しさん2016/02/04(木) 15:03:25.17ID:CRE7g2W6
日時Aと日時Bの間に、時刻Cを何回経過したかを求める
関数の作り方を教えてください。
おねがいします。
0105デフォルトの名無しさん2016/02/04(木) 15:45:42.87ID:0aoqlSU+
>>104
(B-A)/C
0106デフォルトの名無しさん2016/02/04(木) 15:56:50.85ID:CRE7g2W6
>>105
除算はうまくいかないようです。もう少し詳しく教えてください。

言い忘れましたが、A、B、CいずれもSystem.DateTime型で、
Cについて日付情報は使用しないのでダミーのものが入っている前提です。
0107デフォルトの名無しさん2016/02/04(木) 16:06:24.55ID:CRE7g2W6
訂正。
Cについては、時刻情報しか使用しないので、
日付部分にはダミーのものが入っています。
0108デフォルトの名無しさん2016/02/04(木) 16:13:35.26ID:w4WZmN2D
計算の単位を秒とかの必要な精度に一度変換してみ
0109デフォルトの名無しさん2016/02/04(木) 16:13:41.05ID:CRE7g2W6
もう少し具体例を出したほうが分かりやすいでしょうか。

2016/1/1 16:50:00から、2016/1/31 6:00:00までの間、
7:30:00に鳴った目覚ましの回数を取得したいのです。
0110デフォルトの名無しさん2016/02/04(木) 16:25:00.84ID:CRE7g2W6
>>108
すみません。もっとこんがらがりました。
単純に日数の差分で割って切り捨てれば出せるかと思いましたが、
>>109 の例でいうと、7:29〜7:31のたった2分でも1回とカウントし、
同じ2分の7:27〜7:29ではカウントしない方法がわかりません。
0111デフォルトの名無しさん2016/02/04(木) 16:49:57.66ID:CRE7g2W6
やっとわかりました!
forループで範囲開始時刻から終了時刻まで1秒ずつインクリメントして、
時刻Cと比較してカウンタをインクリメントしたらできました!
ありがとうございます!
0112デフォルトの名無しさん2016/02/04(木) 17:11:15.22ID:Jx1/Vtha
自己解決したなら良かった
参考までに
http://ideone.com/w638Ds
0113デフォルトの名無しさん2016/02/04(木) 17:49:37.86ID:leHGWpD8
ここの人たちってマ板の住人なのにほとんど怒らないからかえって不気味
0114デフォルトの名無しさん2016/02/04(木) 18:22:31.66ID:CRE7g2W6
>>112
ありがとうございます!
私は下記のように書きましたが、そちらのほうがシンプルですね!
http://ideone.com/WyDvRp
0115デフォルトの名無しさん2016/02/04(木) 19:07:31.09ID:PFzCzh/c
>>113
初心者スレだからプログラムの内容についての話なら基本怒られない
むしろ怒られるのは関係ないレスしてるお前や俺
0116デフォルトの名無しさん2016/02/04(木) 20:15:13.21ID:0aoqlSU+
>>111
足算と引算があれば除算は定義可能。
1秒毎の必要は無い。
0117デフォルトの名無しさん2016/02/04(木) 22:17:41.52ID:gWgQAzup
>>87
追記です。
このプログラムを作成したパソコンであれば動くのですが
パソコンを変えると動かなくなります。
二つのパソコンの回線(IPアドレス等も)は異なるものを使っています。
パソコンを変えても動くようにするためにはどうすればよいでしょうか?
0118デフォルトの名無しさん2016/02/04(木) 22:22:48.04ID:kJqvXS0n
なにが原因で動かないの?
0119デフォルトの名無しさん2016/02/04(木) 22:27:38.31ID:pyKOZnex
送信してるものが変わらないならサーバー側が弾いてるとしか思えないな
本当にそうだったら誰の手にも負えないね
0120デフォルトの名無しさん2016/02/04(木) 22:30:40.28ID:gWgQAzup
>>119
送信しているものは同じです。。

>>118
原因がわかりません。
0121デフォルトの名無しさん2016/02/04(木) 22:38:34.71ID:+OoSEPJK
ファイアウォールやセキュリティソフトの有無は?

「うごかない」ときは、エラーメッセージやエラーコード、例外は発生してないの?
0122デフォルトの名無しさん2016/02/04(木) 22:43:29.38ID:0aoqlSU+
>>117
パソコンの設定、ネットワーク環境も含めて同じにする。
0123デフォルトの名無しさん2016/02/04(木) 22:58:19.44ID:gWgQAzup
>>121
例外が発生しましたとでます。
セキュリティソフトを確認してみます。
0124デフォルトの名無しさん2016/02/04(木) 23:36:12.54ID:+Y8C24ZP
>>123
勝手にメッセージを省略するなよ
もっと詳しい情報が表示されてるだろ?
0125デフォルトの名無しさん2016/02/04(木) 23:41:15.65ID:gWgQAzup
>>124
型 'System.Net.WebException' のハンドルされていない例外が System.dll で発生しました

追加情報:リモート サーバーがエラーを返しました: (530) ログインされていません
0126デフォルトの名無しさん2016/02/05(金) 02:33:55.18ID:Nkwk97Cl
そのftpサーバー側で530出すのはどんな時か調べたほうがいい
2重ログイン禁止とか?
0127デフォルトの名無しさん2016/02/05(金) 05:50:52.84ID:YnWE7ryG
CUIベースのプロセスと、GUIベースのプロセス間で通信させたいんですが、いいやり方教えて下さい。
例えば、CUIで受信したデータをファイル化します。
ファイル化済んだらGUIへ通知だけさせたいです。
0128デフォルトの名無しさん2016/02/05(金) 07:04:54.45ID:3Nn1Djx6
>>127
WCF
0129デフォルトの名無しさん2016/02/05(金) 07:17:29.50ID:bOiqRlOT
>>127
それだけならFileSystemWatcherで十分じゃね
CUIのプロセスをGUIから起動させてるんならProcessオブジェクトの標準出力を読むこともできる
どうしても複雑なやりとりが必要ならWCFなどでIPCしないと仕方ないけど、
こういうのは極力作りこまないで疎結合にしたほうがいいよ
0130デフォルトの名無しさん2016/02/05(金) 07:28:31.68ID:z5njROW4
メッセージサービスで通知でおk
0131デフォルトの名無しさん2016/02/05(金) 07:48:15.33ID:yIjwQ5WN
>>127
つMSMQ
0132デフォルトの名無しさん2016/02/05(金) 08:11:32.47ID:72hcdQ5e
>>127
C# イベント プロセス間
辺りでググればいい
http://gurizuri0505.halfmoon.jp/develop/csharp/processmessage
0133デフォルトの名無しさん2016/02/05(金) 10:15:54.61ID:M+o1878f
アトミックな処理って破壊的代入のみの事を指すんですよね?
0134デフォルトの名無しさん2016/02/05(金) 11:14:36.99ID:65Kzmabe
アトミック操作=不可分操作ですよ
破壊的ってどこから出てきたの?
妄想?
0135デフォルトの名無しさん2016/02/05(金) 14:33:39.30ID:awzjuRq3
原子力は破壊的という発想なんでわ。
0136デフォルトの名無しさん2016/02/05(金) 15:29:28.68ID:GJmivlP+
どうでもいい事なんだけど「は」と「わ」を間違える奴はまともな教育を受けてない人なのかと思う
0137デフォルトの名無しさん2016/02/05(金) 16:07:28.99ID:awzjuRq3
ジョークだからおどけた語尾にしたつもりだったんだけど、
マジレスされちった (ゝω・)vキャピ
0138デフォルトの名無しさん2016/02/05(金) 19:00:08.95ID:VNGa2qV1
アトミックバズーカ(破壊的)
0139デフォルトの名無しさん2016/02/05(金) 20:32:15.24ID:5SxpQFrH
エラーチェックして、エラーだったらエラーメッセージのリストを取得する

ようなメソッドってどういう名前とシグニチャにするのがいいでしょう?

isValidみたいなメソッド名で、戻り値bool、引数にrefでリスト渡すのが、まず思いつきますが
あまりref使いたくないので他に方法ないでしょうか?

エラーかどうかのbool値とリストをもつクラスを作って、戻り値として受け取る?
その場合はメソッド名は何が適切ですかね
0140デフォルトの名無しさん2016/02/05(金) 20:46:43.11ID:Z4Oj7542
>>139
例外使う
0141デフォルトの名無しさん2016/02/05(金) 20:53:23.37ID:3Nn1Djx6
>>139
何がやりたいかよう解らんが、scalaのvalidationとか参考にすれば(適当)
0142デフォルトの名無しさん2016/02/05(金) 21:06:49.66ID:5SxpQFrH
>>141
やりたいことは、データの集合に対して整合性チェックを行って、okなら登録処理のようなものです

整合性チェックは色々なチェックがあるので

CheckAAA(dataList);
CheckBBB(dataList);
...
みたいな感じで各チェックを行っていって
エラーなら、エラーメッセージ群をどこかに表示

最後にエラーがなければ登録処理

みたいな、流れを分かりやすく書きたいです
0143デフォルトの名無しさん2016/02/05(金) 21:15:15.38ID:ejxo0AUJ
冗談にしてもいい歳したおっさんがキャピとかやってんのマジで気持ち悪いな
0144デフォルトの名無しさん2016/02/05(金) 21:19:24.38ID:lm1grbus
マジレスくんお帰りなさい
今日は遅かったね
0145デフォルトの名無しさん2016/02/05(金) 21:21:38.04ID:GgxKh3Fo
>>142
返値にエラーとエラーが無い状態が帰るようにしたら?
0146デフォルトの名無しさん2016/02/05(金) 21:26:09.85ID:gFEJuD8o
チェックメソッドの数にもよるけど、Func<datalist,bool>のList作ってForeachでぶん回す
エラーの場合はメソッド名をnameofで取得するか独自メッセージ返すような感じかね
0147デフォルトの名無しさん2016/02/05(金) 22:07:32.45ID:3Nn1Djx6
>>142
それなら、scalaのvalidationそのもの。
c#で実装して公開してくれww
0148デフォルトの名無しさん2016/02/05(金) 22:13:32.93ID:bOiqRlOT
DataAnnotationsでも使ったら?
0149デフォルトの名無しさん2016/02/05(金) 22:37:57.14ID:7sKFgg6W
>>142
Rx
0150デフォルトの名無しさん2016/02/06(土) 03:53:41.94ID:XG1h6+tz
>>149
このスレではRxもLINQも評価されないことが多い
0151デフォルトの名無しさん2016/02/06(土) 05:37:48.03ID:ewLa/pEP
>>139
> あまりref使いたくない
理由は?
0152デフォルトの名無しさん2016/02/06(土) 05:58:03.11ID:oAqoRpi+
>>142
素朴に考えてみた。

listdataの要素の型をXとする。
var m = new Machine<X>(listdata);
Result r =
m.Validate(x => CheckA(x))
.Validate(x => CheckB(x))
. ...
.Resolve()
;
if(r.HasError){
エラー処理(r.Error);
}else{
登録処理(datalist);
}
みたいなMachineとResultを作る。
0153デフォルトの名無しさん2016/02/06(土) 06:05:32.74ID:oAqoRpi+
CheckAの返す型も要るから、Machine<X, E>か。
0154デフォルトの名無しさん2016/02/06(土) 11:08:19.37ID:R9MO+uq2
ベジェをGraphics.DrawBezierで描きつつ実際の座標も欲しいので
ttp://studio-rain.cocolog-nifty.com/blog/2008/07/post_c4f5.html
このサイトを参考に自前で多数のベジェを計算・描画してみました
すると座標計算速度は速いけど、Graphics.DrawLineやFillEllipseで実際に描画するのに時間がかかって、Graphics.DrawBezierより明らかに遅い
さらに太さのある線を描こうとすると、無駄な描画が増えるので当然だろうけどもっと遅くなる

速度を上げるには、
・ベジェ計算だけ自前で行って描画はDrawBezierに任せる(ただしピクセル単位で実際の描画とズレるかも)
・アンマネージでの画像操作を覚える(よく知らない)
・GPUを利用して並列描画する?(よく知らない)
というあたりでしょうか?
0155デフォルトの名無しさん2016/02/06(土) 11:12:49.04ID:0UWDYh4J
>>154
WPF使うとかHTMLのCanvas使うとか
01561542016/02/06(土) 11:41:53.83ID:R9MO+uq2
WPFでは実行部分をC#、描画にDirectxを使えるんですね
調べてみます
ありがとうございました
0157デフォルトの名無しさん2016/02/06(土) 11:54:43.51ID:6GrwE9uC
2012 ExpressでHtmlAgilityPackを使用したくnugetでインストールしようとしているのですが
「ファイルのデータが壊れています」というメッセージが出てインストールできません。
どのような原因が考えられるでしょうか?
0158デフォルトの名無しさん2016/02/06(土) 13:13:58.51ID:MAd5yVbQ
>>151
まだまだ初学者なんで間違ってるかもしれませんが
リファクタリング本とかCODE COMPLETEみたいな本で学んでいると

なるべくメソッドは、入力に対して出力返すようなシンプルな作りがいいと思いまして

メソッド名見ただけで使い方が分かるような物がいいと考えると

出力として欲しいものをrefでごちゃごちゃ渡していくのって、どうなのかなって思いました
0159デフォルトの名無しさん2016/02/06(土) 13:45:33.36ID:ewLa/pEP
>>158
> なるべく‥
なんだから、無理に ref を避けなくてもいいと思うよ
0160デフォルトの名無しさん2016/02/06(土) 14:30:55.01ID:4STRQeN+
>>158
C/C++の時代からのやり方だ,素直に従いたまえ
0161デフォルトの名無しさん2016/02/06(土) 15:55:34.62ID:57BGy/1R
>>158
その感性は100%「正しい」
過去の習慣に惑わらせずにref は例外中の例外でOK
0162デフォルトの名無しさん2016/02/06(土) 17:11:18.28ID:MAd5yVbQ
>>152
メソッドチェーンで繋げて評価できるのが凄くいいですね
参考にさせていただきます。

こういうパターンって何かに使われてるんでしょうか?


それからscalaのvalidationも調べてみます。
0163デフォルトの名無しさん2016/02/06(土) 17:24:02.03ID:21OGO6t2
>>158
クエリとコマンドを明確に区別してコードを書く
クエリはシステムを変更しない
コマンドは何も戻さない
クエリ結果が2つ以上になるならそれらを含む別のクラスを作成する
極論するとシステム開発なんてこれだけで全てうまくいくんだよね
0164デフォルトの名無しさん2016/02/06(土) 17:28:55.18ID:5yNQjtYt
>>163
>クエリ結果が2つ以上になるならそれらを含む別のクラスを作成する
これ面倒臭がる人多いよね
0165デフォルトの名無しさん2016/02/06(土) 18:11:28.77ID:ewLa/pEP
>>161
で、代賛案もなしかよ w
0166デフォルトの名無しさん2016/02/06(土) 18:33:15.79ID:5kvIq2AE
Tuppleを使うか戻り値2つを保持できる構造体かクラスを定義ってのが定番かな
後はDynamicを使う方法か
0167デフォルトの名無しさん2016/02/06(土) 18:36:47.78ID:PmjXQmD8
Tuppleやdynamic使う位ならrefの方がまし。
Tuppleやdynamicこそ例外中の例外。
0168デフォルトの名無しさん2016/02/06(土) 18:40:04.21ID:VXVqCJqs
自分の意見を一般化して喋る奴ばかりだな
聞くだけ価値ゼロ
いや、時間のムダだからマイナスか
01691522016/02/06(土) 18:47:37.87ID:57BGy/1R
C#7.0からは
(IsValid, Errors) = Foo();
と書ける様になるはず。

今回の場合は、Errorsがemptyかどうかで判断出来るが。
仕事で書くなら、それ用の箱を書くかな。
0170デフォルトの名無しさん2016/02/06(土) 18:52:33.42ID:57BGy/1R
> メソッドは、入力に対して出力返すようなシンプルな作りがいい
これは、この数十年間のソフトウェアの歴史の叡知であり「真理」だと思うよ。
0171デフォルトの名無しさん2016/02/06(土) 19:05:30.74ID:n+PBDQ0c
宗教くせえw
0172デフォルトの名無しさん2016/02/06(土) 19:17:34.47ID:21OGO6t2
>>171を異端審問にかけるべきだ
0173デフォルトの名無しさん2016/02/06(土) 19:31:32.52ID:drYYhGSp
そんなことよりどういう変換で「代賛」という漢字を導き出したのかそっちのが気になる。
0174デフォルトの名無しさん2016/02/06(土) 19:42:30.58ID:5ZOibTPd
言われるまで気づかなかった
0175デフォルトの名無しさん2016/02/06(土) 21:12:46.76ID:BtpsJL+V
var a b = Foo();

Foo => 1 "xyz";
または
Foo()
{
return 1 "xyz";
}

こう書けたら素敵かもw
0176デフォルトの名無しさん2016/02/06(土) 21:23:54.91ID:BtpsJL+V
オーバーロードは
void Foo(int a, int b, int c)
|(a, b, 1)
|(a, 0, _)
=> a + b + c;

こんな風に書けたら素敵ww
0177デフォルトの名無しさん2016/02/06(土) 21:24:40.73ID:BtpsJL+V
間違えた
void → int
0178デフォルトの名無しさん2016/02/06(土) 21:26:58.54ID:7g0sefOr
タプルとパターンマッチは次期バージョンで導入候補になってるよ
0179デフォルトの名無しさん2016/02/06(土) 21:28:31.35ID:HCmnTZ9V
あまりの奇形さに苦笑い
0180デフォルトの名無しさん2016/02/06(土) 21:29:43.90ID:HCmnTZ9V
>>178
一年以上言い続けてる気がするけどいつ確定すんの、あれ
0181デフォルトの名無しさん2016/02/06(土) 21:32:52.44ID:7g0sefOr
Javaよりマシ
C#が世界でJavaに次ぐ巨大なシェアを有するエンタープライズ用言語であることを忘れてないか
0182デフォルトの名無しさん2016/02/06(土) 21:54:57.00ID:5ZOibTPd
下を見てマシマシ言うのはやめていただきたい
底辺の人間のようだ
0183デフォルトの名無しさん2016/02/06(土) 22:00:46.96ID:BtpsJL+V
f1() => 1;
f2() => "xyz";

Foo => f1() f2();

こうすると奇形さ倍増w
0184デフォルトの名無しさん2016/02/06(土) 22:06:40.40ID:5ZOibTPd
これまでのC#のバージョンアップサイクルは2~3年だった
次も同程度なら2017年末から2018年初頭だろう
せっかくRoslynを公開したんだから短縮を期待したいがどうかな
0185デフォルトの名無しさん2016/02/06(土) 22:30:58.04ID:hDlUnW/n
プログラミング初心者なのですが誰か助けてくれませんか?(TT)
0186デフォルトの名無しさん2016/02/06(土) 22:43:31.32ID:mc+HvOWK
?
0187デフォルトの名無しさん2016/02/06(土) 22:51:44.38ID:hDlUnW/n
受信したデータを,で分割して4つのdouble型の変数に代入して表示したいのですが
string data = serial.ReadLine();
string[] data2 = data.Split(',');
double a = double.Parse(data2[0]);
double b = double.Parse(data2[1]);
double c = double.Parse(data2[2]);
double d = double.Parse(data2[3]);
Console.Write("a={0}\n, b={1}\n, c={2}\n, d={3}\n",a,b,c,d);追加情報:入力文字列の形式が正しくありません。
というエラーが出てきてすすめないです
0188デフォルトの名無しさん2016/02/06(土) 22:55:41.01ID:7g0sefOr
まずdataの内容をコンソールに吐いて確認
0189デフォルトの名無しさん2016/02/06(土) 22:56:47.69ID:BtpsJL+V
Parseではなく、TryParseを使って逐次エラー処理をする。
0190デフォルトの名無しさん2016/02/06(土) 23:00:07.68ID:BtpsJL+V
外部からのデータの整合性を前提にするのは絶対にやってはいけない事。

Parsecでも使っときなさい。
0191デフォルトの名無しさん2016/02/06(土) 23:07:33.12ID:hDlUnW/n
>>188 dataの内容はarduinoから送られてくる値で110,10,11,11このような形式になってます
>>189
>>190しらべてきます
0192デフォルトの名無しさん2016/02/06(土) 23:13:06.42ID:YiRMDi0V
>>191
送られてくるのはそれなんだろうけど
>>188が言ってるのは、その「110,10,11,11」のような値が
正しく入ってきているかをコンソールに出して確認してみよう、ってことだと思うんだけど
0193デフォルトの名無しさん2016/02/06(土) 23:14:31.90ID:hDlUnW/n
>>192 そうですね ご指摘ありがとうございます
正しく入ってきています
0194デフォルトの名無しさん2016/02/06(土) 23:25:53.91ID:ewLa/pEP
>>187
> Console.Write("a={0}\n, b={1}\n, c={2}\n, d={3}\n",a,b,c,d);
今のエラーに直接関係ないけど {0} って文字列用だぞ
0195デフォルトの名無しさん2016/02/06(土) 23:28:25.15ID:BtpsJL+V
Consoleでは正しく表示される(文字列として)とは限らないから、dataをbyte[]に変換して見た方がいい。
0196デフォルトの名無しさん2016/02/06(土) 23:36:52.45ID:PmjXQmD8
>>194
どこでそんな出鱈目を。
勝手にToString()されますがな。
0197デフォルトの名無しさん2016/02/06(土) 23:48:43.66ID:BtpsJL+V
原因は、encodingと予想して寝る。
0198デフォルトの名無しさん2016/02/06(土) 23:51:16.10ID:5yNQjtYt
デバッガでdataの中身見ればいいだけじゃないの?
0199デフォルトの名無しさん2016/02/07(日) 00:18:04.40ID:7cY+VLxE
そういえばVSのデパッグ機能使ったことないんだけどあれ使ったほうがいいの?
いつもデパッグするときは、コンソールライトラインで出力して修正してるんだけど
0200デフォルトの名無しさん2016/02/07(日) 00:41:02.93ID:mpmibCLh
何の為にデバッガがあるというのか・・・・・・・
0201デフォルトの名無しさん2016/02/07(日) 03:43:57.06ID:E6ZbUD9S
デパッグとは
0202デフォルトの名無しさん2016/02/07(日) 04:18:29.60ID:ubsUoPtC
printデバッグっつー
人間の発達段階で言えば赤ちゃんのデバッグ方法
0203デフォルトの名無しさん2016/02/07(日) 04:29:19.69ID:0jpZBnXl
アセンブラ、アセンブリ、アセンブル…
0204デフォルトの名無しさん2016/02/07(日) 09:06:46.60ID:YehISXuU
>>196
すまん、なんか寝ぼけてたわ
0205デフォルトの名無しさん2016/02/07(日) 10:58:08.95ID:jvYVRZ1r
>>199
最低限、ブレークポイントとステップ実行と変数のウォッチをおぼえよう
バグの大半はクラッシュの場所か分岐で間違った方へ進むか変数の内容がおかしいか
0206デフォルトの名無しさん2016/02/07(日) 11:47:40.65ID:+CXgcQuQ
data2[3]に改行が入ってるとか
0207デフォルトの名無しさん2016/02/07(日) 12:54:26.02ID:+iI8pPYd
ReadLineは改行含まれん
0208デフォルトの名無しさん2016/02/07(日) 12:55:38.99ID:7cY+VLxE
>>205
使ってみます
0209デフォルトの名無しさん2016/02/07(日) 15:32:32.86ID:P4gwgVRD
.NETはデータブレークが使えないからうんこなんだよな。
0210デフォルトの名無しさん2016/02/07(日) 17:54:24.49ID:QHXOM6yq
VSがForm Aplicationのサポートを事実上終了したので、個人用アプリ開発においてVSのC++CLRからC# WPFに移行しようとしています。
が、思ったよりも違いが多くて訳がわかりません。初心者スレとのことなので質問するのですが

以下の様な画面構成でアプリを作ろうとしています
1.Mainメニュー(ボタンとして主機能画面に移行・設定画面に移行・それと主機能の内容を選択するコンボボックス)
2.主機能画面(複数画面を遷移するのでPageで作成予定)
3.設定画面(ダイアログにするかどうかは考え中)

んで、ダイアログの表示はFormAplicationと大差ないので余裕だったのですがPageというものをうまく表示できません
つまり、NavigationWindowを継承していないwindow(MainWindow)からNavigationServiceを動かす方法がよくわかりません。
というか単語の意味を正確に把握できていないので自分が正しく質問できているかもよくわかりません

参考にしたサイトは以下です:
https://msdn.microsoft.com/ja-jp/library/ms752299(v=vs.110).aspx
http://gushwell.ldblog.jp/archives/52335648.html

自分の書いたソースは
<Frame x:Name="controlFrame" Content="" NavigationUIVisibility="Hidden" Margin="-565.5,-23.5,0,-3.5" Grid.RowSpan="2" HorizontalAlignment="Left" Width="517"/>
(MainWindowのXamlに追加)

public NavigationService _navi;
public MainWindow()
{
InitializeComponent();
_navi = controlFrame.NavigationService;
}
private void onClickButton(object sender, RoutedEventArgs e)
{
Page1 p1 = new Page1();
_navi.Navigate(p1);
}
} (MainWindow.xaml.csに追加) こんな感じでButtonを押してもPage1が見えてくれない状態です
0211デフォルトの名無しさん2016/02/07(日) 17:58:49.93ID:TdnGwusc
formサポート終了するってまじか
0212デフォルトの名無しさん2016/02/07(日) 18:25:04.36ID:OK0009Vg
実際のところWPFとか使われてるの?
不発弾のイメージしかなかったけど。。
0213デフォルトの名無しさん2016/02/07(日) 18:29:09.02ID:vhQgXj1G
というよりデスクトップアプリ自体が終わっちゃったからね
どうしても必要な場合もElectronのようなものを使って極力Webに合わせる時代
0214デフォルトの名無しさん2016/02/07(日) 19:00:24.97ID:ZN2qfSkc
Timespanの使い方について質問です
時間の文字列が入ったイベントが発生したとします
分毎にまとめて処理したいのですがどうすればできますか?
0215デフォルトの名無しさん2016/02/07(日) 19:05:53.67ID:n2daTw5S
Electronとか言ってるやつの大半は使ったことすらない法則
何が悲しくてデスクトップに生産性最悪のHTMLとjavascriptを持ちこまなければならんのか?
0216デフォルトの名無しさん2016/02/07(日) 19:09:23.84ID:ubsUoPtC
別に終わってもいいけど、そんな話が出てるなら初心者より先に誰かが騒ぐと思うので、ちょっと眉唾

>>210
左Marginが-500になってるから亜空間にトンドルんじゃないですか?
0217デフォルトの名無しさん2016/02/07(日) 19:18:07.84ID:ubsUoPtC
あ、C++CLIって書いてあるの見落としてた
0218デフォルトの名無しさん2016/02/07(日) 19:21:10.59ID:6bkdKOR7
>>217
Form Aplication=C++CLIって勘違いなのかね
0219デフォルトの名無しさん2016/02/07(日) 19:22:50.89ID:ubsUoPtC
本当だ
「空のC++CLRプロジェクト」の作成テンプレート無くなってら
でもこれで困る人はWPFユーザーよりレアだと思う
混在アセンブリを作成している人くらいか?
0220デフォルトの名無しさん2016/02/07(日) 19:34:03.60ID:ubsUoPtC
>>214
具体的にどこまでできていて、何ができないんだ
そもそも時間の文字列なのにTimeSpanなの?期間じゃなくて?
0221デフォルトの名無しさん2016/02/07(日) 19:36:12.24ID:TdnGwusc
>>213
リッチクライアントの需要は今後また増えると思うよ
スマホアプリ群雄割拠で皆学んだと思うけど端末に依存しないUIプログラムはたとえ動いてもUXが悪くて使い物にならない
どうせ端末毎に最適化されたコードを書くならWebを捨ててリッチクライアントに回帰したほうが楽だし高品質じゃんとなる
0222デフォルトの名無しさん2016/02/07(日) 19:55:35.52ID:ZN2qfSkc
>>220
説明不足ですみません
サーバーから送られてくるデータ(株価)が文字列なんです
それを受信しているのですが、今は受け取ったデータをtexboxに流しているだけです
10:00:00 100
10:00:10 101
10:00:30 102
10:00:59 99
10:01:05 100
・・・
・・
・
このデータを分毎に四本値に処理したいのですが最善の方法を教えてください
今の時刻から60秒の間隔で処理させるにはどうすれば良いか考えているのですが・・・
0223デフォルトの名無しさん2016/02/07(日) 20:27:54.95ID:SMFdLNV2
>>222
前提と要求を1つ1つ箇条書きで列挙して
0224デフォルトの名無しさん2016/02/07(日) 20:40:18.61ID:WdUVaaF1
>>222
前回時刻、 始値、安値、高値、終値のフィールドは適当に初期化しておく

受信した現在時刻と現在値をString.Split、DateTime、DecimalなどでParseする
前回時刻と現在時刻の年月日時分を比べる
一致しているなら、安値、高値を必要に応じて更新し、前回時刻と終値に現在の値を設定する
一致していないなら前回時刻、始値、安値、高値、終値を出力し、前回時刻、始値、安値、高値、終値に現在の値を設定する

この程度が書けないようではこの先生きのこれないぜ
恐らく次は誰もが横着してねえで勉強しろカスと回答する
0225デフォルトの名無しさん2016/02/07(日) 21:12:16.37ID:ZN2qfSkc
>>224
ありがとうございます
c#のことが全くわからないので助かりました
0226デフォルトの名無しさん2016/02/07(日) 22:37:32.87ID:EIEJb+tM
継承という概念を学習中の初心者です
こういうことは可能なのかという質問をさせてください

Aというスーパークラスの中にStream型の変数strmがあり
Aを継承したBやCというサブクラス内では
Stream型から派生したFileStreamやMemoryStreamを代入しています
しかし当然ながらStream型の変数に入れているので
Stream型のメンバーは呼び出せても
FileStreamやMemoryStream固有のメンバーの呼び出しができません
これを上手いこと実現するような方法はありますか?
※現在はそういったメンバーの呼び出しのたびにキャストしています。

見当違いな考え方をしていたら指摘ください。

public class A {
protected Stream strm;
public A() {
strm = new Stream();
}
}

public class B : A {
public B() {
strm = new FileStream();
}
}

public class C : A {
public C() {
strm = new MemoryStream();
}
}
0227デフォルトの名無しさん2016/02/07(日) 22:40:37.47ID:pDArDbnY
ジェネりクスを使え
0228デフォルトの名無しさん2016/02/07(日) 22:46:28.86ID:2xuESUN6
>>226
そもそも何のためにAでstrmを宣言してるの?
Aの中でStreamに対する共通の処理(Close)の面倒を見たいとか?
だったらこうすればいい
abstract class A {
 protected abstract Stream Stream { get; }
 public void CloseStream() { this.Stream.Close(); }
}
class B : A {
 private Stream strm;
 public B() { strm = new FileStream(); }
 protected override Stream Stream { get { return strm; } }
}
protectedフィールドなんかよほどの事情が無い限り使っちゃダメ
0229デフォルトの名無しさん2016/02/08(月) 00:38:01.16ID:omcXALNz
>>226
もはや継承は時代遅れ。
0230デフォルトの名無しさん2016/02/08(月) 00:39:21.18ID:omcXALNz
>>210
Pageなんか使うなよ。
0231デフォルトの名無しさん2016/02/08(月) 00:51:03.86ID:t4nfvp5Z
また変なのが来た来た
0232デフォルトの名無しさん2016/02/08(月) 01:02:04.87ID:vHpbqQsu
継承はアンチパターン
0233デフォルトの名無しさん2016/02/08(月) 01:02:40.81ID:qItXnEJ5
>>210
ソースもってこいや!
0234デフォルトの名無しさん2016/02/08(月) 01:09:38.20ID:ohcgMxuP
FileStreamとMemoryStreamで共通の処理なんてあるのかね
0235デフォルトの名無しさん2016/02/08(月) 02:08:36.47ID:REXLJUev
素人はわけもなく継承を使ってみたいんだよ。
0236デフォルトの名無しさん2016/02/08(月) 02:45:20.79ID:9ExexpSh
public class A<T> where T : Stream {
 public T strm;
 public A() {}
}

public class B : A<FileStream> {
 public B() {
  strm = new FileStream("", FileMode.Open);
 }
}

public class C : A<MemoryStream> {
 public C() {
  strm = new MemoryStream();
 }
}
0237デフォルトの名無しさん2016/02/08(月) 05:37:38.22ID:Mwo03qgv
>>236
内部実装のためにクラスの型引数を汚すな
共通のA型として扱えなくなってそれこそ継承の意味がない
0238デフォルトの名無しさん2016/02/08(月) 07:03:28.50ID:blpM25DK
class B {
 public abstract Stream Create();
}

class M {
 public override Stream Create(){…}
 public void Method() {
  var s = base.Stream as MemoryStream;
 }
}
0239デフォルトの名無しさん2016/02/08(月) 07:53:03.81ID:t4nfvp5Z
さっきからクソクラス貼ってる奴は何なの?
芸人気取り?
0240デフォルトの名無しさん2016/02/08(月) 07:59:15.01ID:omcXALNz
>>226
> 固有のメンバーの呼び出し
それを使って、BとCに同じ振る舞いを持たせたいのか?
必要なケースが浮かばないが、無理矢理やるならAに
abstract int 振る舞い()
みたいなのを持たせれば良いが、お薦めはしない。
02412262016/02/08(月) 11:18:31.02ID:LZ12yzMb
まだ分からないことが多いので
皆さんに提示していただいたのを参考に一つずつ調べてみます

>240
ストリームに対する基本的な処理は
クラスAでまとめておいて
FileStreamやMemoryStreamを使うときは
それぞれ別のクラスBやCを用意して
そこではFileStreamやMemoryStreamのみが持つメソッドも
呼び出せるようにならないかなと思いました
0242デフォルトの名無しさん2016/02/08(月) 11:50:15.03ID:GixGib55
>>241
固有の機能は直接Streamプロバティーを弄るんじゃなくて、固有の機能を使うメソッドをそれぞれのクラスに実装するのが常套手段だね
0243デフォルトの名無しさん2016/02/08(月) 14:22:28.12ID:Wxu8bEfW
委譲案件
0244デフォルトの名無しさん2016/02/08(月) 15:39:39.69ID:R5fKsVvX
フォーカスを奪わないで外部プログラムを実行する方法を教えてください
0245デフォルトの名無しさん2016/02/08(月) 16:23:11.68ID:ONEbZjvm
外部プログラムを実行してから、
元のフォーカスに戻ればいいんじゃね?
0246デフォルトの名無しさん2016/02/08(月) 16:28:23.58ID:7T6Ba+h0
外部のプログラムがフォーカスを弄る可能性があるので確実な方法は無い
特定のケースで良いのならフォーカスの奪い合いをする
0247デフォルトの名無しさん2016/02/08(月) 18:23:27.98ID:cKFrgwtc
>>142ですが
>>152のやつのコードを書いてみたので載せておきます

http://ideone.com/LPaQn3
0248デフォルトの名無しさん2016/02/08(月) 19:37:53.54ID:omcXALNz
>>247
お疲れ様。

細かい点は色々あるけど、初心者でこれだけ作れたら十分だと思う。

一点だけ。
Checkerは、static classでOK。
0249デフォルトの名無しさん2016/02/08(月) 23:47:56.13ID:Y0ekGZiq
ダサいコードだな
センスないよ
0250デフォルトの名無しさん2016/02/09(火) 00:37:07.07ID:1ndwTYNc
>>249
お前のコードをみせてみろ
0251デフォルトの名無しさん2016/02/09(火) 04:33:13.63ID:+R3lhPoz
いやらしいっ
0252デフォルトの名無しさん2016/02/09(火) 11:30:59.99ID:LZa6/uPt
Listから指定した範囲(intLange)の値を取得する時、範囲の大きさにもよるとは思いますが
for (int i = 0; i < intLange; i++)
{
bytArray[i] = lstArray[i];
}
よりも
bytArray = lstArray.GetRange(0, intLange).ToArray();
の、方が早いですか?
0253デフォルトの名無しさん2016/02/09(火) 11:35:24.39ID:ki2Dugwk
>>252
それforとforeachの差だからね
最新のバージョンでは知らないけど、2.0や3.0の頃だと1万回ループで数百msの差で前者のほうが早かったはず
0254デフォルトの名無しさん2016/02/09(火) 13:02:46.44ID:/Ul9S+Gp
実測してみるしかないと思う
状況によって、添字の有効範囲チェックがJITで消去されるかとかも変わる
0255デフォルトの名無しさん2016/02/09(火) 13:50:52.33ID:ltAmqOcf
じゃ測って教えてください
0256デフォルトの名無しさん2016/02/09(火) 14:02:17.15ID:QdOIBFj9
ググれば実測してるサイトでてくんだろ
0257デフォルトの名無しさん2016/02/09(火) 15:49:05.37ID:LZa6/uPt
>>253
ありがとうございます
確かにListのGetRangeってforeachのRangeと同じですね
範囲指定して一括取得だからforで1個ずつループするよりも速いと思ったら、逆だったのですね
調べてもforeachの方が遅いのばかりでした
List.ForEachにすれば少し早くなるみたいですが、素直にforを使っておきます
0258デフォルトの名無しさん2016/02/09(火) 18:54:10.80ID:ki2Dugwk
>1万回ループで数百msの差
これ見て後者で良いですねというレス期待してたんだが・・・
0259デフォルトの名無しさん2016/02/09(火) 20:37:53.51ID:GXK9v6ZU
LINQ嫌いというか、LINQが理解できないオッサングラマが多いだけなんじゃね
0260デフォルトの名無しさん2016/02/09(火) 21:57:04.73ID:kINyOVJ+
linq嫌いなのにsqlは大好きなオッさんなんなんだろう
昭和から働いてるエンジニアは不思議がいっぱい
0261デフォルトの名無しさん2016/02/09(火) 22:12:09.83ID:g5cfApp1
マイクロ、ナノ秒の差でも速いほうがいいとか言っちゃうのは初心者にありがちだからそこも教えるべきなんじゃないかな
0262デフォルトの名無しさん2016/02/09(火) 22:18:05.62ID:QoXK4omQ
>>252
後者はメソッド呼び出しのコスト + GetRangeとToArrayで2回ループ&インスタンス生成がかかる

GetRangeの代わりにTake使えば少しましになる
本当に速度が必要なら前者しかないけど

ちなみにforとforeachにそんな差は無いぞ
0263デフォルトの名無しさん2016/02/09(火) 22:42:05.97ID:8C608Sxj
linqの欠点はデバッグしにくいだけだから、ハマったらどうしようもない複雑な奴は避けるべきではあるな
単純なlinqなら積極的に使うほうが見通し良くなるのにな
0264デフォルトの名無しさん2016/02/10(水) 00:11:36.02ID:5vn52npc
FuncとActionで型キャストする必要がある時があってはまったわ
0265デフォルトの名無しさん2016/02/10(水) 00:40:08.52ID:jozDLnvP
Linqでパラレルで回して速くできたりしないのか?
0266デフォルトの名無しさん2016/02/10(水) 01:05:06.08ID:m6iCwwPq
C++では
struct A {int i;};
std::vector<A> v;
v.push_back(A());
v[0].i++; // ←こうできるのに

C#では
struct A {public int i;}
var list = new List<A>();
list.Add(new A());
//list[0].i++; // error CS1612: 変数ではないため、'List<A>.this[int]'の戻り値を変更できません。
A a = list[0];a.i++;list[0] = a; // ←こんな感じにしてる

これはどうしようもないんでつか?
this[int]で値型のコピーが返されるからどうしようもないですか?
0267デフォルトの名無しさん2016/02/10(水) 01:26:54.77ID:+0u+KGwQ
>>266
発想が間違ってる
0268デフォルトの名無しさん2016/02/10(水) 03:18:08.00ID:lkaYzkT1
>>266
listの中身変えるな
0269デフォルトの名無しさん2016/02/10(水) 07:54:24.62ID:CjsvPSL/
>>266
自分で答え書いてるじゃん
そういう場合はクラス使え
0270デフォルトの名無しさん2016/02/10(水) 19:56:16.17ID:4jI7WjZu
>>296
> そういう場合はクラス使え

ありがとうございます
var a = new A[10];
a[0] = new A();
a[0].i++; // ←これはうまく動く
これは一体どういうわけなんでしょう?

foreach (var i in typeof(A[]).GetInterfaces()) Console.WriteLine(i);
foreach (var i in typeof(List<A>).GetInterfaces()) Console.WriteLine(i);
で確認してみると両方ともIListとIList`1[A]を実装しておりそれぞれインデクサは
object this[int index] { get; set; }
T this[int index] { get; set; }
であり、これどっちもうまく行きそうも無いのになぜ配列は成功するんでしょうか?

ちなみに配列でもジェネリック版を使うと失敗します
((IList<A>)a)[0].i++; // error CS1612:
さらにリストに非ジェネリック版を使おうとしても
((System.Collections.IList)list)[0].i++; // error CS1061: 'object' に 'i' の定義が含まれておらず(略)
という想像通りの結末が待っています
02712702016/02/10(水) 20:09:08.83ID:JS1EW5Jr
あ、ちなみに>>270はクラスを使わず
struct A {public int i;}
のままでの話です
0272デフォルトの名無しさん2016/02/10(水) 20:30:51.04ID:GRD3jx6h
>>265
出来るでしょ
0273デフォルトの名無しさん2016/02/10(水) 21:02:55.80ID:kANvp85U
>>270
配列の場合はコピーではなく、元のデータそのものにアクセスするから。
0274デフォルトの名無しさん2016/02/10(水) 21:39:28.41ID:lkaYzkT1
それぞれの処理がそれなりに重くないと、パラレルにしても早くならない。
0275デフォルトの名無しさん2016/02/10(水) 23:21:04.39ID:CjsvPSL/
>>270
MSIL見ればたぶん分かるけど、IList<>のインデクサと配列のインデクサは別物
↓参考
http://stackoverflow.com/a/6705630
0276デフォルトの名無しさん2016/02/10(水) 23:40:43.38ID:EiL0Rwaw
>>273 >>275
おおっ!!
リンク先をぼんやり見るに配列のインデクサは
IListのものともIList<T>のものとは別物っぽいですね

どうやらMSILを勉強したら疑問は全部クリアになりそうです
0277デフォルトの名無しさん2016/02/11(木) 08:48:06.29ID:5VElGoG8
C#とMySQLで素人ながらに帳票システム作ってるんだけど
形になってきたらテーブルの数が100近くなってきたんだが、
それなりのシステムになってくるとテーブル数ってこれくらい増えるもの?
それとも設計の仕方自体が問題?
0278デフォルトの名無しさん2016/02/11(木) 09:12:07.75ID:bLlX/NkI
テーブル数100は相当なシステムだと思うけど
たとえばどんなテーブルがあるのか2,3例を出してほしい
0279デフォルトの名無しさん2016/02/11(木) 09:32:15.00ID:5VElGoG8
やっぱり多いですか・・・
個人のデータが10種類くらい、項目別集計結果(種類としては4種類なので4×12)、
帳票結果12ヶ月分、集計計算するための条件設定項目20くらい(いろいろな条件によって計算処理が変わるため)
項目別集計結果と、設定項目が多いんだろうと思うのですが

システムとしては各人の個人データを元に、条件設定項目から各人がどの項目を集計するか判定し、
項目別集計結果(各テーブルはその月の全員の利用実績が記録されている)から拾ったデータや定義されたデータを
拾って計算処理に追加、さらに複雑な条件を条件設定項目を元に計算式または結果を変えて処理して
最後に月別の帳票結果に落とし込むという流れです

実際まだ100までいってないのですが、今の増え方だと完成になる頃にはそれくらいにいきそうで・・・
テーブルまとめられるのがないかを考えた方がいいですかね?
0280デフォルトの名無しさん2016/02/11(木) 09:37:29.27ID:z2rGujpW
設計upしてくれないとなんとも言えないと思うが100行くような設計は間違ってそう。
少なくとも個人でやれる規模じゃない
0281デフォルトの名無しさん2016/02/11(木) 09:38:46.08ID:M5CwB86R
>>279
集計結果はテーブルに落とさずにクエリーやビューで実現できないかを考えると良いと思います
集計テーブルは更新し忘れや更新順の間違いなどのバグ混入があるから
リアルタイムで結果を得られるビューを多用したほうがシステムは安定します
0282デフォルトの名無しさん2016/02/11(木) 10:04:02.34ID:bLlX/NkI
集計テーブルが良くないのはもちろんだけど、
項目集計結果の4x12が理解できない
そんなもんカラムに月持たせたらいいだけじゃないのか
0283デフォルトの名無しさん2016/02/11(木) 10:09:53.69ID:EtulpAui
いまいち分からないけど、個人,条件設定,集計結果がテーブルであって
残りはクエリか一時テーブルじゃないか?
0284デフォルトの名無しさん2016/02/11(木) 10:11:05.88ID:EtulpAui
>>283
x 集計結果
o 帳票結果
0285デフォルトの名無しさん2016/02/11(木) 10:29:30.35ID:5VElGoG8
なるほど、一時テーブルとクエリという方法で検討してみます どちらも全然頭になかったです>>
>>282
項目別集計結果は、帳票つくるシステムとは別に、拠点事業所の端末で作成されたcsvをメインのデータベース内の
月別テーブルにアップするように先に設計していたのですが、あわせて修正できないかやってみます
ただ、ひとつ疑問は、1ヶ月のレコード件数が最大で1万件程度ですが、一つのテーブルにして12万件入れるのと
1万件を12テーブル持つのでは、前者がいいということでしょうか? 
設計時は、一つのテーブルのカラム数が多くなるより(なんでも一つのテーブルに入れるなっていう記事を目にしたことがあって)
テーブルに分けた方がいいかと思って計算条件のための設定項目なんかもテーブル数が増えていったのですが
同じカラム構成のテーブルだったら、識別のためのカラムを追加してまとめたほうがよいものでしょうか
0286デフォルトの名無しさん2016/02/11(木) 10:47:51.75ID:ztBwyrLR
>>285
件数は億行っても問題ないな。
それがまずいなら、パーティショニング
を検討してみたら
0287デフォルトの名無しさん2016/02/11(木) 11:37:29.78ID:ECLK8Wqe
>>285
> 同じカラム構成のテーブルだったら
って言う話ではなくて、同じデータは纏めろってこと
何のデータか知らんけど、1月分と2月分って例えば売上げなら両方売上げと言う同じデータでしょ
以前は極端に件数が多いとかで分けることもあったけど、今時は >>286 の言う様に億クラスでも扱えるようにDB側で色々対応してるし、そもそも数十万件オーダーなんでしょ?
0288デフォルトの名無しさん2016/02/11(木) 11:37:43.16ID:8yKF6m48
テーブルが今現在いくつあるかは問題じゃない
集約が今現在いくつあるかが問題
集約が多すぎるなら設計のやり直しが必要
適切なら数ならデータベースのリファクタリングは容易い
先ずは今現在のコンテキストマップとそれぞれのコンテキストにどんな集約があるかを書き出してみる事だ
個人で組んでるなら休日1人日で充分かな
0289デフォルトの名無しさん2016/02/11(木) 14:46:12.43ID:cgj/3tMp
FormにPictureboxを貼り付けて、Formをリサイズした時にフォームサイズに比例してPictureboxもサイズ変更したいのですが、
Anchorを四方向に指定するだけではダメなのでしょうか?
実際にやってみると、拡大した時に大きくなり過ぎて、縮小した時に消えてしまいます。
ButtonでAnchorを四方向にしても同じでした。
Windows7、VS2012、Framework4.5にて確認しています。
0290デフォルトの名無しさん2016/02/11(木) 14:59:02.23ID:5VElGoG8
みなさん丁寧なご指導ありがとうございます
とりあえず見直し初めて、20テーブルくらいになったところですが、WorkBenchで見ていてもえらくすっきりして
計算処理の実行そのものも劇的に早くなりました

>>288
データベースの勉強不足で【集約」ってのがピンと来ないもので・・・ぐぐると集約関数ってのがでてきますが、
テーブルの中でグループ化している数が多すぎると問題ってことでしょうか?
コンテキストっていうのも初心者の馬鹿な私には掴み所がない言葉で、テーブルをさしているのでしょうか
それとも扱うデータにおいての諸要素のことを指しているのでしょうか?
0291デフォルトの名無しさん2016/02/11(木) 15:18:23.73ID:M5CwB86R
>>289
そういうソフトはwpf使えば簡単にできるしトラブルも少ないんだけどね
0292デフォルトの名無しさん2016/02/11(木) 16:15:50.89ID:RfBB3K0B
親プロセス...GUIアプリ
子プロセス...コンソールアプリ

親プロセスで子プロセス起動して、親プロセスは子プロセスからの標準出力をリダイレクトして簡易的な文字列通信を行ってます。
これを、逆に親プロセスからの文字列を子プロセスで拾うようにしたいのですが、いい方法を教えて下さい。
0293デフォルトの名無しさん2016/02/11(木) 16:37:05.76ID:M5CwB86R
>>292
NamedPipe使ってみたらどう?
0294デフォルトの名無しさん2016/02/11(木) 17:36:47.18ID:rBnM9L0I
>>292
子プロセスを起動引数または標準入力を入力したら標準出力で結果を返す関数と見なして、単発で繰り返し呼べばいい
疎結合にするためにわざわざプロセス分けてるんだろ?
複雑な通信したら本末転倒だろ
0295デフォルトの名無しさん2016/02/11(木) 17:52:03.60ID:LNzJYiWm
勝手な妄想でよく喋るなあコイツ
0296デフォルトの名無しさん2016/02/11(木) 18:54:21.19ID:xg5e2eV7
>>289
アンカーは四方からの距離を一定にするだけなので
比例させたいなら計算で求めてBoundsに設定してください
0297デフォルトの名無しさん2016/02/11(木) 21:28:17.58ID:onfBwuXU
クラスの配列を作りたい場合、
こんなふうにすると1000個のクラス配列が出来たのですが、
こういうやり方で良いですか?
最初に1個の大きさで確保しておいて、そこに1000個を代入できる理由が分かりません。
static void Main(string[] args)
{
 MyClass[] mc = new MyClass[1];
 mc = myfunc();
}
static MyClass[] myfunc()
{
 MyClass[] mc = new MyClass[1000];
 return mc;
}
class MyClass
{
 int i;
};
0298デフォルトの名無しさん2016/02/11(木) 21:32:31.88ID:XGMVVJFq
要件次第ですがプログラムが動作するならそれで問題ありません
0299デフォルトの名無しさん2016/02/11(木) 21:34:35.73ID:6rGpnoDF
>>297
new MyClass[1] の行は全く意味がない。
再代入するな。
0300デフォルトの名無しさん2016/02/11(木) 21:50:03.96ID:LNzJYiWm
int i = 1;
i = 2;

最初に1を代入しておいて、そこに2を代入できる理由が分かりません。と言ってるのと同じ。
配列だと特殊な代入がされる、というようなことはない。
0301デフォルトの名無しさん2016/02/11(木) 21:52:08.90ID:y42s+ygJ
>>297
var使えばこういう誤解も無くなるんだろうか…
0302デフォルトの名無しさん2016/02/11(木) 22:19:29.15ID:0OAFh+KU
>最初に1個の大きさで確保しておいて、そこに1000個を代入
してるわけじゃない
配列を表す変数を宣言(MyClass[] mc)して
確保(new MyClass[1] や new MyClass[1000])した領域を指す値をそこに代入している
mc = myfunc() したら最初の new MyClass[1]の領域は捨てられる
0303デフォルトの名無しさん2016/02/11(木) 23:48:59.67ID:xmsrvKus
ド素人質問だと思うのですが、
フィールドって必要なのでしょうか?

メソッドに引数を渡せば
大抵は事足りるんじゃないかと感じており

それとも、属性に保持する情報って、
大規模開発では多いのでしょうか?
0304デフォルトの名無しさん2016/02/12(金) 00:06:42.25ID:+A7Pa+CR
引数増やすのめんどいからオブジェクト指向的にする。

別に手段の1つにすぎないんだから好きにやれば。

オブジェクト指向だって万能じゃないし。
0305デフォルトの名無しさん2016/02/12(金) 00:16:33.85ID:gmcC03qf
>>303
大規模開発ではとんでもない数のフィールドが書かれる
しかしそれはたいてい設計者がクソなだけなんだけどな
0306デフォルトの名無しさん2016/02/12(金) 01:50:15.47ID:bwdIAcv4
人クラスなら名前、生年月日、性別とかは必要だろ
フィールドに保持しなかったらどこに保存するのさ
0307デフォルトの名無しさん2016/02/12(金) 03:26:50.21ID:/kaeyohP
純lisperなんじゃないの(適当)
0308デフォルトの名無しさん2016/02/12(金) 04:01:17.91ID:YUGvj8/e
フィールドとは何なのかはっきりさせんと話が始まらん

プライベートなメンバ変数までフィールドで不要だっていうなら
保持すべき情報はどこにもつんだと
0309デフォルトの名無しさん2016/02/12(金) 04:05:44.88ID:00n43yFC
>>303
基本的にその考え方でOK。
ある粒度で状態を持ちたい時だけに使えば良い。
0310デフォルトの名無しさん2016/02/12(金) 10:18:37.00ID:rgit47xD
foreachを使う場合にもindexの数字が欲しい場合、int i=0 を冒頭に入れる必要がありますが、
int i = 0;
foreach (var item in items)
これを一行にして、
foreach (int i=0, var item in items)
などどできませんか?
0311デフォルトの名無しさん2016/02/12(金) 10:29:32.09ID:YfpA0AcD
>>310
>int i=0 を冒頭に入れる必要がありますが、
必要ないよ

foreachでindex使いたいならこれで良いんじゃね?
foreach(var element in boys.Select((name, index) => new {name, index})) {
SampleMethod(element.name, element.index);
}
0312デフォルトの名無しさん2016/02/12(金) 12:02:57.40ID:rgit47xD
>>311
ありがとうございました。こんな書き方は知らなかったです。
int i=0; と書くのは時代遅れでしょうか?
0313デフォルトの名無しさん2016/02/12(金) 12:10:45.51ID:EWonquhS
集合演算にインデックスを持ち出す事がまず時代遅れ
0314デフォルトの名無しさん2016/02/12(金) 12:26:58.04ID:/IhDLmoA
時代遅れだろうが何だろうが需要があるからSelectにも
(IEnumerable<TSource>, Func<TSource, Int32, TResult>)なんて
オーバーロードがあるんだよなぁ
0315デフォルトの名無しさん2016/02/12(金) 12:51:27.19ID:00n43yFC
>>312
先ずは、どうして"i"が必要かを考えるべき。
0316デフォルトの名無しさん2016/02/12(金) 14:08:59.79ID:0EJEZiQw
for (int i = 0; i < items.Count; i++) {var item = items[i];}
じゃいかんの?
Enumeratorの代わりにintで回すのって素朴でいいじゃん
0317デフォルトの名無しさん2016/02/12(金) 14:45:43.58ID:583AFnzM
昔はコレクションのアイテム削除でエラーとなるからインデックスが普通だったけど
今はToArray()使うのが一般的だから、インデックス使う用事が殆どなくなったよな
0318デフォルトの名無しさん2016/02/12(金) 17:56:35.96ID:gWHJSKHH
for/foreach で回すなら >>311 より >>316 の方がシンプルでいい

Ix の ForEach なら許容範囲
items.ForEach((item, i) => { … })
03193032016/02/12(金) 21:32:41.81ID:1BqXCbHv
フィールドに関して、色々なご意見ありがとうございます

特に保持すべき必要が無い場合は、
あえてオブジェクト指向に則ってプロパティを持つ必要は無いようですね

参考になります
0320デフォルトの名無しさん2016/02/12(金) 21:37:41.69ID:/kaeyohP
それにしても、変なことを質問するもんですね
必要でないことでもやるべきですか?って人に聞きながら育ったのかしら
0321デフォルトの名無しさん2016/02/12(金) 22:01:07.80ID:E6xN8nAg
過不足なく言われた事だけをやっていれば良い
そういう教育を受けてきた世代なんだろう
何を隠そう私もそういう人間だからよくわかる
0322デフォルトの名無しさん2016/02/12(金) 23:14:54.71ID:00n43yFC
必要かそうでないかを適切に判断出来るのなら誰も苦労しない。
0323デフォルトの名無しさん2016/02/13(土) 00:17:04.86ID:jNiAqett
何事にも疑問を持つことは重要な素養であるとは思うが
常識とされているものの場合、必要である理由を考えるべきで
不要である可能性を列挙するアプローチは間違いの元だな

世の中大抵のことはデファクトスタンダードが正しいものだ
ただ、全てじゃないから検証するのも面白い
0324デフォルトの名無しさん2016/02/13(土) 07:17:00.61ID:xA/85emw
ジャップIT業界の常識が正しいとは思えんが
0325デフォルトの名無しさん2016/02/13(土) 07:45:12.36ID:BxXCiqDX
必要かどうか予め判断するんでなく
必要になったら使えばいいだけだよ
遅延評価好きだろお前ら
0326デフォルトの名無しさん2016/02/13(土) 08:36:03.93ID:Aj9JV+Py
>>311
LINQ使うならforeach全く要らない。
0327デフォルトの名無しさん2016/02/13(土) 09:04:32.16ID:bNYKyrDh
最終的な出力にはforeach必要でしょ
ForEach厨は関数型というものを理解してないアホ
0328デフォルトの名無しさん2016/02/13(土) 09:12:00.94ID:BxXCiqDX
forceがないからToArrayとかやってるの見ると超ダセーと思う
0329デフォルトの名無しさん2016/02/13(土) 09:54:08.99ID:r5Ze34qU
ググっても出てこなかったから質問します。
C# WPFでフォーム上のラジオボタンを○から自作画像に置き換える方法を探しています

どなたか実装方法またはやりたいことを別な方法で実装する方法ご存じないでしょうか


要は画像A、画像Bがクリックされるたびに交互に切り替わって
その状態を取得できればいいです
0330デフォルトの名無しさん2016/02/13(土) 10:05:58.61ID:bNYKyrDh
>>329
WPFではそういうのは一行もコード書かないんだよ
XAMLでControlTemplateとVisualStateManagerを使う
0331デフォルトの名無しさん2016/02/13(土) 10:33:00.45ID:gWYi+rc9
DataTableで行削除について質問です

1万件くらいあるテーブルをDataTableに読み込んで処理していて
指定のカラムに入ってる特定の区分(値)のデータのみ削除したいのですが、
Linqで絞り込んだコレクションをforeachで回して
dt.Rows.Remove(row)とすると、回す毎にコレクション自体が変わってしまってエラーとなるし
かといってforで全件回すのもなんかスマートでないというか
for (int i = 0; i < dt.Rows.Count; i++)
{
if(dt.Rows[i].RowState != DataRowState.Deleted && (int)dt.Rows[i]["hoge"] == hoge
{
dt.Rows[i].Delete();
}
}
他に方法はございますでしょうか
0332デフォルトの名無しさん2016/02/13(土) 10:35:41.14ID:wFus9lhk
>>331
DataTableに入れる前のクエリで特定行を除く
0333デフォルトの名無しさん2016/02/13(土) 10:59:31.81ID:bNYKyrDh
>>331
LINQ使うんなら弄くり回すよりCopyToDataTableで丸ごと作り直すのが筋
https://msdn.microsoft.com/ja-jp/library/bb386921(v=vs.110).aspx
0334デフォルトの名無しさん2016/02/13(土) 11:21:16.59ID:gWYi+rc9
レスどうもです
もう少し具体的に言うと、データベース上に月別のデータがまとめた1つのテーブルにあって、
指定月のデータだけをごっそり入れ替えたい(カラムには月表示があるのでそれで絞ってます)のです
月毎にテーブル分けて、指定月のテーブルだけ全件削除、新規のデータを挿入が手っ取り早いのですが、
年間のテーブル1つでやりたいと思ってるのですが

>>333
CopyToDataTableも最初は考えたのですが、データベースから引っ張ってきてるので
DataTable作り直すと結局戻すときに全部入れ直さないといけないのかなと思うのですがどうなんでしょう
>>332
データベースから読み込む時点でテーブルわけといた方がよいのですかね
0335デフォルトの名無しさん2016/02/13(土) 12:10:19.83ID:lxxM+jNF
>>334
普通にDataTable.Select()の結果をforeachで回してDelete()でマークして
必要に応じてDataTable.AcceptChanges()でコミットしても良いんちゃう?
ってのは>>331に限った話だけど…DB操作だとコード云々よりADO.NETの範疇か

ADO.NETとかEntity FrameworkとかC#でのDB操作はよく知らんけど…
基本形はDataTable.Select()からDataRow弄くってUpdate()で差し戻す?
先にSQLでDELETEしといてINSERTするだけでも良さそうだけど、最適解は…知らぬわい
0336デフォルトの名無しさん2016/02/13(土) 12:27:41.87ID:wFus9lhk
やりたいことは指定月のデータ内容をUPDATEすることのように思えるんだが
データ量にもよるけどDELETE→INSERTしなくても、更新したいデータを一時テーブルに出力して更新データとJOINして
年間テーブルを一時テーブルでUPDATEすればいいんじゃないのかな?
更新データ量にもよるけど、100万行程度なら上のやり方でも十分速度は出たと思う
0337デフォルトの名無しさん2016/02/13(土) 12:38:11.72ID:xA/85emw
リポジトリ書いて
月指定して月間データ取ってきて
ループで各エンティティのメソッドを呼んで保存する
これでOK
0338デフォルトの名無しさん2016/02/13(土) 13:19:52.36ID:jNiAqett
Linqのデータ削除の典型例
var removes =Items.Where(x=>条件式).ToList();
removes.ForEach(x=>Items.Remove(x));

データ削除はこれの応用で大体行けるはずなんだけどな
0339デフォルトの名無しさん2016/02/13(土) 14:53:28.98ID:gWYi+rc9
多くのレスに感謝です

データ内容をUPDATEというより、その都度の処理結果なので全く別の結果として保存したいんですよね
なので一回削除したかったんです

結論から言うと、>>338さんのとおり、月別に格納したDataRowのコレクションをToListして、
FoEachで元のデータテーブルから該当DataRowを削除することでいけました コードも1行ですみました
ただ、Remove使うとDataTableのUpdateで処理されなかったのでDeleteで削除フラグにたてて
最後にUpdateで削除されるようにしたらうまくいきました 

Result.ToList().ForEach(row => row.Delete());
※ResultはLINQで月別に抽出したDataRowのコレクション
0340デフォルトの名無しさん2016/02/13(土) 15:39:45.33ID:2MAOXUes
ラムダで副作用かっこわるい
0341デフォルトの名無しさん2016/02/13(土) 15:44:08.26ID:06O3qiSZ
俺なんかもっとかっこわるいぞ
.Select()内で { 何か; return 0; } とやってたりするよ
0342デフォルトの名無しさん2016/02/13(土) 16:20:11.54ID:s+9Slq2v
ぶっさ
0343デフォルトの名無しさん2016/02/13(土) 16:58:50.07ID:6KRp/oK6
テスト
0344デフォルトの名無しさん2016/02/13(土) 17:08:05.06ID:Aj9JV+Py
>>3399
Result.Select(row => row.Delete());
ではだめですか?
0345デフォルトの名無しさん2016/02/14(日) 06:44:28.00ID:bzGf7eU2
>>315
デバガーで今何番目の要素を処理しているか知りたい時はどうするの?
0346デフォルトの名無しさん2016/02/14(日) 06:58:06.59ID:mWiu8nHo
何番目という情報が必要なコードであれば
それを否定しているレスじゃないでしょ
0347デフォルトの名無しさん2016/02/14(日) 07:55:00.43ID:l8k1FRK9
バグを取るよりバカを直した方がいいんしないかな
0348デフォルトの名無しさん2016/02/14(日) 08:03:10.87ID:5pBX52FC
indexが使う前提で話をしてんのに
indexが必要か考えろって返答は意味不明
使うって言ってんだろ
0349デフォルトの名無しさん2016/02/14(日) 08:21:36.38ID:0ADcRE3m
index使うバカが気付いてないだけでそんなものは必要ない文脈かもしれないだろ
まずはそこを徹底的に見直してこい
話はそれからだって言ってるんだよ
0350デフォルトの名無しさん2016/02/14(日) 08:32:42.46ID:4fsYhBCo
通常の使い方じゃないかも知れんが、数百、数千おきにデータをフラッシュしたい需要はあるな
0351デフォルトの名無しさん2016/02/14(日) 09:02:33.92ID:l8k1FRK9
>>349
デバガーどうこうは突っかかってる方がバカだと思ったけど
その言いぐさだとお前がバカで正解だったっぽい
余計なお世話って分かる?
分かんないか
0352デフォルトの名無しさん2016/02/14(日) 09:34:12.02ID:n0LELDsn
LINQ使えよってLINQ厨が言ってるだけだろ。
これだからLINQ厨を見ると苦笑いしか出ないんだ。
0353デフォルトの名無しさん2016/02/14(日) 09:39:27.99ID:0ADcRE3m
>>351
やれやれ
これだから下流コーダーは困る
0354デフォルトの名無しさん2016/02/14(日) 10:20:37.80ID:aN+xXKUu
まぁまぁ、よくわかんねーけど、インデックス使いたいってことを否定するならさ、
人間はどうせ死ぬんだから、生きてる意味もなくない?ってぐらい暴論だと思うのよね。

お前らも、大好きなあの娘との思い出を取り出すとしてさ、
初めてキスをしたのは何回目のデートだっけとか数えたりするだろ?
0355デフォルトの名無しさん2016/02/14(日) 10:23:31.55ID:3Nivwysz
まあ実際初心者スレでは「そんなことはどうでもいいから何をしたいのか目的を晒せ」
の方が効果的なケースがほとんどだからな
0356デフォルトの名無しさん2016/02/14(日) 10:25:33.24ID:IGxuUtz8
そのCollection の Count が 0 でループは一回も実行されなかったとさ
0357デフォルトの名無しさん2016/02/14(日) 11:22:01.93ID:0ADcRE3m
>>355
これな
根本的なところからおかしいんだよな
おかしいものに疑問を持たず表面的な対応しかしない
それがホンマもんのバカってやつだ
0358デフォルトの名無しさん2016/02/14(日) 12:08:57.25ID:Mh99LtVN
初心者スレに出入りしてるやつがどれだけのスキルを持ってるのかとw
0359デフォルトの名無しさん2016/02/14(日) 12:10:14.28ID:12CQcbJ/
スレ的にLINQはダメとなってるけど、これより早く処理する方法ってあるの?
0360デフォルトの名無しさん2016/02/14(日) 12:17:27.87ID:CfikNejg
>>359
どのレスみたらLinqがダメって結論になるのか教えてくれよ
0361デフォルトの名無しさん2016/02/14(日) 14:03:25.60ID:zXLi9Jt7
310からの質問の文脈を読まずに、349 がいう文脈とは
0362デフォルトの名無しさん2016/02/14(日) 14:55:03.59ID:OZvUt5KM
>>354
うむ
ゆーうぃん
0363デフォルトの名無しさん2016/02/14(日) 14:55:46.84ID:CAYLYmrN
>>329です

>>330さんのおかげでとりあえずの目標は達成できました。
それで次の目標としてラジオボタンについて

RadioButton1→{画像A, 画像B}
RadioButton2→{画像C, 画像D}

{}内はそれぞれfalseとtrueに対応

という風にしたいのですが、ControlTemplateを使うやり方だと調べても一つのコントロールを一つのパターンで上書きする方法ばかり見つかります。
どなたか方法かせめて検索キーワードだけでもお教え願えないでしょうか


分かりにくいかもしれないので一応文章でも書くと
複数のラジオボタンがあって、それぞれに別パターンの画像を設定したいということです
0364デフォルトの名無しさん2016/02/14(日) 15:13:16.36ID:7V8dKUBy
>>363
いろいろあるけど、ResourceDictionaryを差し替えるのが正統なやり方
テンプレート内で直接画像を指定するかわりにリソースディクショナリ内のリソース名を指定し、
コントロールのResourcesプロパティに実際の画像のセットを含んだリソースディクショナリを渡す(XAMLで)
0365デフォルトの名無しさん2016/02/14(日) 19:05:47.82ID:4fsYhBCo
正当なのは Styleにx:Keyを設定して Style="{StaticResource xxx}" じゃねーのかな?

<Grid.Resouces>
<Style x:Key="hoge" ・・・・・
パターン1
</Style>
<Style x:key="hage" ・・・・
パターン2
</Style>
</Grid.Resouces>

<RadioButton Style="{staticResouce hoge }" ・・・ />
<RadioButton Style="{StaticResource hage}" ・・・・/>
0366デフォルトの名無しさん2016/02/14(日) 19:22:41.55ID:bVZvMVSZ
もしかしてWebサイトってオワコン?
0367デフォルトの名無しさん2016/02/14(日) 19:30:08.69ID:CAYLYmrN
>>364
>>365
お二方ありがとうございます。
出来ました

ボタンを置いてダブルクリックするだけでイベントハンドラが作れてた頃が懐かしいよう
0368デフォルトの名無しさん2016/02/14(日) 19:51:03.86ID:Bsnhcx6p
>>366
ASP.NETでのWEBアプリに対してのWEBサイト、ってならオワコン
一般的な意味でのWEBサイトなら、変化しながら生き続けてる
0369デフォルトの名無しさん2016/02/14(日) 21:43:39.23ID:AnW4+fzX
どなたか分かれば教えてください。
フォームアプリでwebbrowserコントロールを使って外部のwebページを操作していますが、
ページ内のボタンを押したときにjavascriptのyesnoのダイアログメッセージが起動します。
この起動イベントをフォームの方でハンドリングする方法はあるんでしょうか?
やりたいことはフォームのプログラムで自動的にyesを選択させたいです。
0370デフォルトの名無しさん2016/02/14(日) 21:52:11.02ID:79nYzABo
質問させてください。何度かスレで話題に出ていたdapperについて、ソースコードを見たいなと思い
githubにログインできるようにして「dapper-dot-net-master.zip」というファイルをDLしました。
そのファイルを展開して、「Dapper.sln」を「VS Express 2013 for desktop」で開こうとしたのですが、
「.xproj」という拡張子のファイルに対応していないらしく、「ソリューションを開く」が失敗してしまいます。

「.xproj」という拡張子のファイルはプロジェクトに関するものと想像はできるのですが、VS2013では開けないのでしょうか?
各ファイルを単純にテキストとしてならば見れるのですが・・・

github自体も使い始めたばかりでなにか勘違いしてる部分があったらすみません。
0371デフォルトの名無しさん2016/02/14(日) 21:58:59.28ID:NxxLKQZP
dnx projectは2015じゃないと開けないと思うよ
2015入れるか諦めて
0372デフォルトの名無しさん2016/02/14(日) 22:04:19.65ID:3Nivwysz
>>370
・DapperのソースをGitHubから取得するのにGitHubのアカウントなんか要らない
・GitHubからソースを取得したいならzipで落とすなんてダサいことしないでGitでcloneしろ
・dapperはシングルファイルだからわざわざプロジェクトを開く必要なんかない
0373デフォルトの名無しさん2016/02/14(日) 22:37:18.19ID:79nYzABo
早速の返信ありがとうございます。

>>371
VS2013では開けないんですね。

>>372
いろいろと指摘ありがとうございます。
シングルファイルというのはどれか1つのファイルに機能が集約されていてそれをみれば大体の機能はわかるということでしょうか?
まだファルシのルシがコクーンでパージ状態なので、ちょっとずつ見ていこうと思います。
0374デフォルトの名無しさん2016/02/14(日) 22:41:26.26ID:9PrtlM5P
>ファルシのルシがコクーンでパージ状態

なんかかっちょいい
0375デフォルトの名無しさん2016/02/14(日) 23:27:52.45ID:l8k1FRK9
ナツカシス
0376デフォルトの名無しさん2016/02/15(月) 12:04:40.36ID:fB6G7n7H
C#でExcelのアドイン(として提供されているDLL)を利用する方法はありますか?
0377デフォルトの名無しさん2016/02/15(月) 13:12:27.80ID:Xk4DTp51
どなたかPDFを作成出来る無料の帳票出力を教えて下さい
itextでゴリゴリ書きまくってますが不器用すぎて泣きそうです

ウェブサーバ兼アプリケーションサーバ兼データベースサーバの2層クライエントです
言語はc#メインで使ってますが別言語でも構いません
0378デフォルトの名無しさん2016/02/15(月) 13:24:45.99ID:RH62Jtcm
>>376
c#でexcel開いてそのアドイン読み込めばいいだろ
0379デフォルトの名無しさん2016/02/15(月) 13:26:20.25ID:fB6G7n7H
excel開きたくないんだけど、開かないとだめ?
0380デフォルトの名無しさん2016/02/15(月) 13:38:28.96ID:RH62Jtcm
>>379
excel無しでそんなもん使って 何したいん?
0381デフォルトの名無しさん2016/02/15(月) 14:42:32.23ID:j4KeTWwY
wpfで画面作って流し込む(適当)
0382デフォルトの名無しさん2016/02/15(月) 17:49:12.29ID:fB6G7n7H
>>380
excelを別な用途で使うこともあるので影響でないようにと思ったのだけれど
0383デフォルトの名無しさん2016/02/15(月) 18:08:31.90ID:Zk6ilfTk
ただ
0384デフォルトの名無しさん2016/02/15(月) 19:46:04.29ID:cfVd0V/r
fontDialogでOpentypeフォントを選択できるようにするにはどうすれば良いのでしょうか?
いろいろ自分なりに調べて、一応ここ(http://www.pinvoke.net/default.aspx/comdlg32/ChooseFont.html)
のSample Codeを動かしてみたんですが、

bool result = ChooseFont(pChoosefont);

の部分で保護されたメモリ云々と怒られてしまいます。
どうもpChoosefontの割当サイズが小さすぎるようなのですが、その先がわからず手詰まりです
これ以外でも、何か別の方法があればそれでもOKです
(InstalledFontCollectionのotf対応版を作るなど)
0385デフォルトの名無しさん2016/02/16(火) 08:50:39.96ID:bZe3Oc9S
前回時刻(time)と現在時刻(time_v)の時分を比べて同じならa違うならbと言う処理をさせるにはどう書けば良いのでしょうか?
0386デフォルトの名無しさん2016/02/16(火) 09:08:18.90ID:F8ZGrSAk
>>385
if文も分からないうちからプログラム書こうとすんな
入門でもやってこい
初心者以前だろ
0387デフォルトの名無しさん2016/02/16(火) 09:12:56.20ID:XFjRYdah
>>385
時刻の差はTimeSpan。差が無い場合はTimeSpan.Zeroと等しい。
後は分かるだろ。
0388デフォルトの名無しさん2016/02/16(火) 09:17:10.77ID:0FWmG97A
先日の株価がどうのこうのって子?
やっぱり向いてないよ
ランサーズとかで発注したら?
一日無駄にすると一万円超捨ててるって考えたら安いよ
0389デフォルトの名無しさん2016/02/16(火) 09:29:21.17ID:jhW7ARua
>>385
DateTimeをDBに入れたりすると微妙な誤差が混入したりするから、差分をとってある程度小さければ同じとみなすとうまくいく場合があります
0390デフォルトの名無しさん2016/02/16(火) 10:05:56.70ID:/rvb+Ho8
>>384
定義とサンプルコード丸コピしただけで動いたわ Win7/32bit
>InstalledFontCollectionのotf対応版を作るなど
どのみちFontオブジェクト作れないからこれは意味ないよ
フォント使った処理は全部GDI関数とか使わないといけない
0391デフォルトの名無しさん2016/02/16(火) 14:00:24.71ID:7ODQ3t3P
>>390
一応ダイアログは開くんですが、フォントファミリ・スタイル・サイズを選択してOKを押すと落ちるんです
当方64bitなのでそれが原因? とりあえず仮想環境でもテストしてみて、ダメだったら当分は諦めようと思います
0392デフォルトの名無しさん2016/02/16(火) 14:33:44.14ID:/rvb+Ho8
あー、なるほど
CF_USESTYLEがいらない
lpszStyleが書き換えられるのにstringで書き換えられないからエラーになってる
0393デフォルトの名無しさん2016/02/16(火) 16:34:02.89ID:bZe3Oc9S
>>386
…イジメないでください
入門書読んでも分差をはかるの一言だけなのでだからどうすれば?と言う状態なのですみません

>>387 389
ありがとうございます
勉強になります

>>388
そんな所あるなんて知りませんでした!
0394デフォルトの名無しさん2016/02/16(火) 18:04:53.07ID:b0fHFSg3
PDF帳票ってTeXとかじゃダメなのか
0395デフォルトの名無しさん2016/02/16(火) 18:07:41.48ID:G5mJ2hfm
それこそ標準対応のXPSでいいんじゃ
0396デフォルトの名無しさん2016/02/16(火) 19:20:11.75ID:7ODQ3t3P
>>392
おお! なるほど!
該当部分を削ったところ今度は正常に動作しました。ありがとうございます。

できれば選択したフォント名をstringで取得する方法まで教えていただければ幸いです。
0397デフォルトの名無しさん2016/02/16(火) 20:46:25.41ID:7ODQ3t3P
すいません自己解決しました。

Marshal.PtrToStructure(pLogfont, logfont);
string _fontName = logfont.lfFaceName;

で無事にフォント名が取得できました。ありがとうございました。
0398デフォルトの名無しさん2016/02/17(水) 16:53:29.04ID:O2urVYVM
16bitグレースケールのBitmapを作成して保存しようとすると、GDI+エラーになります。
http://ideone.com/uDBK9v
(33行目)

16bitのBitmapが表示とか出来ないのはモニタとかの仕様上仕方ないとして、
Bitmapデータは出来ている感じなのでとりあえず保存したいのですが、何か間違っているのでしょうか?
自分で2byteバイナリファイルとして保存した方が早いのかもしれませんが、よろしくお願いします。
0399デフォルトの名無しさん2016/02/17(水) 17:37:09.55ID:nE07dZjC
Image::Save(string)はpngで保存する
pngの規格には16bitグレイスケール形式はあるみたいだけどGDI+のエンコーダはサポートしてないっぽい
bmpはそもそも16bitグレイスケール扱えたっけ?
0400デフォルトの名無しさん2016/02/17(水) 17:46:34.78ID:O2urVYVM
なるほど、pngで保存するのですね。
PixelFormatにFormat16bppGrayScaleがあるのでいちおー扱える様ですが、何か微妙っぽいですね。
作成した16bit BitmapをGraphicsクラスに入れたら、そこでメモリエラーになりました。
WinFormじゃなくWPFを使った方がいいのかな?

>Format16bppGrayScaleは使えるのか?実験してみた。
http://imagingsolution.blog107.fc2.com/blog-entry-65.html
0401デフォルトの名無しさん2016/02/17(水) 18:02:43.59ID:qUPmCiGq
https://www.youtube.com/watch?v=lopqXAj87J8
0402デフォルトの名無しさん2016/02/17(水) 18:07:35.89ID:PDqw71kq
>>400
ファイルに書き出してからImagemagickでも使って変換したら?
0403デフォルトの名無しさん2016/02/17(水) 18:54:21.22ID:vx64Twya
>>402
調べてみたらMagick.NETで16bit用なんてのもあるのですね。
ありがとうございます。
0404デフォルトの名無しさん2016/02/17(水) 22:10:28.91ID:/bboS/b7
LINQについてなんですが、LINQスレが過疎ってるのでこっちに書き込みします。

一ヶ月分の出勤を集計したいと言う要望があります。
ちょっとLINQを使ってみようと思いまして、データセットに一月分のデータを全て取り込んで、各種条件で集計したいと思ってます。

dsというデータセットにDtSyukkinMeiと言うデータテーブルがあります。
ここまでのコードでデータが入ってるのは確認できています。

その後、一人目の社員の一ヶ月分を日付順に取り出してみようと思いましてテストとして

String ShainCode = "00001"

var datas = ds.DtSyukkinMei.AsEnumerable()
.Where(x => x.SyukkinCode == ShainCode)
.OrderBy(x => x.SyukkinDate)
.Select(x => x);
int tmpcnt2 = 1;
foreach (var test in datas)
{
Console.WriteLine(tmpcnt2 + ":" + test.SyukkinName + " " + test.SyukkinDate.ToString());
tmpcnt2++;
}

と言うコードでやってみました。
コンソールに書き出してみると指定社員の最初の日付のデータのみが抽出されます。

一行だけではなく、指定社員のその月のデータが並び替えされて全て取り出せるつもりなのですが、何か勘違いしてますでしょうか?

よろしくお願いします。
0405デフォルトの名無しさん2016/02/17(水) 22:59:38.26ID:AvPZV+sJ
char space = ' ';
このスペースの文字を指定回数分連結したchar[]作りたいんだけど、
いかようにもできそうで、センスあるコードというかすっきり簡潔な方法ってどんなもんですかね
0406デフォルトの名無しさん2016/02/17(水) 23:11:48.57ID:6W33gIm7
下記のサイトにあるObjectViewer-20080530.zipというC#のソースについて質問です。
ttp://wikki.sakura.ne.jp/gir−lab/?Object%20Viewer
※URLが書き込めなかったので、URLは全て全角英数にしました。

VisualStudio2015で実行しようとすると、次の部分でエラーが出て実行できません。

場所)foreach (var ko in kobj.Objects)
内容)型 'System.NullReferenceException' のハンドルされていない例外が ObjectViewer.exe で発生しました
    追加情報:オブジェクト参照がオブジェクト インスタンスに設定されていません。
※実行しようとすると、inの所が黄色くなって733のエラーが出ます

動くようにするにはどこをどう直せばいいでしょうか?
よろしくお願いします
0407デフォルトの名無しさん2016/02/17(水) 23:23:14.47ID:yAxqBiJ2
Enumerable.Repeat(' ', 10).ToArray()
まずは、センスのないやつどーぞ
0408デフォルトの名無しさん2016/02/17(水) 23:44:23.75ID:sImTzQ0m
>>404
データまで含めて>>1とか>>4に貼って

>>405
stringコンストラクタでは不満か?
new string(' ', 10)
0409デフォルトの名無しさん2016/02/17(水) 23:47:54.88ID:AvPZV+sJ
>>407 408
レスありがとうございます。
今自分も調べながらやってましたが、
new string(' ', 10)が一番素直ですね・・・
あとはPadLeftとPadRight併用でスッキリ簡潔になりそうです
0410デフォルトの名無しさん2016/02/17(水) 23:50:51.96ID:yAxqBiJ2
char[] じゃないんかい!
04114062016/02/18(木) 01:40:58.04ID:NcYC7RZF
同じ行が2か所ありましたので訂正します。

public TreeNode CreateTreeNode(KernelObject kobj)内にある
foreach (var ko in kobj.Objects)の行でエラーが発生します。
04124062016/02/18(木) 01:55:49.87ID:NcYC7RZF
管理者権限で実行すればエラーは出ませんでした
0413デフォルトの名無しさん2016/02/18(木) 09:51:27.98ID:8Ob41omT
自分で追えよ・・・ Nullで権限がアレでって それで分かんなきゃ直してどうこうなんて無理。
0414デフォルトの名無しさん2016/02/18(木) 10:02:59.44ID:SB52IWqF
というか実際に管理者権限が必要なんだろ
直すとか言う問題か?
Windowsのexploit見つけて権限奪取しない限り無理だろ
アホらしい
0415デフォルトの名無しさん2016/02/18(木) 10:30:01.92ID:NcYC7RZF
>>413-414
>>1
>なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
0416デフォルトの名無しさん2016/02/18(木) 10:47:07.89ID:8Ob41omT
NG処理して終了
0417デフォルトの名無しさん2016/02/18(木) 11:16:57.56ID:ZKcMSiXn
https://www.youtube.com/watch?v=JOdFOSa73C8
0418デフォルトの名無しさん2016/02/18(木) 11:18:37.62ID:CG2yACMM
>>415
ID:8Ob41omTみたいなクズに言っても無駄だから
NG処理して終了
がおすすめ
0419デフォルトの名無しさん2016/02/18(木) 11:22:13.67ID:CG2yACMM
>>415
あと、文をスペース区切りしてるアホはスルー推奨
0420デフォルトの名無しさん2016/02/18(木) 11:48:51.47ID:e9QCPxI3
必死すぎワロタ
0421デフォルトの名無しさん2016/02/18(木) 11:51:57.10ID:IWN3hz7k
>>420=ID:8Ob41omT
0422デフォルトの名無しさん2016/02/18(木) 12:07:25.42ID:tZY/i+gW
こいつマジ必死でワロタ
0423デフォルトの名無しさん2016/02/18(木) 12:10:50.65ID:Rcq9wZ6p
いちいち反応せずに黙ってNGしとけクソボケ
0424デフォルトの名無しさん2016/02/18(木) 15:01:12.25ID:X4zyXl/p
シリアライズ出来るものと
出来ないもは何が違うのですか?
0425デフォルトの名無しさん2016/02/18(木) 15:10:53.95ID:oZznJMNM
シリアライズ出来ないリソースを持っているか否かだね
0426デフォルトの名無しさん2016/02/18(木) 15:25:33.12ID:X4zyXl/p
>>425
そこがよく分かりません。どんなものでも
何らかのデータなのだから、シリアライズ出来ない理由が分かりません。
0427デフォルトの名無しさん2016/02/18(木) 16:33:59.22ID:UlVzz0Kl
参照型は必ずしもシリアライズできるとは限らん。

お前をシリアライズしたら、
お前の知っている母ちゃんは今まで知ってた母ちゃんじゃないかもしれない。
0428デフォルトの名無しさん2016/02/18(木) 17:21:52.60ID:Nn+bwMYz
>>426をシリアライズし、100年後にデシリアライズしたとしよう
その頃にはお前の両親は他界しているし、お前の愛するPCも壊れている
ヒキニートであるお前はシリアライズされる前にできていたことが何一つできず、そのまま餓死するわけだ
多くのオブジェクトは様々な外部の要素に依存しているから、単独でシリアライズ/デシリアライズしても機能しないんだよ
0429デフォルトの名無しさん2016/02/18(木) 18:00:09.26ID:05rrwnvo
>>426
ファイルストリームなんかシリアライズしても意味無いでしょ。
0430デフォルトの名無しさん2016/02/18(木) 18:13:08.76ID:TyHWpNkb
説明下手な奴に限って傲慢あるある
0431デフォルトの名無しさん2016/02/18(木) 18:27:30.28ID:hhAx0KRP
やろうと思えばシリアライズできないデータなんか無いよ
メモリダンプ取って直にオブジェクト取り出せるから
んなことやっても意味ないから馬鹿以外はやらない
0432デフォルトの名無しさん2016/02/18(木) 19:19:09.72ID:kgpZ3dMl
そーいや自作ビューアのサムネイルを保存するのに、横着して全部シリアライズしてたら無駄にでかくなった
使う分だけシリアライズってどうすんの?
0433デフォルトの名無しさん2016/02/18(木) 19:35:52.42ID:42G1e3Su
問題になってる出来る出来ないってのは本質的に出来るかどうかではなく
シリアライズ出来ますって属性がついてるかどうかの違いの気がする
あるいは特定のシリアライザがシリアル化/解除の方法を知ってるかどうかか
0434デフォルトの名無しさん2016/02/18(木) 19:51:06.90ID:oZznJMNM
まずはシリアル化とは何かを定義しよう
0435片山博文MZ ◆T6xkBnTXz7B0 2016/02/18(木) 19:52:01.87ID:ir69mPa/
>>432
画像を縮小
0436デフォルトの名無しさん2016/02/18(木) 20:11:57.88ID:TyHWpNkb
>>434
朝牛乳かけて食べるやつ
0437デフォルトの名無しさん2016/02/18(木) 21:03:39.51ID:05rrwnvo
>>432
Attribute付けるだけでは?
0438デフォルトの名無しさん2016/02/18(木) 23:13:12.28ID:X4zyXl/p
>>431
そう言う事ですね。
やれば出来るんですよね。納得。
0439デフォルトの名無しさん2016/02/18(木) 23:49:57.72ID:J2TnYaKy
いやアンマネージリソースのハンドルとか持ってたら無理だろ
シリアライズ自体はできると言えなくもないが
デシリアライズした時点で確実に壊れている
0440デフォルトの名無しさん2016/02/19(金) 00:00:00.31ID:cNiHKU+s
何を保持してるしているか判断かのうであれば
自前のシリアル化デシリアル化する部分のコード書けるでしょう

逆に何を保持しているか知らない物は保存する価値なんてない
04414312016/02/19(金) 05:37:45.34ID:HFWhA+S0
馬鹿だなお前ら
こういう食い下がり方する奴には、正しくなかろうと、
本人が望んでる答えを返してお引き取り願うのが一番正しい
この手の質問は女に多い
同意して欲しいだけのくせに否定されることに耐えられないから
質問の体を取らせているにすぎない
0442デフォルトの名無しさん2016/02/19(金) 07:57:47.74ID:6O+Ly4Vm
モヒカンとは最も相容れないタイプだな…
0443デフォルトの名無しさん2016/02/19(金) 10:19:14.45ID:3/d8Z/on
>>428
頭悪い童貞が書くような長文だ。
0444デフォルトの名無しさん2016/02/19(金) 14:36:52.18ID:AYZd97/P
アホな質問かもしれないんですが・・・
一つのメソッドの中でコントロールいじる場合、メソッド抜けるまでは反映されませんよね
たとえば
Label1.Text = "0000";
public void ChangeText(){
Label1.Text = "1234";
Sleep(30);
Label1.Text = "5678";}
みたいなとき、Label1は0000の表示後に、Sleep分表示がとまって、5678となって1234が表示されます
メソッド抜けるまでは画面上のコントロールの変更ってのは反映されないのは仕方ないんですかね
0445デフォルトの名無しさん2016/02/19(金) 14:38:57.86ID:AYZd97/P
>Sleep分表示がとまって、5678となって1234が表示されます
1234は表示されないの間違いです・・・
初心者的には上のコードだと、1234が表示された状態でSleep(30)分待機して5678に切り替わって欲しいところなんですが
0446デフォルトの名無しさん2016/02/19(金) 14:57:16.42ID:cObyQ139
Label1.Refresh(); を入れては
0447デフォルトの名無しさん2016/02/19(金) 15:01:07.03ID:qpWieAWs
asyncメソッドにしてSleepの代わりにTask.Delayを置いてawaitすれば〜?

とは言うものの、メッセージループ理解できてない初心者にこれをやらせると、どこかで爆発しそうだな
0448デフォルトの名無しさん2016/02/19(金) 15:15:36.22ID:PT7381jP
>>444
其のためにBeginInvokeってのが有って、ソレを使えば表示更新したあとの処理が記述できますよ
0449デフォルトの名無しさん2016/02/19(金) 15:16:28.45ID:Kz4OZB/T
UIスレッドでSleepしたらそこで処理が完全に止まっちゃうでしょ
1234に書き変えたら、タイマーかワーカースレッドに投げて即リターン
0450デフォルトの名無しさん2016/02/19(金) 16:35:02.98ID:3ls1YNX5
windows.controlsが使いたくてsilverlightを導入して参照を追加したんだが
RichBoxTextを使おうとすると曖昧な参照ってエラーメッセージが出るんだがこれどうにかならないのか?
System...RichBoxTextってしたらエラー自体はなくなるんだが
その後RichBoxText型で宣言した変数にa.Textって使い方が出来なくて困ってるんだ
a.Textが使える方法か、曖昧な参照ってエラーがなくなる方法か教えてください
silverlight導入してから再起動とかは一応してみました
0451デフォルトの名無しさん2016/02/19(金) 17:29:52.93ID:y4Mdmv2A
RichBoxTextじゃなくて、RichTextBoxだよね?

System.Windows.Forms.RichTextBoxなのか、
System.Windows.Controls.RichTextBoxなのか、
どっちなのかわからんからはっきりしなさい、というエラーでしょ。

using System.Windows.Forms;を削除すればそのエラーは出なくなるけど、
そうすると他に不都合が出るだろうから、どうしようもない。

using Hoge = System.Windows.Controls;とでもしておけば、
Hoge.RichTextBoxと書けるようになるから、それでお茶を濁すくらいか。

それから、System.Windows.Controls.RichTextBoxには、
Textというプロパティは存在しないので、a.Textという書き方は出来ないよ。
0452デフォルトの名無しさん2016/02/20(土) 20:26:10.11ID:e/Byruqe
ちょっと良くわからないので質問します

あるファイルが有ります。
データの入り方はこんな感じです

A1:data1,data2,data3
A2:data4,data5,data6,data7,data8
A3:data9,data10

やろうとしていることは2つあって
まずはデータを読み込んでそれを画面に反映する。こっちはまあ普通にできそうです

んでようやっと本題ですが
画面の入力に応じてデータを書き換えたいです
例えば

A1:data1,data2,data3
A2:data4,data5,data6,data7,data8
A3:data9,data10

だったものを

A1:data1,data2,data3
A2:data11,data12,data13,data14,data15
A3:data9,data10

としたいのですが
File操作系の関数をMSDNで調べても「ファイルの途中から上書きする」ような操作がさっぱり見当たりません

実装困難であればファイルにデータのオブジェクトを作成してバイナリでまるまる書き込む/読み込む形式に設計変えようと思ってます
0453デフォルトの名無しさん2016/02/20(土) 20:59:49.31ID:fK254q94
FileStreamを使ってるならSeekしてWriteしたらダメなの?
0454デフォルトの名無しさん2016/02/20(土) 21:19:49.73ID:G849YxIn
A1とか何でdataがどうなってるのか知らんが
書き変えたい位置にSeekしてからWriteすれば書き変わるんじゃないの
0455デフォルトの名無しさん2016/02/20(土) 21:38:04.45ID:e/Byruqe
>>453>>454
申し訳ありません、その方法がわからないのです

ちなみに
A1とかをキーにして、書き換えたい行を特定し、ファイル操作を実行
という流れを想定しています

seekもやFileStreamのReadとかも調べてみましたが「今A2の行だよ」と知る方法がさっぱりわかりません
0456デフォルトの名無しさん2016/02/20(土) 22:03:22.35ID:9PjCd1YL
その例だと読み込み時にキー毎のバイナリ位置を保存しておく必要があるね

でも可変長のテキストファイルっぽいし
変更位置以降は全て書き直しになる可能性が高いから
ファイル操作の部分操作に頑張って対応しなくても良いケースの予感がします
0457デフォルトの名無しさん2016/02/20(土) 22:05:12.15ID:fK254q94
小さいファイルなら途中から書き変えるなんてやらずに、
丸ごと読み込んで丸ごと書き出した方がいいと思うよ。

まずは、それで入出力を完成させたらどうだろう。
他の方法は、その後にトライすればいいんじゃないかな。
0458デフォルトの名無しさん2016/02/20(土) 22:57:06.17ID:S80Z1mdL
パワーポイントに配置したWindowsmediaplayerのURLをC#から指定する方法を教えていただけないでしょうか
0459デフォルトの名無しさん2016/02/20(土) 23:32:02.40ID:G849YxIn
>>455
テキストファイルのような、行で区切られてるようなものをイメージしてるなら
ファイルの途中を書き換える事は出来ないと思っておけ
一旦全部読み込んで、行ごとに分けて、特定行を探して、書き換えて全部の行を保存しろ
0460デフォルトの名無しさん2016/02/20(土) 23:38:43.21ID:KnuHyZ1B
>>459
ランダムアクセスは?
0461デフォルトの名無しさん2016/02/21(日) 00:28:41.92ID:wZfvWExq
隙間がないから長さが変わったら、後ろは全部書き換えなきゃ駄目。
0462デフォルトの名無しさん2016/02/21(日) 00:30:08.83ID:LCJuLSZW
だから原則ファイルに一度でも書き込んだら元ファイルのその書き込んだ位置以降の情報は全て駄目になると思っておいた方がいい
あとどう考えても同じファイルに対して読んだり書いたりとトリッキーなことやるよりは
読み込み用と書き込み用のバッファなりストリームをそれぞれ用意して一気に読み書きする方が速い
0463デフォルトの名無しさん2016/02/21(日) 00:30:42.49ID:ckgq3Xt/
可変長で書き換えるなら別のFileStreamに書き込んだほうが楽だわな
0464デフォルトの名無しさん2016/02/21(日) 03:35:57.15ID:XoaHuoua
enumerableなreadlineつかおう
0465デフォルトの名無しさん2016/02/21(日) 03:43:40.82ID:GEHiOhH4
オレオレのデータ構造なんか最初から選ぶべきではなかった
習作ならまあええけど
0466デフォルトの名無しさん2016/02/21(日) 09:50:40.92ID:oCkiVU5T
>>465
じゃあ>>452の場合どういったデータ構造が適切なんでしょうか

具体的な画面イメージを書くと

メイン画面:A1に遷移する、初期データの入ったファイルを作る(ファイルはテキストボックスで名前を決めて複数作成可能)
A1画面:A1のデータを入力し、A2に遷移する
A2画面:A2のデータを入力し、A1,A3に遷移する
A3画面:A3のデータを入力し、A2に遷移する
*各画面ともXボタンやそれ用のボタンでメイン画面に戻ることが可能
*画面はそれぞれWindowとして用意し、遷移時に遷移先画面をshowし自画面をCloseするものとする

という感じです

現在考えているのはみなさんおっしゃるようにデータを保持しておいて遷移が発生した時に一気に全部読み書きする方法か
データをオブジェクトとして確保して、バイナリ形式で読み書きする方法です

他にいい方法があるならご教示願いたいです
0467デフォルトの名無しさん2016/02/21(日) 10:08:59.85ID:MPr2aBz2
そもそも画面遷移で画面がファイル読み書きとかそんな事はしない
画面に必要なVMを取得するクエリをまとめたサービス
画面に割り当てられてるユースケースを解決するコマンドをまとめたサービス
画面はこれらのサービスを呼び出すだけ
データの取得も更新もサービスが行う
画面側でデータをどう保存復元するか何て事は考えたら負け
0468デフォルトの名無しさん2016/02/21(日) 10:21:02.36ID:ZWCSgZld
開発対象の規模感にもよるけれどね

ただ部分保存する事を検討する価値を感じるデータ量なら
画面とは疎結合の方が良いとは思う

データ構造は編集方法より利用方法に最適化されている方が幸せだと思う
0469デフォルトの名無しさん2016/02/21(日) 10:37:15.77ID:6FoMFdKR
>>466
> データをオブジェクトとして確保して、バイナリ形式で読み書きする方法です
XML でいいだろ
読み書きルーチンを自前で書かなくてすむし
http://dobon.net/vb/dotnet/file/xmlserializer.html
0470デフォルトの名無しさん2016/02/21(日) 18:23:24.52ID:NjwYLQlW
>>466
画面遷移のたびにファイルに保存する必要や、そのファイルが全画面で同じである必要あるのか?

それだけじゃどんなデータ構造にすべきかなんて判断できない
そしてそのデータをどこにどうやって保存して利用するかも検討する余地がある
最終的に欲しいものも良くわからない

まあ、とりあえず思うように作ってみて、それから考えればいいんじゃない
0471デフォルトの名無しさん2016/02/21(日) 18:33:52.95ID:sKosHeoc
taskクラスやスレッドクラスって
exception受け取れないの?
スレッドでのコネクション再接続機能作りたいんだけど?
0472デフォルトの名無しさん2016/02/21(日) 20:18:58.15ID:mOR+hll2
TaskはWaitすれば例外投げると思う
0473デフォルトの名無しさん2016/02/21(日) 20:53:20.79ID:x8hzzpdB
DataRowにDataTable使っているんだけど、
行の追加処理をループで回してると100件超えたらとたんに重くなって、300件なんか処理させようものならメモリ不足で落ちる
デバックしてみるとdt.Rows.Add()の部分で極端に遅くなってるようですが
Selectが前の処理にあるとインデックス再生成で遅くなるという記事は見つけたけど、特にそんなこともしてない
DataSetをstaticで保持して必要なフォームでFillしてデータ処理してるんだけど
DataSetをstaticにしてることが原因なんでしょうか
0474デフォルトの名無しさん2016/02/21(日) 22:38:20.29ID:NjwYLQlW
>>471
exception受け取るという意味がよくわからんが
https://msdn.microsoft.com/ja-jp/library/dd997415(v=vs.110).aspx

>>473
どんなマシンでどんなレコードを操作してるのか知らんが
普通300件程度で目に見えるほど遅くはならんと思うが
0475デフォルトの名無しさん2016/02/22(月) 01:49:27.66ID:+DBaWBH6
スレッドセーフな作りを学ぶには、どんな参考書がよいでしょうか?
0476デフォルトの名無しさん2016/02/22(月) 06:22:13.43ID:/YfJIw9H
習うより慣れよじゃね

staticな変数を使わないこと
スレッドにするオブジェクトは使いまわさないこと
ファイルやDBみたいな資源を扱うなら適切な場所でlockする

これさえ守ればなんとかなる。
0477デフォルトの名無しさん2016/02/22(月) 06:34:12.91ID:WxVdqihh
正分毎に処理させるにはどうすればいいの?
例)0:00:23にボタンを押してスタートしても0:01:00から1分毎に処理する
0478デフォルトの名無しさん2016/02/22(月) 08:21:58.49ID:RzYeJvwW
>>477
引き算してタイマーセットすればいいだけだろ
0479デフォルトの名無しさん2016/02/22(月) 09:14:16.78ID:E9rUGhfo
まるで成長していない…
0480デフォルトの名無しさん2016/02/22(月) 11:39:08.80ID:/uXnY6ua
TimeSpanだな
0481デフォルトの名無しさん2016/02/22(月) 13:28:39.91ID:vpSvShmB
>>476
初心者には
> スレッドにするオブジェクトは使いまわさないこと
がピンとこないっす
ここでいうスレッドって何を指しておりますか?
0482デフォルトの名無しさん2016/02/22(月) 13:35:45.29ID:vpSvShmB
追加で質問ですが、staticな変数は使わないとあるけど
たとえば1000人の顧客データがDBに入ってるとして、
画面ごとに1000人のデータをDBから引っ張ってくるのがいいってこと?
今作ってみてるのは、初回起動時にDBからデータとってきて
staticな顧客情報クラスのプロパティに読み込んでそれを使い回してるんだけどだめ?
0483デフォルトの名無しさん2016/02/22(月) 13:45:24.22ID:8Ue91Bmo
>>482
まず

・あなたが作っているのはWebサーバなどサーバ上で動くアプリ?
・それともWindows10など、クライアントOS上で動かすアプリ?

のどっちです?
0484デフォルトの名無しさん2016/02/22(月) 13:59:27.59ID:vpSvShmB
>>482
クライアント上で動作するWindowsフォームです
MySQLと連携させてます
0485デフォルトの名無しさん2016/02/22(月) 14:25:03.48ID:eN79gWGq
>>484
それならwinフォーム側(c#)の設計はそれでいいんじゃない?
スレッドセーフは特に関係ない。

SQLサーバ上のデータを複数人で操作した時のことを心配しているなら
それはDBMSの話でこのスレとはちょっと方向がズレる。
まぁ複数テーブルを変更するならc#側で適切なトランザクション制御をする必要はある

何を心配してスレッドセーフというキーワードが出てきたの?
0486デフォルトの名無しさん2016/02/22(月) 15:49:01.26ID:XzDT2iuo
彼?が聞いていたのは「staticのDataTableにrow100件追加すると重くなる何で?」だったと思う
0487デフォルトの名無しさん2016/02/22(月) 17:40:37.15ID:iE2GkHGd
a | b | c
見たいな式でbが含まれてないか調べる方法ってどうすればええんでしょうか?
0488デフォルトの名無しさん2016/02/22(月) 17:41:43.60ID:DP7yI1JH
>>482
そんな理由でstaticは止めとけ。
0489デフォルトの名無しさん2016/02/22(月) 17:44:32.52ID:DP7yI1JH
>>487
!"a | b | c".Contains('b')
0490デフォルトの名無しさん2016/02/22(月) 18:55:25.80ID:1zVJqqIu
スレッドセーフなつくりに関しては

このサイトが非常に分かりやすくて勉強になりました
http://blogs.msdn.com/b/nakama/archive/2008/12/18/9231090.aspx


こういったことが載ってる書籍ってありますか?
0491デフォルトの名無しさん2016/02/22(月) 19:24:09.33ID:Vk7WMYI1
>>490
オライリーの平行コンピューティング技法
マルチスレッドは小手先のノウハウより基礎が大事
0492デフォルトの名無しさん2016/02/22(月) 20:37:34.94ID:BBvTeRCQ
>>487
式でって、構文解析でもやってんの?
0493デフォルトの名無しさん2016/02/22(月) 20:39:55.32ID:xw1fAbOE
C#でDBアクセスする,っていったら普通はどうするの?ADO?
0494デフォルトの名無しさん2016/02/22(月) 20:57:11.31ID:qgHj34IQ
クラサバならDataSet、WebならEF
0495デフォルトの名無しさん2016/02/22(月) 20:58:34.94ID:XPqXIrud
上司が戦前生まれのおじいちゃんでmapperは許さないと言うならADO.NETしかないだろうね
そうでなければコンテキストのアーキテクチャにマッチしたものを自由に使えばいい
ただし僕の考えた最強のDataBaseCommonは避けたほうが賢明だ
0496デフォルトの名無しさん2016/02/22(月) 21:06:43.09ID:xSKr2cZb
>>493
EntityFramework
0497デフォルトの名無しさん2016/02/22(月) 22:46:47.35ID:hopELxhL
最近はドキュメントストアとイベントストアばかりだわ
リレーショナルとか今更バカバカしくなる
0498デフォルトの名無しさん2016/02/22(月) 22:47:21.82ID:sza9ynkf
SHDocVw.InternetExplorerを使ってIEを操作していって
ETC利用紹介サービスのサイトでPDFの明細を表示するところまで行ったのですが
この後このPDFをローカルファイルとして保存するにはどうしたら良いでしょうか
もしくはPDFをダウンロードできるURLを知る方法を教えて下さい

ETC利用照会サービス
http://www.etc-user.jp/index.html

最終的にIE上でPDFを表示させた時のURLはこんなかんじ
https://www2.etc-user.jp/NASApp/etc/Etc-User;jsessionid=0001EA5B7G0OeSIFI_z1DoRH:11fqrass0?パラメータいっぱい&funccode=1011110000&nextfunc=1011111000&x=0&y=0
0499デフォルトの名無しさん2016/02/23(火) 01:01:54.38ID:+adornFd
パケットキャプチャしてその通りにアクセスすれば良いよ
0500デフォルトの名無しさん2016/02/23(火) 04:05:39.81ID:iF53IQph
質問します

100個のチェックボックスがあります。
それらがチェックされた個数をカウントしたいのですが、流石にチェックボックス100個にイベントハンドラつけるのは大変なので別な方法を模索しています

今まで試したのは
チェックボックスのあるウィンドウにMouseUpとかそういう系統のイベントをつける
→MouseUp後にチェックボックスの状態が変わるようで不可

タイマを使って逐次カウンタ処理を走らせる
→カウンタ処理は他画面でも使い回す都合、別クラスにしています。
そのせいかどうか知らないけど、タイマとコントロールのスレッドが異なるので安全じゃない、例外で制御してね
みたいなメッセージが出てきて止まります

なんかこう、もうちょっと楽な制御方法はないのでしょうか。
こういう場合の定石みたいのがあるなら知りたいです
0501デフォルトの名無しさん2016/02/23(火) 04:26:28.46ID:tEtmGt/9
C#コード側でチェックボックスのコントロールを生成して配列にでもぶち込んでおけばいいんじゃまいか
forループでIsChecked調べればよろし
0502デフォルトの名無しさん2016/02/23(火) 06:39:35.45ID:E2PPlRvu
>>500
WindowsFormアプリ?
0503デフォルトの名無しさん2016/02/23(火) 08:17:56.09ID:RYitu+qp
涙目になりながらデザイナでイベントハンドラ設定してる所を想像した
0504デフォルトの名無しさん2016/02/23(火) 08:21:21.05ID:kbsxNcQ6
そのチェックボックスに結びついている何らかのモデルがあるはずだから、それを走査すればいい。
0505デフォルトの名無しさん2016/02/23(火) 08:39:41.98ID:RYitu+qp
スレッド云々に関しては、UI(WinFormsのタイマーも含む)は
作成したスレッド以外から操作してはいけない決まりがある
ControlはInvokeかBeginInvokeメソッドを持っているから
他のスレッドから触りたければそれらを経由して操作する

UIとスレッドのルールはWindows以外のプラットフォームでも大抵同じなので
覚えておくといつか役に立つかも
立たないかも
0506デフォルトの名無しさん2016/02/23(火) 11:37:42.35ID:5c0zO2hz
linqについてですが
DataTableに列Aと列Bがあって、列AにはBを変換した文字列を入れてます
Linqで一気にやろうと
dt.AsEnumerable().Select(row => row["A"] = henkan(row["B"].ToString()));
としてみたのですが上手くいきません
何が悪いんでしょうか
0507デフォルトの名無しさん2016/02/23(火) 12:29:24.57ID:gpEp1eYY
emitされてないって下らない理由だったらどうしよう
0508デフォルトの名無しさん2016/02/23(火) 12:46:43.35ID:5HhRd+zG
LINQ厨、答えてやれ。
0509デフォルトの名無しさん2016/02/23(火) 12:57:53.16ID:+MN4l2JU
emitって言葉有名ですか?
始めて聞いたんですが
0510デフォルトの名無しさん2016/02/23(火) 13:09:48.84ID:JrRFhuQq
普通はSQLで書く仕事だな
0511デフォルトの名無しさん2016/02/23(火) 14:07:32.88ID:EM1+lJ6M
エスパーじゃないんでうまくいきませんだけじゃちょっと
0512デフォルトの名無しさん2016/02/23(火) 14:31:40.10ID:mDltGRvi
>>510
SQLじゃ遅いからじゃね?
0513デフォルトの名無しさん2016/02/23(火) 14:45:30.79ID:5c0zO2hz
すみません、emitって初めてききました・・・
SQLに持っていく前に暗号化してUpdateしようとしてるんです
>>511
デバックで実行見てても変換処理に行く様子はなく、抜けたあとのdtについても
該当の列には変換後の値が入ってないんです

似たような一括置換の例見ていると .ToList()がついてるんですが、それが抜けてるせいでしょうか
0514デフォルトの名無しさん2016/02/23(火) 15:04:28.61ID:EM1+lJ6M
Select呼び出した時点では列挙は実行されない(遅延評価)
foreachすることで初めて評価される
ToList()とかCount()とかは即時評価

副作用のある処理はLINQのメソッドチェーン内では書かないのが無難
素直にforeachでいいんじゃない?
05154982016/02/23(火) 16:27:16.88ID:lkjUbvnh
>>499
なるほど!と思ってwireSharkってのを使ってみたけど難しすぎます。
でもよく考えたらPDFは既にIEに表示されてるからメモリ上にはファイルが有るわけで・・・
そこからローカルフォルダに保存となるとadobeを操作することになるんですかね。
こっちもちょっと自分にはハードル高いです。
webBrowserクラスからファイルの保存ボタン押せないか探ってみます。
ありがとうございました。
0516デフォルトの名無しさん2016/02/23(火) 16:39:37.63ID:DVYg3A+E
http://www.kurumaerabi.com/shop/detail/40003946/
0517デフォルトの名無しさん2016/02/23(火) 17:16:42.33ID:5c0zO2hz
>>514
Linq使い始めたところだったので勉強にになります
foreachで処理させました ありがとうございます
0518デフォルトの名無しさん2016/02/23(火) 18:53:15.86ID:MLn0TlkP
>>500
FormにはControlsと言うプロバティーがあって、ここに全てのコントロールが格納されています
定石はこのコントロールからCheckBoxを抽出して、foreachループでハンドラをセットして処理するのが一般的かな?
全てのコントロールからチェックボックスを抽出する方法とかコードでイベントをセットする方法を知っていれば簡単です
0519デフォルトの名無しさん2016/02/23(火) 20:08:51.57ID:iF53IQph
>>500です
みなさんのおかげで解決しました。
結局、コントロールを制御する関数をInvokeしてタイマの中に突っ込みました。
本来はこういう実装ならカウントアップスレッドを作ってその中でInvokeするのが正なのでしょうけどもスレッドは勉強することが多そうなのでとりあえずタイマで良しとします

いやあ、最悪MouseMoveをトリガにしようか悩んだのて助かりました
0520デフォルトの名無しさん2016/02/23(火) 21:14:59.21ID:OvWSY5Gq
>>475
動かしてみてエラーしたらその時点で対策すればいいよ
0521デフォルトの名無しさん2016/02/25(木) 18:30:48.11ID:M2uXlhYi
重たい処理をBackgroundWorkerにさせようと思うんだけど、
ネットで見てるサンプルはほとんど重たい処理のところに適当なループが書いてある
実際にやりたい処理は、別クラスのメソッドをいくつも呼び出すんだけど、
呼び出し先でWorkerReportProgressを更新するにはどうしたらいいの?
0522デフォルトの名無しさん2016/02/25(木) 20:01:46.64ID:m/jN0scy
無理に決まってんじゃん
05234982016/02/25(木) 22:15:35.13ID:nblLHdJf
解決しました
普通に拡張子pdfにしたらダウンロードできました
こんな単純なことで3日も悩んじゃった
0524デフォルトの名無しさん2016/02/25(木) 22:46:47.71ID:bvnWfi3I
>>521
更新処理を書いて渡すだけ
0525デフォルトの名無しさん2016/02/26(金) 01:10:33.96ID:+59ndj2V
>>524
すみません・・・もう少し具体的に教えて下さいませ
0526デフォルトの名無しさん2016/02/26(金) 09:11:43.07ID:JdiTwSlc
別クラスのメソッドとやらの仕様を具体的に教えてもらえないと教えてあげられません

そのメソッド変更できんの?できないの?
そのクラス進捗どうですか機能はあるの?ないの?
0527デフォルトの名無しさん2016/02/26(金) 09:49:52.84ID:fV5IfbGO
どうせないないづくしだとおもったので
無理に決まってんじゃんっていったよ
0528デフォルトの名無しさん2016/02/26(金) 10:21:22.48ID:LwzDqGm0
>>521
Taskを使ったら?
0529デフォルトの名無しさん2016/02/26(金) 11:04:27.42ID:1jTGKv1k
http://hatedaihatsu.web.fc2.com/2.html
0530デフォルトの名無しさん2016/02/27(土) 22:33:21.13ID:cpgi4D1s
パラメータをフラットに扱いたいです。

tag type human
tag sex man

このように、種別や性別のメンバを持たせるのでなく、tagに統合して扱おうと思ってます。

obj.tag[sex]==man
obj.tag[sex]==man & woman
obj.tag[sex]+= woman

こんな感じで比較したり追加したいのですが、
こういう都合のいいコレクションってありますか?

比較の際に値が含まれてたらtrueでいいんですけど、たまに複数で比較したいときもあると思います。
0531デフォルトの名無しさん2016/02/27(土) 23:04:36.18ID:F0cA5DZY
>>530
ここはC#のスレなんだけど
0532片山博文MZ ◆T6xkBnTXz7B0 2016/02/27(土) 23:54:34.85ID:Bxm5eu58
>>530
ビット演算
0533デフォルトの名無しさん2016/02/28(日) 09:45:59.90ID:5lqkohLH
>>530
それはコレクションではなく、その要素の型の問題だべ。
0534デフォルトの名無しさん2016/02/29(月) 07:17:09.96ID:nhRiUMTh
doubleの数値aを条件式でa<10ならbみたいな処理ってどうするの?
0535デフォルトの名無しさん2016/02/29(月) 07:18:54.21ID:s/kIhvzC
if (a < 10) b;
0536デフォルトの名無しさん2016/02/29(月) 17:40:57.95ID:qzAO1Y5X
stringの中の&b(){text}を全部(text)に置き換えるとしたら、どうやって書けばいいんだろうか

例えば、
aabbcc&b(){text}aabbcc
↓
aabbcc(text)aabbcc
みたいな感じで
0537デフォルトの名無しさん2016/02/29(月) 18:28:19.58ID:XNJcg+Rr
>>536
ggrks
0538デフォルトの名無しさん2016/02/29(月) 18:29:15.11ID:XNJcg+Rr
流石にggrksだけじゃ可愛そうなので
「c# 置き換え」でggrks
0539デフォルトの名無しさん2016/02/29(月) 18:57:07.20ID:qzAO1Y5X
>>538
ggった上で聞いてるんだが
どうも思った通りに動きそうなのがヒットしない
0540デフォルトの名無しさん2016/02/29(月) 19:01:29.49ID:wwUx70p8
Regex.Replace(input, @"\&b\(\)\{(.*)\}", "($1)");
0541デフォルトの名無しさん2016/02/29(月) 19:40:41.96ID:qzAO1Y5X
>>540
なるほど、$1ってそういう時に使うのか
説明読んでも全然理解出来なかったから良かったわ
ありがとうございました
0542デフォルトの名無しさん2016/02/29(月) 21:22:22.20ID:v6WnEZut
@ってそういうときに使ってもいいのか。
ファイルパスだけとか勘違いしてたわw
0543デフォルトの名無しさん2016/02/29(月) 22:27:36.50ID:XNJcg+Rr
>>542
どちらもstring型だからstring型を受け取るメソッドなら何にでも使えるよ
0544デフォルトの名無しさん2016/03/01(火) 00:33:23.59ID:yKQvQbvO
Expression楽しすぎわろた
今までの残業とはいったいなんだったのか
0545デフォルトの名無しさん2016/03/02(水) 13:39:22.33ID:7rMjbt+l
xdocumentで
<A>
  <X>データ</X>
  <Y>データ</Y>
  <B>
    <X>データ</X>
    <Y>データ</Y>
  </B>
</A>
を、こんなふうにする方法を教えて下さい。
<A>
  <X>データ</X>
  <Y>データ</Y>
</A>
つまり<A>の中の要素で、サブノードを持っている<B>は消したいのです。
0546デフォルトの名無しさん2016/03/02(水) 16:48:22.15ID:G7h2i/Mn
コントロールの上でドラッグ&ドロップをやる時、
MouseDownイベントとMouseUpイベントを使う方法(dobon)と、DragDropイベントを使う方法(知恵袋)とありますが、
どっちが良いのでしょうか?
DragDropイベントを使わなくても特に問題は無いので、とりあえず前者でやってますが、よろしくお願いします。
0547デフォルトの名無しさん2016/03/02(水) 18:51:22.60ID:M0cKviPS
>>545
Aの子要素を列挙。
それが子要素を持ってたら消せば良いんでないの?
0548デフォルトの名無しさん2016/03/02(水) 18:53:41.49ID:M0cKviPS
>>546
ものに依るけど、一般的にはDragDropの方が簡明だとは思う。
mouseイベントで満足出来てるなら、問題ないのでは?
0549デフォルトの名無しさん2016/03/02(水) 20:13:15.00ID:7rMjbt+l
>>547
LINQか何かで一発でやりたいんですが。分かりません。
0550デフォルトの名無しさん2016/03/02(水) 20:37:57.93ID:uzFwfdf+
LINQ馬鹿出番だぞ
LINQは副作用のある操作は苦手なんだと教えてやれ
0551デフォルトの名無しさん2016/03/02(水) 20:41:43.95ID:M0cKviPS
>>549
LINQなら(と言う訳でもないが)発想が逆。
普通は、子要素のあるものを抽出する。
0552デフォルトの名無しさん2016/03/02(水) 21:14:46.89ID:ifLd/O+p
いや「小要素を持たないものを抽出する」でもいいだろ
0553デフォルトの名無しさん2016/03/02(水) 21:15:53.98ID:Xr3FdDeB
linqを使って大儲けしたいんですがどうすればいいですか?
0554デフォルトの名無しさん2016/03/02(水) 22:11:35.10ID:YTt+CPtj
トライフォースでも見つけてくれば
0555デフォルトの名無しさん2016/03/02(水) 22:45:38.88ID:kXS0q7YS
マスタードソードじゃね
0556デフォルトの名無しさん2016/03/03(木) 07:00:40.32ID:5hp9B85t
思いっきり間違えたw
>>552が正解。
0557デフォルトの名無しさん2016/03/03(木) 07:30:17.52ID:+28+Mrx+
>>545
var a = doc.Element(“A”);
var children = a.Elements();
var filteredChildren = children.Where(c => c.Elements().Count() == 0);
a.RemoveNodes();
a.Add(filteredChildren);
0558デフォルトの名無しさん2016/03/03(木) 14:43:57.71ID:nNGKOxUf
Dictionary型に入ってる各Valueの個数を調べたいんですが
foreachで回すのもやぼったくて、すっきり出す方法ってないですかね
0559デフォルトの名無しさん2016/03/03(木) 14:58:12.30ID:5cXj0Vdc
valuesをgroupbyしてcountしたらええんでないの(linqで)
0560デフォルトの名無しさん2016/03/03(木) 20:10:03.85ID:4fcQDfzj
>>558
dictionary.Values.Countで取れない?
0561デフォルトの名無しさん2016/03/03(木) 20:12:28.33ID:o6irJ03v
質問を流し読みしての典型的な回答
0562デフォルトの名無しさん2016/03/03(木) 21:24:54.92ID:mAzbqkbr
>>558
こんなことをしたいん?

Dictionary<string, string> dss = new Dictionary<string, string>();
dss.Add("abc", "ace");
dss.Add("bcd", "bdf");
dss.Add("cde", "ceg");
dss.Add("def", "ace");
dss.Add("efg", "bdg");
dss.Add("fgh", "ceg");
dss.Add("ghi", "ceg");

// Valueでグループ化する
var res = dss.GroupBy(i => i.Value, j => j.Value, (k, l) => new { Value = k, Count = l.Count() });
foreach (var s in res)
Console.WriteLine(s.Value + " = " + s.Count);
0563デフォルトの名無しさん2016/03/04(金) 01:46:56.99ID:WAEirXYk
もうこれC言語に見えないなあ
なにを目指してるんだろ
0564デフォルトの名無しさん2016/03/04(金) 02:05:53.92ID:xkKaw8V/
LINQだよこれ
いきなりメソッド構文が難しいというのならまずクエリ構文で慣れるとよい
SQLそっくりだからね
0565デフォルトの名無しさん2016/03/04(金) 04:47:14.67ID:zqobCVSy
>>563
だってC言語じゃないから
0566デフォルトの名無しさん2016/03/04(金) 07:18:39.28ID:1TQg1NEq
メソッド形式なら(IEnumerable<>, Func<,>)のオーバーロード使えよ
keyselectorやvalueselector指定する方は人間が直接使うもんじゃない
0567デフォルトの名無しさん2016/03/04(金) 09:42:30.53ID:LYq4M8fM
C言語に見えない度なら極まったC++芸のが1000000倍上だぜ
0568デフォルトの名無しさん2016/03/04(金) 10:13:17.53ID:Wsx4vNbZ
>>557
ありがとうございました。
今日、試してみます。
0569デフォルトの名無しさん2016/03/04(金) 11:42:14.68ID:MEkhdCsH
datetime型変数から時、分、秒を取り出すのにはどうすればいいの?
0570デフォルトの名無しさん2016/03/04(金) 11:44:08.98ID:tUwMfFJ9
>>569
プロパティで取得
https://msdn.microsoft.com/ja-jp/library/system.datetime%28v=vs.110%29.aspx
0571デフォルトの名無しさん2016/03/04(金) 12:23:13.13ID:iPidqtAd
>>566
面倒くせーもんそれ
タイプ量が多くなるだけ
0572デフォルトの名無しさん2016/03/04(金) 15:26:09.68ID:elziqyh4
>>566
そう感じるとしたらお前が単にLINQに慣れてないだけだろうが
恥だぞその書き込み
勉強しなおせ(笑)
05735582016/03/04(金) 17:16:29.69ID:8Af9X/V9
>>560
それだと、Valuesの数だけで、個々のValuesに入ってる配列まで出せなかったんですよね

var result = Data.Select(d => d.Value.Count).Sum();
でとりあえず期待の値が返ってきますが合ってますかね
0574デフォルトの名無しさん2016/03/04(金) 19:23:22.00ID:WAEirXYk
>>562
の
1) => ←この矢印は何を示してるの
2) iとjと(k, l)はどこからきたの
3) new {〜}の中にセミコロンは要らないの
4) dss.GroupByはそもそも何してるの?(Dictionaryクラスに何時から生えてきた?)
の辺りを解説おねがいします
LINQだからってのはなしで
0575デフォルトの名無しさん2016/03/04(金) 19:30:29.77ID:LYq4M8fM
お前は知らなくていい
引っ込んでろ
0576デフォルトの名無しさん2016/03/04(金) 20:02:18.46ID:1TQg1NEq
>>572
慣れとかじゃなくて普通に読みにくい
各引数の意味を暗記してないとコードの字面から何やってるのか意図が伝わらない
せめて名前付き引数使ってくれ
0577デフォルトの名無しさん2016/03/04(金) 20:10:08.22ID:WAEirXYk
話の腰を折ってたらごめん
これでもDictionary型のdss集合から別の集合をresに入れてるって程度はなんとなくわかるよ?
varも最近覚えたし
ただGroupByの中身はちょっと頂けないでしょこれは
例えばi => i.Valueて本当にそこに必要なのかよ誰も参照してないだろって思うじゃん
でもLINQ覚えたら神だーとかはしゃいで>>562みたいに初心者お断り難解構文使っちゃうんだろうな・・・
0578デフォルトの名無しさん2016/03/04(金) 20:10:15.33ID:zqobCVSy
>>574
お前理解する気ゼロだろ
0579デフォルトの名無しさん2016/03/04(金) 20:12:13.58ID:Q/LMB9dT
Enumerableはコンパイラ用のメソッドも一緒くたになってるからな
せめて属性でインテリセンスに出なくするとかしてくれたらいいのに
引数6個のJoinとか生で使われたらたまらんわ
0580デフォルトの名無しさん2016/03/04(金) 20:16:27.35ID:WAEirXYk
それにしても不思議
元の型はDictionary<string, string>なのに
なんでiとかjとかそれに(k, l)とか突然出てくるんだろ
ほんとさっぱりだわ
>>562は本当にその式を理解して使ってると自信を持って言えるの?
0581デフォルトの名無しさん2016/03/04(金) 20:18:01.45ID:WAEirXYk
>>578
c# dictionary GroupByとかでぐぐっても適当な情報がみつからんのよ
まいった
0582デフォルトの名無しさん2016/03/04(金) 20:19:59.51ID:XaHmD/yI
自分の不勉強棚に上げて文句言ってるようにしかみえない…
0583デフォルトの名無しさん2016/03/04(金) 20:26:39.15ID:Q/LMB9dT
from d in dss
group d.Value by d.Value into g
select new { Value = g.Key, Count = g.Count() }
このd.Value, d.Value, new {} がそれぞれGroupByの引数になるわけ
>>562は真似しちゃいけない糞コードなのでお前の感覚は間違ってない
0584デフォルトの名無しさん2016/03/04(金) 20:27:07.03ID:XaHmD/yI
Enumerable.GroupBy だよ
DictionaryがIEnumerableインターフェースを持つクラスだから使える
0585デフォルトの名無しさん2016/03/04(金) 20:28:57.87ID:KvAxA2v3
少しだけ勉強すれば、天国になるのにね。
0586デフォルトの名無しさん2016/03/04(金) 20:34:15.32ID:WAEirXYk
ごめんよ
>>583-584でなんとなくわかったよ
勉強してくるわ・・・
0587デフォルトの名無しさん2016/03/04(金) 20:36:23.50ID:KvAxA2v3
>>581
Dictionaryが何のIEnumerableを返すのかを考える。
0588デフォルトの名無しさん2016/03/04(金) 21:19:27.41ID:ic5Fzn5S
>>573
DataがDictionary<string,string>としたらd.Valueはstringだし、Countはとってこれないと思うんだけど、どうやってんの?
正しい値は>>559が簡潔な回答してるとおり
dss.Values.GroupBy(s => s).Select(g => new { Value = g.Key, Count = g.Count()});
で取り出せる
http://ideone.com/cBumfc

LINQわからん君は頭が足りてないけど、>>562は糞コードだから真似しないように
0589デフォルトの名無しさん2016/03/04(金) 21:56:44.51ID:lr0rKXo9
>>588
そうですね、Dictionaryの型をしっかり書いてませんでした
Dictionary<string, List<string>>でなかんじの場合を想定してました
Valueに格納されたListの個数の総計を出したかったんですが
イメージは、
key => "food"
Vales => "apple", "onigiri", "melon"
key => "drink"
Values > "beer", "water"
で、求めたい合計は5個

Selectで各Listの個数を返して、それをSumするだけなんですが、
式的におかしいですか?
0590デフォルトの名無しさん2016/03/04(金) 22:37:14.82ID:KYoCsKIc
ラムダ式は3.0からなのに、まだ知らないやつがいるのか
0591デフォルトの名無しさん2016/03/04(金) 22:39:18.45ID:rKRIsZM1
ラムダ式なんて、初めて見るとなんじゃこりゃって思うのはまあ分からんでもない
でもこれでListとかArrayを簡単に触れるのを覚えて感動した
そして自分もLINQおじへの道へと両足を突っ込んだのです
0592デフォルトの名無しさん2016/03/05(土) 00:18:06.23ID:6PZHe126
拡張メソッドはどっとじゃなくて@とかでアクセスできるといいなぁ。
メインの関数がインテリセンスに埋もれてうざいと感じることがある
0593デフォルトの名無しさん2016/03/05(土) 01:09:48.92ID:OuxWCN0r
記法追加するよりはusingのスコープ狭めて欲しい
0594デフォルトの名無しさん2016/03/05(土) 07:41:07.18ID:PSQ4fRy9
まあusing staticが入った今となってはusing static System.Linq.Enumerable;でよかったな
0595デフォルトの名無しさん2016/03/05(土) 11:43:22.55ID:VZWW/8gX
>>589
まあそういうのはSelectMany()使うと楽だな

Dictionary<string, List<string>> dsls = new Dictionary<string, List<string>>() {
{ "food", new List<string> { "apple", "onigiri", "melon" } },
{ "drink", new List<string> { "beer", "water" } },
};
var sum = dsls.SelectMany(i => i.Value);
foreach (var s in sum)
Console.WriteLine(s);
Console.WriteLine(sum.Count());// ←これが答えになっている
0596デフォルトの名無しさん2016/03/05(土) 12:27:18.70ID:5rT0ZyBv
>>589
総数が欲しいだけならそれが一番シンプル
SelectManyはイテレートしたい場合に使う
0597デフォルトの名無しさん2016/03/05(土) 13:39:50.62ID:N2PZCsjA
.>596
イテレートしてるだろ?お前文句言ってばかりで肝心のコード書いてないな
0598デフォルトの名無しさん2016/03/05(土) 13:42:54.21ID:YrgdO5eg
頭に血が上りすぎてアンカーを正しく打てない!
0599デフォルトの名無しさん2016/03/05(土) 14:24:28.58ID:v6iGZw3D
>>596
こいつは人のふんどしで相撲をとることしかできない無能のバカだから仕方がない
0600デフォルトの名無しさん2016/03/05(土) 15:17:15.94ID:5rT0ZyBv
>>597
Listの個数の総計だけが目的なら、>>589の言ってるコードがシンプルになるってだけだよ

こんなコード書かなくても分かるだろ?
dsls.Select(v => v.Value.Count).Sum()
0601デフォルトの名無しさん2016/03/05(土) 15:44:30.11ID:8QHcXB10
>>600
そんな式はとっくに書いてるわヴォケ
頭から水かぶって冷やしてこい
というかお前なんかプログラム書いてみろや
俺がそれに対して批評してやるから

ああ言えばこう言うでさっぱり的を射てないなお前の話

まあお前は脳に障害があるみたいだから精神科行った方がいいな
0602デフォルトの名無しさん2016/03/05(土) 16:24:05.32ID:88xv0dA9
>>597
valueの中までイテレートする必要ないから、SelectManyは無駄でしょ。
0603デフォルトの名無しさん2016/03/05(土) 16:33:05.41ID:YvvWw4Rr
そもそもが問題を理解できる人が少なすぎて混乱したんだろうね
回答を出すより問題を理解するほうが何倍も難しいのは
このスレではよくある話だから肝に銘じて置かないとな
0604デフォルトの名無しさん2016/03/05(土) 16:42:30.76ID:EgILQXd4
>>602
ああ

>foreach (var s in sum)
>Console.WriteLine(s);

これが不要と言ってるのか
これを動作させるためにSelectMany()書いたんだよ
よく読めよ
Listの個数の総計だけが目的なら、確かにSelectMany()は冗長
しかし上のコードが動かない
質問者の意図とは別に動作確認したいことってないのか?
難癖つけて楽しいか?
0605デフォルトの名無しさん2016/03/05(土) 16:51:47.95ID:70MzmchH
>>573で解決済み
>>589が補足
>>595の出る幕はそもそもなかった
0606デフォルトの名無しさん2016/03/05(土) 16:54:50.42ID:EgILQXd4
>>605
へえー
一人しか書いたらだめなんだ
初めて聞いたんだが
そんな規約どこに書いてあんの?
0607デフォルトの名無しさん2016/03/05(土) 17:00:51.23ID:70MzmchH
なるほど、バカなんだな・・・
0608デフォルトの名無しさん2016/03/05(土) 17:01:29.73ID:88xv0dA9
>>604
質問は個数を求めるだけだからSelectManyは不要で、デバッグしたい等はSelectManyが必要。
だから、>>596って回答なんだろう。
なんで、 ID:5rT0ZyBvが噛みつかれてるのかわけわからんな。
0609デフォルトの名無しさん2016/03/05(土) 17:03:06.07ID:EgILQXd4
>>608
「シンプル」にこだわる意味がわからん
冗長でも構わんだろうが
0610デフォルトの名無しさん2016/03/05(土) 17:20:42.98ID:88xv0dA9
>>609
処理速度が変わるだろ。
データ量が多い場合は違いが効いてくる。
0611デフォルトの名無しさん2016/03/05(土) 17:23:04.38ID:NOMycko/
処理速度を考えるスレなのか?初心者スレって
0612デフォルトの名無しさん2016/03/05(土) 17:25:48.68ID:NOMycko/
こんなもん幾通りでも書き方があって、「これが正解であとは間違い」なんて言い方はおかしい
0613デフォルトの名無しさん2016/03/05(土) 17:42:09.48ID:70MzmchH
回答者の自己満足を見せられてもね・・・

こんな手法もあるよって提示する事自体はいい。
既に解決してる質問に適切とは言えない手法で答え、
少し突っ込まれたくらいで発狂なんてのは勘弁願いたい。
0614デフォルトの名無しさん2016/03/05(土) 17:46:55.15ID:NOMycko/
>>613
自己満足じゃねーだろこの程度
よほどあんたが自己満足のコード書くんだろうなとしか思わない
解決してたら書いてはいけないって決まりはあんのかって聞いてるのに答えもしないで
発狂してるのはそっちだろ
「勘弁ねがいたい」のならスレ開くな
自己責任だ
0615デフォルトの名無しさん2016/03/05(土) 17:54:51.89ID:5rT0ZyBv
やたら攻撃的だなあ
冷静に自分のレス見返してみろ
0616デフォルトの名無しさん2016/03/05(土) 18:01:32.17ID:YrgdO5eg
Hey! kitty guys!
0617デフォルトの名無しさん2016/03/05(土) 18:08:07.37ID:w6SNzJC5
個人的には、SelectManyが好き。
処理速度にこだわる時は、複数Valueを持てるDictionaryを作って、それ用のプロパティを作るかな。
0618デフォルトの名無しさん2016/03/05(土) 19:33:09.25ID:vWa81iKT
>>617
俺もそうする
0619デフォルトの名無しさん2016/03/05(土) 22:32:59.96ID:CHKrEIjZ
いくつも方法があるならどれが速いのか教えてくれよん
LINQ使って1行野郎はいいけど速度は見積もってるの大丈夫なのって毎回思うよ
0620デフォルトの名無しさん2016/03/05(土) 22:39:19.23ID:Uu64feBB
ボトルネックが1sはあるのに見やすい1msのコードと見づらい1nsで迷うとか初心者にはありがちだよね
0621デフォルトの名無しさん2016/03/05(土) 23:30:22.15ID:JkAYrDmp
それな
単体の時間測定じゃパフォーマンスの影響なんて測れねえんだわ
素人ほどストップウォッチをありがたがる
0622デフォルトの名無しさん2016/03/05(土) 23:33:14.65ID:JxEIzSMD
分かりやすい実装しておけよ。
読みづらくても早い実装にするのは本当にそこがボトルネックになってるってはっきりしてからでも遅くないから
0623デフォルトの名無しさん2016/03/06(日) 00:12:25.55ID:D4J0SD+j
ジャンルにもよりけりだが、大抵はI/Oを呼ぶ回数が少なくなるように注意を払うのが一番効果的だよな
並列処理を意識しても無駄な努力の場合が多い
0624デフォルトの名無しさん2016/03/06(日) 05:35:30.32ID:D6eFvy86
>>619
http://ideone.com/jGnq5s
10000000個のdoubleの二乗和を求めるコード
foreachだと0.2968246秒、LINQのSumで0.4129515秒

1000万個の要素でようやく0.1秒の差がつくようなレベルの差を気にする前にやることがあるんだよ
0625デフォルトの名無しさん2016/03/06(日) 07:16:36.25ID:h6QpGbpa
doubleの二乗和を一千万個なんて求めないんで
球形の牛の話じゃなく現実の話をしてくれるかアンポンタン
0626デフォルトの名無しさん2016/03/06(日) 07:23:07.38ID:h6QpGbpa
>>624
ストップウォッチをありがたがる素人の典型的な例
ストップウォッチをありがたがるのは素人って言ったのは俺じゃないから文句は俺に言うなよ
レベルは1くらいかな
素人だから
0627デフォルトの名無しさん2016/03/06(日) 07:26:55.27ID:kvyRuy3r
すいません
行き詰まったので教えて下さい。

Try&Error テクニカルブログ様のサイトを参考にさせていただいています。

string s="abc";
....
DataRow[] rows = (
from row in datatable.AsEnumerable()
let ss=row .Field<string>("col1")
....
where ss.Contains(s)
....
select row
).ToArray();

DataTableのcol1列から取得した文字列の中に"abc"が含まれている列を抽出したいのですが、
ss.Contains(s)
のところで
「オブジェクト参照がオブジェクト インスタンスに設定されていません」
となってしまいます。
何が原因か、教えて下さい。
0628デフォルトの名無しさん2016/03/06(日) 07:30:03.02ID:kvyRuy3r
すいません

DataTableのcol1列から取得した文字列の中に"abc"が含まれている「行」を抽出したいのですが、
の間違いです。
0629デフォルトの名無しさん2016/03/06(日) 09:49:36.89ID:I0qcG5Ou
それだけだと、"col1"が間違ってる。
0630デフォルトの名無しさん2016/03/06(日) 10:39:33.87ID:h6QpGbpa
let ss=row.Field<string>("col1")
ここでnull返してんだろ
カラムが存在しないとかで

素直にforeachで書いてればデバッガでステップ実行できるのに悲しいね〜(笑)
0631デフォルトの名無しさん2016/03/06(日) 10:49:22.20ID:0C5JHw3H
何かこのスレも文句ばっかり言って肝心のプログラムは書けない馬鹿が常駐してるなあ
次スレ立てるときここも強制コテハンにしようぜ
0632デフォルトの名無しさん2016/03/06(日) 11:02:27.95ID:5VYncBRy
>>631
前に別スレでコテ付きで立てようとしたけど、対応してないと言われて諦めた
0633デフォルトの名無しさん2016/03/06(日) 11:13:12.78ID:h6QpGbpa
文句を言われてるように聞こえちゃうんだ?
ちょこっと煽りを加えてるだけなんだけど…
いやあ心が狭い狭いw
ゆとりもないのにプログラムなんて書いてて大丈夫?
鏡見て胃薬のんで精神科行ってこいってw
鏡もお前のクソ面に気を使って割れちゃうか
0634デフォルトの名無しさん2016/03/06(日) 11:33:09.21ID:toJj4kqo
id変えまくる奴には効果あるんだが対応してないのか…
0635デフォルトの名無しさん2016/03/06(日) 11:49:15.33ID:0C5JHw3H
>>632>>634
USE_VIQ2=2になってるから今は立てられるよ
宿題スレのところで揉めて運営が動いてくれた
詳しくは自治スレを見ればいいよ

>>623
お前本当にかわいそうなやっちゃな
全部自分のことを言ってるのに気が付かないのか
0636デフォルトの名無しさん2016/03/06(日) 12:31:56.53ID:5VYncBRy
今Win7〜10で動くGUIアプリ作るとしたら、やっぱりWPFなのかね
今までWinフォーム使ってたけど、今のうちにXAMベースで作っておかないとフォーム切り捨てられた時に面倒になりそうで怖い
0637デフォルトの名無しさん2016/03/06(日) 12:40:03.08ID:euq/4jEg
>>636
俺もWinフォームでやってたけどこれからはWPFでやる予定

Winフォームが切り捨てられることはないと思うけど、WPFのほうが色々できるようだし
WPFのほうがMVCに適ってて綺麗に書けそうだし
0638デフォルトの名無しさん2016/03/06(日) 12:45:07.05ID:6mlMZ32H
>>636
WPF/XAMLの方がGUIは作りやすいね。罠に嵌りやすくもあるけど。
俺はWPFで作ることの方が多くなってしまったけど、
Formsがなくなる事はないだろうし、簡単なGUIならFormsで作ったりもするよ。
0639デフォルトの名無しさん2016/03/06(日) 12:49:50.40ID:af8Foilz
>>635
え?I/Oがボトルネックになるのが多いってのはおかしいのか?
0640デフォルトの名無しさん2016/03/06(日) 13:01:39.07ID:TZA1U5AB
>>636
Electronだよ
他でもないMS自身が先導して使ってるんだから
0641デフォルトの名無しさん2016/03/06(日) 13:12:51.14ID:/MmulfWY
>>639
悪い悪い
×>>623
○>>633
でした
0642デフォルトの名無しさん2016/03/06(日) 13:18:35.56ID:af8Foilz
>>641
たしかに彼は病んでいるな
でも患者に触ると病気が感染るからお薦めできません
0643デフォルトの名無しさん2016/03/06(日) 13:34:48.37ID:/MmulfWY
そうだね
IDでID:h6QpGbpaは透明あぼーんしときましたから
番号が飛んでいたらこのキチガイが書き込んだということになりますね
早く強制コテハンにならないかなあ
そうすればコテハンであぼーんできるし
0644デフォルトの名無しさん2016/03/06(日) 13:44:06.24ID:kvyRuy3r
>>627です。
let ss=row.Field<string>("col1")
で、ssには文字列が格納されています。
なぜなら、
where ss==s
とすれば、完全一致する行が抽出されていますので。
あいまい検索したくて、ss.Contains(s)とすると例外となってしまいます。
0645デフォルトの名無しさん2016/03/06(日) 13:47:39.84ID:mU8G/zxt
Formsはなんだかんだ残るだろ
VB6 Formsの借金すらまだ完済できてないMSが.Net Formsからも解放されるとは思えん
0646デフォルトの名無しさん2016/03/06(日) 13:58:10.25ID:2GCr7edP
>>643
アチャー残念ですねw
0647デフォルトの名無しさん2016/03/06(日) 13:59:01.46ID:xy0JoqKw
>>643
今時そんなもの厨房ですらどうとでもできますからね
0648デフォルトの名無しさん2016/03/06(日) 13:59:42.03ID:JI6WB6UF
>>643
じゃあ今日のレスはここから毎回ID変える方針で行きましょうか
0649デフォルトの名無しさん2016/03/06(日) 14:00:45.49ID:JI6WB6UF
>>643
せっかくレスアンカーの推敲すらできないくらい煽ってあげたのに
このまま終わらせるのも惜しいですからね
0650デフォルトの名無しさん2016/03/06(日) 14:01:16.33ID:h6QpGbpa
たまには元に戻る
0651デフォルトの名無しさん2016/03/06(日) 14:08:34.97ID:f/OSkR6R
>>644
それなら省略したどこかが悪い。
0652デフォルトの名無しさん2016/03/06(日) 14:12:18.74ID:6EHt/C22
>>644
埒が開かないからその抽出してるコードを全部ideone等に貼るか、
もしくは一人で静かに悩んでてよ。
俺らにいつまで当てずっぽうゲームを強いるんだ?君は。
0653デフォルトの名無しさん2016/03/06(日) 15:26:02.15ID:f/OSkR6R
VS2015ならLINQの途中でブレークポイント張れるみたい。
let b = Console.WriteLine(....) is object
の反則技を使う手もある。

他にも調査方法はあるが。
0654デフォルトの名無しさん2016/03/06(日) 15:35:10.30ID:FvRMQKmr
VisualStudioでコード内を検索するときにFormのDesinger.csまでひっかかって
非常に邪魔くさいんだけど、除外して検索することで可能ですか?
もしくは拡張機能でできるのがあったりしますかね
0655デフォルトの名無しさん2016/03/06(日) 16:10:04.44ID:obTJIxSY
>>635
バカ発見
0656デフォルトの名無しさん2016/03/06(日) 16:37:32.73ID:tTnKJmeM
自分だけは馬鹿じゃないという前提
0657デフォルトの名無しさん2016/03/06(日) 19:42:35.62ID:zmZ2DI33
ASP.NET MVC のコントローラに以下のような障害を拾う処理を書いて
0除算させたのですが、ExceptionFunc関数に処理が進みません

コンソールアプリ用の書き方を流用してみたので、
上手く行かないのだろうと思うのですが、ASPではどう書けば良いでしょうか?

static void ExceptionFunc
(object sender, UnhandledExceptionEventArgs e)
{
Environment.Exit(-1);
}

public ActionResult Index()
{
AppDomain.CurrentDomain.UnhandledException +=
new UnhandledExceptionEventHandler(ExceptionFunc);

int a = 0;
int b = 0;
int c = a / b;

return View();
}
0658デフォルトの名無しさん2016/03/06(日) 19:51:12.96ID:f/OSkR6R
>>657
>>652の気持ちがよくわかる。
0659デフォルトの名無しさん2016/03/06(日) 20:06:46.59ID:toJj4kqo
>>657
ASP.NET MVC でエラー処理したい場合は UnhandledException 使わないと思う
06606572016/03/06(日) 20:55:04.23ID:zmZ2DI33
try-catchで、メソッドのコードを全て囲むのはダメだと聞くのですが、
ASP.NET でどのように書くのか、調べても出てこず困っております

初心者質問で申し訳ありませんが、
ご存知でしたらお教え頂きたく

よろしくお願いします
0661デフォルトの名無しさん2016/03/06(日) 22:06:55.78ID:sE3CURpb
>>660
asp.net 例外、でググればいくらでも出てくるだろ
06626572016/03/06(日) 22:36:25.29ID:zmZ2DI33
いろいろググって、ここ様の情報を参考に実装したいと思います
http://normalian.hatenablog.com/entry/20090526/1243313938

ただ、ASP.NETの情報はあまり多いとは思えませんでした

JAVAやPHP等にくらべてマイナーなんだなと
思い知らされました

やっぱりWEBやるならJAVA、PHP、Ruby辺りかなって
落ち込みます

LINQとか便利だと思うのに残念です
0663デフォルトの名無しさん2016/03/06(日) 22:53:12.17ID:sE3CURpb
>>662
そうか?そこそこ情報あるだろ。MSDNとか読んでる?
Javaも悪くないけど、フレームワーク、テンプレートエンジン、ORMをどれにするかとか、apサーバ選んだりとか面倒くさいよ
0664デフォルトの名無しさん2016/03/07(月) 00:06:44.43ID:e4ckG9cS
ネット検索で調べるなんて非効率で時代遅れ
今時は質問・回答サービスの時代だよ
0665デフォルトの名無しさん2016/03/07(月) 00:08:33.56ID:JYqyxWzN
>try-catchで、メソッドのコードを全て囲むのはダメだと聞く

そういうことを言う人が、なぜ駄目と言っているのか、理由を考えたことはありますか?
理由が分かっているなら、try-catchを書いても大丈夫だと分かるはず
聞いてるだけじゃ、駄目ですよ
0666デフォルトの名無しさん2016/03/07(月) 00:15:38.99ID:vnIXC/6Y
>>665
ASP.NETでそれやったらエラーハンドラーに飛ばなくなるからダメだろ。
0667デフォルトの名無しさん2016/03/07(月) 00:27:23.33ID:JYqyxWzN
個人ではデプロイ環境を用意するのが面倒(Azureが出て大分マシにはなった)なのと
主に商用システムに使われているため開発事例が表に出てこないの二重苦なので
コピペできないと困るなら他言語を選ぶべきだろう
0668デフォルトの名無しさん2016/03/07(月) 00:34:25.29ID:JYqyxWzN
あと、 情報!発信!ウェーイ!みたいな意識高い系は.NET界隈にはいない
MVP連中は多少頑張っているが、
彼らは目新しくもないASPよりCoreに言及するので忙しい感じ
0669デフォルトの名無しさん2016/03/07(月) 07:58:44.82ID:9VftUWJr
ASP.NET MVC 例外
このキーワードでいくらでも出てくるやんけ。
0670デフォルトの名無しさん2016/03/07(月) 09:36:07.90ID:Ha68PnBT
static class を多用すると何か問題ありますか?
0671デフォルトの名無しさん2016/03/07(月) 11:00:10.21ID:YVlm44HB
そのオブジェクトがメモリにずっと居続けるだけ。
「問題」のレベルがわからんが、言語仕様上は問題ない
0672デフォルトの名無しさん2016/03/07(月) 11:38:50.93ID:xqALO0OR
ガベージコレクションですね
0673デフォルトの名無しさん2016/03/07(月) 11:54:38.98ID:Ha68PnBT
>>671
ありがとうございました。納得しました。
0674デフォルトの名無しさん2016/03/07(月) 20:14:13.36ID:GZWOg05x
ちょっとしたシステムでいくつかのデータベースのテーブルを初期化するフォームで
初期化するメソッドと並列でBeginInvokeを使って処理中のダイアログを表示させてるんですが、
ダイアログの表示やプログレスバーの値を変えるにはどーしたらいいんでしょう?

一応、BeginInvokeでテーブル削除のメソッド呼び出し→待機用のダイアログボックス表示
→EndInvokeでcallbackから処理の成否を受け取って処理ログ用の同フォームに配置した
テキストボックスに処理結果を表示→別のテーブルの処理開始・・・(この間はダイアログを表示しっぱなし)
→テーブルの削除が完了したらダイアログを閉じて終了
という流れは動作できました
処理ログ用のテキストボックスは同じフォーム内なのでTextBox.Textに入れてやればいいのですが、
開いているダイアログの表示ラベルにはどーアクセスしたらいいんでしょうか
0675デフォルトの名無しさん2016/03/07(月) 20:22:57.13ID:GZWOg05x
すみません・・・
TextBox.Controls["controlName"].Textでアクセスできました
0676デフォルトの名無しさん2016/03/07(月) 21:22:55.34ID:yBUt6s65
質問させていただきます。
http://ideone.com/ErwSfM に記述したコードで
WindowクラスのOpenメソッドからTitleBarクラスのAddメソッドを呼び出したいのですが、
AppSystem.Draw.Window mw = new AppSystem.Draw.Window();と記述したところ
StackOverflowExceptionといったエラーが出てしまいました。どうやらTitleBarクラスが
Windowクラスの派生クラスであることに問題があるようです。
出来ればクラスの継承の関係を崩さずにWindowクラスのOpenメソッドからTitleBarクラスの
Addメソッドを呼び出す方法があると思うのですが、知識不足でやり方がわかりません。
勉強中で詳しいことは分からないのですが、解決策などございましたらご教示ください。
0677デフォルトの名無しさん2016/03/07(月) 22:18:01.18ID:RvmFqMEu
やっぱり継承の関係を見直すのが一番だと思うけど
(そもそも継承が必要なのかというところから)
0678デフォルトの名無しさん2016/03/07(月) 22:22:42.90ID:WUleoGW9
29行目の
public abstract class Controlls : Window
がWindowクラスを継承してるからじゃないの?
基底クラスのコンストラクタがループしてるんで、
tbが無限生成されてスタック溢れを起こしてそう。

あんまりまじめに見てないが斜め読みしたところそんな気がした。
0679デフォルトの名無しさん2016/03/07(月) 22:28:45.02ID:WUleoGW9
21行目の処理をOpen()メソッドの中でやれば動きそう
0680デフォルトの名無しさん2016/03/07(月) 23:37:01.22ID:yBUt6s65
>>677-669
迅速な返答ありがとうございます。
無事、679さんの方法の通り、
Openメソッドの中でTitleBarのインスタンスを作成することでエラーなく動きました。

可能であれば、何故21行目の処理をOpenメソッド内で行うことで
動くようになるのかについても教えていただけないでしょうか。
0681デフォルトの名無しさん2016/03/07(月) 23:45:37.22ID:RvmFqMEu
Window のインスタンスを作るコンストラクタで TitleBar のインスタンスを作ろうとしているけど、
TitleBar のインスタンスを作るとき、継承元の Window のコンストラクタが呼ばれる
↓
ループ
0682デフォルトの名無しさん2016/03/07(月) 23:55:31.16ID:sWoSwL8B
>>680
StackOverflowExceptionが示すように>>678の通り無限ループしている
というのもC#では基本クラスの既定コンストラクタが暗黙的に呼ばれる
これを抑制する方法もなくはないが、それは普通のやり方ではなさそう

対応策としてはコンストラクタのオーバーロードを作りbaseで明示するとか
当該コードを切り離すとか(>>679)、thisから型を判別するとか
遣りようは有るだろうけど、>>677の言うように設計を見直した方が…?
0683デフォルトの名無しさん2016/03/08(火) 00:22:53.32ID:RvcgzD1Q
>>668
MVPってあれ誰が選ぶの?
ろくなやついなくね
0684デフォルトの名無しさん2016/03/08(火) 00:35:14.23ID:zqUtNwre
>>681-682
有難うございます。おかげさまで理解できました。
構造面も含めもう一度検討してみます。
0685デフォルトの名無しさん2016/03/08(火) 12:55:07.46ID:cVnif4vD
>>683
つまり俺をMVPにしろとのアピールですね?
0686デフォルトの名無しさん2016/03/08(火) 13:47:54.06ID:q0RT02Oy
ろくでもないやつのなかまいり
0687デフォルトの名無しさん2016/03/08(火) 13:50:38.69ID:q0RT02Oy
>>683
https://www.microsoft.com/ja-jp/communities/mvp/selfregistration.aspx
こちらから御応募ください
0688デフォルトの名無しさん2016/03/08(火) 13:51:38.54ID:Sa5Xf65y
>>685
そう
お前の性格がろくでもないからMVPになれって話
0689デフォルトの名無しさん2016/03/08(火) 14:15:10.34ID:pNEVkfft
性格がどうであろうと情報発信して普及に貢献するユーザーがMVPだよ
性格がどうであろうと2chに書き込んでる奴がアレなのと一緒
0690デフォルトの名無しさん2016/03/08(火) 14:48:02.95ID:9VaxmRzZ
>>689
性格が悪いとまず普及に貢献できない
嫌われるからな
0691デフォルトの名無しさん2016/03/08(火) 14:57:39.58ID:q1Bv1hCM
多少オラついてるくらいでないと発信なんてできないよ。
マイルドヤンキーとモヒカン族の親和性は前から言われてることでしょ。
0692デフォルトの名無しさん2016/03/08(火) 17:46:12.71ID:FLPZmVOW
>>685-687
ほんとまじでMVP()だから
0693デフォルトの名無しさん2016/03/08(火) 18:17:58.01ID:FSh6Jh2M
このスレもMVPぐらい情報発信してんじゃないの?
カスばっかでそりゃねぇか
0694デフォルトの名無しさん2016/03/08(火) 18:27:49.51ID:Xy8HbLKy
>>693
有用な書き込みもあるが、いかんせんノイズが多すぎる。
0695デフォルトの名無しさん2016/03/08(火) 19:18:11.87ID:e0xwcNXs
private void button1_Click(object sender, EventArgs e)
{
try
{
FileStream fs = new FileStream("存在しないファイル.txt", FileMode.Open, FileAccess.Read);
MessageBox.Show("処理");
}
catch
{
}
}

private void button2_Click(object sender, EventArgs e)
{
using (FileStream fs = new FileStream("存在しないファイル.txt", FileMode.Open, FileAccess.Read))
{
MessageBox.Show("処理");
}
}

usingステートメントの解説を読んで試したのですが
button2のほうだと「ハンドルされませんでした」になってしまいます
どなたか解説をしてもらえると助かります
0696デフォルトの名無しさん2016/03/08(火) 19:33:46.06ID:J4QOlwcI
>>694
砂の中から宝石を探すのも大切だろ
0697デフォルトの名無しさん2016/03/08(火) 19:34:49.26ID:zzppE3GC
button1は例外を潰しているけれど
button2は例外を潰していない
usingは別に例外潰さないからね
0698デフォルトの名無しさん2016/03/08(火) 22:39:37.82ID:PrT3Ua1r
お兄ちゃん…Try〜catchは例外を隠すためにあるんじゃないんだよ?そして、そんなコード書いているとコード読んだ人にお兄ちゃんの都合の悪いことを隠す性格がばれちゃうよ?
0699デフォルトの名無しさん2016/03/08(火) 22:49:34.76ID:q+fOdqeW
>>695
using文はブロック内で例外が起きた場合も含め、ブロックを抜ける際に必ずfs.Dispose()が呼ばれるようにする役割。
例外を処理するわけじゃないよ。
07006952016/03/08(火) 23:45:02.02ID:e0xwcNXs
>>697,699
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/027dispose/dispose.html
↑こことかを読んでusingステートメントはtry〜catchの単なる書き換えと捉えてましたが
全く別の制御なのことに気付かされました
ありがとうございました

>>698
usingステートメントとtry〜catchの挙動の違いをテストしたことを端的に表したのですが
以後は全コードを載せるように気を付けます
0701デフォルトの名無しさん2016/03/09(水) 00:01:14.46ID:GzCBlRLT
>>700
そのリンクはtry-catchじゃなくてtry-finallyだから
0702デフォルトの名無しさん2016/03/09(水) 03:01:17.90ID:6uZQGjqP
http://hayabusa6.2ch.net/test/read.cgi/pc2nanmin/1439353617/216
        ↑  ↑  ↑  ↑  ↑ 
0703デフォルトの名無しさん2016/03/10(木) 00:41:51.08ID:d0z7G1z8
Threadクラスを使って非同期処理を行っているんですが、
非同期処理中に終了要求された場合どう処理していいのかわからないのです
bool型変数AbortRequestがtrueの場合終了するようにしているんですが
終了処理に結構時間がかかります

関数Aはループ処理で終了要求が出ている場合、ループが一周しだい終了させられるんですが
関数Aから呼ばれる関数は処理が終了しないと終了できません
終了しても問題ないところでif(!AbortRequest) returnと書いて終了処理するしかないんでしょうか?
他にいい方法ってないんでしょうか?
0704デフォルトの名無しさん2016/03/10(木) 02:09:55.96ID:gpbcq4MQ
thread.IsBackground = true;
でバックグラウンドで動かして放置でいいんじゃないか?
0705デフォルトの名無しさん2016/03/10(木) 02:11:56.23ID:gpbcq4MQ
もちろん資源類はusingで囲ってあることが前提ね
0706デフォルトの名無しさん2016/03/10(木) 02:46:18.54ID:/xjSEmXE
>>703
フレームワークとしてはCancellationTokenを使う。
CancellationTokenSourceで生成したCancellationTokenを非同期処理に渡して、
終了しても問題ないところでcancellationToken.ThrowIfCancellationRequested()を実行してキャンセル例外を発生させるか、
cancellationToken.IsCancellationRequestedをチェックして終了する(>>703と同じ)。
後、キャンセルした時に登録したデリゲートを実行するCancellationToken.Register()ってのもあるね。

Cancellation in Managed Threads
https://msdn.microsoft.com/ja-jp/library/dd997364.aspx
0707デフォルトの名無しさん2016/03/10(木) 03:18:09.52ID:6K4R3xGy
既存のWebページをそのまま画面にしたような感じのアプリを作りたいと思ってます
そこで普通のクライアントアプリのGUIをHTMLベースで作って紐付けしたいんですが
そういうのってあります?
0708デフォルトの名無しさん2016/03/10(木) 06:50:37.20ID:vAlfHTfo
残念ですがありませんね
0709デフォルトの名無しさん2016/03/10(木) 06:51:52.70ID:1xnVZ4wK
>>707
Electronが流行り
0710デフォルトの名無しさん2016/03/10(木) 07:33:20.99ID:6K4R3xGy
>>709
まさにElectronみたいなイメージです。
今のところC#と組み合わせるような環境はなさそうですね。
教えていただきありがとうございました。
0711デフォルトの名無しさん2016/03/10(木) 08:36:22.38ID:1xnVZ4wK
>>710
electron-edge
0712デフォルトの名無しさん2016/03/10(木) 09:34:42.54ID:6K4R3xGy
>>711
おおーっと!あるんですねー。
;NET4.5以降が必要っぽいので後で試して見ます。
あるがとうございました。
0713デフォルトの名無しさん2016/03/10(木) 10:52:13.10ID:LKH4/mm6
ずっとコツコツ書いてきたフォームアプリができて、いざ配布形式にしようと思ったんだけど、
VisualStudio2015Communityには新しいプロジェクトのところに「セットアップと配置」ってのが
見当たらないんだけど、無料版にはこれが使えないってこと?
VisualStudio2013Proはもっているんだけど、こっちで作るしかないのか、Framework4.61のものを
2013でインストーラーだけ作れることはできるのか、どーなんでしょう
0714デフォルトの名無しさん2016/03/10(木) 10:58:34.16ID:kwXEw2iV
>>713
http://toktakaomi.hatenablog.com/entry/2015/01/20/013330
そもそも初期インストールされてる機能じゃないんじゃないの?
0715デフォルトの名無しさん2016/03/10(木) 11:16:28.09ID:9FrAKjBB
これは使えないだろうか

Microsoft Visual Studio 2015 Installer Projects
https://visualstudiogallery.msdn.microsoft.com/f1cc3f3e-c300-40a7-8797-c509fb8933b9
0716デフォルトの名無しさん2016/03/10(木) 19:25:13.89ID:GUbv7vTH
ここのサイトを参考にグラフを作りました

[C#]Chartコントロールを使用して、タスクマネージャー風のグラフを作成する
http://nanoappli.com/blog/archives/2584

それで稼働してるタイマー使ってその処理の中に画像を保存するコードを書いて
プログラムが走ってる間に連番でファイルを取得したいんだけど何かいい方法ありますか?
0717デフォルトの名無しさん2016/03/11(金) 00:18:27.87ID:kiFsoFS4
>>716
モニタの前にスマホ設置して、ヌコにシャッター押させる。
0718デフォルトの名無しさん2016/03/11(金) 06:46:22.91ID:b0qnvURD
>>717
猫アレルギーなんでそれは無理ですねー
もっと現実的な回答お願いします。
0719デフォルトの名無しさん2016/03/11(金) 07:33:13.98ID:W3egB9n/
>>716
https://msdn.microsoft.com/en-us/library/dd456181(v=vs.110).aspx
0720デフォルトの名無しさん2016/03/11(金) 08:35:04.66ID:xY+PvxE+
つ犬


まあググると速攻で見つかったよ
http://dobon.net/vb/dotnet/graphics/invokepaint.html
07217032016/03/11(金) 21:59:19.30ID:aROvDbV4
>>706
レス遅れてすいません
一度それで試してみます!
0722デフォルトの名無しさん2016/03/11(金) 23:32:52.05ID:b0qnvURD
>>720
いやググっても分からんのですよ。
Cなら簡単に書けるんだけど、なんでフォルダ指定してないのに画像が連番で保存されるのかが理解を超えてる。
0723デフォルトの名無しさん2016/03/11(金) 23:34:24.41ID:RA7SR1be
OSの機能じゃねぇの
0724デフォルトの名無しさん2016/03/11(金) 23:44:37.13ID:ShS7UgLD
そもそも話が通じてない感がある
0725デフォルトの名無しさん2016/03/12(土) 00:22:33.97ID:+59d9MQk
俺は「プログラムが走ってる間に連番でファイルを取得したい」の意味がわからないんだけどみんなはわかってるの?
0726デフォルトの名無しさん2016/03/12(土) 00:47:31.00ID:YrRAz0CD
連番で画像・・・つまり動画を録画したいんじゃないかとエスパー
0727デフォルトの名無しさん2016/03/12(土) 01:28:19.22ID:mrUAeUBh
取得だからどこかからダウンロードしたりして
0728デフォルトの名無しさん2016/03/12(土) 01:32:02.26ID:OGyV43CU
727 じゃないかな〜。
でもその処理のなにが分からないのか分からないから答えようがないね。
プログラムを全部作ってってんならスレ違いだしな。
0729デフォルトの名無しさん2016/03/12(土) 02:10:58.55ID:figcYQ1/
チャートの画像を保存するんだって
今は
private void timer1_Tick(object sender, EventArgs e)
{
chart1.SaveImage( @"c:\picture\file1.bmp", ChartImageFormat.bmp );
}
てな感じで保存してたがこれだとtimer関数が呼ばれるたびに最新のbmpに更新されちゃうじゃん?
そうじゃなくてfile1.bmp→file2.bmpってファイル名を変更しながら、かつ連番で保存したいのよ。
0730デフォルトの名無しさん2016/03/12(土) 02:17:59.88ID:Cxzh8R46
チャートがどうとかは結局関係なくて、
呼ばれるたびに新しい連番でファイル名をくれる関数を作りたいと、そういうことかな?
作れよ
0731デフォルトの名無しさん2016/03/12(土) 02:23:52.14ID:Pg5y5cFJ
カウンター変数作って、ファイル名生成する度にインクリメントするだけじゃん。
0732デフォルトの名無しさん2016/03/12(土) 02:27:40.97ID:figcYQ1/
>>731
その変数を引数にもってこれる関数探してたのよ
>>730
全くその通りだね作りゃいいんだよ
0733デフォルトの名無しさん2016/03/12(土) 02:47:05.39ID:SXvAjTgT
良かった、悩んでる子なんていなかったんだ
0734デフォルトの名無しさん2016/03/12(土) 03:36:38.08ID:L1DCwZtH
その程度の処理を、C#だからって書けないとか
>Cなら簡単に書けるんだけど
に何の信頼度もないなw
0735デフォルトの名無しさん2016/03/12(土) 04:32:33.74ID:W/VzQjI7
>>732
>その変数を引数にもってこれる関数探してたのよ
その関数は何のために必要なの?探すってどういうこと?
0736デフォルトの名無しさん2016/03/12(土) 07:10:50.65ID:jqvJyp7d
連番管理してファイル名に使用することなんかCでもC#でもかわらんでしょうに
0737デフォルトの名無しさん2016/03/12(土) 08:49:10.57ID:YrRAz0CD
つまりC#でのCのsprintf書式出力相当のやり方を知りたいってか
@"〜"とかは知ってるのに変な感じ
0738デフォルトの名無しさん2016/03/12(土) 10:52:18.89ID:mrUAeUBh
解決したみたいだからもうどうでもいいんだが
>>722の「なんで」以降が今でも意味が分からない
フォルダ指定したらファイル名に連番振られると思っているのか
既に連番で保存される状態だったのか
勝手に連番で保存される仕組みを教えて欲しいという質問だったのか

まぁいいやもう
0739デフォルトの名無しさん2016/03/12(土) 11:00:18.47ID:ScDPE6hi
誰もが画像を取り込むところの問題だと思っていたのに、このスレの闇は深い・・・
0740デフォルトの名無しさん2016/03/12(土) 11:06:01.38ID:+KV61A6e
まあ正直そもそもグラフ描いて保存してを自動でやりたいならPythonでmatplotlib使った方が遥かに楽
0741デフォルトの名無しさん2016/03/12(土) 11:51:27.65ID:BF07kdiS
>>729
ファイル名にインクリメントするだけやん
07427242016/03/12(土) 12:53:01.61ID:lGqei3yA
やっぱりか
0743デフォルトの名無しさん2016/03/12(土) 14:44:52.57ID:VuT0YpOP
みんなグラフは無料で簡単で綺麗なgnuplotで描いちゃうよね
0744デフォルトの名無しさん2016/03/12(土) 17:47:43.68ID:BuD8qKm4
.NETフレームワークにグラフ機能ありますが。
使いづらいけどね。
0745デフォルトの名無しさん2016/03/12(土) 20:46:30.44ID:Ha4s5Z7n
>>715
御礼が遅くなりました
なんとか作れそうです

にしてもProとComminityの違いでセットアップの機能差があるみたいで
あんまり話題にでないのは、そもそも個人はインストーラにしない
もしくはここにいる人たちの多くがMSDNの契約してるんでしょうかね
個人でMSDNは高すぎる・・・
0746デフォルトの名無しさん2016/03/12(土) 20:53:51.75ID:D+ovHJjX
んなこたない
0747デフォルトの名無しさん2016/03/12(土) 20:55:49.99ID:Ha4s5Z7n
続けてですみません

インストーラ作成してて、いくつか定義ファイルやらログファイルを配置してるんですが、
アプリケーションフォルダ(=ProgramFiles)以下に配置すると
UACの影響で書き込み禁止になるようですが、どの辺に配置するのが一般的なんでしょう
特別なフォルダとカスタム フォルダの一覧みてると
ユーザのアプリケーションデータフォルダあたりがいいのかなと思うのですが
0748デフォルトの名無しさん2016/03/13(日) 08:47:52.37ID:NR2eE4nD
スレ違いは去れ
0749デフォルトの名無しさん2016/03/13(日) 14:05:35.76ID:NL2J4iJ7
>>747
C# ユーザーデータ なんかで検索してみるといいかもしれません
0750デフォルトの名無しさん2016/03/14(月) 13:13:02.75ID:/YJBtazu
既存のTCPサーバーに対してクライアントを自作しようと思い立ったのですが、
非同期で受信するにあたりTAP用のメソッドがNetworkStream.ReadAsyncくらいで
Socket.BeginReceive/EndReceiveをFromAsyncにしろ、そも必要量まで繰り返す必要がありますよね?

接続を省いていますが、進捗を記録しながらawaitするTaskはこんな感じで良いんでしょうか
ttp://rextester.com/AFEC18625

またSecurityTransparent下で再現するためReflectionで見苦しいですが
バッファコピー嫌いをこじらせて構造体をbyte[]に偽装する方法を
ttps://msdn.microsoft.com/ja-jp/magazine/ee216336.aspx#07
を参考に併記してみました…実用としては論外ですが、
ttp://www.shoeisha.co.jp/book/detail/9784798131795
こういった情報媒体は他にありますでしょうか
0751デフォルトの名無しさん2016/03/15(火) 15:13:14.23ID:KvsR8/Gz
下記のコードの様に重たい処理をしている間、他のボタンも押せるようにしてるのですが
他のボタンを押すときに1回では反応しなくて、2回目でようやく動くようになっています。
これを1回で動かせるにはどうしたらいいのですか?
ちなみに、1回目を押した時は最初に押したボタンがなぜか動いてしまいます。

while (true)
{
System.Threading.Thread.Sleep(1000); // 何か重たい処理をしている
System.Windows.Forms.Application.DoEvents();
}
0752デフォルトの名無しさん2016/03/15(火) 15:32:01.11ID:+DfKA9FJ
>>751
そもそもUIスレッドで重い処理をやってはいけない
Taskを使いましょう
0753デフォルトの名無しさん2016/03/15(火) 16:20:23.98ID:3u8EBx5i
DoEvents久しぶりに見たな
07547512016/03/15(火) 18:49:58.88ID:KvsR8/Gz
マルチスレッドにするとUIの操作がやりにくくなるので、DoEventsを採用したのですが、
マルチスレッドの中からUIを操作するのに何かいい方法とかありますか?
0755デフォルトの名無しさん2016/03/15(火) 18:53:51.98ID:3u8EBx5i
とりあえずBeginInvoke使っとけよ
0756デフォルトの名無しさん2016/03/15(火) 19:18:52.54ID:x8ac31Po
いやいやいや
その関数にasyncつけて

await Task.Run( () => {
while (true) {
Thread.Sleep( 1000 ); // 重たい処理
}
} );
するだけだぞ
マルチスレッドとも違う
0757デフォルトの名無しさん2016/03/15(火) 19:24:38.25ID:oaSHh/yi
>>756
>マルチスレッドとも違う
じゃあ何よ?
0758デフォルトの名無しさん2016/03/15(火) 19:27:11.81ID:fKrfRSAb
それは751やりたいことに即してない気がする
かなりの信頼度で
0759デフォルトの名無しさん2016/03/15(火) 19:27:21.17ID:x8ac31Po
だからタスク
名称の話ね
0760デフォルトの名無しさん2016/03/15(火) 20:12:07.92ID:vo+Hs1Nz
マルチスレッドがやりにくいじゃなくて別スレッドからのUI操作がやりにくいって言ってんだぞ
0761デフォルトの名無しさん2016/03/15(火) 20:20:20.51ID:c86ep1iy
タスクの実体ってスレッドプールだから※、マルチスレッドそのものだけどな。(※LongRunningオプションの場合を除く)
まぁ、素のスレッド(Threadクラス)とは違うって言いたいんだろうけど。
0762デフォルトの名無しさん2016/03/15(火) 20:20:49.49ID:gaRdEdMo
人の話を聞くときいつも話半分なんだろう
0763デフォルトの名無しさん2016/03/15(火) 20:51:26.77ID:NmzGpKQh
DoEventsって非推奨とか言われてなかったっけ

>>754
UI 触る際は、全部 Control.Invoke すればいい
0764デフォルトの名無しさん2016/03/15(火) 21:25:02.02ID:Ws7H0HSi
今なら何も考えずにtask使えw
0765デフォルトの名無しさん2016/03/15(火) 21:32:27.57ID:8gRlWETe
プリプロセッサについて質問です
VC# 2010を使っています
debug状態の場合、フォームにデバッグと表示させたいんですが
リリースビルドでもdebugと表示されます
デバッグタブのソリューションをビルドってところを押して作ってるんですがどうもうまくいきません
以下のように書いてあるんですがどこがおかしいんでしょうか?

#if DEBUG
this.Text = "Hoge" + " " + dt.ToString("yyMMdd") + " debug";
#else
this.Text = "Hoge" + " " + dt.ToString("yyMMdd");
#endif
0766デフォルトの名無しさん2016/03/15(火) 22:04:48.76ID:MeMJMMXV
>>765
手元に2010はないので憶測で申し訳ないがリリースビルドできてないのでは?

>デバッグタブのソリューションをビルド
ってあることから推測すると、これ Expressエディション初期設定のままで
「ビルド」タブがないんじゃないだろうか。

"VC#2010 Express" + "リリースビルド" もしくは "ビルド構成"
でググればでてくるよ。
0767デフォルトの名無しさん2016/03/16(水) 00:23:56.26ID:xtohJGyv
>>766
上級者設定するとビルドタブが出てきました
ソリューションのビルド、ソリューションのリビルドとあるんですが
どちらで試してもダメでした
このやり方でも最初のやり方でもReleaseフォルダのほうに実行ファイルは作成されるんですが・・・
どこが間違ってるんでしょうか・・・
0768デフォルトの名無しさん2016/03/16(水) 00:53:27.02ID:NQIFMv0E
>>767
プロジェクトプロパティ ビルド の
Releaseの時にもDEBUG定数の定義にチェックしちゃってるとか?
0769デフォルトの名無しさん2016/03/16(水) 17:29:43.17ID:xtohJGyv
>>768
ドンピシャでした
これチェック入れる意味ってあるんですか?
0770デフォルトの名無しさん2016/03/16(水) 19:21:39.15ID:IfupV2OL
>>769
プロジェクトを作成した段階では、Releaseビルド:DEBUG定数のチェックあり、Debugビルド:DEBUG定数のチェック無し、だったはず。
知らないうちにチェックしちゃったんだろう。
0771デフォルトの名無しさん2016/03/16(水) 22:16:44.18ID:UTAfeHjA
フォームアプリとデータベース連携で帳票システム作っていて、
画面遷移毎に関連のテーブルを読み込んでいるんだけど、
(画面オープン前にテーブル読込、閉じるときにテーブル保存)
SSHでサーバにつないでいるせいか、どうも画面オープンクローズがもっさり、
場合によっては一瞬固まったようになるんだけど、何かいい方法はないですかね

1.接続元のIP制限でSSH限定にしているのをやめて、普通にデータベースにつなぐ
2.ソフト起動時に全部のデータテーブル(30テーブルくらい)を読み込んでメモリにおいて処理させる
3.画面遷移毎に待機ウィンドウ(読み込み中とか接続中とか)を表示させてお茶を濁す
4.他になんかいい方法

ちなみに件数は1000人程度の規模です
0772デフォルトの名無しさん2016/03/16(水) 23:00:29.27ID:9JZqYKnk
>>771
データ量か接続方式か画面表示かのどれがネックになっているのか明確にしてから対処した方がいいんじゃね
0773デフォルトの名無しさん2016/03/17(木) 00:39:50.83ID:DH11HTt+
正解はデータの性質や同期ポリシーに依存するね
変化が激しいか滅多に変化しないか全く変化しないのか
データのリアルタイム性は重要か否か
更新同期の遅延はどれぐらいまで許されるか
0774デフォルトの名無しさん2016/03/17(木) 04:32:40.34ID:lAT8nDZs
>>771
サーバへのアクセスは全部非同期にする。
0775デフォルトの名無しさん2016/03/17(木) 07:01:55.08ID:6lnObOb9
>>772
デバックで明らかにSSH接続でもたついてるのは確認しております
ローカルでテストしてたときは全く問題もなかったので気づきませんでした

>>773 >>774
ありがとうございます 勉強になります
規模が小さく、クライアントの制限はいくらでも検討できるので、非同期がよさそうですね
データが大きく(サーバデータを復号化してる)時間がかかるものは既に待機ウィンドウをだして
割り切っているので、それ以外のもったりしている部分は時間も短いので非同期で処理させてみます
0776デフォルトの名無しさん2016/03/17(木) 16:23:01.25ID:wUOVr7Ap
List配列で一つ前の配列と比べたい場合どうすれば良いのでしょうか?
0777デフォルトの名無しさん2016/03/17(木) 17:13:12.50ID:cUhfMVVt
C#について教えてください。
�@C\hoge\adb.exeを起動する。
�A�@で起動したadb.exeに「adb connect localhost」と送る。
�B�@で起動したadb.exeに「adb install hoge.apk」と送る。
これをC#でコーディングする為にはどのようにしたら良いでしょうか?
コマンドプロンプトからなら、下記でよいのですが。。。
�@「cd C\hoge\」
�A「adb connect localhost」
�B「adb install hoge.apk」
0778デフォルトの名無しさん2016/03/17(木) 18:01:49.91ID:yET/+Bsj
>>777
> �@C\hoge\adb.exeを起動する。

> �@「cd C\hoge\」

言ってることとやってることが違うんだが
そもそも C# でやる必要あるのか?
0779デフォルトの名無しさん2016/03/17(木) 18:18:43.42ID:6vpeEsf+
バッチでも起動しとけ
0780デフォルトの名無しさん2016/03/17(木) 18:22:55.43ID:FXTW4Zd2
起動中のアプリにメッセージとか文字列送りたいんだよね
受け元はどういう形態で、送るときはどんな方法なのかで
いろいろ選択肢あると思うよ
07817772016/03/17(木) 18:33:56.32ID:k9Ac/m8r
Process.Start("C\hoge\adb.exe", "connect localhost");
Process.Start("C\hoge\adb.exe", "install hoge.apk");
で出来ました
0782デフォルトの名無しさん2016/03/17(木) 19:13:00.96ID:zypiDVh2
プログラムから引数付きで別プロセスを起動したい、ってことかよ、わかんねえよw
0783デフォルトの名無しさん2016/03/17(木) 20:22:48.25ID:lAT8nDZs
>>776
xs.Zip(xs.Skip(1), (x, x1) => ....)
0784デフォルトの名無しさん2016/03/17(木) 20:25:56.18ID:AwXKLuqn
DOSコマンド「net user >> C:\temp\test.txt」を動かしたく
以下のようなコードを書いたのですが、動きませんでした

どのように書けば動くでしょうか?よろしくお願いします。

System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "cmd";
p.StartInfo.Arguments = @"net user >> C:\temp\test.txt";
p.Start();
p.WaitForExit();
p.Dispose();
07857842016/03/17(木) 20:34:46.64ID:AwXKLuqn
質問後に、自己調査しながら試行錯誤していたら
下記のコードで実行できました

p.StartInfo.Arguments = @"/c net user >> C:\temp\test.txt";

/cがなんで必要なのか理解できていませんが
お騒がせしました
0786デフォルトの名無しさん2016/03/17(木) 20:42:09.26ID:3RlNVkhM
ageかつ句点うってるやつは釣り質問
0787デフォルトの名無しさん2016/03/17(木) 22:51:47.04ID:Esqi9kfr
なんだがなー
0788デフォルトの名無しさん2016/03/18(金) 10:27:43.93ID:EtGFR5kG
>>786
嫌、初心者だろ
2chの機能も文化も知らなかったら普通にそうなるだろ。と言うか俺も最初javaスレでそうだったけど
0789デフォルトの名無しさん2016/03/18(金) 11:45:57.38ID:wtkaVUei
>>788
釣りだよ
その証拠に回答があっても出てこないだろ
0790デフォルトの名無しさん2016/03/18(金) 18:00:17.70ID:7CN4SEqZ
クラスのListのソート、特に降順を学習中で試行錯誤しているのですがネットで検索してみたところ
「降順にソートする「Array.Reverse」は、昇順にソートされた配列でないとうまく並び替わらない。」
というページを見つけました。
MSDNによればList<T>.Reverse メソッドは「全体の要素の順序を反転させます。」とのことなので
.Sortによる昇順ソートの後の.Reverseは結果として降順になるとしても降順ソートをしているわけではないのでは?と思うのですが
それこそが降順ソートであるかのように記述しているページが他にも目につきます。
まだラムダ式を理解しておらず自分で試せないのですが
本当の降順ソートは.Sortでラムダ式による条件付けによって可能、という考え方で正しいでしょうか?
0791デフォルトの名無しさん2016/03/18(金) 18:07:02.12ID:xC+m2h2r
正しい
Reverseはひっくり返すだけ
0792デフォルトの名無しさん2016/03/18(金) 18:09:55.93ID:7CN4SEqZ
回答ありがとうございます。
ちょっと手ごわいですがデリゲートやラムダ式を避けずに本気で勉強します。
0793デフォルトの名無しさん2016/03/18(金) 18:35:33.07ID:8wtm22vK
>>792
全然手強くないから安心してよい。
0794デフォルトの名無しさん2016/03/19(土) 15:09:22.08ID:pjwNQ5ho
Windows10に勝手にアップグレードされる問題がネットで賑わってるけど、
実際の所C#で作ったWindowsFormアプリとかって不具合でるの?
Frameworkのバージョンがあってれば基本的に問題なく動くと考えていいのかね
APIとかいじってるアプリだとトラブルになるんかな
0795デフォルトの名無しさん2016/03/19(土) 15:23:59.03ID:oERruzZR
>>794
基本的に問題なく動くよ。
APIいじってる一部のアプリがトラブったりするのはC#に限らないけど、そんなにない印象。
0796デフォルトの名無しさん2016/03/19(土) 15:24:39.92ID:kSF9iKJu
標準フォントが変わったから文字の大きさがちょっと問題
0797デフォルトの名無しさん2016/03/19(土) 16:00:18.84ID:pjwNQ5ho
レスありがとう

標準フォント変わったってことは、メイリオとか使ってる場合レイアウトが崩れちゃうのかな・・・
0798デフォルトの名無しさん2016/03/20(日) 05:30:27.33ID:BKY+bqXr
LINQでForEachやSelectなど使って処理する場合、デバッグはどういうふうにすれば良いですか?
0799デフォルトの名無しさん2016/03/20(日) 07:16:06.49ID:TtjNwfG2
LINQで副作用は書かない
デバッグが必要になるような処理があるのが間違い
0800デフォルトの名無しさん2016/03/20(日) 07:43:15.71ID:P5LbtOo8
外してるかもだけど
デバッグでLINQ内のブレークポイントで実行が止まらないという話なら
それはコードがLINQ部分の結果を参照するようになってないからかも

LINQのコードがあっても、
それはそこに IEnumerabole な何かを返すメソッドっぽいものが作られるだけで
その結果を要求しなければ実行されないから
(LINQを書くだけでそれが実行されると思っていた人談)
0801デフォルトの名無しさん2016/03/20(日) 07:49:55.23ID:P5LbtOo8
IEnumerabole って、何かしら
それにどうして2chは自分の投稿を消せないのかしら
あたしはもっと勉強しないとね!
あんたたちもがんばるのよ!
0802デフォルトの名無しさん2016/03/20(日) 18:07:11.14ID:BKY+bqXr
>>799>>800
レスありがとうございました。LINQ勉強中です。
var list = new List<string>();
があって、中身が
"line0"
"line1"
"line2"
"line3"
"line4"
"line5"
"line6"
...
の場合に、3つごとに区切る為に、
"line0"
"line1"
"line2"
"---"
"line3"
"line4"
"line5"
"---"
"line6"
...
のように行を追加したいのですが、LINQか何かで一行で出来ますか?
0803デフォルトの名無しさん2016/03/20(日) 18:15:16.99ID:ErMiG78d
バイナリデータをメモリ上から開くにはどうすればいいんですか
とあるbyte[]があって、jpgだったりxlsxだったりtxtだったりするんですが
一度HDDに書き込んでProcess.Start("hoge.txt")ってのはできたんですけど
これをメモリ上から拡張子に関連付けられたソフトで開くことはできますか
0804デフォルトの名無しさん2016/03/20(日) 18:18:06.03ID:TtjNwfG2
>>802
SelectManyとFizzBuzz方式だな
0805デフォルトの名無しさん2016/03/20(日) 18:19:38.85ID:9URbr6kI
できませぬ
0806デフォルトの名無しさん2016/03/20(日) 18:36:45.53ID:3N1O8Tp2
>>803
まっとうな方法じゃできない
普通に書き出すのが一番
08078032016/03/20(日) 19:06:04.87ID:ErMiG78d
>>805-806
できないですか・・
ありがとうございます

実はこのデータRDBに格納したBLOBデータなんですが
テキストやエクセル程度なら一時フィアルに書き出してもいいけど
数GBの動画となるとちょっとしんどいですね
これをやろうとするとストリーミング再生のようなことになるんでしょうか
できればRDBにパスを書いて動画ファイルは別の場所に保存するというような方法ではなく
BLOBから直接再生したいんですが通常はどのような手法が取られるんでしょうか
0808デフォルトの名無しさん2016/03/20(日) 19:27:27.14ID:bOQIaBhI
>>807
ローカルでHTTPサーバーを立ち上げて動画のストリームを返すようにしたら?
あとは適当な動画プレイヤーでlocalhostのURLを開けば再生できるはず
08098032016/03/20(日) 20:10:27.52ID:ErMiG78d
>>808
試しにメタファイル作って実行したら普通の動画ファイルなら再生できました
ここからはRDBの話になると思うのでちょっと自分で調べてみます
ありがとうございました
0810デフォルトの名無しさん2016/03/20(日) 20:20:19.16ID:iVk0Iind
>>807
自分のソフトの中で再生すればいけるよ
wpfのmediaelementなんか使えばいい
0811デフォルトの名無しさん2016/03/20(日) 21:23:49.23ID:bUgPXm32
>>802
Ix使えば可
list.Buffer(3).Select(v => v.Concat("---")).SelectMany(v => v)

勉強中ならyield使ったオレオレメソッド作った方がいいかも
0812デフォルトの名無しさん2016/03/20(日) 22:28:04.42ID:TtjNwfG2
lx使わなくてもこれでいける
list.SelectMany((v, i) => (0 < i && i % 3 == 0) ? new[] { “―“, v } : new[] { v })
0813デフォルトの名無しさん2016/03/20(日) 22:43:04.62ID:FNKfjbup
>>798
LinqPad使うと良い
0814デフォルトの名無しさん2016/03/20(日) 23:23:21.52ID:BKY+bqXr
>>811 >>812
君ら、抜群に頭いいな。
どうやったらこんなのを書けるようになるんだ?
0815デフォルトの名無しさん2016/03/20(日) 23:25:28.08ID:whFkoaF4
“―“, v

コードの中でピースサインを出してやがるぜ
0816デフォルトの名無しさん2016/03/20(日) 23:44:53.73ID:wXobkPts
Bufferなんてあったのか
0817デフォルトの名無しさん2016/03/20(日) 23:47:33.47ID:jb5oaDyo
そのうちIOCC#とか出来たりしてな

(^_^)v
0818デフォルトの名無しさん2016/03/21(月) 10:19:55.65ID:6JHA5k3e
>>798
VS2015でもイケる
0819デフォルトの名無しさん2016/03/21(月) 13:29:12.66ID:4cS+3k42
10MBくらいのテキストファイルを
File.ReadAllLines()
で読む場合、何度も繰り返し読み込んでも二回目以降は
メモリにキャッシュされているのでしょうか?
だから毎回HDDから読み込むことはないですか?
なおファイルの中身は変更ありません。
0820デフォルトの名無しさん2016/03/21(月) 13:39:29.77ID:b4wXoPlv
されない
0821デフォルトの名無しさん2016/03/21(月) 13:45:02.98ID:hsUtGejt
>>819
されるだろうが.Netの機能では無いよ
0822デフォルトの名無しさん2016/03/21(月) 17:41:43.09ID:4cS+3k42
>>820 >>821
どっちでしょうか?
実際にやってみると、キャッシュされているような感じなのですが。
MSDMかどこかにそのあたりの挙動について解説したものがありましたら教えて下さい。
0823デフォルトの名無しさん2016/03/21(月) 18:01:28.64ID:M4s+f/Si
>>822
c#ではなく、OSの機能。
普通にファイルから読み込んだら、OSのキャッシュに格納される。
キャッシュの中にデータが残ってる限りはHDDからのロードは発生しない。
0824デフォルトの名無しさん2016/03/21(月) 18:02:05.19ID:6JHA5k3e
.NETの機能としてはされないけど、OSの機能としてはされる、かな。
0825デフォルトの名無しさん2016/03/21(月) 18:06:38.66ID:b4wXoPlv
そういうことを初心者に「される」と教えるべきなんだろうか?
0826デフォルトの名無しさん2016/03/21(月) 18:08:29.68ID:Q2tTgw28
初心者には速度とか気にするなと教える
クリーンなコードを書ける中級者になったらパフォーマンスチューニングを教える
0827デフォルトの名無しさん2016/03/21(月) 18:15:22.35ID:Hn4IbzUF
何度も読む可能性があるなら
10メガくらいならメモリに保持しておけばいい
最近のパソコンなら余裕でしょ
0828デフォルトの名無しさん2016/03/21(月) 18:25:22.84ID:/mDd90vy
>>825
サーバーとかだと普通に重要なチューニングだから知っておくべき
0829デフォルトの名無しさん2016/03/21(月) 18:45:04.87ID:h9VOC2Oy
MemoryMappedFile をOSレベルで使っているんだっけか
0830デフォルトの名無しさん2016/03/21(月) 18:49:33.46ID:obXy8T3z
すみません、VB6.0からやってきた者です。
ADODBのRecordsetだと、UPDATE文を使用しなくても
SELECT文を投げた結果に対して行のFieldごとに代入を行い、
Update()を行うことで選択行の更新が可能でしたが、
ADO.NETでも選択した行の値を書き換えるようなことはできますでしょうか?
0831デフォルトの名無しさん2016/03/21(月) 18:58:22.75ID:4cS+3k42
>>824
>かな。
されない場合もあると言う事ですか?

>>825>>826
初心者とは言っていませんが。

>>828
知っているなら正解を教えて下さい。
0832デフォルトの名無しさん2016/03/21(月) 19:03:47.72ID:4Jtkcok3
DataAdapterとCommandBuilderというものがあるけど
レガシADOほど柔軟で適当でフリーダムな作りじゃないよ
0833デフォルトの名無しさん2016/03/21(月) 19:09:38.83ID:M4s+f/Si
>>831
このスレッドのタイトルを読み返してみたら。
初心者じゃないなら、スレチになるんですが。
0834デフォルトの名無しさん2016/03/21(月) 19:13:16.85ID:6JHA5k3e
>>831
その意味で使った訳では無いが、OSがキャッシュする前提な作りにするべきではない。
0835デフォルトの名無しさん2016/03/21(月) 19:30:24.45ID:b4wXoPlv
>>828
サーバーのチューニングするときに覚えりゃいいだろ
サーバーのチューニングが必要になる人生とは限らないんだから
0836デフォルトの名無しさん2016/03/22(火) 01:20:39.82ID:g/fJ83XL
>>831
C#と.NETについてならMSDNに書いてないことは保証されてない
キャッシュするかどうかは書かれてないと思ったが

もっと正確に知りたければReferenceSourceで見ればよい

OSレベルならキャッシュをすることはある。もちろん、無限にキャッシュできるわけがないのでキャッシュされないことがあるのは明らか
0837デフォルトの名無しさん2016/03/22(火) 09:08:00.77ID:JYZJ7vRG
いっその事RAMディスクに置こう
0838デフォルトの名無しさん2016/03/22(火) 09:57:25.53ID:gfEFmwP9
いくつかのhtmlファイルをダウンロードしそれを整形して表示させたいのですが
ばらつきがあり1ファイル1〜50MBくらいになってしまいます
自分のみが使うアプリなんですがさすがに分割したほうがいいと思うのですが
どうやって分割させたらいいでしょうか?
0839デフォルトの名無しさん2016/03/22(火) 19:30:42.44ID:ql/QukOv
なんで分割したいの?
分割ダウンロードしたいってなら分かるけど
0840デフォルトの名無しさん2016/03/22(火) 20:09:50.32ID:d7VxBLgh
単なるクラス分割の相談にも見えます
本人待ちですね
08418382016/03/22(火) 23:31:57.31ID:gfEFmwP9
あまりにもファイルサイズが大きいため、分割して読み込めるようにしたいのです
0842デフォルトの名無しさん2016/03/23(水) 08:21:36.20ID:MyZZ6VQi
?
50MB程度は瞬殺だと思うが?
0843デフォルトの名無しさん2016/03/23(水) 10:56:52.16ID:cttIRKe8
まあサイズ指定して読めばいいと思うが、それをどうしたいのか
0844デフォルトの名無しさん2016/03/23(水) 11:07:42.99ID:aZQz0QX+
エスパーはよ
0845デフォルトの名無しさん2016/03/23(水) 12:14:05.58ID:VzK80P8k
>>838
50MBのhtmlって見たことないな
どこからダウンロードしてるの?
0846デフォルトの名無しさん2016/03/23(水) 12:30:33.14ID:7LX6EcRj
機械生成のhtmlで1GBくらいあるのは見たことあるけど無駄なspanとかが大量にあって肥大化してるだけだったな
0847デフォルトの名無しさん2016/03/23(水) 13:16:33.31ID:h1SS+4Lg
数MBのテキストファイルでもエディタパンクするのにGBとかPCが死にそう
0848デフォルトの名無しさん2016/03/23(水) 13:38:55.83ID:cttIRKe8
最近のは意外と行ける、64bit必須だけど
0849デフォルトの名無しさん2016/03/23(水) 17:38:49.37ID:lC/5Is6n
分割するのは良いんだけど、HTMLの整形とか
インデントとか考えたら結局最初から読まないとダメなんじゃないのか

まあ俺なら整形は整形だけするプログラム作って、表示は別プログラムでやるけど
0850デフォルトの名無しさん2016/03/23(水) 19:50:48.64ID:vn5ES+nj
>>847
NotePad ですら数十MB のファイルが開けると言うのに、今どきどんだけショボいエディタ使ってるんだよ w
0851デフォルトの名無しさん2016/03/23(水) 19:54:23.25ID:h1SS+4Lg
>>850
メモ帳とさくら
0852デフォルトの名無しさん2016/03/23(水) 20:06:21.29ID:vn5ES+nj
>>851
Windows 95 で使ってるのか? w
0853デフォルトの名無しさん2016/03/23(水) 20:15:46.08ID:h1SS+4Lg
>>852
Windows95って何?10が最高だろw95って未来人かよwww
今10使っているよ
0854デフォルトの名無しさん2016/03/23(水) 20:17:35.36ID:h1SS+4Lg
えっ何
95とかマジであったの?バージョン番号下がったのかよ
0855デフォルトの名無しさん2016/03/23(水) 20:19:14.19ID:ZnRlRvR0
ジョークも皮肉もセンス皆無だね君
0856デフォルトの名無しさん2016/03/23(水) 20:20:37.22ID:h1SS+4Lg
何だ年号か
0857デフォルトの名無しさん2016/03/23(水) 20:22:21.51ID:h1SS+4Lg
>>855
は?
0858デフォルトの名無しさん2016/03/23(水) 20:26:05.49ID:JT2FURwc
改行がないファイルに弱いエディタはあるな。
0859デフォルトの名無しさん2016/03/23(水) 20:27:46.30ID:EbFHSE4c
(´д)ヒソ(´д`)ヒソ(д`)
0860デフォルトの名無しさん2016/03/23(水) 20:33:29.48ID:Xg+FpMWq
PictureBoxに10000*10000ピクセルの画像を読み込むと
真っ黒なのですがどうすればいいでしょうか?
0861デフォルトの名無しさん2016/03/23(水) 22:34:09.70ID:h1SS+4Lg
860
そりゃそーだろ
掛け算してみろよ。100000000も点があるんだぞ
1PXRGBAで4byteだから400000000byte=400000KB=400MB
メモリは足りたとしても、処理能力足りる訳ねーじゃん
0862デフォルトの名無しさん2016/03/24(木) 01:16:04.08ID:QGSSWnLX
>>854
おもしろくないよ
0863デフォルトの名無しさん2016/03/24(木) 03:06:05.36ID:JYtPWttv
Windows 95
Windows 98
Windows 9まで入力したら候補(サジェスチョン)がでてきてイヤだから
Windows 9は、なくなったという説が有力(?)

Windows
ten ate nine.
というジョーク(?)もあった
0864デフォルトの名無しさん2016/03/24(木) 03:06:59.24ID:JYtPWttv
まちがえた
Seven ate nine.
0865デフォルトの名無しさん2016/03/24(木) 06:48:03.50ID:8ovFShck
>>838の質問が有耶無耶になってるけど
結局50MBのhtmlって何なんだよ
0866デフォルトの名無しさん2016/03/24(木) 07:01:37.97ID:S8D7nx7D
>>861
何ピクセルまで大丈夫なものなんでしょう?
環境次第なんでしょうか・・・
0867デフォルトの名無しさん2016/03/24(木) 08:36:31.04ID:DrdY7S0T
ロストテクノロジーになってるかもしれないDeepZoom使えば
0868デフォルトの名無しさん2016/03/24(木) 09:28:50.06ID:6exViKif
巨大なHTMLというと、 画像が<img src="data: 形式でてんこ盛りのやつがあったな
0869デフォルトの名無しさん2016/03/24(木) 09:33:29.86ID:RWWxbY4p
何故誰も必要としなさそうなことを
理由すら示さずに
他人にタダで調べさせようとするのだろう
0870デフォルトの名無しさん2016/03/24(木) 09:53:42.37ID:Rki2qjgr
はぁ?
チンカスが俺様の役に立てるんだから光栄に思いなさいって
タダで?
わざわざ君らを使ってやっているのだから、むしろ君らが金を払うべきだ
08718382016/03/24(木) 10:51:06.06ID:ua9fhlEi
>>865
レス遅れてすいません
いくつかのページに分かれているんですが、検索しにくいので
ダウンロードした後整形し、一つのファイルにまとめようと思ったんです
0872デフォルトの名無しさん2016/03/24(木) 11:50:20.48ID:UVpZ5bmk
・ページに分かれてるから検索しづらい
・一つにまとめた
・大きくなったから分割したい
ちょっと何言ってるか分からないです
0873デフォルトの名無しさん2016/03/24(木) 12:06:59.02ID:ZIvggI2u
俺なら、元ファイルはそのままにして
検索したいデータだけ抽出したDBを作って元ファイルに紐つけする

妙な横着はしない
0874デフォルトの名無しさん2016/03/24(木) 15:48:35.50ID:iWtUKQ1R
>>860
10000*10000で24bitのBitmap作ってみたけど、普通に読み込めたぞ
0875デフォルトの名無しさん2016/03/24(木) 19:19:48.06ID:1Pk/6FTZ
c#で、ゲームのスクリーンショットから自分の成績を取り出すソフトを開発中なのですが、
tesseract-ocrのv3.02を使い始めて詰まっているので質問させてください。

ゲーム画像なので、関係ない部分を認識してしまう
日本語と英語を混在させた文章を取得する方法
画像から文字を学習させ、学習ファイルを作る方法

この3点を調べてみたのですが、思うようなサイトに行き着くことが出来ませんでした。
詳しい方が居たら教えて下さい
0876デフォルトの名無しさん2016/03/24(木) 19:29:22.44ID:fDFqHgVh
手書きじゃねえんだから
文字なんぞ学習せんでもテンプレートマッチングで探せるだろ
0877デフォルトの名無しさん2016/03/24(木) 19:31:11.45ID:YnxOCpos
>>875
本格的にやりたいなら画像認識やOCRを勉強しろや。
画像を行に切り分け、さらに文字に分けて、文字のイメージに対して
パターンマッチを行うという段取りになる。
文字が固定ピッチでなければ、文字幅も推定しないといけないから難易度が上がる。
0878デフォルトの名無しさん2016/03/24(木) 20:17:24.93ID:7GAAjqXq
プログラミング初心者です。
将棋の棋譜でーたべーす新着棋譜という所からいつも手作業で棋譜をダウンロード(コピー)しています。
http://kifdatabase.no-ip.org/shogi/index.php?lan=jp&;page=registerdfile
所が、日によっては数十局の棋譜がアップされていて(これ自体は嬉しいのですが)、なんとかもっと手間を省けないか?と思いました。
で、検索してみると以下のc#のソースを見つけました。

using System;
using System.IO;
using System.Net;
using System.Text;

public class WebClientGet2 {
static void Main() {
WebClient wc = new WebClient();
Stream st = wc.OpenRead("http://www.google.co.jp/";);
Encoding enc = Encoding.GetEncoding("Shift_JIS");
StreamReader sr = new StreamReader(st, enc);
string html = sr.ReadToEnd();
sr.Close();
st.Close();
Console.WriteLine(html);
}
}
これはコマンドプロンプトからちゃんと動作するのですが、url部分を個々の
http://kifdatabase.no-ip.org/shogi/index.php?cmd=kif&;cmds=displaytxt&kid=86523
とすると、index.phpに引数があるせい?かエラーになります。
何かヒントだけで構いませんのでどうご教授お願いいたします。
0879デフォルトの名無しさん2016/03/24(木) 20:23:35.78ID:mu7KO5mX
UserAgentを必要とする
0880デフォルトの名無しさん2016/03/24(木) 20:53:17.46ID:7GAAjqXq
>>879
ありがとうございます!できました!
でもcmd画面では文字化けしてるw
しかし、頑張ります\(^o^)/
0881デフォルトの名無しさん2016/03/24(木) 21:50:55.49ID:iMhXoYci
そのページ文字コードeuc-jpだぞ
0882デフォルトの名無しさん2016/03/24(木) 22:10:45.93ID:7GAAjqXq
>>879様
>>881様
本当にありがとうございます。
今日仕事休みだったんで一日検索してあーだこーだとやってました。
悩まずに最初から2chの天才達に聞いてたら良かったよ〜〜
0883デフォルトの名無しさん2016/03/24(木) 22:17:08.40ID:7GAAjqXq
いや、やっぱり悩む方がいいのかな(´・ω・`)?
0884デフォルトの名無しさん2016/03/25(金) 01:28:01.02ID:pyz7rRkq
UWP関連で質問です。
右クリックしたときの座標から、そこにあるListViewItemを取得しようと考えています。

Point pnt = //(RightTappedイベントのe.GetPositionから取得)

foreach ( ListViewItem item in listView0.Items )
{
Rect r = LayoutInformation.GetLayoutSlot(item);

if ( r.Contains(pnt) )
{
int index = listView0.Items.IndexOf(item);
//略
}
}

としたのですが、ListViewがスクロールされていないときは正しいindexが取得できても、
スクロールするとその分だけずれてindexが取得されてしまうのですが、
絶対的な位置としてindexを取得するにはどうすればよいのでしょうか?
0885デフォルトの名無しさん2016/03/25(金) 01:59:18.82ID:pyz7rRkq
すいません自己解決しました...

ListViewのRightTappedじゃなくて、ListViewItemのほうのRightTappedで
senderからIndexOfを使ったらちゃんとIndexが取得できました。
0886デフォルトの名無しさん2016/03/25(金) 05:56:46.84ID:3LVwdA0O
指定したタイムゾーンがサマータイムかどうか判定するようなことは自作関数が必要ですか?
0887デフォルトの名無しさん2016/03/25(金) 08:54:49.36ID:gXWNloXY
タイムゾーンをどうやって指定するつもりか知らんけど
TimeZoneInfoで大体事足りない?
0888デフォルトの名無しさん2016/03/26(土) 04:08:54.42ID:cJ2I9PUc
>>887
いけそうです。ありがとう!
0889デフォルトの名無しさん2016/03/26(土) 20:37:23.25ID:2ol6CGld
以下のようなメソッドを付けてUIスレッドからコールしたのですが
process.ErrorDataReceived、process.OutputDataReceivedが非UIスレッドから呼び出されているらしく
「このオブジェクトは別のスレッドに所有されているため、呼び出しスレッドはこのオブジェクトにアクセスできません。」という例外が発生してしまいました
Dispatcher.Invoke(() => {
this.LogText.Text = $"{b.Data}\n+{this.LogText.Text}";
});
と書き直したら動いたのですが、asyncを使ってもDispatcherが必要な場所は残っているのでしょうか

async void get(String tsPath) {
Process process = new Process();
process.StartInfo.FileName = hogeExe;
process.StartInfo.UseShellExecute = false;
process.StartInfo.Arguments = hogeArg;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.RedirectStandardOutput = true;
process.Start();
process.ErrorDataReceived += (a, b) => {
this.LogText.Text = $"{b.Data}\n+{this.LogText.Text}";
};
process.OutputDataReceived += (a, b) => {
this.LogText.Text = $"{b.Data}\n+{this.LogText.Text}";
};
process.BeginOutputReadLine();
process.BeginErrorReadLine();
while (true) {
await Task.Delay(100);
if (process.HasExited) {
break;
}
}
}
0890デフォルトの名無しさん2016/03/26(土) 20:51:52.28ID:3yyPK4PS
asyncの中は全部同期されるとかいうわけじゃないよ?
awaitしておけばTaskの完了待ちの後の処理を手続き的に書けるってだけだから
Taskとは関係ないBegin.../...DataReceivedはasyncとも無関係
0891デフォルトの名無しさん2016/03/26(土) 22:13:22.71ID:JTPZx14B
それよりも
>$"{b.Data}\n+{this.LogText.Text}";
が気になった。

こんな書き方あるんだ
0892デフォルトの名無しさん2016/03/26(土) 22:55:52.41ID:2ol6CGld
>>890
全然別なのか・・ありがとうございます

また別の質問なのですが、Invokeをしたつもりが
「このオブジェクトは別のスレッドに〜」と同じ例外が発生してしまいました

process.ErrorDataReceived += (a, b) => {
Inline inline = new Run(b.Data.Trim());
inline.Foreground = new SolidColorBrush(Colors.Red);
this.Dispatcher.Invoke(() => {
Paragraph paragraph = new Paragraph();
paragraph.Inlines.Add(inline); // ここで例外発生
paragraph.Margin = new Thickness(0, 0, 0, 0);
this.rTextBox.Document.Blocks.Add(paragraph);
});
};

ところが、System.Windows.Documents.RunのインスタンスをInvokeの中で作成すると例外が発生しません。
process.ErrorDataReceived += (a, b) => {
this.Dispatcher.Invoke(() => {
Inline inline = new Run(b.Data.Trim());//この二行をInvokeの中に移動
inline.Foreground = new SolidColorBrush(Colors.Red);
Paragraph paragraph = new Paragraph();
〜略

System.Windows.Documents.Run型をUIスレッドの中で作成しないといけないっぽいのですが
こういう情報はどこで判断すればいいのでしょうか。エラーが出るまで気がつかないのでつらい
0893デフォルトの名無しさん2016/03/26(土) 23:33:39.35ID:49/EBnca
>>892
いやWPFのほぼ全てのオブジェクトはそれを作成したスレッド以外から触れないよ
個別に判断することではなく、基本的に常にInvokeが必要
https://msdn.microsoft.com/ja-jp/library/system.windows.threading.dispatcherobject(v=vs.110).aspx
0894デフォルトの名無しさん2016/03/27(日) 01:12:26.83ID:SCgfhgdV
>>893
なるほど、892で言う所のthis.rTextBox.Document.Blocks.Addの瞬間だけUIスレッドならいいって事でもないんですね
ありがとうございます
0895デフォルトの名無しさん2016/03/27(日) 01:39:47.92ID:SHcx2AsG
>>876
テンプレートマッチをopencvでやってみてるけど、
解像度によって画像の大きさ変わるからうまくいかないみたい

面白そうだから引き続きいろいろやってみようと思うけど、
opencvでテンプレート画像と比較画像のスケールや角度が違うときって
どうすればいいんだろう?
0896デフォルトの名無しさん2016/03/27(日) 18:25:52.27ID:+OxcJi2S
帳票ソフト的なもので、完成したexeファイルをUSB上において動かすってのは
動作安定性としてはどんなもんでしょうかね
不具合やバージョンアップの更新をしやすくするのにUSB上において業務時間外にUSBを送ってもらって更新できたら
なんて考えているんですが
0897デフォルトの名無しさん2016/03/27(日) 18:39:48.78ID:QEGUX1RV
USBブートができるんだから
exeの一つや二つ起動したところで不安定になんぞならんだろ
なるなら粗悪メディア使ってんだろ
0898デフォルトの名無しさん2016/03/27(日) 18:40:05.05ID:AY0lVF3m
個人用途でUSBメモリへのIOが発生しないアプリケーションなら別に良いんじゃない
業務アプリなら、不具合対応するために不具合要因増やすとか本末転倒にも程があるだろと
0899デフォルトの名無しさん2016/03/27(日) 18:45:26.75ID:hmC+p4e8
>>896
ClickOnceでいいじゃん
0900デフォルトの名無しさん2016/03/27(日) 18:49:16.21ID:WvnNChXc
USBとかあいまいな略し方やめれ
0901デフォルトの名無しさん2016/03/27(日) 18:50:01.14ID:MdJCnp0Y
USBからローカルにコピーしてから使うならなんの不便もなさそうだが…
しかしUSBはどこも取り扱い厳しいから逆にめんどくさい気がするな
0902デフォルトの名無しさん2016/03/27(日) 18:53:23.89ID:rK0WYN/a
LANがあるなら他の方法考えたほうが良いだろうが
繋がっていないのならUSBメモリ郵送とかありだとは思う
0903デフォルトの名無しさん2016/03/28(月) 04:49:32.83ID:/fTNoARJ
ファイル破損で阿鼻叫喚の未来
0904デフォルトの名無しさん2016/03/28(月) 09:55:36.50ID:ygmp/osz
リムーバブルディスクの実行アクセス権の拒否設定とかな
0905デフォルトの名無しさん2016/03/28(月) 10:01:25.72ID:fnS4lEb6
動作安定性を聞いてるのに余計なことを答える奴は日本語が理解できねえのか?
幼稚園でも通ってろ
0906デフォルトの名無しさん2016/03/28(月) 10:02:17.35ID:fnS4lEb6
と896は思ってます
0907デフォルトの名無しさん2016/03/28(月) 10:19:00.95ID:ygmp/osz
素直に関係ないこと書くなって書けばいいのにw
0908デフォルトの名無しさん2016/03/28(月) 10:22:42.32ID:2+pvgNza
社内ならClickOnceでいいと思うけどね
USBだと実行中に抜かれたりしてトラブルの種が増える可能性が
安定性ということならそれに起因した不安定さは出ないでしょ
0909デフォルトの名無しさん2016/03/28(月) 10:47:42.90ID:6qm5OXnT
実装?について質問なんですが
非同期処理中の他のクラスから、Form1クラスのcheckbox1のcheckedプロパティを見たい場合
ってどういうふうに実装するのがいいんですか?

http://ideone.com/eNa7qy
今はこんな風に書いているんですが、これが普通なんでしょうか?
0910デフォルトの名無しさん2016/03/28(月) 11:39:11.67ID:lVsmAcUx
僕だったらフォームから非同期処理ワーカーに通知する方を選びます
中断ボタンがあれば、中断ボタンの押下に伴ってキャンセルを発行するでしょうから
0911デフォルトの名無しさん2016/03/28(月) 11:40:31.48ID:lVsmAcUx
途中で書き込んでしまった

キャンセルを発行するでしょうから、それと同じフローが使えるように設計します
0912デフォルトの名無しさん2016/03/28(月) 11:55:48.36ID:KS9P8GMV
>>909
まぁあえてその方法でやるなら、checkbox1にアクセスする部分をデリゲートとして
Form1から与えてやるかな。
AnotherClassがForm1の実装に依存するのは避けたい。
0913デフォルトの名無しさん2016/03/28(月) 12:47:54.90ID:6qm5OXnT
レスありがとうございます

>>910-911
どういう風に通知するんでしょうか?
http://ideone.com/eNa7qy
書き換えましたがこんな感じですか?
非同期処理中、キャンセル発行はしたいんですがどうやればいいのかわからなくて・・・

>>912
最初のやり方だとプロパティを何個も書かないといけないので
スマートなやり方はないかと模索していてなるべく冗長性を無くして且つ
変更があっても修正を最小限にしようと考えたらこんなコードになっただけです
この方法でやりたいわけではないです
0914デフォルトの名無しさん2016/03/29(火) 20:00:43.93ID:0lvLpsJp
>>878です。
連番の棋譜を一つのテキストファイルに保存するのが目標でしたが、
なんとか希望通りのプログラムができました。
エンコードの変換とか、改行文字の混在とか、ブロック内の変数はローカル変数だとか、
思わぬところでいろいろ悩みましたが、勉強になりました。
回答下さった方々、どうもありがとうございました。
0915デフォルトの名無しさん2016/03/30(水) 22:07:43.36ID:Qpr27ZjL
USB機器の調子が悪くて、デバイスマネージャー上から消えたりする現象が出ていて
C#で監視アプリを作って認識有無のログを残そうと思ってます。

USB機器のハードウェアIDを指定して認識している(デバイスマネージャー上に表示されてる)
かどうかをどうやって取得すればいいのかが検討つかず困っています。
どなたかヒント頂けないでしょうか?

Windowsの標準コマンドラインツールで確認できればそっちの方がより簡単にできそうですが、
ググってもなかなかいい情報にヒットしないです。
0916デフォルトの名無しさん2016/03/30(水) 22:41:47.00ID:hXsOH1FB
USBDeview
0917デフォルトの名無しさん2016/03/30(水) 22:44:22.98ID:vU4fdoft
USBView
09189132016/03/30(水) 23:53:29.57ID:HiEW2Vw0
誰かレスお願いします
0919デフォルトの名無しさん2016/03/31(木) 00:38:57.12ID:qmtiSjJG
>>915
System.ServiceProcessのServiceController.GetDevices()でデバイス一覧が配列で取れる

DisplayNameあたりで目的のデバイスを特定してStatusを確認する
0920デフォルトの名無しさん2016/03/31(木) 01:26:14.14ID:U/jPHVt7
>>915
メーカー名とか型番とかその他諸々を取得するのには
SetupDiEnumDeviceInfoとかSetupDiGetDeviceRegistryPropertyを使う
reinterpret castを多用することになるのでC#だと面倒だったよ
C++も兼用するのがおすすめ
0921デフォルトの名無しさん2016/03/31(木) 02:22:10.78ID:IBAanxlL
>>919
ServiceController.GetDevices()はデバイス ドライバーの列挙だから違うんじゃない。
0922>>9152016/03/31(木) 22:27:49.93ID:rN3sqB5b
みなさんレスありがとうございます。
いろいろ提案していただいた内容を検索した時に、
devcon.exeでデバイスの状態を拾えるということがわかり、
そちらでうまく動作することを確認しました。
0923デフォルトの名無しさん2016/04/01(金) 06:33:41.09ID:PU9mDoTr
燃えよ
0924デフォルトの名無しさん2016/04/02(土) 11:05:18.08ID:XLNgYD7p
async/awaitを利用した非同期でのwebへのPOSTを試そうとしているのですが、なぜか例外が出ます。

// POST 実施
StringBuilder bld = new StringBuilder();
bld.Append(postMessage);

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(requestUri);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
request.ContentLength = bld.Length;

using (var writer = new StreamWriter(await request.GetRequestStreamAsync(), Encoding.UTF8))
{
  await writer.WriteAsync(bld.ToString());
} // <-ここを通過するときに例外

例外を確認すると、
「System.Net.WebException: 要求は中止されました: 要求が取り消されました ---> System.IO.IOException: すべてのバイトが書き込まれるまでストリームを閉じることはできません。」
と表紙されているので、非同期での書き込みに当たって、書き込み後に完了を待たずに閉じているため、とは
推測できているのですが、上記の書き方(await writer.WriteAsync()、await writer.WriteAsync())では、待ってくれないのでしょうか?
また、本来はどのように書くのが良いのでしょうか?
0925デフォルトの名無しさん2016/04/02(土) 12:17:53.86ID:4w3IMT/e
awaitでusingって使えたっけ
0926デフォルトの名無しさん2016/04/02(土) 12:36:25.02ID:qn4Qbb7/
usingをtry〜finallyに置き換えればいいのかな。
0927デフォルトの名無しさん2016/04/02(土) 12:39:29.64ID:qFlCuIW1
>>925
言語仕様上はいけるだろ
でも実装されてないかも知れない
0928デフォルトの名無しさん2016/04/02(土) 12:41:57.83ID:Qox/OFtG
>>924
usingでもいいはずだけどそのコードを含んでるメソッド自体がasyncでないとダメ
09299132016/04/02(土) 14:23:40.41ID:kecLueQQ
なぜ誰もレスしてくれないのでしょうか・・・理由分かる方居たらお願いします
0930デフォルトの名無しさん2016/04/02(土) 14:41:03.59ID:Zebn1E4e
>>929
何を訊きたいのか、焦点がぼやけてるからじゃない?
キャンセルしたいなら、AnotherClassのフィールドにフラグを用意しておいて、
DoWorkの中でそのフラグをチェックすればいいよ。
単純だけど悪かないでしょ。
0931デフォルトの名無しさん2016/04/03(日) 19:27:05.34ID:IQvchWal
>>929
異なるスレッドからのフォーム処理にはInvokeを介すといいよ
0932デフォルトの名無しさん2016/04/04(月) 01:04:21.89ID:FhdBY7IF
>>931
久しぶりに聞いたな
0933デフォルトの名無しさん2016/04/04(月) 09:31:21.94ID:784WR3n+
ザマリン使ってますか?
おすすめ書籍とかサイトがあれば知りたいです。
0934デフォルトの名無しさん2016/04/04(月) 09:36:28.68ID:JBBxdS8b
>>933
次のVisual Studioに統合されて無償提供されるので、それまで待ってからのほうが
良いのでは。
0935デフォルトの名無しさん2016/04/04(月) 13:11:54.70ID:H3nMOzrh
nuget落ちてる?
0936デフォルトの名無しさん2016/04/04(月) 13:14:12.19ID:/zxPAX6+
>>934
次の?もうフリーでしょ
0937デフォルトの名無しさん2016/04/04(月) 15:03:19.73ID:vSnInZMj
アプデすると制限が外れるのかな?
09389132016/04/04(月) 23:13:58.69ID:NYVvhLfT
>>930
レス遅くなってすいません
リファクタリング的なことをやっているんですが、現在クラス間の依存が強くて設計を見直しています
今はこうなっていてhttp://ideone.com/JNRIBt
修正してhttp://ideone.com/eNa7qyな感じにしたんですが
Invokeの呼び出しは上記のようにするしかないんですか?
0939デフォルトの名無しさん2016/04/05(火) 00:00:18.54ID:mDmXAcnH
swift obj-c ES2015 をよく使ってるんですが、
その状態でC#の言語仕様の差分だけを追う情報ってドコ見ればいいでしょう?
0940デフォルトの名無しさん2016/04/05(火) 00:08:41.38ID:mkt28m6n
NuGetのGUI版で一覧を見るとMSご謹製とインストール済みしか出てこないのは
Update2の関係かな?一応コンソール使えばインストールできるみたいで実害はないようだが
0941デフォルトの名無しさん2016/04/05(火) 01:59:26.41ID:1f1z5N/y
初心者の質問で恐縮なのですが、教えてください。
文字列の2次元配列に1次配列を一度に入れることってできないのでしょうか?

string[ , ] aaa = new string[10,10];
string[] bbb = {"A","B","C","D","E","F","G","H","I","J"};

aaaの1行目(aaa[0,0]から[0,9])にbbbの文字10個を一度に代入したいのですが
for文などを使って1つずつ入れるしか無いのでしょうか?
できれば、1次配列に1次配列を代入するのと同じ漢字にしたいのですが
0942デフォルトの名無しさん2016/04/05(火) 02:40:14.69ID:TIoT0Lhj
>>940
https://social.msdn.microsoft.com/Forums/ja-JP/927791a3-1e0c-4092-a280-b1a22fcaa436/nuget-
これ?

>>941
二次元配列だと基本的に無理
配列の配列 string[][] は?
0943デフォルトの名無しさん2016/04/05(火) 03:21:12.53ID:1f1z5N/y
>>942
やっぱりむりなんですね
今のところ、forでループ処理して入れてますが、数がおおくなると
途中でスリープ処理でも入れないとエラーでそう・・・
配列の配列っていうのは、ジャグ配列?のことですよね
ちょっと勉強してそれも試してみます、ありがとうございました。
0944デフォルトの名無しさん2016/04/05(火) 03:55:38.18ID:TIoT0Lhj
> 数がおおくなると途中でスリープ処理でも入れないとエラーでそう・・・
全く意味が分からない
0945デフォルトの名無しさん2016/04/05(火) 06:12:16.60ID:NJC2/a+U
>>944
処理の抜け落ちとか気にしてるんだろうね。
>>943
そんな心配いらん。
0946デフォルトの名無しさん2016/04/05(火) 08:48:24.49ID:ZKWkWwlM
前から気になってたんだけどRegExじゃなくてRegexなの?
0947デフォルトの名無しさん2016/04/05(火) 08:49:57.16ID:QnxublUV
抜け落ちはきになるしゃーない
0948デフォルトの名無しさん2016/04/05(火) 09:16:11.85ID:2gQR6HMx
>>947
そーゆうもんなの?
0949デフォルトの名無しさん2016/04/05(火) 10:24:59.70ID:F8KWDDTe
>>948
髪の毛と同じだよ
0950デフォルトの名無しさん2016/04/05(火) 11:04:21.59ID:1XHDBZBd
Visual Studio 2013で、Entity Frameworkを使ったSQLiteデータベースへのアクセスを試しています。
いくつかのサイトを巡って、データベースダイアグラムにテーブルを表示させるところまでは行ったのですが、
テーブル間のリレーションがなされてない状態になっていました。
(もとのDBからなっていない?)

 データベースダイアグラムからリレーションの設定が出来ると思っていたのですが、その手段が分かりません。
どのような手順でリレーションを設定すれば良いのでしょか?
0951デフォルトの名無しさん2016/04/05(火) 11:57:34.13ID:aw2Xx+nH
>>950
これじゃないかな
https://msdn.microsoft.com/ja-jp/data/jj713299
0952デフォルトの名無しさん2016/04/05(火) 12:29:14.70ID:2gQR6HMx
>>951
読めねーよw
0953デフォルトの名無しさん2016/04/05(火) 12:42:43.36ID:LO5FfC68
>>952
適正ないからやめとけ
0954デフォルトの名無しさん2016/04/05(火) 13:16:58.78ID:mkt28m6n
>>942
ありがとう助かりました
0955デフォルトの名無しさん2016/04/05(火) 13:36:17.89ID:2gQR6HMx
>>953
はぁ?英語読めないから適性ないって、どんだけー
0956デフォルトの名無しさん2016/04/05(火) 13:49:56.05ID:2GAdYW/6
英語読めないことよりも英語読もうとしない姿勢の問題なんじゃない?
0957デフォルトの名無しさん2016/04/05(火) 14:24:23.40ID:F8KWDDTe
>>950
だったら、SQLiteをGuiでいじれるフリーソフツを使えばいいじゃないか。
Accessみたいにな。
0958デフォルトの名無しさん2016/04/05(火) 16:06:43.53ID:mkt28m6n
つか、sqliteでEF使うと地獄の遅さだったような
sqlite使うならado.net直接書いたほうが良い
0959デフォルトの名無しさん2016/04/05(火) 17:51:25.11ID:QnxublUV
軽量マッピングがベストバランス
0960デフォルトの名無しさん2016/04/05(火) 18:01:00.36ID:ppnKHRiK
皆さんdb詳しいのね
0961デフォルトの名無しさん2016/04/05(火) 21:15:29.15ID:LO5FfC68
>>956
お前優しいな
0962デフォルトの名無しさん2016/04/05(火) 23:00:08.97ID:MjjeTxTx
読めない英語を読もうとするのは労力の無駄
キーワードとサンプルコードだけ拾えば十分
0963デフォルトの名無しさん2016/04/05(火) 23:53:40.37ID:p/7kx4ly
ジャーップw
0964デフォルトの名無しさん2016/04/06(水) 00:18:54.78ID:O67tyKAA
>>962
読めない時点でお察し
0965デフォルトの名無しさん2016/04/06(水) 08:18:51.17ID:y1UF9DzI
>>962
読めない段階でそいつの行動のすべてが無駄。存在自体も。
0966デフォルトの名無しさん2016/04/06(水) 17:31:45.07ID:iOXwiMsP
hddが一杯で書き込めない場合、自作の例外を投げる実験のため、FileStream.WriteByteメソッドを使って
HDDの中を一杯にしたいんですが、めちゃくちゃ書き込みが遅いです
ソースはこれなんですけど、どうやったらもっと早く書き込むことができますか?

http://ideone.com/TmtHdI
0967デフォルトの名無しさん2016/04/06(水) 18:12:38.24ID:aVcyhcq8
>>966
RAMディスクを使ってみたらどうだろう?
フリーのやつもあるし容量も自由自在だ
0968デフォルトの名無しさん2016/04/06(水) 18:42:14.74ID:C8NNHPSW
2次元配列ってシリアライズできないんですか?
0969デフォルトの名無しさん2016/04/06(水) 18:47:05.00ID:VMMJJZfg
>>966
別の適当なテンポラリファイル作る
using (var fs = new FileStream("temp.tmp", FileMode.Create)) {
fs.SetLength(HDDの残りからちょっと少なくした値);
}
一瞬で何百GBのファイルでも作れる
0970デフォルトの名無しさん2016/04/06(水) 19:21:58.39ID:2iLtJTEN
IOExceptionが飛べば何でもいいような気がするが
0971デフォルトの名無しさん2016/04/06(水) 19:57:35.49ID:qohl0JPc
>>966
fsutil じゃダメなん?
http://www.atmarkit.co.jp/ait/spv/0209/28/news002.html
0972デフォルトの名無しさん2016/04/06(水) 22:52:57.91ID:dZLJKVed
>>968
やってみればよろし
0973デフォルトの名無しさん2016/04/07(木) 00:10:34.72ID:HUDXTSTd
ボタンがフォームにいくつかあって、
ボタンが押される→押されたボタンを判断→押されたボタンのテキストで条件分岐して処理
みたいなことをしたいんだけど、どうすればいいんでしょうか?
0974デフォルトの名無しさん2016/04/07(木) 00:18:47.02ID:C8VOMaBs
>>972
やってみて、できないからきいとるんです!
0975デフォルトの名無しさん2016/04/07(木) 00:20:08.56ID:C8VOMaBs
>>973
共通イベントでフォーム呼び出し時にコンストラクタにテキスト渡せば
0976デフォルトの名無しさん2016/04/07(木) 00:57:04.17ID:HUDXTSTd
>>975
ありがとう、できたわ
0977デフォルトの名無しさん2016/04/07(木) 01:07:08.92ID:ea+ftv7O
C#で半精度浮動小数点って使えますか?
自分で実装すると、floatやdoubleよりもかなり遅くなりますか?
0978デフォルトの名無しさん2016/04/07(木) 01:38:45.06ID:x7qKwayU
整数に直して計算して、結果だけをfloatにしたほうが早いんじゃまいか
0979デフォルトの名無しさん2016/04/07(木) 02:06:51.84ID:ea+ftv7O
floatだと2倍のサイズになるのがねー
0980デフォルトの名無しさん2016/04/07(木) 02:15:36.30ID:qhI2bqCd
その程度で問題が起きるような環境でC#つかってんの?
アセンブラとか使うべきな環境じゃない?
0981デフォルトの名無しさん2016/04/07(木) 02:19:50.02ID:MFeNVwlK
小手先の小細工考える前にまずは動くものを作れよ
0982デフォルトの名無しさん2016/04/07(木) 06:02:35.12ID:C8VOMaBs
>>977
デシマル一択
0983デフォルトの名無しさん2016/04/07(木) 08:13:38.68ID:tKPXKh3z
>>977
遅くなるとか よく初心者がこういう事口にする奴いるけれどさ

そもそも、おまえそんなレベルのアプリケーション作れないだろ?そして作れる奴は
自分でなんとかできるww
0984デフォルトの名無しさん2016/04/07(木) 09:57:59.66ID:GrKexH5a
雨がすごい
0985デフォルトの名無しさん2016/04/07(木) 10:04:16.82ID:tKPXKh3z
>>984
もう春はおしまいで、梅雨に入るんだろう
0986デフォルトの名無しさん2016/04/07(木) 10:14:14.73ID:WuhhdB+c
春終わったか
0987デフォルトの名無しさん2016/04/07(木) 10:21:12.79ID:Gx3Tacp4
年中これくらいの気候の国ってないもんかね
あるなら速攻引っ越す
0988デフォルトの名無しさん2016/04/07(木) 10:26:00.40ID:NYvIcmpK
>>987
常春の街、エクアドルのキトなどどうですか?
赤道直下ながら高地にあるため年中春です
http://www2m.biglobe.ne.jp/ZenTech/world/kion/Ecuador/Quito.htm
0989デフォルトの名無しさん2016/04/07(木) 10:54:50.74ID:KQXqoRw3
肺が弱いから高地は無理だは
0990デフォルトの名無しさん2016/04/07(木) 10:59:27.52ID:tKPXKh3z
>>988
イチゴ栽培で生活できそうだな。
0991デフォルトの名無しさん2016/04/07(木) 13:13:44.64ID:14QRXbFJ
>>987
データセンターの中おすすめ
0992デフォルトの名無しさん2016/04/07(木) 13:41:36.99ID:rDHOIKsL
冬は暖かいけど、夏は寒いよなあw
0993デフォルトの名無しさん2016/04/07(木) 19:48:16.75ID:ZHSN5lwT
冷暖房のない国に住みたいぜ
日本人はバカみたいにガンガンエアコン使うから暑過ぎるんだよ
クソッタレジャップ全滅しろ
09949662016/04/07(木) 22:50:28.47ID:m8p2yxBO
レスサンクスです
>>969案でやってみたんですが、ディスクの空き容量3KBで
base.WriteByte()でIOException例外が発生します
35行目なんですがなぜなんでしょうか?
http://ideone.com/bH1dNN
0995デフォルトの名無しさん2016/04/07(木) 23:35:24.09ID:qhI2bqCd
アロケーションユニットサイズ
0996デフォルトの名無しさん2016/04/07(木) 23:51:23.09ID:qhI2bqCd
次
ふらっと C#,C♯,C#(初心者用) Part120 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1460040653/
0997デフォルトの名無しさん2016/04/08(金) 00:40:49.23ID:+GCiuXQC
>>996
乙
0998デフォルトの名無しさん2016/04/08(金) 01:34:39.19ID:mOlgqJFI
埋め
0999デフォルトの名無しさん2016/04/08(金) 01:35:45.69ID:mOlgqJFI
埋め
1000デフォルトの名無しさん2016/04/08(金) 01:36:35.67ID:mOlgqJFI
埋め!
1000なら俺は天才プログラマーになるために生まれ変わる
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 68日 0時間 44分 15秒
10021002Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
http://pink-chan-store.myshopify.com/
レス数が1000を超えています。これ以上書き込みはできません。