ふらっと C#,C♯,C#(初心者用) Part119at TECH
ふらっと C#,C♯,C#(初心者用) Part119 - 暇つぶし2ch404:デフォルトの名無しさん
16/02/17 22:10:28.91 /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:デフォルトの名無しさん
16/02/17 22:59:38.26 AvPZV+sJ.net
char space = ' ';
このスペースの文字を指定回数分連結したchar[]作りたいんだけど、
いかようにもできそうで、センスあるコードというかすっきり簡潔な方法ってどんなもんですかね

406:デフォルトの名無しさん
16/02/17 23:11:48.57 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:デフォルトの名無しさん
16/02/17 23:23:14.47 yAxqBiJ2.net
Enumerable.Repeat(' ', 10).ToArray()
まずは、センスのないやつどーぞ

408:デフォルトの名無しさん
16/02/17 23:44:23.75 sImTzQ0m.net
>>404
データまで含めて>>1とか>>4に貼って
>>405
stringコンストラクタでは不満か?
new string(' ', 10)

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

410:デフォルトの名無しさん
16/02/17 23:50:51.96 yAxqBiJ2.net
char[] じゃないんかい!

411:406
16/02/18 01:40:58.04 NcYC7RZF.net
同じ行が2か所ありましたので訂正します。
public TreeNode CreateTreeNode(KernelObject kobj)内にある
foreach (var ko in kobj.Objects)の行でエラーが発生します。

412:406
16/02/18 01:55:49.87 NcYC7RZF.net
管理者権限で実行すればエラーは出ませんでした

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

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

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

416:デフォルトの名無しさん
16/02/18 10:47:07.89 8Ob41omT.net
NG処理して終了

417:デフォルトの名無しさん
16/02/18 11:16:57.56 ZKcMSiXn.net
URLリンク(www.youtube.com)

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

419:デフォルトの名無しさん
16/02/18 11:22:13.67 CG2yACMM.net
>>415
あと、文をスペース区切りしてるアホはスルー推奨

420:デフォルトの名無しさん
16/02/18 11:48:51.47 e9QCPxI3.net
必死すぎワロタ

421:デフォルトの名無しさん
16/02/18 11:51:57.10 IWN3hz7k.net
>>420=ID:8Ob41omT

422:デフォルトの名無しさん
16/02/18 12:07:25.42 tZY/i+gW.net
こいつマジ必死でワロタ

423:デフォルトの名無しさん
16/02/18 12:10:50.65 Rcq9wZ6p.net
いちいち反応せずに黙ってNGしとけクソボケ

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

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

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

427:デフォルトの名無しさん
16/02/18 16:33:59.22 UlVzz0Kl.net
参照型は必ずしもシリアライズできるとは限らん。
お前をシリアライズしたら、
お前の知っている母ちゃんは今まで知ってた母ちゃんじゃないかもしれない。

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

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

430:デフォルトの名無しさん
16/02/18 18:13:08.76 TyHWpNkb.net
説明下手な奴に限って傲慢あるある

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

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

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

434:デフォルトの名無しさん
16/02/18 19:51:06.90 oZznJMNM.net
まずはシリアル化とは何かを定義しよう

435:片山博文MZ ◆T6xkBnTXz7B0
16/02/18 19:52:01.87 ir69mPa/.net
>>432
画像を縮小

436:デフォルトの名無しさん
16/02/18 20:11:57.88 TyHWpNkb.net
>>434
朝牛乳かけて食べるやつ

437:デフォルトの名無しさん
16/02/18 21:03:39.51 05rrwnvo.net
>>432
Attribute付けるだけでは?

438:デフォルトの名無しさん
16/02/18 23:13:12.28 X4zyXl/p.net
>>431
そう言う事ですね。
やれば出来るんですよね。納得。

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

440:デフォルトの名無しさん
16/02/19 00:00:00.31 cNiHKU+s.net
何を保持してるしているか判断かのうであれば
自前のシリアル化デシリアル化する部分のコード書けるでしょう
逆に何を保持しているか知らない物は保存する価値なんてない

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

442:デフォルトの名無しさん
16/02/19 07:57:47.74 6O+Ly4Vm.net
モヒカンとは最も相容れないタイプだな…

443:デフォルトの名無しさん
16/02/19 10:19:14.45 3/d8Z/on.net
>>428
頭悪い童貞が書くような長文だ。

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

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

