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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2016/01/31(日) 00:52:20.67 ID:OtXGSzkV.net]
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

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

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

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

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

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

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

■コードを貼る場合は↓を使いましょう。
ideone.com/

331 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 10:33:00.45 ID:gWYi+rc9.net]
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();
}
}
他に方法はございますでしょうか

332 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 10:35:41.14 ID:wFus9lhk.net]
>>331
DataTableに入れる前のクエリで特定行を除く

333 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 10:59:31.81 ID:bNYKyrDh.net]
>>331
LINQ使うんなら弄くり回すよりCopyToDataTableで丸ごと作り直すのが筋
https://msdn.microsoft.com/ja-jp/library/bb386921(v=vs.110).aspx

334 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 11:21:16.59 ID:gWYi+rc9.net]
レスどうもです
もう少し具体的に言うと、データベース上に月別のデータがまとめた1つのテーブルにあって、
指定月のデータだけをごっそり入れ替えたい(カラムには月表示があるのでそれで絞ってます)のです
月毎にテーブル分けて、指定月のテーブルだけ全件削除、新規のデータを挿入が手っ取り早いのですが、
年間のテーブル1つでやりたいと思ってるのですが

>>333
CopyToDataTableも最初は考えたのですが、データベースから引っ張ってきてるので
DataTable作り直すと結局戻すときに全部入れ直さないといけないのかなと思うのですがどうなんでしょう
>>332
データベースから読み込む時点でテーブルわけといた方がよいのですかね

335 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 12:10:19.83 ID:lxxM+jNF.net]
>>334
普通にDataTable.Select()の結果をforeachで回してDelete()でマークして
必要に応じてDataTable.AcceptChanges()でコミットしても良いんちゃう?
ってのは>>331に限った話だけど…DB操作だとコード云々よりADO.NETの範疇か

ADO.NETとかEntity FrameworkとかC#でのDB操作はよく知らんけど…
基本形はDataTable.Select()からDataRow弄くってUpdate()で差し戻す?
先にSQLでDELETEしといてINSERTするだけでも良さそうだけど、最適解は…知らぬわい

336 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 12:27:41.87 ID:wFus9lhk.net]
やりたいことは指定月のデータ内容をUPDATEすることのように思えるんだが
データ量にもよるけどDELETE→INSERTしなくても、更新したいデータを一時テーブルに出力して更新データとJOINして
年間テーブルを一時テーブルでUPDATEすればいいんじゃないのかな?
更新データ量にもよるけど、100万行程度なら上のやり方でも十分速度は出たと思う

337 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 12:38:11.72 ID:xA/85emw.net]
リポジトリ書いて
月指定して月間データ取ってきて
ループで各エンティティのメソッドを呼んで保存する
これでOK

338 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 13:19:52.36 ID:jNiAqett.net]
Linqのデータ削除の典型例
var removes =Items.Where(x=>条件式).ToList();
removes.ForEach(x=>Items.Remove(x));

データ削除はこれの応用で大体行けるはずなんだけどな

339 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 14:53:28.98 ID:gWYi+rc9.net]
多くのレスに感謝です

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

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

Result.ToList().ForEach(row => row.Delete());
※ResultはLINQで月別に抽出したDataRowのコレクション



340 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 15:39:45.33 ID:2MAOXUes.net]
ラムダで副作用かっこわるい

341 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 15:44:08.26 ID:06O3qiSZ.net]
俺なんかもっとかっこわるいぞ
.Select()内で { 何か; return 0; } とやってたりするよ

342 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 16:20:11.54 ID:s+9Slq2v.net]
ぶっさ

343 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 16:58:50.07 ID:6KRp/oK6.net]
テスト

344 名前:デフォルトの名無しさん mailto:sage [2016/02/13(土) 17:08:05.06 ID:Aj9JV+Py.net]
>>3399
Result.Select(row => row.Delete());
ではだめですか?

345 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 06:44:28.00 ID:bzGf7eU2.net]
>>315
デバガーで今何番目の要素を処理しているか知りたい時はどうするの?

346 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 06:58:06.59 ID:mWiu8nHo.net]
何番目という情報が必要なコードであれば
それを否定しているレスじゃないでしょ

347 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 07:55:00.43 ID:l8k1FRK9.net]
バグを取るよりバカを直した方がいいんしないかな

348 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 08:03:10.87 ID:5pBX52FC.net]
indexが使う前提で話をしてんのに
indexが必要か考えろって返答は意味不明
使うって言ってんだろ

349 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 08:21:36.38 ID:0ADcRE3m.net]
index使うバカが気付いてないだけでそんなものは必要ない文脈かもしれないだろ
まずはそこを徹底的に見直してこい
話はそれからだって言ってるんだよ



350 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 08:32:42.46 ID:4fsYhBCo.net]
通常の使い方じゃないかも知れんが、数百、数千おきにデータをフラッシュしたい需要はあるな

351 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 09:02:33.92 ID:l8k1FRK9.net]
>>349
デバガーどうこうは突っかかってる方がバカだと思ったけど
その言いぐさだとお前がバカで正解だったっぽい
余計なお世話って分かる?
分かんないか

352 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 09:34:12.02 ID:n0LELDsn.net]
LINQ使えよってLINQ厨が言ってるだけだろ。
これだからLINQ厨を見ると苦笑いしか出ないんだ。

353 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 09:39:27.99 ID:0ADcRE3m.net]
>>351
やれやれ
これだから下流コーダーは困る

354 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 10:20:37.80 ID:aN+xXKUu.net]
まぁまぁ、よくわかんねーけど、インデックス使いたいってことを否定するならさ、
人間はどうせ死ぬんだから、生きてる意味もなくない?ってぐらい暴論だと思うのよね。

お前らも、大好きなあの娘との思い出を取り出すとしてさ、
初めてキスをしたのは何回目のデートだっけとか数えたりするだろ?

355 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 10:23:31.55 ID:3Nivwysz.net]
まあ実際初心者スレでは「そんなことはどうでもいいから何をしたいのか目的を晒せ」
の方が効果的なケースがほとんどだからな

356 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 10:25:33.24 ID:IGxuUtz8.net]
そのCollection の Count が 0 でループは一回も実行されなかったとさ

