16/02/04 17:11:15.22 Jx1/Vtha.net
自己解決したなら良かった
参考までに
URLリンク(ideone.com)
113:デフォルトの名無しさん
16/02/04 17:49:37.86 leHGWpD8.net
ここの人たちってマ板の住人なのにほとんど怒らないからかえって不気味
114:デフォルトの名無しさん
16/02/04 18:22:31.66 CRE7g2W6.net
>>112
ありがとうございます!
私は下記のように書きましたが、そちらのほうがシンプルですね!
URLリンク(ideone.com)
115:デフォルトの名無しさん
16/02/04 19:07:31.09 PFzCzh/c.net
>>113
初心者スレだからプログラムの内容についての話なら基本怒られない
むしろ怒られるのは関係ないレスしてるお前や俺
116:デフォルトの名無しさん
16/02/04 20:15:13.21 0aoqlSU+.net
>>111
足算と引算があれば除算は定義可能。
1秒毎の必要は無い。
117:デフォルトの名無しさん
16/02/04 22:17:41.52 gWgQAzup.net
>>87
追記です。
このプログラムを作成したパソコンであれば動くのですが
パソコンを変えると動かなくなります。
二つのパソコンの回線(IPアドレス等も)は異なるものを使っています。
パソコンを変えても動くようにするためにはどうすればよいでしょうか?
118:デフォルトの名無しさん
16/02/04 22:22:48.04 kJqvXS0n.net
なにが原因で動かないの?
119:デフォルトの名無しさん
16/02/04 22:27:38.31 pyKOZnex.net
送信してるものが変わらないならサーバー側が弾いてるとしか思えないな
本当にそうだったら誰の手にも負えないね
120:デフォルトの名無しさん
16/02/04 22:30:40.28 gWgQAzup.net
>>119
送信しているものは同じです。。
>>118
原因がわかりません。
121:デフォルトの名無しさん
16/02/04 22:38:34.71 +OoSEPJK.net
ファイアウォールやセキュリティソフトの有無は?
「うごかない」ときは、エラーメッセージやエラーコード、例外は発生してないの?
122:デフォルトの名無しさん
16/02/04 22:43:29.38 0aoqlSU+.net
>>117
パソコンの設定、ネットワーク環境も含めて同じにする。
123:デフォルトの名無しさん
16/02/04 22:58:19.44 gWgQAzup.net
>>121
例外が発生しましたとでます。
セキュリティソフトを確認してみます。
124:デフォルトの名無しさん
16/02/04 23:36:12.54 +Y8C24ZP.net
>>123
勝手にメッセージを省略するなよ
もっと詳しい情報が表示されてるだろ?
125:デフォルトの名無しさん
16/02/04 23:41:15.65 gWgQAzup.net
>>124
型 'System.Net.WebException' のハンドルされていない例外が System.dll で発生しました
追加情報:リモート サーバーがエラーを返しました: (530) ログインされていません
126:デフォルトの名無しさん
16/02/05 02:33:55.18 Nkwk97Cl.net
そのftpサーバー側で530出すのはどんな時か調べたほうがいい
2重ログイン禁止とか?
127:デフォルトの名無しさん
16/02/05 05:50:52.84 YnWE7ryG.net
CUIベースのプロセスと、GUIベースのプロセス間で通信させたいんですが、いいやり方教えて下さい。
例えば、CUIで受信したデータをファイル化します。
ファイル化済んだらGUIへ通知だけさせたいです。
128:デフォルトの名無しさん
16/02/05 07:04:54.45 3Nn1Djx6.net
>>127
WCF
129:デフォルトの名無しさん
16/02/05 07:17:29.50 bOiqRlOT.net
>>127
それだけならFileSystemWatcherで十分じゃね
CUIのプロセスをGUIから起動させてるんならProcessオブジェクトの標準出力を読むこともできる
どうしても複雑なやりとりが必要ならWCFなどでIPCしないと仕方ないけど、
こういうのは極力作りこまないで疎結合にしたほうがいいよ
130:デフォルトの名無しさん
16/02/05 07:28:31.68 z5njROW4.net
メッセージサービスで通知でおk
131:デフォルトの名無しさん
16/02/05 07:48:15.33 yIjwQ5WN.net
>>127
つMSMQ
132:デフォルトの名無しさん
16/02/05 08:11:32.47 72hcdQ5e.net
>>127
C# イベント プロセス間
辺りでググればいい
URLリンク(gurizuri0505.halfmoon.jp)
133:デフォルトの名無しさん
16/02/05 10:15:54.61 M+o1878f.net
アトミックな処理って破壊的代入のみの事を指すんですよね?
134:デフォルトの名無しさん
16/02/05 11:14:36.99 65Kzmabe.net
アトミック操作=不可分操作ですよ
破壊的ってどこから出てきたの?
妄想?
135:デフォルトの名無しさん
16/02/05 14:33:39.30 awzjuRq3.net
原子力は破壊的という発想なんでわ。
136:デフォルトの名無しさん
16/02/05 15:29:28.68 GJmivlP+.net
どうでもいい事なんだけど「は」と「わ」を間違える奴はまともな教育を受けてない人なのかと思う
137:デフォルトの名無しさん
16/02/05 16:07:28.99 awzjuRq3.net
ジョークだからおどけた語尾にしたつもりだったんだけど、
マジレスされちった (ゝω・)vキャピ
138:デフォルトの名無しさん
16/02/05 19:00:08.95 VNGa2qV1.net
アトミックバズーカ(破壊的)
139:デフォルトの名無しさん
16/02/05 20:32:15.24 5SxpQFrH.net
エラーチェックして、エラーだったらエラーメッセージのリストを取得する
ようなメソッドってどういう名前とシグニチャにするのがいいでしょう?
isValidみたいなメソッド名で、戻り値bool、引数にrefでリスト渡すのが、まず思いつきますが
あまりref使いたくないので他に方法ないでしょうか?
エラーかどうかのbool値とリストをもつクラスを作って、戻り値として受け取る?
その場合はメソッド名は何が適切ですかね
140:デフォルトの名無しさん
16/02/05 20:46:43.11 Z4Oj7542.net
>>139
例外使う
141:デフォルトの名無しさん
16/02/05 20:53:23.37 3Nn1Djx6.net
>>139
何がやりたいかよう解らんが、scalaのvalidationとか参考にすれば(適当)
142:デフォルトの名無しさん
16/02/05 21:06:49.66 5SxpQFrH.net
>>141
やりたいことは、データの集合に対して整合性チェックを行って、okなら登録処理のようなものです
整合性チェックは色々なチェックがあるので
CheckAAA(dataList);
CheckBBB(dataList);
...
みたいな感じで各チェックを行っていって
エラーなら、エラーメッセージ群をどこかに表示
最後にエラーがなければ登録処理
みたいな、流れを分かりやすく書きたいです
143:デフォルトの名無しさん
16/02/05 21:15:15.38 ejxo0AUJ.net
冗談にしてもいい歳したおっさんがキャピとかやってんのマジで気持ち悪いな
144:デフォルトの名無しさん
16/02/05 21:19:24.38 lm1grbus.net
マジレスくんお帰りなさい
今日は遅かったね
145:デフォルトの名無しさん
16/02/05 21:21:38.04 GgxKh3Fo.net
>>142
返値にエラーとエラーが無い状態が帰るようにしたら?
146:デフォルトの名無しさん
16/02/05 21:26:09.85 gFEJuD8o.net
チェックメソッドの数にもよるけど、Func<datalist,bool>のList作ってForeachでぶん回す
エラーの場合はメソッド名をnameofで取得するか独自メッセージ返すような感じかね
147:デフォルトの名無しさん
16/02/05 22:07:32.45 3Nn1Djx6.net
>>142
それなら、scalaのvalidationそのもの。
c#で実装して公開してくれww
148:デフォルトの名無しさん
16/02/05 22:13:32.93 bOiqRlOT.net
DataAnnotationsでも使ったら?
149:デフォルトの名無しさん
16/02/05 22:37:57.14 7sKFgg6W.net
>>142
Rx
150:デフォルトの名無しさん
16/02/06 03:53:41.94 XG1h6+tz.net
>>149
このスレではRxもLINQも評価されないことが多い
151:デフォルトの名無しさん
16/02/06 05:37:48.03 ewLa/pEP.net
>>139
> あまりref使いたくない
理由は?
152:デフォルトの名無しさん
16/02/06 05:58:03.11 oAqoRpi+.net
>>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を作る。
153:デフォルトの名無しさん
16/02/06 06:05:32.74 oAqoRpi+.net
CheckAの返す型も要るから、Machine<X, E>か。
154:デフォルトの名無しさん
16/02/06 11:08:19.37 R9MO+uq2.net
ベジェをGraphics.DrawBezierで描きつつ実際の座標も欲しいので
URLリンク(studio-rain.cocolog-nifty.com)
このサイトを参考に自前で多数のベジェを計算・描画してみました
すると座標計算速度は速いけど、Graphics.DrawLineやFillEllipseで実際に描画するのに時間がかかって、Graphics.DrawBezierより明らかに遅い
さらに太さのある線を描こうとすると、無駄な描画が増えるので当然だろうけどもっと遅くなる
速度を上げるには、
・ベジェ計算だけ自前で行って描画はDrawBezierに任せる(ただしピクセル単位で実際の描画とズレるかも)
・アンマネージでの画像操作を覚える(よく知らない)
・GPUを利用して並列描画する?(よく知らない)
というあたりでしょうか?
155:デフォルトの名無しさん
16/02/06 11:12:49.04 0UWDYh4J.net
>>154
WPF使うとかHTMLのCanvas使うとか
156:154
16/02/06 11:41:53.83 R9MO+uq2.net
WPFでは実行部分をC#、描画にDirectxを使えるんですね
調べてみます
ありがとうございました
157:デフォルトの名無しさん
16/02/06 11:54:43.51 6GrwE9uC.net
2012 ExpressでHtmlAgilityPackを使用したくnugetでインストールしようとしているのですが
「ファイルのデータが壊れています」というメッセージが出てインストールできません。
どのような原因が考えられるでしょうか?
158:デフォルトの名無しさん
16/02/06 13:13:58.51 MAd5yVbQ.net
>>151
まだまだ初学者なんで間違ってるかもしれませんが
リファクタリング本とかCODE COMPLETEみたいな本で学んでいると
なるべくメソッドは、入力に対して出力返すようなシンプルな作りがいいと思いまして
メソッド名見ただけで使い方が分かるような物がいいと考えると
出力として欲しいものをrefでごちゃごちゃ渡していくのって、どうなのかなって思いました
159:デフォルトの名無しさん
16/02/06 13:45:33.36 ewLa/pEP.net
>>158
> なるべく‥
なんだから、無理に ref を避けなくてもいいと思うよ
160:デフォルトの名無しさん
16/02/06 14:30:55.01 4STRQeN+.net
>>158
C/C++の時代からのやり方だ,素直に従いたまえ
161:デフォルトの名無しさん
16/02/06 15:55:34.62 57BGy/1R.net
>>158
その感性は100%「正しい」
過去の習慣に惑わらせずにref は例外中の例外でOK
162:デフォルトの名無しさん
16/02/06 17:11:18.28 MAd5yVbQ.net
>>152
メソッドチェーンで繋げて評価できるのが凄くいいですね
参考にさせていただきます。
こういうパターンって何かに使われてるんでしょうか?
それからscalaのvalidationも調べてみます。
163:デフォルトの名無しさん
16/02/06 17:24:02.03 21OGO6t2.net
>>158
クエリとコマンドを明確に区別してコードを書く
クエリはシステムを変更しない
コマンドは何も戻さない
クエリ結果が2つ以上になるならそれらを含む別のクラスを作成する
極論するとシステム開発なんてこれだけで全てうまくいくんだよね
164:デフォルトの名無しさん
16/02/06 17:28:55.18 5yNQjtYt.net
>>163
>クエリ結果が2つ以上になるならそれらを含む別のクラスを作成する
これ面倒臭がる人多いよね
165:デフォルトの名無しさん
16/02/06 18:11:28.77 ewLa/pEP.net
>>161
で、代賛案もなしかよ w
166:デフォルトの名無しさん
16/02/06 18:33:15.79 5kvIq2AE.net
Tuppleを使うか戻り値2つを保持できる構造体かクラスを定義ってのが定番かな
後はDynamicを使う方法か
167:デフォルトの名無しさん
16/02/06 18:36:47.78 PmjXQmD8.net
Tuppleやdynamic使う位ならrefの方がまし。
Tuppleやdynamicこそ例外中の例外。
168:デフォルトの名無しさん
16/02/06 18:40:04.21 VXVqCJqs.net
自分の意見を一般化して喋る奴ばかりだな
聞くだけ価値ゼロ
いや、時間のムダだからマイナスか
169:152
16/02/06 18:47:37.87 57BGy/1R.net
C#7.0からは
(IsValid, Errors) = Foo();
と書ける様になるはず。
今回の場合は、Errorsがemptyかどうかで判断出来るが。
仕事で書くなら、それ用の箱を書くかな。
170:デフォルトの名無しさん
16/02/06 18:52:33.42 57BGy/1R.net
> メソッドは、入力に対して出力返すようなシンプルな作りがいい
これは、この数十年間のソフトウェアの歴史の叡知であり「真理」だと思うよ。
171:デフォルトの名無しさん
16/02/06 19:05:30.74 n+PBDQ0c.net
宗教くせえw
172:デフォルトの名無しさん
16/02/06 19:17:34.47 21OGO6t2.net
>>171を異端審問にかけるべきだ
173:デフォルトの名無しさん
16/02/06 19:31:32.52 drYYhGSp.net
そんなことよりどういう変換で「代賛」という漢字を導き出したのかそっちのが気になる。
174:デフォルトの名無しさん
16/02/06 19:42:30.58 5ZOibTPd.net
言われるまで気づかなかった
175:デフォルトの名無しさん
16/02/06 21:12:46.76 BtpsJL+V.net
var a b = Foo();
Foo => 1 "xyz";
または
Foo()
{
return 1 "xyz";
}
こう書けたら素敵かもw
176:デフォルトの名無しさん
16/02/06 21:23:54.91 BtpsJL+V.net
オーバーロードは
void Foo(int a, int b, int c)
|(a, b, 1)
|(a, 0, _)
=> a + b + c;
こんな風に書けたら素敵ww
177:デフォルトの名無しさん
16/02/06 21:24:40.73 BtpsJL+V.net
間違えた
void → int
178:デフォルトの名無しさん
16/02/06 21:26:58.54 7g0sefOr.net
タプルとパターンマッチは次期バージョンで導入候補になってるよ
179:デフォルトの名無しさん
16/02/06 21:28:31.35 HCmnTZ9V.net
あまりの奇形さに苦笑い
180:デフォルトの名無しさん
16/02/06 21:29:43.90 HCmnTZ9V.net
>>178
一年以上言い続けてる気がするけどいつ確定すんの、あれ
181:デフォルトの名無しさん
16/02/06 21:32:52.44 7g0sefOr.net
Javaよりマシ
C#が世界でJavaに次ぐ巨大なシェアを有するエンタープライズ用言語であることを忘れてないか
182:デフォルトの名無しさん
16/02/06 21:54:57.00 5ZOibTPd.net
下を見てマシマシ言うのはやめていただきたい
底辺の人間のようだ
183:デフォルトの名無しさん
16/02/06 22:00:46.96 BtpsJL+V.net
f1() => 1;
f2() => "xyz";
Foo => f1() f2();
こうすると奇形さ倍増w
184:デフォルトの名無しさん
16/02/06 22:06:40.40 5ZOibTPd.net
これまでのC#のバージョンアップサイクルは2~3年だった
次も同程度なら2017年末から2018年初頭だろう
せっかくRoslynを公開したんだから短縮を期待したいがどうかな
185:デフォルトの名無しさん
16/02/06 22:30:58.04 hDlUnW/n.net
プログラミング初心者なのですが誰か助けてくれませんか?(TT)
186:デフォルトの名無しさん
16/02/06 22:43:31.32 mc+HvOWK.net
?
187:デフォルトの名無しさん
16/02/06 22:51:44.38 hDlUnW/n.net
受信したデータを,で分割して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);追加情報:入力文字列の形式が正しくありません。
というエラーが出てきてすすめないです
188:デフォルトの名無しさん
16/02/06 22:55:41.01 7g0sefOr.net
まずdataの内容をコンソールに吐いて確認
189:デフォルトの名無しさん
16/02/06 22:56:47.69 BtpsJL+V.net
Parseではなく、TryParseを使って逐次エラー処理をする。
190:デフォルトの名無しさん
16/02/06 23:00:07.68 BtpsJL+V.net
外部からのデータの整合性を前提にするのは絶対にやってはいけない事。
Parsecでも使っときなさい。
191:デフォルトの名無しさん
16/02/06 23:07:33.12 hDlUnW/n.net
>>188 dataの内容はarduinoから送られてくる値で110,10,11,11このような形式になってます
>>189
>>190しらべてきます
192:デフォルトの名無しさん
16/02/06 23:13:06.42 YiRMDi0V.net
>>191
送られてくるのはそれなんだろうけど
>>188が言ってるのは、その「110,10,11,11」のような値が
正しく入ってきているかをコンソールに出して確認してみよう、ってことだと思うんだけど
193:デフォルトの名無しさん
16/02/06 23:14:31.90 hDlUnW/n.net
>>192 そうですね ご指摘ありがとうございます
正しく入ってきています
194:デフォルトの名無しさん
16/02/06 23:25:53.91 ewLa/pEP.net
>>187
> Console.Write("a={0}\n, b={1}\n, c={2}\n, d={3}\n",a,b,c,d);
今のエラーに直接関係ないけど {0} って文字列用だぞ
195:デフォルトの名無しさん
16/02/06 23:28:25.15 BtpsJL+V.net
Consoleでは正しく表示される(文字列として)とは限らないから、dataをbyte[]に変換して見た方がいい。
196:デフォルトの名無しさん
16/02/06 23:36:52.45 PmjXQmD8.net
>>194
どこでそんな出鱈目を。
勝手にToString()されますがな。
197:デフォルトの名無しさん
16/02/06 23:48:43.66 BtpsJL+V.net
原因は、encodingと予想して寝る。
198:デフォルトの名無しさん
16/02/06 23:51:16.10 5yNQjtYt.net
デバッガでdataの中身見ればいいだけじゃないの?
199:デフォルトの名無しさん
16/02/07 00:18:04.40 7cY+VLxE.net
そういえばVSのデパッグ機能使ったことないんだけどあれ使ったほうがいいの?
いつもデパッグするときは、コンソールライトラインで出力して修正してるんだけど
200:デフォルトの名無しさん
16/02/07 00:41:02.93 mpmibCLh.net
何の為にデバッガがあるというのか・・・・・・・
201:デフォルトの名無しさん
16/02/07 03:43:57.06 E6ZbUD9S.net
デパッグとは
202:デフォルトの名無しさん
16/02/07 04:18:29.60 ubsUoPtC.net
printデバッグっつー
人間の発達段階で言えば赤ちゃんのデバッグ方法
203:デフォルトの名無しさん
16/02/07 04:29:19.69 0jpZBnXl.net
アセンブラ、アセンブリ、アセンブル…
204:デフォルトの名無しさん
16/02/07 09:06:46.60 YehISXuU.net
>>196
すまん、なんか寝ぼけてたわ
205:デフォルトの名無しさん
16/02/07 10:58:08.95 jvYVRZ1r.net
>>199
最低限、ブレークポイントとステップ実行と変数のウォッチをおぼえよう
バグの大半はクラッシュの場所か分岐で間違った方へ進むか変数の内容がおかしいか
206:デフォルトの名無しさん
16/02/07 11:47:40.65 +CXgcQuQ.net
data2[3]に改行が入ってるとか
207:デフォルトの名無しさん
16/02/07 12:54:26.02 +iI8pPYd.net
ReadLineは改行含まれん
208:デフォルトの名無しさん
16/02/07 12:55:38.99 7cY+VLxE.net
>>205
使ってみます
209:デフォルトの名無しさん
16/02/07 15:32:32.86 P4gwgVRD.net
.NETはデータブレークが使えないからうんこなんだよな。
210:デフォルトの名無しさん
16/02/07 17:54:24.49 QHXOM6yq.net
VSがForm Aplicationのサポートを事実上終了したので、個人用アプリ開発においてVSのC++CLRからC# WPFに移行しようとしています。
が、思ったよりも違いが多くて訳がわかりません。初心者スレとのことなので質問するのですが
以下の様な画面構成でアプリを作ろうとしています
1.Mainメニュー(ボタンとして主機能画面に移行・設定画面に移行・それと主機能の内容を選択するコンボボックス)
2.主機能画面(複数画面を遷移するのでPageで作成予定)
3.設定画面(ダイアログにするかどうかは考え中)
んで、ダイアログの表示はFormAplicationと大差ないので余裕だったのですがPageというものをうまく表示できません
つまり、NavigationWindowを継承していないwindow(MainWindow)からNavigationServiceを動かす方法がよくわかりません。
というか単語の意味を正確に把握できていないので自分が正しく質問できているかもよくわかりません
参考にしたサイトは以下です:
URLリンク(msdn.microsoft.com)(v=vs.110).aspx
URLリンク(gushwell.ldblog.jp)
自分の書いたソースは
<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が見えてくれない状態です
211:デフォルトの名無しさん
16/02/07 17:58:49.93 TdnGwusc.net
formサポート終了するってまじか
212:デフォルトの名無しさん
16/02/07 18:25:04.36 OK0009Vg.net
実際のところWPFとか使われてるの?
不発弾のイメージしかなかったけど。。
213:デフォルトの名無しさん
16/02/07 18:29:09.02 vhQgXj1G.net
というよりデスクトップアプリ自体が終わっちゃったからね
どうしても必要な場合もElectronのようなものを使って極力Webに合わせる時代
214:デフォルトの名無しさん
16/02/07 19:00:24.97 ZN2qfSkc.net
Timespanの使い方について質問です
時間の文字列が入ったイベントが発生したとします
分毎にまとめて処理したいのですがどうすればできますか?
215:デフォルトの名無しさん
16/02/07 19:05:53.67 n2daTw5S.net
Electronとか言ってるやつの大半は使ったことすらない法則
何が悲しくてデスクトップに生産性最悪のHTMLとjavascriptを持ちこまなければならんのか?
216:デフォルトの名無しさん
16/02/07 19:09:23.84 ubsUoPtC.net
別に終わってもいいけど、そんな話が出てるなら初心者より先に誰かが騒ぐと思うので、ちょっと眉唾
>>210
左Marginが-500になってるから亜空間にトンドルんじゃないですか?
217:デフォルトの名無しさん
16/02/07 19:18:07.84 ubsUoPtC.net
あ、C++CLIって書いてあるの見落としてた
218:デフォルトの名無しさん
16/02/07 19:21:10.59 6bkdKOR7.net
>>217
Form Aplication=C++CLIって勘違いなのかね
219:デフォルトの名無しさん
16/02/07 19:22:50.89 ubsUoPtC.net
本当だ
「空のC++CLRプロジェクト」の作成テンプレート無くなってら
でもこれで困る人はWPFユーザーよりレアだと思う
混在アセンブリを作成している人くらいか?
220:デフォルトの名無しさん
16/02/07 19:34:03.60 ubsUoPtC.net
>>214
具体的にどこまでできていて、何ができないんだ
そもそも時間の文字列なのにTimeSpanなの?期間じゃなくて?
221:デフォルトの名無しさん
16/02/07 19:36:12.24 TdnGwusc.net
>>213
リッチクライアントの需要は今後また増えると思うよ
スマホアプリ群雄割拠で皆学んだと思うけど端末に依存しないUIプログラムはたとえ動いてもUXが悪くて使い物にならない
どうせ端末毎に最適化されたコードを書くならWebを捨ててリッチクライアントに回帰したほうが楽だし高品質じゃんとなる
222:デフォルトの名無しさん
16/02/07 19:55:35.52 ZN2qfSkc.net
>>220
説明不足ですみません
サーバーから送られてくるデータ(株価)が文字列なんです
それを受信しているのですが、今は受け取ったデータをtexboxに流しているだけです
10:00:00 100
10:00:10 101
10:00:30 102
10:00:59 99
10:01:05 100
・・・
・・
・
このデータを分毎に四本値に処理したいのですが最善の方法を教えてください
今の時刻から60秒の間隔で処理させるにはどうすれば良いか考えているのですが・・・
223:デフォルトの名無しさん
16/02/07 20:27:54.95 SMFdLNV2.net
>>222
前提と要求を1つ1つ箇条書きで列挙して
224:デフォルトの名無しさん
16/02/07 20:40:18.61 WdUVaaF1.net
>>222
前回時刻、 始値、安値、高値、終値のフィールドは適当に初期化しておく
受信した現在時刻と現在値をString.Split、DateTime、DecimalなどでParseする
前回時刻と現在時刻の年月日時分を比べる
一致しているなら、安値、高値を必要に応じて更新し、前回時刻と終値に現在の値を設定する
一致していないなら前回時刻、始値、安値、高値、終値を出力し、前回時刻、始値、安値、高値、終値に現在の値を設定する
この程度が書けないようではこの先生きのこれないぜ
恐らく次は誰もが横着してねえで勉強しろカスと回答する
225:デフォルトの名無しさん
16/02/07 21:12:16.37 ZN2qfSkc.net
>>224
ありがとうございます
c#のことが全くわからないので助かりました
226:デフォルトの名無しさん
16/02/07 22:37:32.87 EIEJb+tM.net
継承という概念を学習中の初心者です
こういうことは可能なのかという質問をさせてください
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();
}
}
227:デフォルトの名無しさん
16/02/07 22:40:37.47 pDArDbnY.net
ジェネりクスを使え
228:デフォルトの名無しさん
16/02/07 22:46:28.86 2xuESUN6.net
>>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フィールドなんかよほどの事情が無い限り使っちゃダメ
229:デフォルトの名無しさん
16/02/08 00:38:01.16 omcXALNz.net
>>226
もはや継承は時代遅れ。
230:デフォルトの名無しさん
16/02/08 00:39:21.18 omcXALNz.net
>>210
Pageなんか使うなよ。
231:デフォルトの名無しさん
16/02/08 00:51:03.86 t4nfvp5Z.net
また変なのが来た来た
232:デフォルトの名無しさん
16/02/08 01:02:04.87 vHpbqQsu.net
継承はアンチパターン
233:デフォルトの名無しさん
16/02/08 01:02:40.81 qItXnEJ5.net
>>210
ソースもってこいや!
234:デフォルトの名無しさん
16/02/08 01:09:38.20 ohcgMxuP.net
FileStreamとMemoryStreamで共通の処理なんてあるのかね
235:デフォルトの名無しさん
16/02/08 02:08:36.47 REXLJUev.net
素人はわけもなく継承を使ってみたいんだよ。
236:デフォルトの名無しさん
16/02/08 02:45:20.79 9ExexpSh.net
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();
}
}
237:デフォルトの名無しさん
16/02/08 05:37:38.22 Mwo03qgv.net
>>236
内部実装のためにクラスの型引数を汚すな
共通のA型として扱えなくなってそれこそ継承の意味がない
238:デフォルトの名無しさん
16/02/08 07:03:28.50 blpM25DK.net
class B {
public abstract Stream Create();
}
class M {
public override Stream Create(){…}
public void Method() {
var s = base.Stream as MemoryStream;
}
}
239:デフォルトの名無しさん
16/02/08 07:53:03.81 t4nfvp5Z.net
さっきからクソクラス貼ってる奴は何なの?
芸人気取り?
240:デフォルトの名無しさん
16/02/08 07:59:15.01 omcXALNz.net
>>226
> 固有のメンバーの呼び出し
それを使って、BとCに同じ振る舞いを持たせたいのか?
必要なケースが浮かばないが、無理矢理やるならAに
abstract int 振る舞い()
みたいなのを持たせれば良いが、お薦めはしない。
241:226
16/02/08 11:18:31.02 LZ12yzMb.net
まだ分からないことが多いので
皆さんに提示していただいたのを参考に一つずつ調べてみます
>240
ストリームに対する基本的な処理は
クラスAでまとめておいて
FileStreamやMemoryStreamを使うときは
それぞれ別のクラスBやCを用意して
そこではFileStreamやMemoryStreamのみが持つメソッドも
呼び出せるようにならないかなと思いました
242:デフォルトの名無しさん
16/02/08 11:50:15.03 GixGib55.net
>>241
固有の機能は直接Streamプロバティーを弄るんじゃなくて、固有の機能を使うメソッドをそれぞれのクラスに実装するのが常套手段だね
243:デフォルトの名無しさん
16/02/08 14:22:28.12 Wxu8bEfW.net
委譲案件
244:デフォルトの名無しさん
16/02/08 15:39:39.69 R5fKsVvX.net
フォーカスを奪わないで外部プログラムを実行する方法を教えてください
245:デフォルトの名無しさん
16/02/08 16:23:11.68 ONEbZjvm.net
外部プログラムを実行してから、
元のフォーカスに戻ればいいんじゃね?
246:デフォルトの名無しさん
16/02/08 16:28:23.58 7T6Ba+h0.net
外部のプログラムがフォーカスを弄る可能性があるので確実な方法は無い
特定のケースで良いのならフォーカスの奪い合いをする
247:デフォルトの名無しさん
16/02/08 18:23:27.98 cKFrgwtc.net
>>142ですが
>>152のやつのコードを書いてみたので載せておきます
URLリンク(ideone.com)
248:デフォルトの名無しさん
16/02/08 19:37:53.54 omcXALNz.net
>>247
お疲れ様。
細かい点は色々あるけど、初心者でこれだけ作れたら十分だと思う。
一点だけ。
Checkerは、static classでOK。
249:デフォルトの名無しさん
16/02/08 23:47:56.13 Y0ekGZiq.net
ダサいコードだな
センスないよ
250:デフォルトの名無しさん
16/02/09 00:37:07.07 1ndwTYNc.net
>>249
お前のコードをみせてみろ
251:デフォルトの名無しさん
16/02/09 04:33:13.63 +R3lhPoz.net
いやらしいっ
252:デフォルトの名無しさん
16/02/09 11:30:59.99 LZa6/uPt.net
Listから指定した範囲(intLange)の値を取得する時、範囲の大きさにもよるとは思いますが
for (int i = 0; i < intLange; i++)
{
bytArray[i] = lstArray[i];
}
よりも
bytArray = lstArray.GetRange(0, intLange).ToArray();
の、方が早いですか?
253:デフォルトの名無しさん
16/02/09 11:35:24.39 ki2Dugwk.net
>>252
それforとforeachの差だからね
最新のバージョンでは知らないけど、2.0や3.0の頃だと1万回ループで数百msの差で前者のほうが早かったはず
254:デフォルトの名無しさん
16/02/09 13:02:46.44 /Ul9S+Gp.net
実測してみるしかないと思う
状況によって、添字の有効範囲チェックがJITで消去されるかとかも変わる
255:デフォルトの名無しさん
16/02/09 13:50:52.33 ltAmqOcf.net
じゃ測って教えてください
256:デフォルトの名無しさん
16/02/09 14:02:17.15 QdOIBFj9.net
ググれば実測してるサイトでてくんだろ
257:デフォルトの名無しさん
16/02/09 15:49:05.37 LZa6/uPt.net
>>253
ありがとうございます
確かにListのGetRangeってforeachのRangeと同じですね
範囲指定して一括取得だからforで1個ずつループするよりも速いと思ったら、逆だったのですね
調べてもforeachの方が遅いのばかりでした
List.ForEachにすれば少し早くなるみたいですが、素直にforを使っておきます
258:デフォルトの名無しさん
16/02/09 18:54:10.80 ki2Dugwk.net
>1万回ループで数百msの差
これ見て後者で良いですねというレス期待してたんだが・・・
259:デフォルトの名無しさん
16/02/09 20:37:53.51 GXK9v6ZU.net
LINQ嫌いというか、LINQが理解できないオッサングラマが多いだけなんじゃね
260:デフォルトの名無しさん
16/02/09 21:57:04.73 kINyOVJ+.net
linq嫌いなのにsqlは大好きなオッさんなんなんだろう
昭和から働いてるエンジニアは不思議がいっぱい
261:デフォルトの名無しさん
16/02/09 22:12:09.83 g5cfApp1.net
マイクロ、ナノ秒の差でも速いほうがいいとか言っちゃうのは初心者にありがちだからそこも教えるべきなんじゃないかな
262:デフォルトの名無しさん
16/02/09 22:18:05.62 QoXK4omQ.net
>>252
後者はメソッド呼び出しのコスト + GetRangeとToArrayで2回ループ&インスタンス生成がかかる
GetRangeの代わりにTake使えば少しましになる
本当に速度が必要なら前者しかないけど
ちなみにforとforeachにそんな差は無いぞ
263:デフォルトの名無しさん
16/02/09 22:42:05.97 8C608Sxj.net
linqの欠点はデバッグしにくいだけだから、ハマったらどうしようもない複雑な奴は避けるべきではあるな
単純なlinqなら積極的に使うほうが見通し良くなるのにな
264:デフォルトの名無しさん
16/02/10 00:11:36.02 5vn52npc.net
FuncとActionで型キャストする必要がある時があってはまったわ
265:デフォルトの名無しさん
16/02/10 00:40:08.52 jozDLnvP.net
Linqでパラレルで回して速くできたりしないのか?
266:デフォルトの名無しさん
16/02/10 01:05:06.08 m6iCwwPq.net
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]で値型のコピーが返されるからどうしようもないですか?
267:デフォルトの名無しさん
16/02/10 01:26:54.77 +0u+KGwQ.net
>>266
発想が間違ってる
268:デフォルトの名無しさん
16/02/10 03:18:08.00 lkaYzkT1.net
>>266
listの中身変えるな
269:デフォルトの名無しさん
16/02/10 07:54:24.62 CjsvPSL/.net
>>266
自分で答え書いてるじゃん
そういう場合はクラス使え
270:デフォルトの名無しさん
16/02/10 19:56:16.17 4jI7WjZu.net
>>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' の定義が含まれておらず(略)
という想像通りの結末が待っています
271:270
16/02/10 20:09:08.83 JS1EW5Jr.net
あ、ちなみに>>270はクラスを使わず
struct A {public int i;}
のままでの話です
272:デフォルトの名無しさん
16/02/10 20:30:51.04 GRD3jx6h.net
>>265
出来るでしょ
273:デフォルトの名無しさん
16/02/10 21:02:55.80 kANvp85U.net
>>270
配列の場合はコピーではなく、元のデータそのものにアクセスするから。
274:デフォルトの名無しさん
16/02/10 21:39:28.41 lkaYzkT1.net
それぞれの処理がそれなりに重くないと、パラレルにしても早くならない。
275:デフォルトの名無しさん
16/02/10 23:21:04.39 CjsvPSL/.net
>>270
MSIL見ればたぶん分かるけど、IList<>のインデクサと配列のインデクサは別物
↓参考
URLリンク(stackoverflow.com)
276:デフォルトの名無しさん
16/02/10 23:40:43.38 EiL0Rwaw.net
>>273 >>275
おおっ!!
リンク先をぼんやり見るに配列のインデクサは
IListのものともIList<T>のものとは別物っぽいですね
どうやらMSILを勉強したら疑問は全部クリアになりそうです
277:デフォルトの名無しさん
16/02/11 08:48:06.29 5VElGoG8.net
C#とMySQLで素人ながらに帳票システム作ってるんだけど
形になってきたらテーブルの数が100近くなってきたんだが、
それなりのシステムになってくるとテーブル数ってこれくらい増えるもの?
それとも設計の仕方自体が問題?
278:デフォルトの名無しさん
16/02/11 09:12:07.75 bLlX/NkI.net
テーブル数100は相当なシステムだと思うけど
たとえばどんなテーブルがあるのか2,3例を出してほしい
279:デフォルトの名無しさん
16/02/11 09:32:15.00 5VElGoG8.net
やっぱり多いですか・・・
個人のデータが10種類くらい、項目別集計結果(種類としては4種類なので4×12)、
帳票結果12ヶ月分、集計計算するための条件設定項目20くらい(いろいろな条件によって計算処理が変わるため)
項目別集計結果と、設定項目が多いんだろうと思うのですが
システムとしては各人の個人データを元に、条件設定項目から各人がどの項目を集計するか判定し、
項目別集計結果(各テーブルはその月の全員の利用実績が記録されている)から拾ったデータや定義されたデータを
拾って計算処理に追加、さらに複雑な条件を条件設定項目を元に計算式または結果を変えて処理して
最後に月別の帳票結果に落とし込むという流れです
実際まだ100までいってないのですが、今の増え方だと完成になる頃にはそれくらいにいきそうで・・・
テーブルまとめられるのがないかを考えた方がいいですかね?
280:デフォルトの名無しさん
16/02/11 09:37:29.27 z2rGujpW.net
設計upしてくれないとなんとも言えないと思うが100行くような設計は間違ってそう。
少なくとも個人でやれる規模じゃない
281:デフォルトの名無しさん
16/02/11 09:38:46.08 M5CwB86R.net
>>279
集計結果はテーブルに落とさずにクエリーやビューで実現できないかを考えると良いと思います
集計テーブルは更新し忘れや更新順の間違いなどのバグ混入があるから
リアルタイムで結果を得られるビューを多用したほうがシステムは安定します
282:デフォルトの名無しさん
16/02/11 10:04:02.34 bLlX/NkI.net
集計テーブルが良くないのはもちろんだけど、
項目集計結果の4x12が理解できない
そんなもんカラムに月持たせたらいいだけじゃないのか
283:デフォルトの名無しさん
16/02/11 10:09:53.69 EtulpAui.net
いまいち分からないけど、個人,条件設定,集計結果がテーブルであって
残りはクエリか一時テーブルじゃないか?
284:デフォルトの名無しさん
16/02/11 10:11:05.88 EtulpAui.net
>>283
x 集計結果
o 帳票結果
285:デフォルトの名無しさん
16/02/11 10:29:30.35 5VElGoG8.net
なるほど、一時テーブルとクエリという方法で検討してみます どちらも全然頭になかったです>>
>>282
項目別集計結果は、帳票つくるシステムとは別に、拠点事業所の端末で作成されたcsvをメインのデータベース内の
月別テーブルにアップするように先に設計していたのですが、あわせて修正できないかやってみます
ただ、ひとつ疑問は、1ヶ月のレコード件数が最大で1万件程度ですが、一つのテーブルにして12万件入れるのと
1万件を12テーブル持つのでは、前者がいいということでしょうか?
設計時は、一つのテーブルのカラム数が多くなるより(なんでも一つのテーブルに入れるなっていう記事を目にしたことがあって)
テーブルに分けた方がいいかと思って計算条件のための設定項目なんかもテーブル数が増えていったのですが
同じカラム構成のテーブルだったら、識別のためのカラムを追加してまとめたほうがよいものでしょうか
286:デフォルトの名無しさん
16/02/11 10:47:51.75 ztBwyrLR.net
>>285
件数は億行っても問題ないな。
それがまずいなら、パーティショニング
を検討してみたら
287:デフォルトの名無しさん
16/02/11 11:37:29.78 ECLK8Wqe.net
>>285
> 同じカラム構成のテーブルだったら
って言う話ではなくて、同じデータは纏めろってこと
何のデータか知らんけど、1月分と2月分って例えば売上げなら両方売上げと言う同じデータでしょ
以前は極端に件数が多いとかで分けることもあったけど、今時は >>286 の言う様に億クラスでも扱えるようにDB側で色々対応してるし、そもそも数十万件オーダーなんでしょ?
288:デフォルトの名無しさん
16/02/11 11:37:43.16 8yKF6m48.net
テーブルが今現在いくつあるかは問題じゃない
集約が今現在いくつあるかが問題
集約が多すぎるなら設計のやり直しが必要
適切なら数ならデータベースのリファクタリングは容易い
先ずは今現在のコンテキストマップとそれぞれのコンテキストにどんな集約があるかを書き出してみる事だ
個人で組んでるなら休日1人日で充分かな
289:デフォルトの名無しさん
16/02/11 14:46:12.43 cgj/3tMp.net
FormにPictureboxを貼り付けて、Formをリサイズした時にフォームサイズに比例してPictureboxもサイズ変更したいのですが、
Anchorを四方向に指定するだけではダメなのでしょうか?
実際にやってみると、拡大した時に大きくなり過ぎて、縮小した時に消えてしまいます。
ButtonでAnchorを四方向にしても同じでした。
Windows7、VS2012、Framework4.5にて確認しています。
290:デフォルトの名無しさん
16/02/11 14:59:02.23 5VElGoG8.net
みなさん丁寧なご指導ありがとうございます
とりあえず見直し初めて、20テーブルくらいになったところですが、WorkBenchで見ていてもえらくすっきりして
計算処理の実行そのものも劇的に早くなりました
>>288
データベースの勉強不足で【集約」ってのがピンと来ないもので・・・ぐぐると集約関数ってのがでてきますが、
テーブルの中でグループ化している数が多すぎると問題ってことでしょうか?
コンテキストっていうのも初心者の馬鹿な私には掴み所がない言葉で、テーブルをさしているのでしょうか
それとも扱うデータにおいての諸要素のことを指しているのでしょうか?
291:デフォルトの名無しさん
16/02/11 15:18:23.73 M5CwB86R.net
>>289
そういうソフトはwpf使えば簡単にできるしトラブルも少ないんだけどね
292:デフォルトの名無しさん
16/02/11 16:15:50.89 RfBB3K0B.net
親プロセス...GUIアプリ
子プロセス...コンソールアプリ
親プロセスで子プロセス起動して、親プロセスは子プロセスからの標準出力をリダイレクトして簡易的な文字列通信を行ってます。
これを、逆に親プロセスからの文字列を子プロセスで拾うようにしたいのですが、いい方法を教えて下さい。
293:デフォルトの名無しさん
16/02/11 16:37:05.76 M5CwB86R.net
>>292
NamedPipe使ってみたらどう?
294:デフォルトの名無しさん
16/02/11 17:36:47.18 rBnM9L0I.net
>>292
子プロセスを起動引数または標準入力を入力したら標準出力で結果を返す関数と見なして、単発で繰り返し呼べばいい
疎結合にするためにわざわざプロセス分けてるんだろ?
複雑な通信したら本末転倒だろ
295:デフォルトの名無しさん
16/02/11 17:52:03.60 LNzJYiWm.net
勝手な妄想でよく喋るなあコイツ
296:デフォルトの名無しさん
16/02/11 18:54:21.19 xg5e2eV7.net
>>289
アンカーは四方からの距離を一定にするだけなので
比例させたいなら計算で求めてBoundsに設定してください
297:デフォルトの名無しさん
16/02/11 21:28:17.58 onfBwuXU.net
クラスの配列を作りたい場合、
こんなふうにすると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;
};
298:デフォルトの名無しさん
16/02/11 21:32:31.88 XGMVVJFq.net
要件次第ですがプログラムが動作するならそれで問題ありません
299:デフォルトの名無しさん
16/02/11 21:34:35.73 6rGpnoDF.net
>>297
new MyClass[1] の行は全く意味がない。
再代入するな。
300:デフォルトの名無しさん
16/02/11 21:50:03.96 LNzJYiWm.net
int i = 1;
i = 2;
最初に1を代入しておいて、そこに2を代入できる理由が分かりません。と言ってるのと同じ。
配列だと特殊な代入がされる、というようなことはない。
301:デフォルトの名無しさん
16/02/11 21:52:08.90 y42s+ygJ.net
>>297
var使えばこういう誤解も無くなるんだろうか…
302:デフォルトの名無しさん
16/02/11 22:19:29.15 0OAFh+KU.net
>最初に1個の大きさで確保しておいて、そこに1000個を代入
してるわけじゃない
配列を表す変数を宣言(MyClass[] mc)して
確保(new MyClass[1] や new MyClass[1000])した領域を指す値をそこに代入している
mc = myfunc() したら最初の new MyClass[1]の領域は捨てられる
303:デフォルトの名無しさん
16/02/11 23:48:59.67 xmsrvKus.net
ド素人質問だと思うのですが、
フィールドって必要なのでしょうか?
メソッドに引数を渡せば
大抵は事足りるんじゃないかと感じており
それとも、属性に保持する情報って、
大規模開発では多いのでしょうか?
304:デフォルトの名無しさん
16/02/12 00:06:42.25 +A7Pa+CR.net
引数増やすのめんどいからオブジェクト指向的にする。
別に手段の1つにすぎないんだから好きにやれば。
オブジェクト指向だって万能じゃないし。
305:デフォルトの名無しさん
16/02/12 00:16:33.85 gmcC03qf.net
>>303
大規模開発ではとんでもない数のフィールドが書かれる
しかしそれはたいてい設計者がクソなだけなんだけどな
306:デフォルトの名無しさん
16/02/12 01:50:15.47 bwdIAcv4.net
人クラスなら名前、生年月日、性別とかは必要だろ
フィールドに保持しなかったらどこに保存するのさ
307:デフォルトの名無しさん
16/02/12 03:26:50.21 /kaeyohP.net
純lisperなんじゃないの(適当)
308:デフォルトの名無しさん
16/02/12 04:01:17.91 YUGvj8/e.net
フィールドとは何なのかはっきりさせんと話が始まらん
プライベートなメンバ変数までフィールドで不要だっていうなら
保持すべき情報はどこにもつんだと
309:デフォルトの名無しさん
16/02/12 04:05:44.88 00n43yFC.net
>>303
基本的にその考え方でOK。
ある粒度で状態を持ちたい時だけに使えば良い。
310:デフォルトの名無しさん
16/02/12 10:18:37.00 rgit47xD.net
foreachを使う場合にもindexの数字が欲しい場合、int i=0 を冒頭に入れる必要がありますが、
int i = 0;
foreach (var item in items)
これを一行にして、
foreach (int i=0, var item in items)
などどできませんか?
311:デフォルトの名無しさん
16/02/12 10:29:32.09 YfpA0AcD.net
>>310
>int i=0 を冒頭に入れる必要がありますが、
必要ないよ
foreachでindex使いたいならこれで良いんじゃね?
foreach(var element in boys.Select((name, index) => new {name, index})) {
SampleMethod(element.name, element.index);
}
312:デフォルトの名無しさん
16/02/12 12:02:57.40 rgit47xD.net
>>311
ありがとうございました。こんな書き方は知らなかったです。
int i=0; と書くのは時代遅れでしょうか?
313:デフォルトの名無しさん
16/02/12 12:10:45.51 EWonquhS.net
集合演算にインデックスを持ち出す事がまず時代遅れ
314:デフォルトの名無しさん
16/02/12 12:26:58.04 /IhDLmoA.net
時代遅れだろうが何だろうが需要があるからSelectにも
(IEnumerable<TSource>, Func<TSource, Int32, TResult>)なんて
オーバーロードがあるんだよなぁ
315:デフォルトの名無しさん
16/02/12 12:51:27.19 00n43yFC.net
>>312
先ずは、どうして"i"が必要かを考えるべき。
316:デフォルトの名無しさん
16/02/12 14:08:59.79 0EJEZiQw.net
for (int i = 0; i < items.Count; i++) {var item = items[i];}
じゃいかんの?
Enumeratorの代わりにintで回すのって素朴でいいじゃん
317:デフォルトの名無しさん
16/02/12 14:45:43.58 583AFnzM.net
昔はコレクションのアイテム削除でエラーとなるからインデックスが普通だったけど
今はToArray()使うのが一般的だから、インデックス使う用事が殆どなくなったよな
318:デフォルトの名無しさん
16/02/12 17:56:35.96 gWHJSKHH.net
for/foreach で回すなら >>311 より >>316 の方がシンプルでいい
Ix の ForEach なら許容範囲
items.ForEach((item, i) => { … })
319:303
16/02/12 21:32:41.81 1BqXCbHv.net
フィールドに関して、色々なご意見ありがとうございます
特に保持すべき必要が無い場合は、
あえてオブジェクト指向に則ってプロパティを持つ必要は無いようですね
参考になります
320:デフォルトの名無しさん
16/02/12 21:37:41.69 /kaeyohP.net
それにしても、変なことを質問するもんですね
必要でないことでもやるべきですか?って人に聞きながら育ったのかしら
321:デフォルトの名無しさん
16/02/12 22:01:07.80 E6xN8nAg.net
過不足なく言われた事だけをやっていれば良い
そういう教育を受けてきた世代なんだろう
何を隠そう私もそういう人間だからよくわかる
322:デフォルトの名無しさん
16/02/12 23:14:54.71 00n43yFC.net
必要かそうでないかを適切に判断出来るのなら誰も苦労しない。
323:デフォルトの名無しさん
16/02/13 00:17:04.86 jNiAqett.net
何事にも疑問を持つことは重要な素養であるとは思うが
常識とされているものの場合、必要である理由を考えるべきで
不要である可能性を列挙するアプローチは間違いの元だな
世の中大抵のことはデファクトスタンダードが正しいものだ
ただ、全てじゃないから検証するのも面白い
324:デフォルトの名無しさん
16/02/13 07:17:00.61 xA/85emw.net
ジャップIT業界の常識が正しいとは思えんが
325:デフォルトの名無しさん
16/02/13 07:45:12.36 BxXCiqDX.net
必要かどうか予め判断するんでなく
必要になったら使えばいいだけだよ
遅延評価好きだろお前ら
326:デフォルトの名無しさん
16/02/13 08:36:03.93 Aj9JV+Py.net
>>311
LINQ使うならforeach全く要らない。
327:デフォルトの名無しさん
16/02/13 09:04:32.16 bNYKyrDh.net
最終的な出力にはforeach必要でしょ
ForEach厨は関数型というものを理解してないアホ
328:デフォルトの名無しさん
16/02/13 09:12:00.94 BxXCiqDX.net
forceがないからToArrayとかやってるの見ると超ダセーと思う
329:デフォルトの名無しさん
16/02/13 09:54:08.99 r5Ze34qU.net
ググっても出てこなかったから質問します。
C# WPFでフォーム上のラジオボタンを○から自作画像に置き換える方法を探しています
どなたか実装方法またはやりたいことを別な方法で実装する方法ご存じないでしょうか
要は画像A、画像Bがクリックされるたびに交互に切り替わって
その状態を取得できればいいです
330:デフォルトの名無しさん
16/02/13 10:05:58.61 bNYKyrDh.net
>>329
WPFではそういうのは一行もコード書かないんだよ
XAMLでControlTemplateとVisualStateManagerを使う
331:デフォルトの名無しさん
16/02/13 10:33:00.45 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:デフォルトの名無しさん
16/02/13 10:35:41.14 wFus9lhk.net
>>331
DataTableに入れる前のクエリで特定行を除く
333:デフォルトの名無しさん
16/02/13 10:59:31.81 bNYKyrDh.net
>>331
LINQ使うんなら弄くり回すよりCopyToDataTableで丸ごと作り直すのが筋
URLリンク(msdn.microsoft.com)(v=vs.110).aspx
334:デフォルトの名無しさん
16/02/13 11:21:16.59 gWYi+rc9.net
レスどうもです
もう少し具体的に言うと、データベース上に月別のデータがまとめた1つのテーブルにあって、
指定月のデータだけをごっそり入れ替えたい(カラムには月表示があるのでそれで絞ってます)のです
月毎にテーブル分けて、指定月のテーブルだけ全件削除、新規のデータを挿入が手っ取り早いのですが、
年間のテーブル1つでやりたいと思ってるのですが
>>333
CopyToDataTableも最初は考えたのですが、データベースから引っ張ってきてるので
DataTable作り直すと結局戻すときに全部入れ直さないといけないのかなと思うのですがどうなんでしょう
>>332
データベースから読み込む時点でテーブルわけといた方がよいのですかね
335:デフォルトの名無しさん
16/02/13 12:10:19.83 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:デフォルトの名無しさん
16/02/13 12:27:41.87 wFus9lhk.net
やりたいことは指定月のデータ内容をUPDATEすることのように思えるんだが
データ量にもよるけどDELETE→INSERTしなくても、更新したいデータを一時テーブルに出力して更新データとJOINして
年間テーブルを一時テーブルでUPDATEすればいいんじゃないのかな?
更新データ量にもよるけど、100万行程度なら上のやり方でも十分速度は出たと思う
337:デフォルトの名無しさん
16/02/13 12:38:11.72 xA/85emw.net
リポジトリ書いて
月指定して月間データ取ってきて
ループで各エンティティのメソッドを呼んで保存する
これでOK
338:デフォルトの名無しさん
16/02/13 13:19:52.36 jNiAqett.net
Linqのデータ削除の典型例
var removes =Items.Where(x=>条件式).ToList();
removes.ForEach(x=>Items.Remove(x));
データ削除はこれの応用で大体行けるはずなんだけどな
339:デフォルトの名無しさん
16/02/13 14:53:28.98 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:デフォルトの名無しさん
16/02/13 15:39:45.33 2MAOXUes.net
ラムダで副作用かっこわるい
341:デフォルトの名無しさん
16/02/13 15:44:08.26 06O3qiSZ.net
俺なんかもっとかっこわるいぞ
.Select()内で { 何か; return 0; } とやってたりするよ
342:デフォルトの名無しさん
16/02/13 16:20:11.54 s+9Slq2v.net
ぶっさ
343:デフォルトの名無しさん
16/02/13 16:58:50.07 6KRp/oK6.net
テスト
344:デフォルトの名無しさん
16/02/13 17:08:05.06 Aj9JV+Py.net
>>3399
Result.Select(row => row.Delete());
ではだめですか?
345:デフォルトの名無しさん
16/02/14 06:44:28.00 bzGf7eU2.net
>>315
デバガーで今何番目の要素を処理しているか知りたい時はどうするの?
346:デフォルトの名無しさん
16/02/14 06:58:06.59 mWiu8nHo.net
何番目という情報が必要なコードであれば
それを否定しているレスじゃないでしょ
347:デフォルトの名無しさん
16/02/14 07:55:00.43 l8k1FRK9.net
バグを取るよりバカを直した方がいいんしないかな
348:デフォルトの名無しさん
16/02/14 08:03:10.87 5pBX52FC.net
indexが使う前提で話をしてんのに
indexが必要か考えろって返答は意味不明
使うって言ってんだろ
349:デフォルトの名無しさん
16/02/14 08:21:36.38 0ADcRE3m.net
index使うバカが気付いてないだけでそんなものは必要ない文脈かもしれないだろ
まずはそこを徹底的に見直してこい
話はそれからだって言ってるんだよ
350:デフォルトの名無しさん
16/02/14 08:32:42.46 4fsYhBCo.net
通常の使い方じゃないかも知れんが、数百、数千おきにデータをフラッシュしたい需要はあるな
351:デフォルトの名無しさん
16/02/14 09:02:33.92 l8k1FRK9.net
>>349
デバガーどうこうは突っかかってる方がバカだと思ったけど
その言いぐさだとお前がバカで正解だったっぽい
余計なお世話って分かる?
分かんないか
352:デフォルトの名無しさん
16/02/14 09:34:12.02 n0LELDsn.net
LINQ使えよってLINQ厨が言ってるだけだろ。
これだからLINQ厨を見ると苦笑いしか出ないんだ。
353:デフォルトの名無しさん
16/02/14 09:39:27.99 0ADcRE3m.net
>>351
やれやれ
これだから下流コーダーは困る
354:デフォルトの名無しさん
16/02/14 10:20:37.80 aN+xXKUu.net
まぁまぁ、よくわかんねーけど、インデックス使いたいってことを否定するならさ、
人間はどうせ死ぬんだから、生きてる意味もなくない?ってぐらい暴論だと思うのよね。
お前らも、大好きなあの娘との思い出を取り出すとしてさ、
初めてキスをしたのは何回目のデートだっけとか数えたりするだろ?
355:デフォルトの名無しさん
16/02/14 10:23:31.55 3Nivwysz.net
まあ実際初心者スレでは「そんなことはどうでもいいから何をしたいのか目的を晒せ」
の方が効果的なケースがほとんどだからな
356:デフォルトの名無しさん
16/02/14 10:25:33.24 IGxuUtz8.net
そのCollection の Count が 0 でループは一回も実行されなかったとさ
357:デフォルトの名無しさん
16/02/14 11:22:01.93 0ADcRE3m.net
>>355
これな
根本的なところからおかしいんだよな
おかしいものに疑問を持たず表面的な対応しかしない
それがホンマもんのバカってやつだ
358:デフォルトの名無しさん
16/02/14 12:08:57.25 Mh99LtVN.net
初心者スレに出入りしてるやつがどれだけのスキルを持ってるのかとw
359:デフォルトの名無しさん
16/02/14 12:10:14.28 12CQcbJ/.net
スレ的にLINQはダメとなってるけど、これより早く処理する方法ってあるの?
360:デフォルトの名無しさん
16/02/14 12:17:27.87 CfikNejg.net
>>359
どのレスみたらLinqがダメって結論になるのか教えてくれよ
361:デフォルトの名無しさん
16/02/14 14:03:25.60 zXLi9Jt7.net
310からの質問の文脈を読まずに、349 がいう文脈とは
362:デフォルトの名無しさん
16/02/14 14:55:03.59 OZvUt5KM.net
>>354
うむ
ゆーうぃん
363:デフォルトの名無しさん
16/02/14 14:55:46.84 CAYLYmrN.net
>>329です
>>330さんのおかげでとりあえずの目標は達成できました。
それで次の目標としてラジオボタンについて
RadioButton1→{画像A, 画像B}
RadioButton2→{画像C, 画像D}
{}内はそれぞれfalseとtrueに対応
という風にしたいのですが、ControlTemplateを使うやり方だと調べても一つのコントロールを一つのパターンで上書きする方法ばかり見つかります。
どなたか方法かせめて検索キーワードだけでもお教え願えないでしょうか
分かりにくいかもしれないので一応文章でも書くと
複数のラジオボタンがあって、それぞれに別パターンの画像を設定したいということです
364:デフォルトの名無しさん
16/02/14 15:13:16.36 7V8dKUBy.net
>>363
いろいろあるけど、ResourceDictionaryを差し替えるのが正統なやり方
テンプレート内で直接画像を指定するかわりにリソースディクショナリ内のリソース名を指定し、
コントロールのResourcesプロパティに実際の画像のセットを含んだリソースディクショナリを渡す(XAMLで)
365:デフォルトの名無しさん
16/02/14 19:05:47.82 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:デフォルトの名無しさん
16/02/14 19:22:41.55 bVZvMVSZ.net
もしかしてWebサイトってオワコン?
367:デフォルトの名無しさん
16/02/14 19:30:08.69 CAYLYmrN.net
>>364
>>365
お二方ありがとうございます。
出来ました
ボタンを置いてダブルクリックするだけでイベントハンドラが作れてた頃が懐かしいよう
368:デフォルトの名無しさん
16/02/14 19:51:03.86 Bsnhcx6p.net
>>366
ASP.NETでのWEBアプリに対してのWEBサイト、ってならオワコン
一般的な意味でのWEBサイトなら、変化しながら生き続けてる
369:デフォルトの名無しさん
16/02/14 21:43:39.23 AnW4+fzX.net
どなたか分かれば教えてください。
フォームアプリでwebbrowserコントロールを使って外部のwebページを操作していますが、
ページ内のボタンを押したときにjavascriptのyesnoのダイアログメッセージが起動します。
この起動イベントをフォームの方でハンドリングする方法はあるんでしょうか?
やりたいことはフォームのプログラムで自動的にyesを選択させたいです。
370:デフォルトの名無しさん
16/02/14 21:52:11.02 79nYzABo.net
質問させてください。何度かスレで話題に出ていたdapperについて、ソースコードを見たいなと思い
githubにログインできるようにして「dapper-dot-net-master.zip」というファイルをDLしました。
そのファイルを展開して、「Dapper.sln」を「VS Express 2013 for desktop」で開こうとしたのですが、
「.xproj」という拡張子のファイルに対応していないらしく、「ソリューションを開く」が失敗してしまいます。
「.xproj」という拡張子のファイルはプロジェクトに関するものと想像はできるのですが、VS2013では開けないのでしょうか?
各ファイルを単純にテキストとしてならば見れるのですが・・・
github自体も使い始めたばかりでなにか勘違いしてる部分があったらすみません。
371:デフォルトの名無しさん
16/02/14 21:58:59.28 NxxLKQZP.net
dnx projectは2015じゃないと開けないと思うよ
2015入れるか諦めて
372:デフォルトの名無しさん
16/02/14 22:04:19.65 3Nivwysz.net
>>370
・DapperのソースをGitHubから取得するのにGitHubのアカウントなんか要らない
・GitHubからソースを取得したいならzipで落とすなんてダサいことしないでGitでcloneしろ
・dapperはシングルファイルだからわざわざプロジェクトを開く必要なんかない
373:デフォルトの名無しさん
16/02/14 22:37:18.19 79nYzABo.net
早速の返信ありがとうございます。
>>371
VS2013では開けないんですね。
>>372
いろいろと指摘ありがとうございます。
シングルファイルというのはどれか1つのファイルに機能が集約されていてそれをみれば大体の機能はわかるということでしょうか?
まだファルシのルシがコクーンでパージ状態なので、ちょっとずつ見ていこうと思います。
374:デフォルトの名無しさん
16/02/14 22:41:26.26 9PrtlM5P.net
>ファルシのルシがコクーンでパージ状態
なんかかっちょいい
375:デフォルトの名無しさん
16/02/14 23:27:52.45 l8k1FRK9.net
ナツカシス
376:デフォルトの名無しさん
16/02/15 12:04:40.36 fB6G7n7H.net
C#でExcelのアドイン(として提供されているDLL)を利用する方法はありますか?
377:デフォルトの名無しさん
16/02/15 13:12:27.80 Xk4DTp51.net
どなたかPDFを作成出来る無料の帳票出力を教えて下さい
itextでゴリゴリ書きまくってますが不器用すぎて泣きそうです
ウェブサーバ兼アプリケーションサーバ兼データベースサーバの2層クライエントです
言語はc#メインで使ってますが別言語でも構いません
378:デフォルトの名無しさん
16/02/15 13:24:45.99 RH62Jtcm.net
>>376
c#でexcel開いてそのアドイン読み込めばいいだろ
379:デフォルトの名無しさん
16/02/15 13:26:20.25 fB6G7n7H.net
excel開きたくないんだけど、開かないとだめ?
380:デフォルトの名無しさん
16/02/15 13:38:28.96 RH62Jtcm.net
>>379
excel無しでそんなもん使って 何したいん?
381:デフォルトの名無しさん
16/02/15 14:42:32.23 j4KeTWwY.net
wpfで画面作って流し込む(適当)
382:デフォルトの名無しさん
16/02/15 17:49:12.29 fB6G7n7H.net
>>380
excelを別な用途で使うこともあるので影響でないようにと思ったのだけれど
383:デフォルトの名無しさん
16/02/15 18:08:31.90 Zk6ilfTk.net
ただ
384:デフォルトの名無しさん
16/02/15 19:46:04.29 cfVd0V/r.net
fontDialogでOpentypeフォントを選択できるようにするにはどうすれば良いのでしょうか?
いろいろ自分なりに調べて、一応ここ(URLリンク(www.pinvoke.net))
のSample Codeを動かしてみたんですが、
bool result = ChooseFont(pChoosefont);
の部分で保護されたメモリ云々と怒られてしまいます。
どうもpChoosefontの割当サイズが小さすぎるようなのですが、その先がわからず手詰まりです
これ以外でも、何か別の方法があればそれでもOKです
(InstalledFontCollectionのotf対応版を作るなど)
385:デフォルトの名無しさん
16/02/16 08:50:39.96 bZe3Oc9S.net
前回時刻(time)と現在時刻(time_v)の時分を比べて同じならa違うならbと言う処理をさせるにはどう書けば良いのでしょうか?
386:デフォルトの名無しさん
16/02/16 09:08:18.90 F8ZGrSAk.net
>>385
if文も分からないうちからプログラム書こうとすんな
入門でもやってこい
初心者以前だろ
387:デフォルトの名無しさん
16/02/16 09:12:56.20 XFjRYdah.net
>>385
時刻の差はTimeSpan。差が無い場合はTimeSpan.Zeroと等しい。
後は分かるだろ。
388:デフォルトの名無しさん
16/02/16 09:17:10.77 0FWmG97A.net
先日の株価がどうのこうのって子?
やっぱり向いてないよ
ランサーズとかで発注したら?
一日無駄にすると一万円超捨ててるって考えたら安いよ
389:デフォルトの名無しさん
16/02/16 09:29:21.17 jhW7ARua.net
>>385
DateTimeをDBに入れたりすると微妙な誤差が混入したりするから、差分をとってある程度小さければ同じとみなすとうまくいく場合があります
390:デフォルトの名無しさん
16/02/16 10:05:56.70 /rvb+Ho8.net
>>384
定義とサンプルコード丸コピしただけで動いたわ Win7/32bit
>InstalledFontCollectionのotf対応版を作るなど
どのみちFontオブジェクト作れないからこれは意味ないよ
フォント使った処理は全部GDI関数とか使わないといけない
391:デフォルトの名無しさん
16/02/16 14:00:24.71 7ODQ3t3P.net
>>390
一応ダイアログは開くんですが、フォントファミリ・スタイル・サイズを選択してOKを押すと落ちるんです
当方64bitなのでそれが原因? とりあえず仮想環境でもテストしてみて、ダメだったら当分は諦めようと思います
392:デフォルトの名無しさん
16/02/16 14:33:44.14 /rvb+Ho8.net
あー、なるほど
CF_USESTYLEがいらない
lpszStyleが書き換えられるのにstringで書き換えられないからエラーになってる
393:デフォルトの名無しさん
16/02/16 16:34:02.89 bZe3Oc9S.net
>>386
…イジメないでください
入門書読んでも分差をはかるの一言だけなのでだからどうすれば?と言う状態なのですみません
>>387 389
ありがとうございます
勉強になります
>>388
そんな所あるなんて知りませんでした!
394:デフォルトの名無しさん
16/02/16 18:04:53.07 b0fHFSg3.net
PDF帳票ってTeXとかじゃダメなのか
395:デフォルトの名無しさん
16/02/16 18:07:41.48 G5mJ2hfm.net
それこそ標準対応のXPSでいいんじゃ
396:デフォルトの名無しさん
16/02/16 19:20:11.75 7ODQ3t3P.net
>>392
おお! なるほど!
該当部分を削ったところ今度は正常に動作しました。ありがとうございます。
できれば選択したフォント名をstringで取得する方法まで教えていただければ幸いです。
397:デフォルトの名無しさん
16/02/16 20:46:25.41 7ODQ3t3P.net
すいません自己解決しました。
Marshal.PtrToStructure(pLogfont, logfont);
string _fontName = logfont.lfFaceName;
で無事にフォント名が取得できました。ありがとうございました。
398:デフォルトの名無しさん
16/02/17 16:53:29.04 O2urVYVM.net
16bitグレースケールのBitmapを作成して保存しようとすると、GDI+エラーになります。
URLリンク(ideone.com)
(33行目)
16bitのBitmapが表示とか出来ないのはモニタとかの仕様上仕方ないとして、
Bitmapデータは出来ている感じなのでとりあえず保存したいのですが、何か間違っているのでしょうか?
自分で2byteバイナリファイルとして保存した方が早いのかもしれませんが、よろしくお願いします。
399:デフォルトの名無しさん
16/02/17 17:37:09.55 nE07dZjC.net
Image::Save(string)はpngで保存する
pngの規格には16bitグレイスケール形式はあるみたいだけどGDI+のエンコーダはサポートしてないっぽい
bmpはそもそも16bitグレイスケール扱えたっけ?
400:デフォルトの名無しさん
16/02/17 17:46:34.78 O2urVYVM.net
なるほど、pngで保存するのですね。
PixelFormatにFormat16bppGrayScaleがあるのでいちおー扱える様ですが、何か微妙っぽいですね。
作成した16bit BitmapをGraphicsクラスに入れたら、そこでメモリエラーになりました。
WinFormじゃなくWPFを使った方がいいのかな?
>Format16bppGrayScaleは使えるのか?実験してみた。
URLリンク(imagingsolution.blog107.fc2.com)
401:デフォルトの名無しさん
16/02/17 18:02:43.59 qUPmCiGq.net
URLリンク(www.youtube.com)
402:デフォルトの名無しさん
16/02/17 18:07:35.89 PDqw71kq.net
>>400
ファイルに書き出してからImagemagickでも使って変換したら?
403:デフォルトの名無しさん
16/02/17 18:54:21.22 vx64Twya.net
>>402
調べてみたらMagick.NETで16bit用なんてのもあるのですね。
ありがとうございます。
404:デフォルトの名無しさん
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