446:デフォルトの名無しさん
16/02/19 14:57:16.42 cObyQ139.net
Label1.Refresh(); を入れては

447:デフォルトの名無しさん
16/02/19 15:01:07.03 qpWieAWs.net
asyncメソッドにしてSleepの代わりにTask.Delayを置いてawaitすれば~?
とは言うものの、メッセージループ理解できてない初心者にこれをやらせると、どこかで爆発しそうだな

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

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

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

451:デフォルトの名無しさん
16/02/19 17:29:52.93 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:デフォルトの名無しさん
16/02/20 20:26:10.11 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:デフォルトの名無しさん
16/02/20 20:59:49.31 fK254q94.net
FileStreamを使ってるならSeekしてWriteしたらダメなの?

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

455:デフォルトの名無しさん
16/02/20 21:38:04.45 e/Byruqe.net
>>453>>454
申し訳ありません、その方法がわからないのです
ちなみに
A1とかをキーにして、書き換えたい行を特定し、ファイル操作を実行
という流れを想定しています
seekもやFileStreamのReadとかも調べてみましたが「今A2の行だよ」と知る方法がさっぱりわかりません

456:デフォルトの名無しさん
16/02/20 22:03:22.35 9PjCd1YL.net
その例だと読み込み時にキー毎のバイナリ位置を保存しておく必要があるね
でも可変長のテキストファイルっぽいし
変更位置以降は全て書き直しになる可能性が高いから
ファイル操作の部分操作に頑張って対応しなくても良いケースの予感がします

457:デフォルトの名無しさん
16/02/20 22:05:12.15 fK254q94.net
小さいファイルなら途中から書き変えるなんてやらずに、
丸ごと読み込んで丸ごと書き出した方がいいと思うよ。
まずは、それで入出力を完成させたらどうだろう。
他の方法は、その後にトライすればいいんじゃないかな。

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

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

460:デフォルトの名無しさん
16/02/20 23:38:43.21 KnuHyZ1B.net
>>459
ランダムアクセスは?

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

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

463:デフォルトの名無しさん
16/02/21 00:30:42.49 ckgq3Xt/.net
可変長で書き換えるなら別のFileStreamに書き込んだほうが楽だわな

464:デフォルトの名無しさん
16/02/21 03:35:57.15 XoaHuoua.net
enumerableなreadlineつかおう

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

466:デフォルトの名無しさん
16/02/21 09:50:40.92 oCkiVU5T.net
>>465
じゃあ>>452の場合どういったデータ構造が適切なんでしょうか
具体的な画面イメージを書くと
メイン画面:A1に遷移する、初期データの入ったファイルを作る(ファイルはテキストボックスで名前を決めて複数作成可能)
A1画面:A1のデータを入力し、A2に遷移する
A2画面:A2のデータを入力し、A1,A3に遷移する
A3画面:A3のデータを入力し、A2に遷移する
*各画面ともXボタンやそれ用のボタンでメイン画面に戻ることが可能
*画面はそれぞれWindowとして用意し、遷移時に遷移先画面をshowし自画面をCloseするものとする
という感じです
現在考えているのはみなさんおっしゃるようにデータを保持しておいて遷移が発生した時に一気に全部読み書きする方法か
データをオブジェクトとして確保して、バイナリ形式で読み書きする方法です
他にいい方法があるならご教示願いたいです

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

468:デフォルトの名無しさん
16/02/21 10:21:02.36 ZWCSgZld.net
開発対象の規模感にもよるけれどね
ただ部分保存する事を検討する価値を感じるデータ量なら
画面とは疎結合の方が良いとは思う
データ構造は編集方法より利用方法に最適化されている方が幸せだと思う

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

470:デフォルトの名無しさん
16/02/21 18:23:24.52 NjwYLQlW.net
>>466
画面遷移のたびにファイルに保存する必要や、そのファイルが全画面で同じである必要あるのか?
それだけじゃどんなデータ構造にすべきかなんて判断できない
そしてそのデータをどこにどうやって保存して利用するかも検討する余地がある
最終的に欲しいものも良くわからない
まあ、とりあえず思うように作ってみて、それから考えればいいんじゃない

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

472:デフォルトの名無しさん
16/02/21 20:18:58.15 mOR+hll2.net
TaskはWaitすれば例外投げると思う

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