357 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 11:22:01.93 ID:0ADcRE3m.net]
>>355
これな
根本的なところからおかしいんだよな
おかしいものに疑問を持たず表面的な対応しかしない
それがホンマもんのバカってやつだ

358 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 12:08:57.25 ID:Mh99LtVN.net]
初心者スレに出入りしてるやつがどれだけのスキルを持ってるのかとw

359 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 12:10:14.28 ID:12CQcbJ/.net]
スレ的にLINQはダメとなってるけど、これより早く処理する方法ってあるの?



360 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 12:17:27.87 ID:CfikNejg.net]
>>359
どのレスみたらLinqがダメって結論になるのか教えてくれよ

361 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 14:03:25.60 ID:zXLi9Jt7.net]
310からの質問の文脈を読まずに、349 がいう文脈とは

362 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 14:55:03.59 ID:OZvUt5KM.net]
>>354
うむ
ゆーうぃん

363 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 14:55:46.84 ID:CAYLYmrN.net]
>>329です

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

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

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

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


分かりにくいかもしれないので一応文章でも書くと
複数のラジオボタンがあって、それぞれに別パターンの画像を設定したいということです

364 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 15:13:16.36 ID:7V8dKUBy.net]
>>363
いろいろあるけど、ResourceDictionaryを差し替えるのが正統なやり方
テンプレート内で直接画像を指定するかわりにリソースディクショナリ内のリソース名を指定し、
コントロールのResourcesプロパティに実際の画像のセットを含んだリソースディクショナリを渡す(XAMLで)

365 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 19:05:47.82 ID:4fsYhBCo.net]
正当なのは 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}" ・・・・/>

366 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 19:22:41.55 ID:bVZvMVSZ.net]
もしかしてWebサイトってオワコン?

367 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 19:30:08.69 ID:CAYLYmrN.net]
>>364
>>365
お二方ありがとうございます。
出来ました

ボタンを置いてダブルクリックするだけでイベントハンドラが作れてた頃が懐かしいよう

368 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 19:51:03.86 ID:Bsnhcx6p.net]
>>366
ASP.NETでのWEBアプリに対してのWEBサイト、ってならオワコン
一般的な意味でのWEBサイトなら、変化しながら生き続けてる

369 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 21:43:39.23 ID:AnW4+fzX.net]
どなたか分かれば教えてください。
フォームアプリでwebbrowserコントロールを使って外部のwebページを操作していますが、
ページ内のボタンを押したときにjavascriptのyesnoのダイアログメッセージが起動します。
この起動イベントをフォームの方でハンドリングする方法はあるんでしょうか?
やりたいことはフォームのプログラムで自動的にyesを選択させたいです。



370 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 21:52:11.02 ID:79nYzABo.net]
質問させてください。何度かスレで話題に出ていたdapperについて、ソースコードを見たいなと思い
githubにログインできるようにして「dapper-dot-net-master.zip」というファイルをDLしました。
そのファイルを展開して、「Dapper.sln」を「VS Express 2013 for desktop」で開こうとしたのですが、
「.xproj」という拡張子のファイルに対応していないらしく、「ソリューションを開く」が失敗してしまいます。

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

github自体も使い始めたばかりでなにか勘違いしてる部分があったらすみません。

371 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 21:58:59.28 ID:NxxLKQZP.net]
dnx projectは2015じゃないと開けないと思うよ
2015入れるか諦めて

372 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 22:04:19.65 ID:3Nivwysz.net]
>>370
・DapperのソースをGitHubから取得するのにGitHubのアカウントなんか要らない
・GitHubからソースを取得したいならzipで落とすなんてダサいことしないでGitでcloneしろ
・dapperはシングルファイルだからわざわざプロジェクトを開く必要なんかない

373 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 22:37:18.19 ID:79nYzABo.net]
早速の返信ありがとうございます。

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

>>372
いろいろと指摘ありがとうございます。
シングルファイルというのはどれか1つのファイルに機能が集約されていてそれをみれば大体の機能はわかるということでしょうか?
まだファルシのルシがコクーンでパージ状態なので、ちょっとずつ見ていこうと思います。

374 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 22:41:26.26 ID:9PrtlM5P.net]
>ファルシのルシがコクーンでパージ状態

なんかかっちょいい

375 名前:デフォルトの名無しさん mailto:sage [2016/02/14(日) 23:27:52.45 ID:l8k1FRK9.net]
ナツカシス

376 名前:デフォルトの名無しさん mailto:sage [2016/02/15(月) 12:04:40.36 ID:fB6G7n7H.net]
C#でExcelのアドイン(として提供されているDLL)を利用する方法はありますか?

377 名前:デフォルトの名無しさん mailto:sage [2016/02/15(月) 13:12:27.80 ID:Xk4DTp51.net]
どなたかPDFを作成出来る無料の帳票出力を教えて下さい
itextでゴリゴリ書きまくってますが不器用すぎて泣きそうです

ウェブサーバ兼アプリケーションサーバ兼データベースサーバの2層クライエントです
言語はc#メインで使ってますが別言語でも構いません

378 名前:デフォルトの名無しさん mailto:sage [2016/02/15(月) 13:24:45.99 ID:RH62Jtcm.net]
>>376
c#でexcel開いてそのアドイン読み込めばいいだろ

379 名前:デフォルトの名無しさん mailto:sage [2016/02/15(月) 13:26:20.25 ID:fB6G7n7H.net]
excel開きたくないんだけど、開かないとだめ?



380 名前:デフォルトの名無しさん mailto:sage [2016/02/15(月) 13:38:28.96 ID:RH62Jtcm.net]
>>379
excel無しでそんなもん使って 何したいん?

381 名前:デフォルトの名無しさん mailto:sage [2016/02/15(月) 14:42:32.23 ID:j4KeTWwY.net]
wpfで画面作って流し込む(適当)

382 名前:デフォルトの名無しさん mailto:sage [2016/02/15(月) 17:49:12.29 ID:fB6G7n7H.net]
>>380
excelを別な用途で使うこともあるので影響でないようにと思ったのだけれど

383 名前:デフォルトの名無しさん mailto:sage [2016/02/15(月) 18:08:31.90 ID:Zk6ilfTk.net]
ただ

384 名前:デフォルトの名無しさん mailto:sage [2016/02/15(月) 19:46:04.29 ID:cfVd0V/r.net]
fontDialogでOpentypeフォントを選択できるようにするにはどうすれば良いのでしょうか?
いろいろ自分なりに調べて、一応ここ(www.pinvoke.net/default.aspx/comdlg32/ChooseFont.html)
のSample Codeを動かしてみたんですが、

bool result = ChooseFont(pChoosefont);

の部分で保護されたメモリ云々と怒られてしまいます。
どうもpChoosefontの割当サイズが小さすぎるようなのですが、その先がわからず手詰まりです
これ以外でも、何か別の方法があればそれでもOKです
(InstalledFontCollectionのotf対応版を作るなど)

385 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 08:50:39.96 ID:bZe3Oc9S.net]
前回時刻(time)と現在時刻(time_v)の時分を比べて同じならa違うならbと言う処理をさせるにはどう書けば良いのでしょうか?

386 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 09:08:18.90 ID:F8ZGrSAk.net]
>>385
if文も分からないうちからプログラム書こうとすんな
入門でもやってこい
初心者以前だろ

387 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 09:12:56.20 ID:XFjRYdah.net]
>>385
時刻の差はTimeSpan。差が無い場合はTimeSpan.Zeroと等しい。
後は分かるだろ。

388 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 09:17:10.77 ID:0FWmG97A.net]
先日の株価がどうのこうのって子?
やっぱり向いてないよ
ランサーズとかで発注したら?
一日無駄にすると一万円超捨ててるって考えたら安いよ

389 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 09:29:21.17 ID:jhW7ARua.net]
>>385
DateTimeをDBに入れたりすると微妙な誤差が混入したりするから、差分をとってある程度小さければ同じとみなすとうまくいく場合があります



390 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 10:05:56.70 ID:/rvb+Ho8.net]
>>384
定義とサンプルコード丸コピしただけで動いたわ Win7/32bit
>InstalledFontCollectionのotf対応版を作るなど
どのみちFontオブジェクト作れないからこれは意味ないよ
フォント使った処理は全部GDI関数とか使わないといけない

391 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 14:00:24.71 ID:7ODQ3t3P.net]
>>390
一応ダイアログは開くんですが、フォントファミリ・スタイル・サイズを選択してOKを押すと落ちるんです
当方64bitなのでそれが原因? とりあえず仮想環境でもテストしてみて、ダメだったら当分は諦めようと思います

392 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 14:33:44.14 ID:/rvb+Ho8.net]
あー、なるほど
CF_USESTYLEがいらない
lpszStyleが書き換えられるのにstringで書き換えられないからエラーになってる

393 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 16:34:02.89 ID:bZe3Oc9S.net]
>>386
…イジメないでください
入門書読んでも分差をはかるの一言だけなのでだからどうすれば?と言う状態なのですみません

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

>>388
そんな所あるなんて知りませんでした!

394 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 18:04:53.07 ID:b0fHFSg3.net]
PDF帳票ってTeXとかじゃダメなのか

395 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 18:07:41.48 ID:G5mJ2hfm.net]
それこそ標準対応のXPSでいいんじゃ

396 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 19:20:11.75 ID:7ODQ3t3P.net]
>>392
おお! なるほど!
該当部分を削ったところ今度は正常に動作しました。ありがとうございます。

できれば選択したフォント名をstringで取得する方法まで教えていただければ幸いです。

397 名前:デフォルトの名無しさん mailto:sage [2016/02/16(火) 20:46:25.41 ID:7ODQ3t3P.net]
すいません自己解決しました。

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

で無事にフォント名が取得できました。ありがとうございました。

398 名前:デフォルトの名無しさん mailto:sage [2016/02/17(水) 16:53:29.04 ID:O2urVYVM.net]
16bitグレースケールのBitmapを作成して保存しようとすると、GDI+エラーになります。
ideone.com/uDBK9v
(33行目)

16bitのBitmapが表示とか出来ないのはモニタとかの仕様上仕方ないとして、
Bitmapデータは出来ている感じなのでとりあえず保存したいのですが、何か間違っているのでしょうか?
自分で2byteバイナリファイルとして保存した方が早いのかもしれませんが、よろしくお願いします。

399 名前:デフォルトの名無しさん mailto:sage [2016/02/17(水) 17:37:09.55 ID:nE07dZjC.net]
Image::Save(string)はpngで保存する
pngの規格には16bitグレイスケール形式はあるみたいだけどGDI+のエンコーダはサポートしてないっぽい
bmpはそもそも16bitグレイスケール扱えたっけ?



400 名前:デフォルトの名無しさん mailto:sage [2016/02/17(水) 17:46:34.78 ID:O2urVYVM.net]
なるほど、pngで保存するのですね。
PixelFormatにFormat16bppGrayScaleがあるのでいちおー扱える様ですが、何か微妙っぽいですね。
作成した16bit BitmapをGraphicsクラスに入れたら、そこでメモリエラーになりました。
WinFormじゃなくWPFを使った方がいいのかな?

>Format16bppGrayScaleは使えるのか?実験してみた。
imagingsolution.blog107.fc2.com/blog-entry-65.html

401 名前:デフォルトの名無しさん [2016/02/17(水) 18:02:43.59 ID:qUPmCiGq.net]
https://www.youtube.com/watch?v=lopqXAj87J8

402 名前:デフォルトの名無しさん mailto:sage [2016/02/17(水) 18:07:35.89 ID:PDqw71kq.net]
>>400
ファイルに書き出してからImagemagickでも使って変換したら?

403 名前:デフォルトの名無しさん mailto:sage [2016/02/17(水) 18:54:21.22 ID:vx64Twya.net]
>>402
調べてみたらMagick.NETで16bit用なんてのもあるのですね。
ありがとうございます。

404 名前:デフォルトの名無しさん mailto:sage [2016/02/17(水) 22:10:28.91 ID:/bboS/b7.net]
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++;
}

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

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

よろしくお願いします。

405 名前:デフォルトの名無しさん mailto:sage [2016/02/17(水) 22:59:38.26 ID:AvPZV+sJ.net]
char space = ' ';
このスペースの文字を指定回数分連結したchar[]作りたいんだけど、
いかようにもできそうで、センスあるコードというかすっきり簡潔な方法ってどんなもんですかね