474:デフォルトの名無しさん
16/02/21 22:38:20.29 NjwYLQlW.net
>>471
exception受け取るという意味がよくわからんが
URLリンク(msdn.microsoft.com)(v=vs.110).aspx
>>473
どんなマシンでどんなレコードを操作してるのか知らんが
普通300件程度で目に見えるほど遅くはならんと思うが

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

476:デフォルトの名無しさん
16/02/22 06:22:13.43 /YfJIw9H.net
習うより慣れよじゃね
staticな変数を使わないこと
スレッドにするオブジェクトは使いまわさないこと
ファイルやDBみたいな資源を扱うなら適切な場所でlockする
これさえ守ればなんとかなる。

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

478:デフォルトの名無しさん
16/02/22 08:21:58.49 RzYeJvwW.net
>>477
引き算してタイマーセットすればいいだけだろ

479:デフォルトの名無しさん
16/02/22 09:14:16.78 E9rUGhfo.net
まるで成長していない…

480:デフォルトの名無しさん
16/02/22 11:39:08.80 /uXnY6ua.net
TimeSpanだな

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

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

483:デフォルトの名無しさん
16/02/22 13:45:24.22 8Ue91Bmo.net
>>482
まず
・あなたが作っているのはWebサーバなどサーバ上で動くアプリ?
・それともWindows10など、クライアントOS上で動かすアプリ?
のどっちです?

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