406 名前:デフォルトの名無しさん mailto:sage [2016/02/17(水) 23:11:48.57 ID:6W33gIm7.net]
下記のサイトにある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のエラーが出ます

動くようにするにはどこをどう直せばいいでしょうか?
よろしくお願いします

407 名前:デフォルトの名無しさん mailto:sage [2016/02/17(水) 23:23:14.47 ID:yAxqBiJ2.net]
Enumerable.Repeat(' ', 10).ToArray()
まずは、センスのないやつどーぞ

408 名前:デフォルトの名無しさん mailto:sage [2016/02/17(水) 23:44:23.75 ID:sImTzQ0m.net]
>>404
データまで含めて>>1とか>>4に貼って

>>405
stringコンストラクタでは不満か?
new string(' ', 10)

409 名前:デフォルトの名無しさん mailto:sage [2016/02/17(水) 23:47:54.88 ID:AvPZV+sJ.net]
>>407 408
レスありがとうございます。
今自分も調べながらやってましたが、
new string(' ', 10)が一番素直ですね・・・
あとはPadLeftとPadRight併用でスッキリ簡潔になりそうです



410 名前:デフォルトの名無しさん mailto:sage [2016/02/17(水) 23:50:51.96 ID:yAxqBiJ2.net]
char[] じゃないんかい!

411 名前:406 mailto:sage [2016/02/18(木) 01:40:58.04 ID:NcYC7RZF.net]
同じ行が2か所ありましたので訂正します。

public TreeNode CreateTreeNode(KernelObject kobj)内にある
foreach (var ko in kobj.Objects)の行でエラーが発生します。

412 名前:406 mailto:sage [2016/02/18(木) 01:55:49.87 ID:NcYC7RZF.net]
管理者権限で実行すればエラーは出ませんでした

413 名前:デフォルトの名無しさん mailto:sage [2016/02/18(木) 09:51:27.98 ID:8Ob41omT.net]
自分で追えよ・・・ Nullで権限がアレでって それで分かんなきゃ直してどうこうなんて無理。

414 名前:デフォルトの名無しさん mailto:sage [2016/02/18(木) 10:02:59.44 ID:SB52IWqF.net]
というか実際に管理者権限が必要なんだろ
直すとか言う問題か?
Windowsのexploit見つけて権限奪取しない限り無理だろ
アホらしい

415 名前:デフォルトの名無しさん [2016/02/18(木) 10:30:01.92 ID:NcYC7RZF.net]
>>413-414
>>1
>なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

416 名前:デフォルトの名無しさん mailto:sage [2016/02/18(木) 10:47:07.89 ID:8Ob41omT.net]
NG処理して終了

417 名前:デフォルトの名無しさん [2016/02/18(木) 11:16:57.56 ID:ZKcMSiXn.net]
https://www.youtube.com/watch?v=JOdFOSa73C8

418 名前:デフォルトの名無しさん mailto:sage [2016/02/18(木) 11:18:37.62 ID:CG2yACMM.net]
>>415
ID:8Ob41omTみたいなクズに言っても無駄だから
NG処理して終了
がおすすめ

419 名前:デフォルトの名無しさん mailto:sage [2016/02/18(木) 11:22:13.67 ID:CG2yACMM.net]
>>415
あと、文をスペース区切りしてるアホはスルー推奨



420 名前:デフォルトの名無しさん mailto:sage [2016/02/18(木) 11:48:51.47 ID:e9QCPxI3.net]
必死すぎワロタ

421 名前:デフォルトの名無しさん mailto:sage [2016/02/18(木) 11:51:57.10 ID:IWN3hz7k.net]
>>420=ID:8Ob41omT

422 名前:デフォルトの名無しさん mailto:sage [2016/02/18(木) 12:07:25.42 ID:tZY/i+gW.net]
こいつマジ必死でワロタ

423 名前:デフォルトの名無しさん mailto:sage [2016/02/18(木) 12:10:50.65 ID:Rcq9wZ6p.net]
いちいち反応せずに黙ってNGしとけクソボケ

424 名前:デフォルトの名無しさん mailto:sage [2016/02/18(木) 15:01:12.25 ID:X4zyXl/p.net]
シリアライズ出来るものと
出来ないもは何が違うのですか?

425 名前:デフォルトの名無しさん mailto:sage [2016/02/18(木) 15:10:53.95 ID:oZznJMNM.net]
シリアライズ出来ないリソースを持っているか否かだね

426 名前:デフォルトの名無しさん mailto:sage [2016/02/18(木) 15:25:33.12 ID:X4zyXl/p.net]
>>425
そこがよく分かりません。どんなものでも
何らかのデータなのだから、シリアライズ出来ない理由が分かりません。

427 名前:デフォルトの名無しさん mailto:sage [2016/02/18(木) 16:33:59.22 ID:UlVzz0Kl.net]
参照型は必ずしもシリアライズできるとは限らん。

お前をシリアライズしたら、
お前の知っている母ちゃんは今まで知ってた母ちゃんじゃないかもしれない。

428 名前:デフォルトの名無しさん mailto:sage [2016/02/18(木) 17:21:52.60 ID:Nn+bwMYz.net]
>>426をシリアライズし、100年後にデシリアライズしたとしよう
その頃にはお前の両親は他界しているし、お前の愛するPCも壊れている
ヒキニートであるお前はシリアライズされる前にできていたことが何一つできず、そのまま餓死するわけだ
多くのオブジェクトは様々な外部の要素に依存しているから、単独でシリアライズ/デシリアライズしても機能しないんだよ

429 名前:デフォルトの名無しさん mailto:sage [2016/02/18(木) 18:00:09.26 ID:05rrwnvo.net]
>>426
ファイルストリームなんかシリアライズしても意味無いでしょ。



430 名前:デフォルトの名無しさん mailto:sage [2016/02/18(木) 18:13:08.76 ID:TyHWpNkb.net]
説明下手な奴に限って傲慢あるある

431 名前:デフォルトの名無しさん mailto:sage [2016/02/18(木) 18:27:30.28 ID:hhAx0KRP.net]
やろうと思えばシリアライズできないデータなんか無いよ
メモリダンプ取って直にオブジェクト取り出せるから
んなことやっても意味ないから馬鹿以外はやらない

432 名前:デフォルトの名無しさん mailto:sage [2016/02/18(木) 19:19:09.72 ID:kgpZ3dMl.net]
そーいや自作ビューアのサムネイルを保存するのに、横着して全部シリアライズしてたら無駄にでかくなった
使う分だけシリアライズってどうすんの?

433 名前:デフォルトの名無しさん mailto:sage [2016/02/18(木) 19:35:52.42 ID:42G1e3Su.net]
問題になってる出来る出来ないってのは本質的に出来るかどうかではなく
シリアライズ出来ますって属性がついてるかどうかの違いの気がする
あるいは特定のシリアライザがシリアル化/解除の方法を知ってるかどうかか

434 名前:デフォルトの名無しさん mailto:sage [2016/02/18(木) 19:51:06.90 ID:oZznJMNM.net]
まずはシリアル化とは何かを定義しよう

435 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/02/18(木) 19:52:01.87 ID:ir69mPa/.net]
>>432
画像を縮小

436 名前:デフォルトの名無しさん mailto:sage [2016/02/18(木) 20:11:57.88 ID:TyHWpNkb.net]
>>434
朝牛乳かけて食べるやつ

437 名前:デフォルトの名無しさん mailto:sage [2016/02/18(木) 21:03:39.51 ID:05rrwnvo.net]
>>432
Attribute付けるだけでは?

438 名前:デフォルトの名無しさん mailto:sage [2016/02/18(木) 23:13:12.28 ID:X4zyXl/p.net]
>>431
そう言う事ですね。
やれば出来るんですよね。納得。

439 名前:デフォルトの名無しさん mailto:sage [2016/02/18(木) 23:49:57.72 ID:J2TnYaKy.net]
いやアンマネージリソースのハンドルとか持ってたら無理だろ
シリアライズ自体はできると言えなくもないが
デシリアライズした時点で確実に壊れている



440 名前:デフォルトの名無しさん mailto:sage [2016/02/19(金) 00:00:00.31 ID:cNiHKU+s.net]
何を保持してるしているか判断かのうであれば
自前のシリアル化デシリアル化する部分のコード書けるでしょう

逆に何を保持しているか知らない物は保存する価値なんてない

441 名前:431 mailto:sage [2016/02/19(金) 05:37:45.34 ID:HFWhA+S0.net]
馬鹿だなお前ら
こういう食い下がり方する奴には、正しくなかろうと、
本人が望んでる答えを返してお引き取り願うのが一番正しい
この手の質問は女に多い
同意して欲しいだけのくせに否定されることに耐えられないから
質問の体を取らせているにすぎない

442 名前:デフォルトの名無しさん mailto:sage [2016/02/19(金) 07:57:47.74 ID:6O+Ly4Vm.net]
モヒカンとは最も相容れないタイプだな…

443 名前:デフォルトの名無しさん mailto:sage [2016/02/19(金) 10:19:14.45 ID:3/d8Z/on.net]
>>428
頭悪い童貞が書くような長文だ。

444 名前:デフォルトの名無しさん mailto:sage [2016/02/19(金) 14:36:52.18 ID:AYZd97/P.net]
アホな質問かもしれないんですが・・・
一つのメソッドの中でコントロールいじる場合、メソッド抜けるまでは反映されませんよね
たとえば
Label1.Text = "0000";
public void ChangeText(){
Label1.Text = "1234";
Sleep(30);
Label1.Text = "5678";}
みたいなとき、Label1は0000の表示後に、Sleep分表示がとまって、5678となって1234が表示されます
メソッド抜けるまでは画面上のコントロールの変更ってのは反映されないのは仕方ないんですかね

445 名前:デフォルトの名無しさん mailto:sage [2016/02/19(金) 14:38:57.86 ID:AYZd97/P.net]
>Sleep分表示がとまって、5678となって1234が表示されます
1234は表示されないの間違いです・・・
初心者的には上のコードだと、1234が表示された状態でSleep(30)分待機して5678に切り替わって欲しいところなんですが

446 名前:デフォルトの名無しさん mailto:sage [2016/02/19(金) 14:57:16.42 ID:cObyQ139.net]
Label1.Refresh(); を入れては

447 名前:デフォルトの名無しさん mailto:sage [2016/02/19(金) 15:01:07.03 ID:qpWieAWs.net]
asyncメソッドにしてSleepの代わりにTask.Delayを置いてawaitすれば〜?

とは言うものの、メッセージループ理解できてない初心者にこれをやらせると、どこかで爆発しそうだな

448 名前:デフォルトの名無しさん mailto:sage [2016/02/19(金) 15:15:36.22 ID:PT7381jP.net]
>>444
其のためにBeginInvokeってのが有って、ソレを使えば表示更新したあとの処理が記述できますよ

449 名前:デフォルトの名無しさん mailto:sage [2016/02/19(金) 15:16:28.45 ID:Kz4OZB/T.net]
UIスレッドでSleepしたらそこで処理が完全に止まっちゃうでしょ
1234に書き変えたら、タイマーかワーカースレッドに投げて即リターン



450 名前:デフォルトの名無しさん [2016/02/19(金) 16:35:02.98 ID:3ls1YNX5.net]
windows.controlsが使いたくてsilverlightを導入して参照を追加したんだが
RichBoxTextを使おうとすると曖昧な参照ってエラーメッセージが出るんだがこれどうにかならないのか?
System...RichBoxTextってしたらエラー自体はなくなるんだが
その後RichBoxText型で宣言した変数にa.Textって使い方が出来なくて困ってるんだ
a.Textが使える方法か、曖昧な参照ってエラーがなくなる方法か教えてください
silverlight導入してから再起動とかは一応してみました

451 名前:デフォルトの名無しさん mailto:sage [2016/02/19(金) 17:29:52.93 ID:y4Mdmv2A.net]
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という書き方は出来ないよ。

452 名前:デフォルトの名無しさん mailto:sage [2016/02/20(土) 20:26:10.11 ID:e/Byruqe.net]
ちょっと良くわからないので質問します

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

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で調べても「ファイルの途中から上書きする」ような操作がさっぱり見当たりません