485:デフォルトの名無しさん
16/02/22 14:25:03.48 eN79gWGq.net
>>484
それならwinフォーム側(c#)の設計はそれでいいんじゃない?
スレッドセーフは特に関係ない。
SQLサーバ上のデータを複数人で操作した時のことを心配しているなら
それはDBMSの話でこのスレとはちょっと方向がズレる。
まぁ複数テーブルを変更するならc#側で適切なトランザクション制御をする必要はある
何を心配してスレッドセーフというキーワードが出てきたの?

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

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

488:デフォルトの名無しさん
16/02/22 17:41:43.60 DP7yI1JH.net
>>482
そんな理由でstaticは止めとけ。

489:デフォルトの名無しさん
16/02/22 17:44:32.52 DP7yI1JH.net
>>487
!"a | b | c".Contains('b')

490:デフォルトの名無しさん
16/02/22 18:55:25.80 1zVJqqIu.net
スレッドセーフなつくりに関しては
このサイトが非常に分かりやすくて勉強になりました
URLリンク(blogs.msdn.com)

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

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

492:デフォルトの名無しさん
16/02/22 20:37:34.94 BBvTeRCQ.net
>>487
式でって、構文解析でもやってんの?

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

494:デフォルトの名無しさん
16/02/22 20:57:11.31 qgHj34IQ.net
クラサバならDataSet、WebならEF

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

496:デフォルトの名無しさん
16/02/22 21:06:43.09 xSKr2cZb.net
>>493
EntityFramework

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

498:デフォルトの名無しさん
16/02/22 22:47:21.82 sza9ynkf.net
SHDocVw.InternetExplorerを使ってIEを操作していって
ETC利用紹介サービスのサイトでPDFの明細を表示するところまで行ったのですが
この後このPDFをローカルファイルとして保存するにはどうしたら良いでしょうか
もしくはPDFをダウンロードできるURLを知る方法を教えて下さい
ETC利用照会サービス
URLリンク(www.etc-user.jp)
最終的にIE上でPDFを表示させた時のURLはこんなかんじ
URLリンク(www2.etc-user.jp)パラメータいっぱい&funccode=1011110000&nextfunc=1011111000&x=0&y=0

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

500:デフォルトの名無しさん
16/02/23 04:05:39.81 iF53IQph.net
質問します
100個のチェックボックスがあります。
それらがチェックされた個数をカウントしたいのですが、流石にチェックボックス100個にイベントハンドラつけるのは大変なので別な方法を模索しています
今まで試したのは
チェックボックスのあるウィンドウにMouseUpとかそういう系統のイベントをつける
→MouseUp後にチェックボックスの状態が変わるようで不可
タイマを使って逐次カウンタ処理を走らせる
→カウンタ処理は他画面でも使い回す都合、別クラスにしています。
そのせいかどうか知らないけど、タイマとコントロールのスレッドが異なるので安全じゃない、例外で制御してね
みたいなメッセージが出てきて止まります
なんかこう、もうちょっと楽な制御方法はないのでしょうか。
こういう場合の定石みたいのがあるなら知りたいです

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

502:デフォルトの名無しさん
16/02/23 06:39:35.45 E2PPlRvu.net
>>500
WindowsFormアプリ?

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

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

505:デフォルトの名無しさん
16/02/23 08:39:41.98 RYitu+qp.net
スレッド云々に関しては、UI(WinFormsのタイマーも含む)は
作成したスレッド以外から操作してはいけない決まりがある
ControlはInvokeかBeginInvokeメソッドを持っているから
他のスレッドから触りたければそれらを経由して操作する
UIとスレッドのルールはWindows以外のプラットフォームでも大抵同じなので
覚えておくといつか役に立つかも
立たないかも

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

507:デフォルトの名無しさん
16/02/23 12:29:24.57 gpEp1eYY.net
emitされてないって下らない理由だったらどうしよう

508:デフォルトの名無しさん
16/02/23 12:46:43.35 5HhRd+zG.net
LINQ厨、答えてやれ。

509:デフォルトの名無しさん
16/02/23 12:57:53.16 +MN4l2JU.net
emitって言葉有名ですか?
始めて聞いたんですが

510:デフォルトの名無しさん
16/02/23 13:09:48.84 JrRFhuQq.net
普通はSQLで書く仕事だな

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

512:デフォルトの名無しさん
16/02/23 14:31:40.10 mDltGRvi.net
>>510
SQLじゃ遅いからじゃね?

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

514:デフォルトの名無しさん
16/02/23 15:04:28.61 EM1+lJ6M.net
Select呼び出した時点では列挙は実行されない(遅延評価)
foreachすることで初めて評価される
ToList()とかCount()とかは即時評価
副作用のある処理はLINQのメソッドチェーン内では書かないのが無難
素直にforeachでいいんじゃない?

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

516:デフォルトの名無しさん
16/02/23 16:39:37.63 DVYg3A+E.net
URLリンク(www.kurumaerabi.com)

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

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

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

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

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

522:デフォルトの名無しさん
16/02/25 20:01:46.64 m/jN0scy.net
無理に決まってんじゃん

523:498
16/02/25 22:15:35.13 nblLHdJf.net
解決しました
普通に拡張子pdfにしたらダウンロードできました
こんな単純なことで3日も悩んじゃった

524:デフォルトの名無しさん
16/02/25 22:46:47.71 bvnWfi3I.net
>>521
更新処理を書いて渡すだけ

525:デフォルトの名無しさん
16/02/26 01:10:33.96 +59ndj2V.net
>>524
すみません・・・もう少し具体的に教えて下さいませ

526:デフォルトの名無しさん
16/02/26 09:11:43.07 JdiTwSlc.net
別クラスのメソッドとやらの仕様を具体的に教えてもらえないと教えてあげられません
そのメソッド変更できんの?できないの?
そのクラス進捗どうですか機能はあるの?ないの?

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

528:デフォルトの名無しさん
16/02/26 10:21:22.48 LwzDqGm0.net
>>521
Taskを使ったら?

529:デフォルトの名無しさん
16/02/26 11:04:27.42 1jTGKv1k.net
URLリンク(hatedaihatsu.web.fc2.com)

530:デフォルトの名無しさん
16/02/27 22:33:21.13 cpgi4D1s.net
パラメータをフラットに扱いたいです。
tag type human
tag sex man
このように、種別や性別のメンバを持たせるのでなく、tagに統合して扱おうと思ってます。
obj.tag[sex]==man
obj.tag[sex]==man & woman
obj.tag[sex]+= woman
こんな感じで比較したり追加したいのですが、
こういう都合のいいコレクションってありますか?
比較の際に値が含まれてたらtrueでいいんですけど、たまに複数で比較したいときもあると思います。

531:デフォルトの名無しさん
16/02/27 23:04:36.18 F0cA5DZY.net
>>530
ここはC#のスレなんだけど

532:片山博文MZ ◆T6xkBnTXz7B0
16/02/27 23:54:34.85 Bxm5eu58.net
>>530
ビット演算

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

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

535:デフォルトの名無しさん
16/02/29 07:18:54.21 s/kIhvzC.net
if (a < 10) b;


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