実装困難であればファイルにデータのオブジェクトを作成してバイナリでまるまる書き込む/読み込む形式に設計変えようと思ってます

453 名前:デフォルトの名無しさん mailto:sage [2016/02/20(土) 20:59:49.31 ID:fK254q94.net]
FileStreamを使ってるならSeekしてWriteしたらダメなの?

454 名前:デフォルトの名無しさん mailto:sage [2016/02/20(土) 21:19:49.73 ID:G849YxIn.net]
A1とか何でdataがどうなってるのか知らんが
書き変えたい位置にSeekしてからWriteすれば書き変わるんじゃないの

455 名前:デフォルトの名無しさん mailto:sage [2016/02/20(土) 21:38:04.45 ID:e/Byruqe.net]
>>453>>454
申し訳ありません、その方法がわからないのです

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

seekもやFileStreamのReadとかも調べてみましたが「今A2の行だよ」と知る方法がさっぱりわかりません

456 名前:デフォルトの名無しさん mailto:sage [2016/02/20(土) 22:03:22.35 ID:9PjCd1YL.net]
その例だと読み込み時にキー毎のバイナリ位置を保存しておく必要があるね

でも可変長のテキストファイルっぽいし
変更位置以降は全て書き直しになる可能性が高いから
ファイル操作の部分操作に頑張って対応しなくても良いケースの予感がします

457 名前:デフォルトの名無しさん mailto:sage [2016/02/20(土) 22:05:12.15 ID:fK254q94.net]
小さいファイルなら途中から書き変えるなんてやらずに、
丸ごと読み込んで丸ごと書き出した方がいいと思うよ。

まずは、それで入出力を完成させたらどうだろう。
他の方法は、その後にトライすればいいんじゃないかな。

458 名前:デフォルトの名無しさん mailto:sage [2016/02/20(土) 22:57:06.17 ID:S80Z1mdL.net]
パワーポイントに配置したWindowsmediaplayerのURLをC#から指定する方法を教えていただけないでしょうか

459 名前:デフォルトの名無しさん mailto:sage [2016/02/20(土) 23:32:02.40 ID:G849YxIn.net]
>>455
テキストファイルのような、行で区切られてるようなものをイメージしてるなら
ファイルの途中を書き換える事は出来ないと思っておけ
一旦全部読み込んで、行ごとに分けて、特定行を探して、書き換えて全部の行を保存しろ



460 名前:デフォルトの名無しさん mailto:sage [2016/02/20(土) 23:38:43.21 ID:KnuHyZ1B.net]
>>459
ランダムアクセスは?

461 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 00:28:41.92 ID:wZfvWExq.net]
隙間がないから長さが変わったら、後ろは全部書き換えなきゃ駄目。

462 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 00:30:08.83 ID:LCJuLSZW.net]
だから原則ファイルに一度でも書き込んだら元ファイルのその書き込んだ位置以降の情報は全て駄目になると思っておいた方がいい
あとどう考えても同じファイルに対して読んだり書いたりとトリッキーなことやるよりは
読み込み用と書き込み用のバッファなりストリームをそれぞれ用意して一気に読み書きする方が速い

463 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 00:30:42.49 ID:ckgq3Xt/.net]
可変長で書き換えるなら別のFileStreamに書き込んだほうが楽だわな

464 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 03:35:57.15 ID:XoaHuoua.net]
enumerableなreadlineつかおう

465 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 03:43:40.82 ID:GEHiOhH4.net]
オレオレのデータ構造なんか最初から選ぶべきではなかった
習作ならまあええけど

466 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 09:50:40.92 ID:oCkiVU5T.net]
>>465
じゃあ>>452の場合どういったデータ構造が適切なんでしょうか

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

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

という感じです

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

他にいい方法があるならご教示願いたいです

467 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 10:08:59.85 ID:MPr2aBz2.net]
そもそも画面遷移で画面がファイル読み書きとかそんな事はしない
画面に必要なVMを取得するクエリをまとめたサービス
画面に割り当てられてるユースケースを解決するコマンドをまとめたサービス
画面はこれらのサービスを呼び出すだけ
データの取得も更新もサービスが行う
画面側でデータをどう保存復元するか何て事は考えたら負け

468 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 10:21:02.36 ID:ZWCSgZld.net]
開発対象の規模感にもよるけれどね

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

データ構造は編集方法より利用方法に最適化されている方が幸せだと思う

469 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 10:37:15.77 ID:6FoMFdKR.net]
>>466
> データをオブジェクトとして確保して、バイナリ形式で読み書きする方法です
XML でいいだろ
読み書きルーチンを自前で書かなくてすむし
dobon.net/vb/dotnet/file/xmlserializer.html



470 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 18:23:24.52 ID:NjwYLQlW.net]
>>466
画面遷移のたびにファイルに保存する必要や、そのファイルが全画面で同じである必要あるのか?

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

まあ、とりあえず思うように作ってみて、それから考えればいいんじゃない

471 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 18:33:52.95 ID:sKosHeoc.net]
taskクラスやスレッドクラスって
exception受け取れないの?
スレッドでのコネクション再接続機能作りたいんだけど?

472 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 20:18:58.15 ID:mOR+hll2.net]
TaskはWaitすれば例外投げると思う

473 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 20:53:20.79 ID:x8hzzpdB.net]
DataRowにDataTable使っているんだけど、
行の追加処理をループで回してると100件超えたらとたんに重くなって、300件なんか処理させようものならメモリ不足で落ちる
デバックしてみるとdt.Rows.Add()の部分で極端に遅くなってるようですが
Selectが前の処理にあるとインデックス再生成で遅くなるという記事は見つけたけど、特にそんなこともしてない
DataSetをstaticで保持して必要なフォームでFillしてデータ処理してるんだけど
DataSetをstaticにしてることが原因なんでしょうか

474 名前:デフォルトの名無しさん mailto:sage [2016/02/21(日) 22:38:20.29 ID:NjwYLQlW.net]
>>471
exception受け取るという意味がよくわからんが
https://msdn.microsoft.com/ja-jp/library/dd997415(v=vs.110).aspx

>>473
どんなマシンでどんなレコードを操作してるのか知らんが
普通300件程度で目に見えるほど遅くはならんと思うが

475 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 01:49:27.66 ID:+DBaWBH6.net]
スレッドセーフな作りを学ぶには、どんな参考書がよいでしょうか?

476 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 06:22:13.43 ID:/YfJIw9H.net]
習うより慣れよじゃね

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

これさえ守ればなんとかなる。

477 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 06:34:12.91 ID:WxVdqihh.net]
正分毎に処理させるにはどうすればいいの?
例)0:00:23にボタンを押してスタートしても0:01:00から1分毎に処理する

478 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 08:21:58.49 ID:RzYeJvwW.net]
>>477
引き算してタイマーセットすればいいだけだろ

479 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 09:14:16.78 ID:E9rUGhfo.net]
まるで成長していない…



480 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 11:39:08.80 ID:/uXnY6ua.net]
TimeSpanだな

481 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 13:28:39.91 ID:vpSvShmB.net]
>>476
初心者には
> スレッドにするオブジェクトは使いまわさないこと
がピンとこないっす
ここでいうスレッドって何を指しておりますか?

482 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 13:35:45.29 ID:vpSvShmB.net]
追加で質問ですが、staticな変数は使わないとあるけど
たとえば1000人の顧客データがDBに入ってるとして、
画面ごとに1000人のデータをDBから引っ張ってくるのがいいってこと?
今作ってみてるのは、初回起動時にDBからデータとってきて
staticな顧客情報クラスのプロパティに読み込んでそれを使い回してるんだけどだめ?

483 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 13:45:24.22 ID:8Ue91Bmo.net]
>>482
まず

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

のどっちです?

484 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 13:59:27.59 ID:vpSvShmB.net]
>>482
クライアント上で動作するWindowsフォームです
MySQLと連携させてます

485 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 14:25:03.48 ID:eN79gWGq.net]
>>484
それならwinフォーム側(c#)の設計はそれでいいんじゃない?
スレッドセーフは特に関係ない。

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

何を心配してスレッドセーフというキーワードが出てきたの?

486 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 15:49:01.26 ID:XzDT2iuo.net]
彼?が聞いていたのは「staticのDataTableにrow100件追加すると重くなる何で?」だったと思う

487 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 17:40:37.15 ID:iE2GkHGd.net]
a | b | c
見たいな式でbが含まれてないか調べる方法ってどうすればええんでしょうか?

488 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 17:41:43.60 ID:DP7yI1JH.net]
>>482
そんな理由でstaticは止めとけ。

489 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 17:44:32.52 ID:DP7yI1JH.net]
>>487
!"a | b | c".Contains('b')



490 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 18:55:25.80 ID:1zVJqqIu.net]
スレッドセーフなつくりに関しては

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


こういったことが載ってる書籍ってありますか?

491 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 19:24:09.33 ID:Vk7WMYI1.net]
>>490
オライリーの平行コンピューティング技法
マルチスレッドは小手先のノウハウより基礎が大事

492 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 20:37:34.94 ID:BBvTeRCQ.net]
>>487
式でって、構文解析でもやってんの?

493 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 20:39:55.32 ID:xw1fAbOE.net]
C#でDBアクセスする,っていったら普通はどうするの?ADO?

494 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 20:57:11.31 ID:qgHj34IQ.net]
クラサバならDataSet、WebならEF

495 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 20:58:34.94 ID:XPqXIrud.net]
上司が戦前生まれのおじいちゃんでmapperは許さないと言うならADO.NETしかないだろうね
そうでなければコンテキストのアーキテクチャにマッチしたものを自由に使えばいい
ただし僕の考えた最強のDataBaseCommonは避けたほうが賢明だ

496 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 21:06:43.09 ID:xSKr2cZb.net]
>>493
EntityFramework

497 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 22:46:47.35 ID:hopELxhL.net]
最近はドキュメントストアとイベントストアばかりだわ
リレーショナルとか今更バカバカしくなる

498 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 22:47:21.82 ID:sza9ynkf.net]
SHDocVw.InternetExplorerを使ってIEを操作していって
ETC利用紹介サービスのサイトでPDFの明細を表示するところまで行ったのですが
この後このPDFをローカルファイルとして保存するにはどうしたら良いでしょうか
もしくはPDFをダウンロードできるURLを知る方法を教えて下さい

ETC利用照会サービス
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

499 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 01:01:54.38 ID:+adornFd.net]
パケットキャプチャしてその通りにアクセスすれば良いよ



500 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 04:05:39.81 ID:iF53IQph.net]
質問します

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

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

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

なんかこう、もうちょっと楽な制御方法はないのでしょうか。
こういう場合の定石みたいのがあるなら知りたいです

501 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 04:26:28.46 ID:tEtmGt/9.net]
C#コード側でチェックボックスのコントロールを生成して配列にでもぶち込んでおけばいいんじゃまいか
forループでIsChecked調べればよろし

502 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 06:39:35.45 ID:E2PPlRvu.net]
>>500
WindowsFormアプリ?

503 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 08:17:56.09 ID:RYitu+qp.net]
涙目になりながらデザイナでイベントハンドラ設定してる所を想像した

504 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 08:21:21.05 ID:kbsxNcQ6.net]
そのチェックボックスに結びついている何らかのモデルがあるはずだから、それを走査すればいい。

505 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 08:39:41.98 ID:RYitu+qp.net]
スレッド云々に関しては、UI(WinFormsのタイマーも含む)は
作成したスレッド以外から操作してはいけない決まりがある
ControlはInvokeかBeginInvokeメソッドを持っているから
他のスレッドから触りたければそれらを経由して操作する

UIとスレッドのルールはWindows以外のプラットフォームでも大抵同じなので
覚えておくといつか役に立つかも
立たないかも

506 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 11:37:42.35 ID:5c0zO2hz.net]
linqについてですが
DataTableに列Aと列Bがあって、列AにはBを変換した文字列を入れてます
Linqで一気にやろうと
dt.AsEnumerable().Select(row => row["A"] = henkan(row["B"].ToString()));
としてみたのですが上手くいきません
何が悪いんでしょうか

507 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 12:29:24.57 ID:gpEp1eYY.net]
emitされてないって下らない理由だったらどうしよう

508 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 12:46:43.35 ID:5HhRd+zG.net]
LINQ厨、答えてやれ。

509 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 12:57:53.16 ID:+MN4l2JU.net]
emitって言葉有名ですか?
始めて聞いたんですが



510 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 13:09:48.84 ID:JrRFhuQq.net]
普通はSQLで書く仕事だな

511 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 14:07:32.88 ID:EM1+lJ6M.net]
エスパーじゃないんでうまくいきませんだけじゃちょっと

512 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 14:31:40.10 ID:mDltGRvi.net]
>>510
SQLじゃ遅いからじゃね?

513 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 14:45:30.79 ID:5c0zO2hz.net]
すみません、emitって初めてききました・・・
SQLに持っていく前に暗号化してUpdateしようとしてるんです
>>511
デバックで実行見てても変換処理に行く様子はなく、抜けたあとのdtについても
該当の列には変換後の値が入ってないんです

似たような一括置換の例見ていると .ToList()がついてるんですが、それが抜けてるせいでしょうか

514 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 15:04:28.61 ID:EM1+lJ6M.net]
Select呼び出した時点では列挙は実行されない(遅延評価)
foreachすることで初めて評価される
ToList()とかCount()とかは即時評価

副作用のある処理はLINQのメソッドチェーン内では書かないのが無難
素直にforeachでいいんじゃない?

515 名前:498 [2016/02/23(火) 16:27:16.88 ID:lkjUbvnh.net]
>>499
なるほど!と思ってwireSharkってのを使ってみたけど難しすぎます。
でもよく考えたらPDFは既にIEに表示されてるからメモリ上にはファイルが有るわけで・・・
そこからローカルフォルダに保存となるとadobeを操作することになるんですかね。
こっちもちょっと自分にはハードル高いです。
webBrowserクラスからファイルの保存ボタン押せないか探ってみます。
ありがとうございました。

516 名前:デフォルトの名無しさん [2016/02/23(火) 16:39:37.63 ID:DVYg3A+E.net]
www.kurumaerabi.com/shop/detail/40003946/

517 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 17:16:42.33 ID:5c0zO2hz.net]
>>514
Linq使い始めたところだったので勉強にになります
foreachで処理させました ありがとうございます

518 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 18:53:15.86 ID:MLn0TlkP.net]
>>500
FormにはControlsと言うプロバティーがあって、ここに全てのコントロールが格納されています
定石はこのコントロールからCheckBoxを抽出して、foreachループでハンドラをセットして処理するのが一般的かな?
全てのコントロールからチェックボックスを抽出する方法とかコードでイベントをセットする方法を知っていれば簡単です

519 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 20:08:51.57 ID:iF53IQph.net]
>>500です
みなさんのおかげで解決しました。
結局、コントロールを制御する関数をInvokeしてタイマの中に突っ込みました。
本来はこういう実装ならカウントアップスレッドを作ってその中でInvokeするのが正なのでしょうけどもスレッドは勉強することが多そうなのでとりあえずタイマで良しとします

いやあ、最悪MouseMoveをトリガにしようか悩んだのて助かりました



520 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 21:14:59.21 ID:OvWSY5Gq.net]
>>475
動かしてみてエラーしたらその時点で対策すればいいよ

521 名前:デフォルトの名無しさん mailto:sage [2016/02/25(木) 18:30:48.11 ID:M2uXlhYi.net]
重たい処理をBackgroundWorkerにさせようと思うんだけど、
ネットで見てるサンプルはほとんど重たい処理のところに適当なループが書いてある
実際にやりたい処理は、別クラスのメソッドをいくつも呼び出すんだけど、
呼び出し先でWorkerReportProgressを更新するにはどうしたらいいの?

522 名前:デフォルトの名無しさん mailto:sage [2016/02/25(木) 20:01:46.64 ID:m/jN0scy.net]
無理に決まってんじゃん

523 名前:498 mailto:sage [2016/02/25(木) 22:15:35.13 ID:nblLHdJf.net]
解決しました
普通に拡張子pdfにしたらダウンロードできました
こんな単純なことで3日も悩んじゃった

524 名前:デフォルトの名無しさん mailto:sage [2016/02/25(木) 22:46:47.71 ID:bvnWfi3I.net]
>>521
更新処理を書いて渡すだけ

525 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 01:10:33.96 ID:+59ndj2V.net]
>>524
すみません・・・もう少し具体的に教えて下さいませ

526 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 09:11:43.07 ID:JdiTwSlc.net]
別クラスのメソッドとやらの仕様を具体的に教えてもらえないと教えてあげられません

そのメソッド変更できんの?できないの?
そのクラス進捗どうですか機能はあるの?ないの?

527 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 09:49:52.84 ID:fV5IfbGO.net]
どうせないないづくしだとおもったので
無理に決まってんじゃんっていったよ

528 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 10:21:22.48 ID:LwzDqGm0.net]
>>521
Taskを使ったら?

529 名前:デフォルトの名無しさん [2016/02/26(金) 11:04:27.42 ID:1jTGKv1k.net]
hatedaihatsu.web.fc2.com/2.html



530 名前:デフォルトの名無しさん mailto:sage [2016/02/27(土) 22:33:21.13 ID:cpgi4D1s.net]
パラメータをフラットに扱いたいです。

tag type human
tag sex man

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

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

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

比較の際に値が含まれてたらtrueでいいんですけど、たまに複数で比較したいときもあると思います。

531 名前:デフォルトの名無しさん mailto:sage [2016/02/27(土) 23:04:36.18 ID:F0cA5DZY.net]
>>530
ここはC#のスレなんだけど

532 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/02/27(土) 23:54:34.85 ID:Bxm5eu58.net]
>>530
ビット演算

533 名前:デフォルトの名無しさん mailto:sage [2016/02/28(日) 09:45:59.90 ID:5lqkohLH.net]
>>530
それはコレクションではなく、その要素の型の問題だべ。

534 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 07:17:09.96 ID:nhRiUMTh.net]
doubleの数値aを条件式でa<10ならbみたいな処理ってどうするの?

535 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 07:18:54.21 ID:s/kIhvzC.net]
if (a < 10) b;






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

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

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