暇つぶし2chat TECH
- 暇つぶし2ch118:デフォルトの名無しさん (ワントンキン MMfa-BD8y)
17/01/03 19:24:17.81 z13mJHntM.net
自動テスト走らせて終わり

119:デフォルトの名無しさん (スプッッ Sd4a-weIz)
17/01/03 19:24:37.24 WXd1abP3d.net
>>113
開発環境じゃなくてビルド方式の話だろ

120:デフォルトの名無しさん (ワッチョイ 3b3c-vAWO)
17/01/03 19:58:20.04 KCsiqS050.net
サービスパックでバイナリ変わってどんな問題が出るのか早く答えてくれよ

121:デフォルトの名無しさん (ワッチョイ ffbb-Sa8B)
17/01/03 20:35:18.51 f2h7dQbm0.net
まずOSのSPかVSのSPか。

122:デフォルトの名無しさん (アウアウイー Sae3-smXe)
17/01/03 20:55:23.92 kvTQlyIsa.net
>>118
IL的に、スレッド絡みのコードの実行順序が変わるのがあった。
ヤバかった。
あとUIスレッドをinvokeしてるのに一向に上がってこないのでMSに電話して教えてもらった回避コードが、KB当てると仇になってすごく大変な思いをした。
具体的にどのKBかはさすがにもう十年近く前の話だから出てこないけど。

123:デフォルトの名無しさん (ワッチョイ ffbb-Sa8B)
17/01/03 21:00:43.94 f2h7dQbm0.net
Vista以降はバージョン管理方法変わったから
古いのでビルドしたらUpdateしてもちゃんと古いライブラリが呼ばれるだろう。

124:デフォルトの名無しさん (ワッチョイ d33c-weIz)
17/01/03 21:04:39.45 xooqIixo0.net
>>120
>>119

125:デフォルトの名無しさん (オッペケ Sra3-VMLW)
17/01/03 21:09:05.75 jisG0r0rr.net
>>120
>ヤバかった
環境に依存して挙動が変わる糞コード書いてるお前がな

126:デフォルトの名無しさん (ワッチョイ ffbb-Sa8B)
17/01/03 21:22:49.13 f2h7dQbm0.net
それは無理。Javaで証明されたろ。

127:デフォルトの名無しさん (アウアウイー Sae3-smXe)
17/01/03 22:14:44.80 kvTQlyIsa.net
>>123
環境に依存して挙動が変わると言ってもなぁ。
ILでまず結構違うコードになってたから。
そうじゃないとMS呼ばないし…。
うちが発端で出たKBも結構あるよ。
歴史を知らん奴なら仕方ない話だけど。

128:デフォルトの名無しさん (オッペケ Sra3-VMLW)
17/01/03 22:29:02.82 UBgfjyMnr.net
>>125
ILが違うとかどうでもよくて、そのILは言語仕様に違反してなかったんだろ?
自分のアホさがKBになったのを自慢されても

129:デフォルトの名無しさん (アウアウオー Sac2-FZ8F)
17/01/03 22:29:56.08 HUUvcaepa.net
>>125
トンチキなこと言ってる奴相手にしなくていいのに

130:デフォルトの名無しさん (アウアウイー Sae3-smXe)
17/01/03 22:40:51.48 kvTQlyIsa.net
>>126
言語仕様と言うか、まぁ違反はしてないよ。
違反はしてないけど間違ってたよ。
交通違反はしてないけどそもそも道間違って袋小路をぐるぐる回る田舎者みたいになってた。
ILがどうでも良いわけ無いじゃん…。

131:デフォルトの名無しさん (アウアウイー Sae3-smXe)
17/01/03 22:41:32.14 kvTQlyIsa.net
>>122
あ、見逃してた。.net FWのKB。

132:デフォルトの名無しさん (スプッッ Sdaa-weIz)
17/01/03 22:48:21.94 iTpzNjFbd.net
>>129
つまりVisual Studioはアップグレードしても問題ないと

133:デフォルトの名無しさん (ワッチョイ d33c-weIz)
17/01/03 22:50:46.15 xooqIixo0.net
>>129
スレッドいじろうとして失敗する典型的な糞コードかよ

134:デフォルトの名無しさん (アウアウイー Sae3-smXe)
17/01/03 23:09:45.58 kvTQlyIsa.net
>>130
確実とは言えんけど、コンパイラのバージョンが上がらないなら大丈夫な気はするな。
あと、環境変数周り。
>>131
お前はもうすこし考えて喋れ。

135:デフォルトの名無しさん (ワッチョイ 83a1-HB/E)
17/01/03 23:09:56.26 K9PZ4HA50.net
単純に仕様に無い実装上の実行順序に依存してたって話やないんか

136:デフォルトの名無しさん (アウアウイー Sae3-smXe)
17/01/03 23:13:58.63 kvTQlyIsa.net
>>133
せやないで、本来は実行順序的にはコンテキストが切り替わるべきシーンで切り替わらん現象があって、GetMessageしてTranslateMessageしてDispatchMessageしないとデッドロックするとか、
そういう類のやつ。

137:デフォルトの名無しさん (ワッチョイ 83a1-HB/E)
17/01/03 23:14:21.26 K9PZ4HA50.net
GC/DOMが実装されてからが本番なので
しばしお待ちをって感じだね

138:デフォルトの名無しさん (ワッチョイ 83a1-HB/E)
17/01/03 23:14:50.64 K9PZ4HA50.net
>>135
誤爆

139:デフォルトの名無しさん (ワンミングク MMfa-BD8y)
17/01/03 23:18:14.10 7mNkwS/NM.net
バグの詳細を書かないと判断が付かないな
本当にバグだったのか
APIの誤用をバグと言い張っているだけなのか
GUIだと特に仕様の誤認は多いからな

140:デフォルトの名無しさん (アウアウイー Sae3-smXe)
17/01/03 23:21:24.02 kvTQlyIsa.net
>>137
何を疑ってるかわからんが、MSの人来てもらって、回避コードを提供してもらって、結果その後KB出たんだから、少なくとも不具合はあったのかと。
あれほどMSと繋がり強い会社で助かったことは無かったわ。

141:デフォルトの名無しさん (ワッチョイ ffbb-Sa8B)
17/01/03 23:23:57.34 f2h7dQbm0.net
MSのサポートは当たり外れがあるがまとも。最悪なのはオラクル。

142:デフォルトの名無しさん (アウアウイー Sae3-smXe)
17/01/03 23:26:52.81 kvTQlyIsa.net
仕様の誤認とかごちゃごちゃ言ってるやつは、.net FW 2.0から3.5の時のあの歩く場所すべてが地雷原みたいなあの状態を知らんのだろうな。
>>139
当たり引いたら、
「契約上、成果物は作れませんが、凄く良くできたサンプルは提供できます。凄く良く出来たサンプルは


143:サンプルなので修正してくださいね、コピーライトとか」 なんて便利な人来てくれるからな。 高いけど。



144:デフォルトの名無しさん (ワッチョイ 9f23-4Ie9)
17/01/03 23:27:44.88 0AbGJStf0.net
ほぼ内部でしか使われていないCのクロスコンパイラで、do whileの論理が逆という酷いバグが有って
先輩がソレに合わせて逆に書いたんだが、普通にコンパイラ直されてパニクったこと遭ったな

145:デフォルトの名無しさん (オッペケ Sra3-VMLW)
17/01/03 23:31:34.08 yN3oG6Qmr.net
>>138
お前が「どういうのが仕様で」「どういう動作をした」
からバグだと言い張ってんのか具体的説明すればいいだけ
それが出せなきゃ誤用を疑われるのは必然なのに
そんなこともわからんのか?

146:デフォルトの名無しさん (アウアウイー Sae3-smXe)
17/01/03 23:37:21.09 kvTQlyIsa.net
>>142
具体的説明はしたじゃん。
GetMessageしてTranslateMessageしてPostMessageって一言で言えばVB6のDoEventsよ。大体どのシーンかそれだけで理解できると思うけど。
あまりの経験不足やら実力不足でお前がそう思ってんならもうそれでいいよ。
死ぬまで自分の知識や経験より他人の誤用疑っとけ。
前職の10年前のコードなんて俺もあたりはついてても出しようないしな。

147:デフォルトの名無しさん (ワッチョイ ea90-4Ie9)
17/01/03 23:40:44.20 Q90ptGUV0.net
前にNRIのバカが
フロントをWindowsアプリで
ロジックを全てPHPで開発してる糞プロジェクトがあったぞ。
当然破綻したけどな。

148:デフォルトの名無しさん (ワッチョイ d33c-weIz)
17/01/03 23:49:11.58 xooqIixo0.net
>>132
具体的に

149:デフォルトの名無しさん (ワンミングク MMfa-BD8y)
17/01/03 23:49:20.32 7mNkwS/NM.net
根拠となる文書、テスト仕様、テスト結果
少なくともこれぐらいは欲しいよね
GetMessageしてほにゃほにゃ~でこれが詳細ですキリッって一体どういう会社なんだろ
大きい会社みたいだし不安になってくるわ

150:デフォルトの名無しさん (オッペケ Sra3-VMLW)
17/01/03 23:51:04.26 yN3oG6Qmr.net
>>143
ILの実行順序が変わったバグの説明が
>GetMessageしてTranslateMessageしてPostMessage
なのかw
>前職の10年前のコードなんて俺もあたりはついてても出しようないしな
あ…(お察し)

151:デフォルトの名無しさん (ワッチョイ ded4-4Doi)
17/01/04 00:11:21.80 zmi2V8Wc0.net
>>146
えっ
まーその


えっ?

152:デフォルトの名無しさん (ワッチョイ 4613-Sa8B)
17/01/04 01:28:07.64 Cuh89P7C0.net
PostMessageが失敗するかどうかでメモリの余裕具合をみる話ならば,どこぞでずいぶんと賑わったね

153:デフォルトの名無しさん (ワッチョイ 8a7b-HB/E)
17/01/04 01:34:13.72 QkHdvWWM0.net
VSスレでやれ

154:デフォルトの名無しさん (ワッチョイ 8a7b-HB/E)
17/01/04 01:35:06.24 QkHdvWWM0.net
おっと誤爆

155:デフォルトの名無しさん (ドコグロ MM16-vnn7)
17/01/04 07:22:47.02 CCOfH6ODM.net
>>112
C# は知らんけど C++ は結構変えられてるよ
URLリンク(msdn.microsoft.com)(v=vs.140).aspx
まあ規格に違反してるコードに起因するんだけどそれが 0 であることを保証できないしなにが原因だろうと不具合起きたらこっちの責任になるんだから Update 適用したらうちは再確認している

156:デフォルトの名無しさん (ドコグロ MM16-vnn7)
17/01/04 07:28:30.50 CCOfH6ODM.net
>>139
だね、特にAPIとか開発ツールのサポートはあっちも同類の人と思ってくれるのか結構真面目に対応してくれる感じ
Oracle はくそ高いのに対応最悪
でもお客さんの手前サポートは外せない...

157:デフォルトの名無しさん (スプッッ Sdaa-weIz)
17/01/04 07:51:43.73 /ZWNU792d.net
>>152
C#の話なんだが
ランタイムの更新は気にしないの?
ビルド方式を変えないVisual Studioのアップグレード危険派はどこに行ったんだ…

158:デフォルトの名無しさん (ワッチョイ 0ece-N5TX)
17/01/04 08:07:01.31 0ISnzSv/0.net
何も変えなくてもビルドする度にexeのチェックサムって変わるだろ
当然ながらリビジョンも変えるし
そんなもんを運用中に適用するなら本番入れる前にテストやり直して
場合によっては関係部署に再テスト依頼せにゃならんよ
平たく言えば普通のリリース作業と同じ工数、お金が掛かる

159:デフォルトの名無しさん (ドコグロ MM16-vnn7)
17/01/04 08:22:25.36 CCOfH6ODM.net
>>154
> C#の話なんだが
C++ で変わってるのに C# なら大丈夫とかお花畑過ぎるんじゃね?
> ランタイムの更新は気にしないの?
なんで気にしないことになってるんだ?

160:デフォルトの名無しさん (スプッッ Sdaa-weIz)
17/01/04 08:32:41.01 /ZWNU792d.net
>>156
根拠ねーのかよ
じゃ、ランタイムについてはどうしてんの

161:デフォルトの名無しさん (スプッッ Sdaa-weIz)
17/01/04 08:34:32.35 /ZWNU792d.net
>>155
>場合によっては
当たり前だろ
しかしいつからexeの話になったんだ?

162:デフォルトの名無しさん (ワッチョイ 0a7b-vAWO)
17/01/04 08:38:17.44 oDke8IkR0.net
どっかのバカが別環境でビルドしたら
exeのCRCが変わって大騒ぎした、って書いたあたりかな

163:デフォルトの名無しさん (ドコグロ MM16-vnn7)
17/01/04 12:42:50.86 CCOfH6ODM.net
>>157
お気楽な奴はいいなあ w
> 根拠ねーのかよ
「変化しない」と言う根拠がないから確認するんだよ
> じゃ、ランタイムについてはどうしてんの
ちょいと前からランタイムっていってるけどなんの話だ?

164:デフォルトの名無しさん (ワッチョイ 8a17-YvgG)
17/01/04 16:37:16.25 zdqZcue50.net
(これって 97 のバイナリが変わらないって主張から始まってるのに、なんで変わる方にソースを求める展開になってるんだろう?)

165:デフォルトの名無しさん (ワッチョイ 0602-eqBK)
17/01/04 17:05:39.31 JR/sdM0U0.net
バイナリが変わろうが変わるまいが、開発環境変えたらどうせ全部テストやり直しだからどうでもいい話題
ほとんどがVS単体で全てが完結してるわけでもないしな

166:デフォルトの名無しさん (アウアウオー Sac2-FZ8F)
17/01/04 18:12:38.94 Iw3OVxAUa.net
>>162
個人的にはそれも無駄なコストだと思うけどね。
原発やICBMの制御ソフトでも作ってるのなら話は別だけど
.NETなんて所詮JITなんだからネイティブアプリより実行環境の違いに依存する部分が大きいのに
日本人ってバランス感覚が悪いっていうか、トータルの製品のコスパを考えずに
しょうもないところに過剰品質になる傾向があるよな。
家電なんかそれでやられた部分もあるのにさ。

167:デフォルトの名無しさん (スプッッ Sdaa-weIz)
17/01/04 18:18:02.15 /ZWNU792d.net
>>162
ビルド方式は変えない

168:デフォルトの名無しさん (ワンミングク MMfa-BD8y)
17/01/04 18:25:54.34 geMbjMeoM.net
開発環境を変えたら自動テスト走らせて終わり
追加のテストは費用など応相談
稀な事例を持ち出してテスト工数を増やそうとする奴は処分

169:デフォルトの名無しさん (ワッチョイ 8a17-YvgG)
17/01/04 18:54:32.15 zdqZcue50.net
>>163
お客さんにそう言って納得してもらえれば、だな。
医療系のソフトを触ってたときは、ビルド&インストール用のパッケージを作成する専用の端末を用意してた。
もちろんサーバ?はこちらで用意して、各ソフトのバージョン等々を統一してアップデートは禁止。くらいは普通だったような。
そうかと思えば、新しい PC でカタログに書いてあることをやろうとしたら出来なくてサポートに頼ったら
「そんなの知らん」で返されたこともあるから、作るアプリの種類や性質によるんだろ。
それを自分の環境や感覚で一元的に決めつけようとするからおかしくなる。

170:デフォルトの名無しさん (ワッチョイ 8a17-eJTV)
17/01/04 19:02:05.37 MZRDhGwM0.net
お客さんの要望を全面的に受け入れる社長は経営から逃げてる
部下が苦労するだけで自分は楽だから

171:デフォルトの名無しさん (スップ Sd4a-weIz)
17/01/04 19:09:43.62 oq8Msdznd.net
>>166
ビルド方式を教えて!

172:デフォルトの名無しさん (ドコグロ MM16-vnn7)
17/01/04 19:40:51.40 CCOfH6ODM.net
>>167
別に社長のためにやってる訳じゃないよ
(てかお客さんの要望を社長が知ってるとか零細かよ w)
トラブったら自分が苦労するだけだから
なので Update も事前にテストしてから導入するし >>165 も書いてるような自動テストも活用してる
まあ会社や作るものによって色々違うとは思う

173:デフォルトの名無しさん (ワッチョイ ffbb-Sa8B)
17/01/04 20:04:33.02 6hrR76Ry0.net
> お客さんの要望を社長が知ってる
ゲイツのことだな。

174:デフォルトの名無しさん (ワッチョイ 07dc-Ft01)
17/01/04 23:17:39.13 P9CxkEKM0.net
そもそも客側にまともなコスト勘定と経営判断ができるなら、大概の案件は出来合いのパッケージ入れたら終わりだからな
それをわざわざアホみたいにコストかけてオーダーメイドしてるんだから客からすれば柔軟な対応()を期待するのは当然

175:デフォルトの名無しさん (ワッチョイ f394-+QcV)
17/01/04 23:49:33.72 yVktE4ER0.net
プログラムの売り手と買い手のあれこれはム板じゃなくてマ板でやれと誰かが言ってたみたい

176:デフォルトの名無しさん (ワッチョイ eb46-Eko0)
17/01/04 23:50:29.77 sLM1aG3B0.net
すみません、間違えてソフトウェア板のほうに書いてしまったのですが、改めて質問させてください。
みなさんMVCやMVVMといったUIアーキテクチャの知識はどのように勉強しましたか?
ネットの情報をあさっているのですが、いまいちぼんやりとしてどう実装していいのか悩んでいます
なにかよい書籍やサイトがあれば教えていただきたいのですが、よろしくお願いします。
Windows Formで開発しています。

177:デフォルトの名無しさん (アウアウオー Saff-fu3N)
17/01/05 00:32:21.65 e3gR0RPga.net
Windows FormにMVCもMVVMも適用できないのでは?w
Windows Formにそんな大げさな思想はいらないでしょ。
単にモデルに相当する部分のコードをFormに書かなきゃそれで十分だし、
それは余程筋が悪い人じゃなきゃ誰が書いても普通は自然とそうなる

178:デフォルトの名無しさん (ワッチョイ 5b3c-XGsk)
17/01/05 00:48:38.63 heQK3sW60.net
MVCはともかく、MVVMは関係ねーな…w

179:デフォルトの名無しさん (ワッチョイ 0bdc-60SX)
17/01/05 00:53:49.13 xL0iNOQ30.net
本来のMVCは昔のSmalltalkの制約から生まれたもので、そのまま他のプラットフォームに適用できるものではない
WinFormsの場合、VとCを分ける意味はない
Mを分離するだけなら、いわゆる「ビューとロジックの分離」ってやつで特に悩むことはないと思う

180:デフォルトの名無しさん (ワッチョイ 2bbb-HvS5)
17/01/05 01:17:34.27 5IyfMoci0.net
MVCとMVVMを三行で説明してくれ。

181:デフォルトの名無しさん (ワッチョイ 5b3c-XGsk)
17/01/05 01:22:16.28 heQK3sW60.net
M M
V V
C VM

182:デフォルトの名無しさん (アウアウイー Sa3f-WHJN)
17/01/05 01:52:00.35 yCqown6ia.net
>>166
具体的に、とか叩かれてた俺も医療。
若い人は知らんのだろう。

183:デフォルトの名無しさん (ワッチョイ 4fcb-626o)
17/01/05 01:54:24.81 OcKsuL+R0.net
>>173
雑誌やソフトの提灯だからなぁ
そもそも画面と内部なんて切れないのに切っていいことって何かある?
ってところからぶっちゃけ説明できる奴なんかいないから
現場に合わせてテキトーにやっとけばって思う

184:デフォルトの名無しさん (ドコグロ MMff-JQu6)
17/01/05 08:18:11.90 IruuUmglM.net
>>179
若いとかは関係ないでしょ
単にやってる仕事によるってだけのことかと
信頼性よりリリース時期が優先な業種もあるし

185:デフォルトの名無しさん (スプッッ Sdff-bDM2)
17/01/05 08:22:52.46 PsU3CkNVd.net
>>181
そもそもMSBuild叩いてビルドすらできないやつらもいるだろね

186:デフォルトの名無しさん (スププ Sdff-WHJN)
17/01/05 08:33:50.14 BBOrCYHKd.net
>>181
同年代にそこそこの規模のプロジェクトやってたらあのへん一連のトラブルほとんどの人が


187:MSにキレた事件だと思ってたわ。



188:デフォルトの名無しさん (アウアウエー Saff-7WTe)
17/01/05 13:18:03.10 WnmYFKGaa.net
オリジナルのMVCからMVVM(のひとつ手前のPresentation Modelパターン)までの流れを
ざっくりと知りたい人にはこちらのスライド6~23がおすすめ
あの日見たMVCを僕たちはまた知らない for RoR
URLリンク(www.slideshare.net)

189:デフォルトの名無しさん (ワンミングク MMff-+flj)
17/01/05 20:37:30.07 STssXerHM.net
この業界ってめちゃくちゃ幅が広いのになんで自分の携わる領域が絶対の常識みたいな視野の狭い人が多いのか

190:デフォルトの名無しさん (ワッチョイ 2bbb-HvS5)
17/01/05 21:13:27.12 5IyfMoci0.net
大海を知る蛙はいないって諺があってな。

191:デフォルトの名無しさん (スップ Sdff-YkAD)
17/01/05 21:19:56.05 hTR7neYkd.net
自動テスト走らせて終わりって話多くてすごいなぁってのと良いなぁってのをいつも思う

192:デフォルトの名無しさん (ワッチョイ fb46-IbiL)
17/01/05 21:37:50.19 rW/6GZ2i0.net
172です。皆さんありがとうございます。
無理に適用しようと思わないほうがいいんですかね。
まずは皆さんが言うようにロジックの分離を意識してみます。
>>184
ありがとうございます。ちょっと見てみます。

193:デフォルトの名無しさん (ワッチョイ 4fcb-626o)
17/01/05 22:00:20.10 OcKsuL+R0.net
>>185
その言葉が自分には当てはまらないと思ってるやつばっかりだからさ

194:デフォルトの名無しさん (スフッ Sdff-2e51)
17/01/05 23:04:36.88 QOSLe2yYd.net
>>187
GUIなら自動テストだけで済ますなんて不可能だもんな

195:デフォルトの名無しさん (ワッチョイ 5f90-pn3f)
17/01/05 23:11:41.74 EwRsaOli0.net
テストテストいってるやつは
テストエンジニアとなのるコーダー以下

196:デフォルトの名無しさん (ワッチョイ 2bbb-HvS5)
17/01/06 01:09:53.85 in81s7xm0.net
>>191
ここまでのクズはなかなかいない。

197:デフォルトの名無しさん (ワッチョイ 5f90-pn3f)
17/01/06 01:29:37.38 WSjKfiqE0.net
テストエンジニアと名乗るあほ会社がいたなー。
奴ら恥ずかしくねーのかね。開発できないからテストしてるだけなのに。

198:デフォルトの名無しさん (ワッチョイ 5b3c-bDM2)
17/01/06 02:04:56.09 b3HzQEm20.net
>>190
>GUIなら
それはちと違う。

199:デフォルトの名無しさん (ワッチョイ 6f13-2e51)
17/01/06 02:57:19.46 cmLDW6hw0.net
>>194
GUIを全部自動テストで済ませてるの?

200:デフォルトの名無しさん (アウアウイー Sa3f-WHJN)
17/01/06 02:58:26.63 GdJpzA35a.net
テスト屋バカにするとは、なかなか中小の発想だなあ。

201:デフォルトの名無しさん (ワッチョイ df17-51vH)
17/01/06 03:14:17.58 I3Occ/9i0.net
お前等の頭にここのスレタイを入力して応答を確認するテストをしてみてくれないか。

202:デフォルトの名無しさん (ワッチョイ df30-QVlo)
17/01/06 05:45:23.72 Zbbenqpe0.net
人類初心者ならこんなもんだろ

203:デフォルトの名無しさん (ワッチョイ 5b3c-bDM2)
17/01/06 06:15:51.87 b3HzQEm20.net
>>195
全部自動化できない理由はGUIだからではないだろ

204:デフォルトの名無しさん (スフッ Sdff-2e51)
17/01/06 09:23:52.69 zpqqPJuXd.net
>>199
全部自動テスト化できないのは必ずGUIであるなんて一言も言ってませんが

205:デフォルトの名無しさん (ワッチョイ df17-51vH)
17/01/06 11:09:41.00 I3Occ/9i0.net
見事にバグってるようだな。 < 頭

206:デフォルトの名無しさん (スップ Sdff-bDM2)
17/01/06 12:10:35.65 YJ4SgLJvd.net
>>200
必要条件と十分条件でググってこいwww

207:デフォルトの名無しさん (ワッチョイ bb63-QVlo)
17/01/06 12:38:38.84 k+rThWmR0.net
ググるより義務教育受けてこい

208:デフォルトの名無しさん (スフッ Sdff-2e51)
17/01/06 13:23:06.57 zpqqPJuXd.net
しょうもな

209:デフォルトの名無しさん (ワッチョイ 5f90-pn3f)
17/01/09 21:30:23.78 I4EKGEh90.net
PHP スレッドが死んでいたのでここで質問させて頂戴

echo mb_detect_encoding($asins[0][0], "JIS,SJIS,eucjp-win,sjis-win,UTF-8");
PHPで文字列の文字コードを判別する場合、
この様に引数に予め複数の文字コードを列挙する必要があるのでしょうか?
感覚的には、mb_detect_encoding関数の引数に
調査対象の文字列を入れれば、自動で文字コードが検出されるものかと思っておりました。

210:デフォルトの名無しさん (ワッチョイ 5b3c-bDM2)
17/01/09 21:43:37.92 qNaaD21i0.net
>>205
スレチ

211:デフォルトの名無しさん (ワッチョイ df17-51vH)
17/01/09 22:50:57.27 31i75J/I0.net
なぜにここで。w
せめてこっちで。
スレ立てるまでもない質問はここで 145匹目©2ch.net
スレリンク(tech板)

212:デフォルトの名無しさん (ワッチョイ 0bba-KSNS)
17/01/10 03:55:42.79 ZxwznXIF0.net
つか板違いじゃね
phpはwebprogだろ?

213:デフォルトの名無しさん (ワッチョイ 5b3c-bDM2)
17/01/10 07:27:16.02 x8VqU/Jr0.net
>>208
あそこ息してなくね?

214:デフォルトの名無しさん (オッペケ Sr3f-LKdv)
17/01/10 10:47:15.57 y5nNWUlVr.net
phpスレ死んでないじゃん
【PHP】下らねぇ質問はここに書き込みやがれ 7 [無断転載禁止]©2ch.net
スレリンク(tech板)

215:デフォルトの名無しさん (ワッチョイ 6b87-IbiL)
17/01/10 16:37:08.82 VMz618Ma0.net
DataGridViewのスクロールで質問させてください。
マウスホイールを1段階回すと、3行スクロールするのですが、
沢山スクロールさせたくて大きく回転させたときに、
3行ずつのスクロールがだらだら継続してスクロールするような
動作になってしまいます。
エクセルのスクロールみたいに、大きく回転させたときは、
短時間でまとめて何行もスクロールするようにさせるには、
どのようにすれば良いでしょうか。

216:デフォルトの名無しさん (ワッチョイ 4fce-O2rp)
17/01/11 03:14:29.19 rLEOP1iX0.net
WM_MOUSEWHEEL

217:デフォルトの名無しさん (ワッチョイ 67c0-q48i)
17/01/12 01:10:29.42 1UPTCkNR0.net
年末年始のバージョン談義を他人事だと笑ってたら、VS2005&2.0縛りの改修案件が来たでござる・・・
linqって便利だったんだな

218:デフォルトの名無しさん (ワンミングク MMe2-kkJw)
17/01/12 01:36:15.87 jfwpinV9M.net
同じ状況でジェネリック型推測が弱くて困ったな
ジェネリックメソッドに匿名デリゲートがうまく渡せないんだわ
これのせいでLINQの再現ができなかった

219:デフォルトの名無しさん (ワッチョイ 573c-Fvni)
17/01/12 01:51:54.01 qhQd7W/g0.net
>>213
バージョンにこだわってたやつは、結局最後までビルド方式を具体的に説明できなかったよな

220:デフォルトの名無しさん (スップ Sdf2-Fvni)
17/01/12 02:01:35.67 5xl7vtsqd.net
大方ビルドスクリプトすら書いたことなかったんだろ

221:デフォルトの名無しさん (ワッチョイ d3bb-dHfL)
17/01/12 02:33:46.24 arip6tnc0.net
Linqは糞やで。

222:デフォルトの名無しさん (ワッチョイ 26cb-TTK6)
17/01/12 05:22:30.14 Rz+H5K5o0.net
>>217
よくわかってるじゃん

223:デフォルトの名無しさん (ワッチョイ c387-YL17)
17/01/12 11:28:08.09 sl7x1gs80.net
>>212
>>211ですが、ありがとうございます。
そのプロパティを確認してみます。

224:デフォルトの名無しさん (ワンミングク MMe2-kkJw)
17/01/12 20:13:55.19 wTRJIMgPM.net
Linqは最高だろ
もうループなんて書きたくない

225:デフォルトの名無しさん (オッペケ Sr37-tin3)
17/01/12 20:24:43.40 pcmVyHykr.net
インストーラーはツール使うけどアップデータは自分で作るの?

226:デフォルトの名無しさん (ワッチョイ c387-YL17)
17/01/12 21:31:14.23 sl7x1gs80.net
210、218ですが、まさにやりたいことがこのページに掲載されていました。
URLリンク(point56.blogspot.jp)
ですが、このページで書かれている派生クラスの使い方が全くわかりません・・・。
いろいろ派生クラスについて説明されているページを見たのですが、
理解できないで困っています。
どのようにすれば(イベント登録すれば)、DataGridViewのマウスホイールイベントをこのクラスで拾うことができるのでしょうか。

227:デフォルトの名無しさん (ワッチョイ f65e-q48i)
17/01/12 21:36:29.73 PgQtmrLv0.net
>>222
そのコードを追加するとDataGridViewExという新しいコントロールが追加されるからデザイナから設定する

228:デフォルトの名無しさん (ワッチョイ c387-YL17)
17/01/13 09:09:29.07 8SyQt6YV0.net
>>223
ありがとうございます!
新しいコントロールを作るイメージなんですね。
既存のコントロールのイベントに割り込ませてデータを操作するものかと思ってました。

229:デフォルトの名無しさん (ワッチョイ bb42-o2zU)
17/01/13 15:34:39.80 djneXx1M0.net
>>224
継承ってのはそういうこと
既存のクラスを継承して何かを付け加える

230:デフォルトの名無しさん (ワッチョイ c387-YL17)
17/01/13 19:03:27.21 8SyQt6YV0.net
>>225
解説ありがとうございます。
また一つためになりました。

231:デフォルトの名無しさん (ワンミングク MMe2-kkJw)
17/01/13 19:26:27.17 wiy2qrIvM.net
どうしても多重継承したい
多重継承しないと人質が殺される
そんな時はどうすればいいですか?

232:デフォルトの名無しさん (ワッチョイ 573c-9HYG)
17/01/13 19:30:04.78 HmhyNPER0.net
人質を犠牲にしろ

233:デフォルトの名無しさん (ワッチョイ f69d-dHfL)
17/01/14 00:14:13.97 exppjyX70.net
正解

234:デフォルトの名無しさん (ワッチョイ d3bb-dHfL)
17/01/14 05:16:19.52 CFNCXkHH0.net
C++にする。

235:デフォルトの名無しさん (オッペケ Sr37-BaOC)
17/01/14 18:54:20.81 JH3WL89Lr.net
>>227
interfaceにして委譲コードを書きまくる

236:デフォルトの名無しさん (ワッチョイ d3bb-dHfL)
17/01/16 06:25:25.99 x3SkEOMR0.net
委譲コードってなんですか。

237:デフォルトの名無しさん (ワッチョイ f717-q48i)
17/01/16 23:34:39.66 eY5lFpG80.net
処理を委譲するので移譲(デリゲート)と呼ばれます

238:デフォルトの名無しさん (ワッチョイ d3bb-dHfL)
17/01/17 06:40:12.79 cbxfPpyL0.net
関数ポインタのことか。

239:デフォルトの名無しさん (ワッチョイ 7e23-q48i)
17/01/17 09:35:08.34 ku+L5HXP0.net
移譲コードは謎だが、継承に対する移譲ってことで、クラスのフィールドにクラスのインスタンスを生成して利用する形態のことかと
移譲コードってのは、その内部に有るクラスへのアクセス手段のコードってことかな?

240:デフォルトの名無しさん (ワッチョイ 924c-nun4)
17/01/17 11:24:04.19 PBcgESW70.net
関数ポインタってか、処理を動かす箱みたいな感覚

241:デフォルトの名無しさん (ワッチョイ 7e23-q48i)
17/01/17 13:32:23.97 ku+L5HXP0.net
>>236
いや、オブジェクト指向にはC#のデリゲートとは違う移譲という概念が有って、継承と似て非なるテクニックとして屡々使われる
URLリンク(ja.wikipedia.org)
C#のはこっち
URLリンク(ja.wikipedia.org)(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)

242:デフォルトの名無しさん (オッペケ Sr37-BaOC)
17/01/17 17:49:23.15 KIp0gGYMr.net
interface IX f1, f2, f3,...fn
interface IY g1, g2, g3,...gn
class A : IX, IY {
XImp x;
f1(){}
f2(){}
...
fn(){}
g1() => x.g1();
g2() => x.g2();
...
gn() => x.g3();
}
なんちゃて多重継承w

243:デフォルトの名無しさん (アウアウカー Sa5f-tnb3)
17/01/18 20:02:35.80 XUepeqxVa.net
お勉強でASP.NETかじりだしたらソースコード自動で吐くのはいいが、フレームワークのお作法ばっかでプログラミングの練習にならんのね
スタンドアロンアプリにネット接続みたいなことやったほうがプログラミングのスキルはつくのかね?

244:デフォルトの名無しさん (ブーイモ MM8b-7fB1)
17/01/18 20:05:28.14 m92xtUQhM.net
MVCの方やれば?
もっと原始的な仕組みだから何やってんのかよくわかるよ

245:デフォルトの名無しさん (ワントンキン MMe2-kkJw)
17/01/18 20:33:15.95 vXs3og/7M.net
ASP.NETが自動で吐くコードは正直使えない

246:デフォルトの名無しさん (スップ Sdf2-Fvni)
17/01/18 20:35:13.00 bBGXUnSyd.net
>>239
曖昧な言い方されるとわからん
ASP.NET Core触ってその感想なわけ?

247:デフォルトの名無しさん (ワッチョイ bbdc-lDPz)
17/01/18 22:05:09.42 cw6vafSX0.net
一口にプログラミングのスキルといっても色々ある
1. 複雑で大規模なロジックをエレガントに設計・実装できる
2. 難解なアルゴリズムを設計・実装できる
3. ハード・ミドルウェア・通信プロトコルなど、インフラを深く理解してプログラムから使いこなせる
ASP.NETで身につきにくく、より薄いWebフレームワークを使うことで身に付くのは3
一般的なアプリケーションエンジニアに求められるのは1
解析とかコンパイラ開発のような特殊分野の専門家は2

248:デフォルトの名無しさん (ワッチョイ 573c-Fvni)
17/01/18 23:21:54.21 T8mUfMDR0.net
>>241
具体的には何のコードのことを言ってるの?

249:デフォルトの名無しさん (ワッチョイ f3bb-3qL8)
17/01/19 07:29:23.09 q3hudiC70.net
求められてるのは仕様書もない糞コードを読むスキルやで。

250:デフォルトの名無しさん (ワントンキン MM9f-aDhR)
17/01/19 09:35:58.54 uhfgjGGlM.net
URLリンク(chrome.google.com)

251:デフォルトの名無しさん (ワッチョイ 230d-516J)
17/01/19 15:19:30.98 qAXGwWjx0.net
文字列からBOMを除去したいのですがどうすればいいですか?
stackoverflowにあった以下のコードを試しましたが、StartsWith()が常にTrueを返して困っています

private readonly string _byteOrderMarkUtf8 = Encoding.UTF8.GetString(Encoding.UTF8.GetPreamble());
if (str.StartsWith(_byteOrderMarkUtf8)) {
str = str.Remove(0, _byteOrderMarkUtf8.Length);
}

252:デフォルトの名無しさん (アウアウウー Sa67-gIHQ)
17/01/19 15:30:12.33 IRyNom+ra.net
BOMってのは生のバイナリーレベルの話であって
少なくともC#のstringに含まれるような代物じゃないと思うんだけど

253:デフォルトの名無しさん (ワッチョイ 9319-r4l2)
17/01/19 15:40:35.80 4wnEpswf0.net
BOMもUnicode文字の1つU+FEFFだからStringに入れることはできるよ
どっから入れるかは微妙なとこだけど(UTF8Encoding.GetStringは問答無用で消すみたいだし)
で試したけど"\ufeffA"はifに入って消えたし"A"はifに入らなかった

254:デフォルトの名無しさん (ブーイモ MM67-XRLM)
17/01/19 17:59:08.76 runhsDy0M.net
シリアル通信プログラムを作成しています。
メインスレッドでコマンド1を送信し、受信内容がAだったらコマンド2を送信するという処理にしています。
受信側(別スレッド?)の処理が終わる前にメイン側が受信内容の判断処理に入ってしまうため、本当に受信内容がAの場合でもコマンド2に移ることができません。
どのように対処すればよいでしょうか。

255:デフォルトの名無しさん (ワッチョイ 7f4c-VYni)
17/01/19 18:08:11.71 FKV8qOhE0.net
受信処理の整合性を判断して、受信処理からInvokeで判断処理を呼ぶ

256:デフォルトの名無しさん (ワッチョイ 03c0-SmTw)
17/01/19 18:10:12.42 HUduSCHL0.net
>>250
.NET4


257:.0の頃に似たようなことやったけどプロデューサー/コンシューマー パターン使ってBlockingCollection経由で受信スレッドと送信スレッドに分けたわ 今だとSystem.Threading.Tasks.Dataflowでもっとシンプルに出来ると思うけど



258:デフォルトの名無しさん (アウアウウー Sa67-gIHQ)
17/01/19 18:22:53.29 IRyNom+ra.net
>>250
何を言ってるのかよくわからないけど、ひょっとして、
送信→受信データ解析→送信
この一連の流れを一つのメソッドで完結させようとしてない?
だとしたらたぶんそれが間違ってる。
一連のシーケンスを処理する専用のオブジェクトを用意すればそんな問題は起こらない。

259:デフォルトの名無しさん (オッペケ Sr87-8S/4)
17/01/19 18:25:27.59 ACsZSSudr.net
c#を10年やってるのにまだ初心者の域を出ない…

260:デフォルトの名無しさん (ワッチョイ f37b-3qL8)
17/01/19 18:41:37.78 Ua4qBBzA0.net
C#だけやってても成長しないと思う
自分が理解できる範囲、自分が分かりやすい範囲でしか書かなくなるから

261:249 (ワッチョイ cfb8-3qL8)
17/01/19 19:07:45.79 TCIFCzqn0.net
>>251
ありがとうございます。
デリゲートで処理すればいいのですね。
>>252
ありがとうございます。
知らない単語が出てきたので調べてみます。
>>253
ご指摘の通りです。
送信メソッド:送信1→受信内容別に分岐→送信2
受信メソッド:DataReceivedイベントで受信

262:デフォルトの名無しさん (ワッチョイ 7f4c-VYni)
17/01/19 22:09:21.74 FKV8qOhE0.net
昔、VC++でシリアル通信の非同期処理してた事があってさ、それをC#で実現しようとして
SerialPortクラスのDataReceivedイベントと
Threading.TimerクラスのTimerCallbackにAutoResetEventを入れて、
WaitHandle.WaitAnyで待機してた事を思い出した。
いま、納品現場で確認してもらったけど今まで問題が起こってないんだが、
本来、C#のシリアル通信でOVERLAPPEDの非同期処理を実現するには、
やっぱWin32APIをゴリゴリ書かんとダメなん?

263:デフォルトの名無しさん (ワッチョイ 6f02-x7a5)
17/01/20 02:24:48.66 rKwDbfSd0.net
シリアルで非同期ってどういうことかわからん
全2重のことを非同期っていってるのか?

264:デフォルトの名無しさん (ドコグロ MM7f-j6UX)
17/01/20 08:16:43.67 ymDflbNbM.net
>>258
>>257 はいわゆる非同期I/O とかOverlapped I/Oの話でしょ
コマンド投げといて並行して何らかの処理を行って暇になったらデータ受信するって奴
まあ通常のシリアルドライバは常時受信してバッファーに溜め込んでるからあまり意味ないけど

265:デフォルトの名無しさん (ワッチョイ 7f4c-VYni)
17/01/20 09:21:01.06 aZ8cT+JU0.net
ふと気になっただけだ。
ごねんね、スレ汚して

266:デフォルトの名無しさん (ワッチョイ 8fce-HQXh)
17/01/20 12:29:54.12 JXdqXSkU0.net
C#脳だとどういう事か判らんのだな
やっぱ知識が偏るよなあ

267:デフォルトの名無しさん (ワッチョイ 6f02-x7a5)
17/01/20 12:49:05.39 rKwDbfSd0.net
>>259
それはシリアル通信での話じゃないし。その上の層とアプリ層との間での話だろ
どんな通信してようが、ローカルファイル読んでようが同じ、単なる非同期IOの話だし
まあバッファリングしないシリアル通信相手に非同期IOかけても結局待つしかないけどな

268:デフォルトの名無しさん (アウアウウー Sa67-gIHQ)
17/01/20 13:16:41.69 98BzuqOpa.net
>>262
何を言ってるのかなこの人...

269:デフォルトの名無しさん (ドコグロ MM7f-j6UX)
17/01/20 19:45:39.69 ymDflbNbM.net
>>257 を読んで全二重とかいっちゃう人なのでお察しってことなんでしょ w

270:デフォルトの名無しさん (ワッチョイ bf85-ZNqe)
17/01/20 20:39:08.06 BC+BfvLQ0.net
質問です!
今日からC#を勉強始めました
配列のコピーをしたいのですが
ここのサイトをみると配列サイズに+1しています
string[] newAuthors = new string[authors.Length + 1];
+1せずに
string[] newAuthors = new string[authors.Length];
でいいと思ったのですが私の間違いでしょうか?
URLリンク(www.woodensoldier.info)

271:デフォルトの名無しさん (JP 0H07-SmTw)
17/01/20 21:07:21.40 05MQpXAxH.net
やってみればいいんじゃない?

272:デフォルトの名無しさん (ワッチョイ ff17-x7a5)
17/01/20 21:42:02.36 MJq7L3EO0.net
何の用途か知らないけど、ひょっとしてタイマーコールバック使ってるとこ見ると
Task.Run( () =>
{
} );
で囲むだけでお気楽マルチスレッドになることを知らないとか?

273:デフォルトの名無しさん (ワッチョイ f3bb-3qL8)
17/01/20 21:46:16.09 ao0q6onS0.net
なんというかイラってくるレス

274:デフォルトの名無しさん (ワッチョイ 7fe1-ws0G)
17/01/21 01:34:13.79 XoO/Nzrc0.net
>>265
+1は不要だね

275:デフォルトの名無しさん (ワッチョイ 8fcb-YAkb)
17/01/21 01:34:35.71 O/GZ8TN60.net
>>267
カッコ内の処理が下に記述された処理より後に実行されるのがお気楽でないね
複数書いたらどれが一番最初に実行されるんだろか?
ってところを実はよくわかって使っていないことが同僚にバレるのも時間の問題なわけだよ

276:デフォルトの名無しさん (ワッチョイ bf85-ZNqe)
17/01/21 08:30:00.84 7Cy++wUg0.net
>>269
ありがと~

277:デフォルトの名無しさん (ワッチョイ 7f4c-VYni)
17/01/21 11:25:24.95 wJLBUXJS0.net
>>267
通信プロトコルで、48bit時間以上の無受信で一区切りなんだけど、ドライバーでSerialPortクラスのReadTimeoutプロパティ(SetCommTimeouts関数)に完全対応していないものが多いから、そのタイマーを用意すた。
今だったら、Task.WaitAnyの一つをタイマーにしとけば楽チンだったかもね。

ところで、C#でWin32のWaitbleTimerのような、そのまま待機メソッド(Wait, WaitAll, WaitAny)に対応してるタイマーってあるの?

278:デフォルトの名無しさん (アウアウウー Sa67-gIHQ)
17/01/21 12:31:23.14 iYYQzwCfa.net
ドライバレベルで対応するような機能かなそれ。違うような気がするけど。
ドライバって言ってるんだからシリアルUSB変換ブリッジを使ってるんだろうけど、
だとしたらそもそもUSBが間に入ってるために48bit時間なんて概念が無効なだけだと思うけど

279:デフォルトの名無しさん (ワッチョイ ff3c-j6UX)
17/01/21 13:03:52.44 1cIKmUbZ0.net
>>273
> ドライバって言ってるんだからシリアルUSB変換ブリッジを使ってるんだろうけど、
あまり知ったかしない方がいいかと...

280:デフォルトの名無しさん (アウアウウー Sa67-gIHQ)
17/01/21 13:09:00.67 iYYQzwCfa.net
うんお前がね
普通にPCIやExpressのバスにぶら下がる形のシリアルの拡張ボードで
特別のドライバを必要とするものなんか見たことないよ
OS標準で最初から入ってるんだから

281:デフォルトの名無しさん (ワッチョイ 8fce-HQXh)
17/01/21 13:41:03.09 oJxw4Shh0.net
48bit時間が何ミリ秒なのか知らんけど本当なら間にマイコンとかでブリッジかますような案件じゃねえの
PC側で設定したタイムアウトのアバウトさで済む話なのかねえ
業務で使うなら破綻すると思うけど

282:デフォルトの名無しさん (ワッチョイ ff3c-j6UX)
17/01/21 14:08:54.55 1cIKmUbZ0.net
>>275
だからいちいち無知晒さんでいいから
URLリンク(www.contec.co.jp)

283:デフォルトの名無しさん (ワッチョイ 7f4c-VYni)
17/01/21 14:09:01.72 wJLBUXJS0.net
272、275が近いね。
シリアルTTLのチップがあって、そのドライバーには関数名のプレースホルダーは用意してるがタイムアウトは機能してないって回答をいただいてる。で、プロトコルのルールに従ってタイマーを用意しただけだ。
もちろん、もうこんな仕事は請けんけどな。

ただ、興味で待機メソッド対応のタイマーってC#であるん?ってのが知りたかっただけ。

284:デフォルトの名無しさん (ワッチョイ cf9d-3qL8)
17/01/21 14:18:24.01 dBVmTL1r0.net
48bit時間ってのがどのくらいの長さなのか知りたいだけ

285:デフォルトの名無しさん (ワッチョイ ff17-x7a5)
17/01/21 14:23:49.09 JwMYXArD0.net
マルチスレッド使いながらある瞬間だけシリアル化したいならそこだけ別関数に切り出して
[MethodImpl( MethodImplOptions.Synchronized )]を付けるとお気楽だよ
(ある電気メーカーが作ったシステムのバグをそれで直したことある)

286:デフォルトの名無しさん (ワッチョイ 7f4c-VYni)
17/01/21 14:41:37.57 wJLBUXJS0.net
たしかボーレートの最大が115kだったんで、最短は0.4msecぐらいだったかな…って。
フレーム11ビットで4文字分ぐらい。

で、もうこの話題良いよな?

287:デフォルトの名無しさん (ワッチョイ 13dc-jh1Y)
17/01/21 14:51:59.06 Poucv/rB0.net
>>280
それthisをロックするから.NETの推奨作法に反してる
thisのロックは外に漏れるから予期せずクラス外の排他処理と干渉して
パフォーマンスが落ちたりデッドロックしたりする原因になる可能性がある

288:デフォルトの名無しさん (オッペケ Sr87-8S/4)
17/01/21 18:33:09.25 LuBTyI4Rr.net
WinFormで画像関連の処理(主に合成)をゴリゴリ書いてたらむちゃくちゃ重くなった
ゲームって1/60秒とかで膨大なレンダリングと合成を繰り返しつつ、AI処理とかアニメ、スキン処理とかやってるんだよな
なんでたかが画像の合成ごときで重くなってゲームだとものすごく速く処理できるのかね?
全然わからん

289:デフォルトの名無しさん (ワッチョイ cf5e-SmTw)
17/01/21 18:38:02.55 4zEMZhpt0.net
>>283
GDIに全部やらせたら遅くなるな
合成とかはバイト配列で必要な部分だけやって表示するだけ迄に持っていくとか
DirectXやUnityに画像処理部分やらせるとか
最後はC#じゃなくC++でやるとかw

290:デフォルトの名無しさん (ワッチョイ 33d6-3qL8)
17/01/21 18:50:02.22 RZU7JwAh0.net
実装がクソで遅いこともある
文句を言う前にプロファイラとかで調査しような

291:デフォルトの名無しさん (ワントンキン MM9f-Taza)
17/01/21 19:02:39.13 W/zpHkC+M.net
プロファイラの使い方よくわからんし

292:デフォルトの名無しさん (ワッチョイ f3bb-3qL8)
17/01/21 19:13:16.83 0VDH7cX80.net
C++と違ってC#にはどうやっても超えられない壁があるんだよ。

293:デフォルトの名無しさん (ワッチョイ 9377-8QYx)
17/01/21 20:19:14.82 g8nBrPXf0.net
要所をunsafeにすることで相当効果出る場合もあるけどね。

294:デフォルトの名無しさん (ワッチョイ 1342-sQpi)
17/01/21 20:28:06.61 AZ4jUWLU0.net
餅は餅屋
あとopenGLね

295:デフォルトの名無しさん (ワッチョイ f3bb-3qL8)
17/01/21 21:33:09.90 0VDH7cX80.net
>>288
undafeの突入、脱出のコストが高すぎて、
丸ごとunsafeに入る規模のコードしか高速化できない。

296:デフォルトの名無しさん (ワッチョイ c33c-r8v3)
17/01/21 22:19:24.72 LzlUxaG40.net
>>287
まあ目指すところが違うから当然だわな

297:デフォルトの名無しさん (ワッチョイ 13dc-jh1Y)
17/01/21 22:50:54.76 Poucv/rB0.net
やってることが同じならC#とC++で速度なんか大して変わらん
少なくともスクリプト言語みたいに数桁遅いってことはないから、
C#で書いたコードそのものがボトルネックになってるときに
そのままC++に書き直したってボトルネックが解消することはまず無い

298:デフォルトの名無しさん (ワッチョイ 83a1-5ScM)
17/01/21 23:02:05.21 pcFLx4Ty0.net
越えるも何も基本越えられちゃ困るから壁を作ってる訳で

299:デフォルトの名無しさん (オッペケ Sr87-8S/4)
17/01/21 23:11:22.69 LuBTyI4Rr.net
それにしてもGDIでのレンダリングとゲーム用のレンダリング、雲泥の差じゃない?
画像処理はGPUで計算させればぶっ飛びで速くなるの?
あとポインタ紛いを使えばぶっ飛びになる?

300:デフォルトの名無しさん (ワッチョイ 13dc-wwrd)
17/01/21 23:15:44.15 Poucv/rB0.net
>>294
GPUを使えば爆速になるのは正しいが、ポインタは要らん
画素にリアルタイムで変換をかけたかったらピクセルシェーダ使え

301:デフォルトの名無しさん (ワッチョイ cf9d-3qL8)
17/01/21 23:35:53.59 dBVmTL1r0.net
合成に何に使ってるの?
Graphics.DrawImage()はクッッッッソ遅いよ

302:デフォルトの名無しさん (ワッチョイ cf9d-3qL8)
17/01/21 23:38:32.57 dBVmTL1r0.net
×:何に
○:何

303:デフォルトの名無しさん (ワッチョイ ff4a-SmTw)
17/01/22 00:33:58.14 WHkammw20.net
GDIは速度求めるなら使い物にならない
業務アプリのコントロールのデザイン弄る程度なら十分使える
3Dゲームの画像処理ならGPU処理一択
っても自力でガリガリ書かなくて済む時代

304:デフォルトの名無しさん (JP 0H07-OQjX)
17/01/22 01:11:33.09 eCbhYovmH.net
>なんでたかが画像の合成ごときで重くなって
つーか、具体的にどんな合成やってるか知らないが、画像処理って下手すりゃピクセル単位で
チマチマだし、オレの中では基本的に重たそうなイメージがあるけどなあ

305:デフォルトの名無しさん (ワッチョイ f3bb-3qL8)
17/01/22 01:19:16.26 H+suNOjg0.net
>>292
LINQ使うだけで数桁遅い。それが分からない奴はその程度のコードしか書いたことがないということ。
C#、.netの制約上のボトルネックはC++で消し飛ぶ。

306:デフォルトの名無しさん (オッペケ Sr87-Hq25)
17/01/22 02:21:36.81 bOybKaZ+r.net
我慢大会その一

307:デフォルトの名無しさん (オッペケ Sr87-8S/4)
17/01/22 03:39:23.27 EI5AfIBCr.net
>>295
プログラマじゃないけど前にゲーム業界にいたからピクセルシェーダは使ったことある
使ってみるかな
>>296
それですね
アルファ合成のときだけBitLocker使ってるけど
あとはGraphicsPathとか
>>298
そっち系の本買って勉強しようかな
ゲームプログラマならc++でやれるんだろうなあ
勉強してみたけど俺にはいろいろ無理だった…

308:デフォルトの名無しさん (ワントンキン MM9f-Taza)
17/01/22 07:39:48.76 4NhSs4FyM.net
Linq遅いマンまだいたんだ
Linqじゃなくてお前のコードが酷いだけじゃん

309:デフォルトの名無しさん (ブーイモ MM1f-wwrd)
17/01/22 08:45:32.72 mrTIs+uVM.net
>>302
Unity使えばいいのに
今時スクラッチで開発なんかしないよ

310:デフォルトの名無しさん (オッペケ Sr87-8S/4)
17/01/22 10:17:10.34 EI5AfIBCr.net
>>304
まあそれもアリなのかな…
たしかにGPUで合成できるし
Unityで作った画像編集ソフトかあ

311:デフォルトの名無しさん (ワッチョイ 33d6-3qL8)
17/01/22 10:45:08.68 kO0RN1SM0.net
>>303
具体例も挙げられないおじいちゃんだから仕方ないね

312:デフォルトの名無しさん (ワッチョイ ff4a-SmTw)
17/01/22 10:58:17.59 WHkammw20.net
Linqもラムダ式も一度使うともう戻れねーよな
EFと合わせたら生産性ぱねぇし

313:デフォルトの名無しさん (ワントンキン MM9f-Taza)
17/01/22 11:08:50.22 4NhSs4FyM.net
EFは正直どうかと思うが
パブリックプロパティだらけになって
システムのあっちこっちにビジネスロジックが分散して管理しきれなくなる
そうではなくOOPの良い習慣にしたがってビジネスロジックをクラス化する
クラスインスタンスの永続化方法も合わせてカプセル化して最小限にとどめる
こうしておけばデータアクセス処理に大した工数はかからない
工数削減の夢を見て変なフレームワークに頼って自滅することもなくなる

314:デフォルトの名無しさん (ワッチョイ 13dc-jh1Y)
17/01/22 11:09:17.59 phG9hQKS0.net
LINQやラムダ式はメソッドの expression body definitions でかなり使いやすくなった
ちょっと込み入ってて分かりにくいラムダがあったら手軽にメソッドに括り出して名前を付けられる

315:デフォルトの名無しさん (ブーイモ MM1f-wwrd)
17/01/22 11:19:16.48 mrTIs+uVM.net
>>308
本来はそのビジネスロジックを実装するときに内部でEFを使うんだよ
所詮シリアライザとクエリビルダにすぎない

316:デフォルトの名無しさん (ワントンキン MM9f-Taza)
17/01/22 11:28:38.11 4NhSs4FyM.net
>>310
だからそれをやるとジワジワとトランザクションスクリプト的な実装になっていって管理が追いつかなくなるってこと

317:デフォルトの名無しさん (ワッチョイ ff4a-SmTw)
17/01/22 11:28:58.51 WHkammw20.net
Linqが速度を売りにした技術として登場したわけじゃないわけで。
道具の使い方が悪い例を出して、道具に文句出されてもなぁ。
性能が必要なシナリオなら、システム構成、技術やアルゴリズム、言語を使いわけるものですからね。
業務系の話を例にすると。
Linqのループ処理の遅さは、数桁すら許容できるケースが多く、
DB側で絞ってるのでC#側で大量のループをぶん回すような事はしない。
テキストファイルやDB、メモリ相手のデータでもLinqは透過的に処理できるから便利。
Linqは、コレクションに対する生産性の高さが有益なんであって、
単純なループを例にしてLinqが遅いとしか言えないなら、話にならん。

318:デフォルトの名無しさん (ワッチョイ ff30-QGIP)
17/01/22 11:31:54.78 0QiRTW2m0.net
馬鹿だから一つしか覚えられない人間に二つ目を覚えろというのは酷ではありませんか?
おそらく高脳様なんでしょうけどド低脳に対する配慮が足りませんよ

319:デフォルトの名無しさん (ワッチョイ ff4a-SmTw)
17/01/22 11:58:44.67 WHkammw20.net
>>308
もちろんEFを使うときは、レイヤーをちゃんとわけて、カプセル化する前提ね。
ビジネスロジックも、モデルもサービスも必要に応じてちゃんと分ける。
依存関係の多いDataTableに比べたら、EFはPOCOだから、詰む事は少ないと思う。
ビジネスロジックやトラン処理がどこに来るかは、
サービス層・ドメインモデル・エンティティモデルのどこに入れるか次第だろうね。
ORMやDAC代わりにEF導入する現場なら、余計にね。
管理が追いつくかどうかは、開発の規模と設計、プロジェクト構成次第じゃない?
うちは、1ドメインで作らず適度にドメイン分割してるから複雑さは低減できてるし。
CQRSなパターンで組んだら、さらに管理が楽になった。
工数削減の夢を見る奴は、いつの時代も論外だぬw

320:デフォルトの名無しさん (ワントンキン MM9f-Taza)
17/01/22 12:18:58.56 4NhSs4FyM.net
しっかりとレイヤ分割してるならなおさら生ADO.NETでもEFでも大した差はでない
ビジネスレイヤまでEFが染み出してくると最初は便利かなと思うが後になって後悔する
EFは本来privateであるべきプロパティが野晒しになるからロジックの分散を避けられない

321:デフォルトの名無しさん (ワッチョイ a394-GGaX)
17/01/22 12:28:22.49 opZW6Xxw0.net
避けられなくないだろ。避けろよ
「染み出す」ってなんだよ。書くべきじゃない場所に書くな。染み出させるな

322:デフォルトの名無しさん (ワントンキン MM9f-Taza)
17/01/22 12:37:09.50 4NhSs4FyM.net
そう
書くべきじゃないところには書くな
これを実践するとEFがビジネスレイヤに染み出してくることはない
EFのスコープはデータアクセスレイヤに限定される
しかしそうなると生ADO.NETに対してそこまで大きな優位性は得られなくなる
生ADO.NETを使った場合でも結局のところデータをビジネスロジックのクラスインスタンスにデータをマップして使うのだから

323:デフォルトの名無しさん (ワッチョイ ff4a-SmTw)
17/01/22 12:45:18.70 WHkammw20.net
レイヤ分割してるなら大差ないというのは確かにそう。
DataTableはNULL周りが良くないんよね。XMLWebサービス時代にはお世話になったが。
で、染み出してくるのはPOCOなクラスであってEFではないよ。
POCOなクラスをそのまま使ってるから生じる問題。
DataTableのプロパティのスコープ制御に相当する機能が
EFのモデルには無いと思ってるように聞こえるから、その前提で話をすると。
EF6からはnon-publicなフィールドも、シリアル化可能だから制御可能よ。
private/protectedで隠ぺいしつつ、DBに保存とかも出来る。
6以前でもやろうと思ったら自分でそう書けばできる。

324:デフォルトの名無しさん (ワッチョイ ff4a-SmTw)
17/01/22 12:48:38.01 WHkammw20.net
いずれにせよ、便利なとこにだけ目を付けて
そういう問題点まで考えずに導入しちゃう現場の方が問題だろうねw
全publicなプロパティで困ってるならご愁傷様です。

325:デフォルトの名無しさん (アウアウカー Sac7-RtDt)
17/01/22 12:50:26.90 8/XlH/DIa.net
おまえらどんな修行積んだらそんななれるんだよ。。
独学やってる俺からみると心折れそうだわ

326:デフォルトの名無しさん (ワッチョイ f3bb-3qL8)
17/01/22 12:53:59.02 H+suNOjg0.net
>>307
LINQのサンプル書けば分かる話で、昔から散々言われてたこと。
速度が必要ならLINQ使うな、楽したいならLINQ使え。それだけ。
それをLINQは遅くないだの、C#とC++の速度差はないだのは、全くの捏造、デタラメ。素人の知ったか。
今回の話題で遅いのは画像処理。画像処理に糞遅いLINQ使う馬鹿はいないんだよ、糞ガキ。

327:デフォルトの名無しさん (ワッチョイ ff4a-SmTw)
17/01/22 13:20:05.54 WHkammw20.net
>>321
馬鹿にしてるのも、素人発言してるのも俺じゃないのに、
なんでそんな悪態つくのかわからんがwww
ちゃんとワッチョイかID見ろよ
C#やLinqが、C++並みとか早いと言ってるのは俺じゃないぞ
画像処理かつ性能必要なとこで、Linqで組む奴が居たら馬鹿だろ

328:デフォルトの名無しさん (ワッチョイ c33c-5mR9)
17/01/22 14:03:47.83 W8T+cplZ0.net
デリゲートってどういうときにどう使ってますか?
使ってみようと思ってるんですけど、、、
パスドラみたいなゲームだとどう使うとよかったりするんですかね?

329:デフォルトの名無しさん (ブーイモ MM1f-wwrd)
17/01/22 14:31:47.38 q7Ms9629M.net
>>323
お前がこれまでイベントやLINQやラムダを使ったことがあるなら、お前は既にデリゲートを使っている
デリゲート型の定義は昔の名残みたいなもんで、今更あえて自分でデリゲートを定義する必要はない

330:デフォルトの名無しさん (アウアウウー Sa67-gIHQ)
17/01/22 15:08:27.54 w8qlDydna.net
>>323
いきなり人をお前呼ばわりするような奴の話は無視していいと思うw
彼がなぜ見知らぬ他人にそんな横柄な態度を取るのかお察し(略
前にも書いた気がするけど、BCLで実際にどういう使われ方をしているかを見て理解するのが一番早い。
例えばList<T>なんかのSortメソッドにはデリゲート(Comparison<T>)を引数に取るバージョンと
インターフェイス (IComparer<T>)のバージョンがあるが、この2つを比べてみるとか
デリゲートの意義は変数(入れ物)を作れることにある。
int型の変数にintの値を自由に入れることができ、intのリテラルと同じように式の中で使えるように
デリゲート、例えばAction型の変数には引数なし、戻り値なしのメソッドを自由に入れることができ、
普通のメソッド呼び出しと同じように変数の中のメソッドを呼び出すことができる。

331:デフォルトの名無しさん (ササクッテロレ Sp87-5mR9)
17/01/22 17:22:01.36 9cOLculsp.net
お二方どうもです!
いまunityやってて、なんか自分で定義して使ってみたいんですけど、わざわざ定義して使う必要もないのかと思ったり思わなかったり、、

332:デフォルトの名無しさん (ワッチョイ a394-GGaX)
17/01/22 17:39:15.02 opZW6Xxw0.net
Action や Func という便利な「定義済みデリゲート」があるので
>>325 のいう「 Comparison<T> 」もそう)
いまや、自分で定義する必要はあまりないような…
言葉遣いはぞんざいだったけど、>>324 が言いたいのもそういうことだったのでは

333:デフォルトの名無しさん (ワンミングク MM9f-Taza)
17/01/22 17:45:53.28 mco4N0ihM.net
>>323
ストラテジーパターンを使いたいなぁと思った時にめんどくさいからデリゲートとラムダを使おう
その程度の認識でいいよ

334:デフォルトの名無しさん (ワッチョイ 33a1-IReq)
17/01/22 20:04:36.92 uhRlBKGc0.net
.の意味ってなに?
スペースと何が違うの?

335:デフォルトの名無しさん (ワッチョイ 0390-waAN)
17/01/23 22:56:49.49 +/l1sI5v0.net
自分でhttpwebrequest、httpwebresponseのラッパークラスを作っているんですが、どうも使いづらいです
通信エラーが起きてもResponseCodeわからないですし、例外もうまくキャッチすることができません
こういうクラスってひょっとしてラップしても意味ないですか?
WebrequestやDownloadStringなどを使わないのはCookieなどを付与する必要があるためです

336:デフォルトの名無しさん (ワッチョイ 9377-8QYx)
17/01/23 23:02:45.38 bI3M8V880.net
>>330
今からやるならHttpClient

337:デフォルトの名無しさん (ワッチョイ cf9d-3qL8)
17/01/23 23:36:42.09 iMdxUfkB0.net
WebClientにCookie持たせる

338:デフォルトの名無しさん (ドコグロ MM7f-j6UX)
17/01/24 12:50:22.17 HHZbO6egM.net
>>330
意味がわからん...
自分で作ってるなら使いやすいように作ればいいだけじゃないの?

339:デフォルトの名無しさん (ワッチョイ b30d-516J)
17/01/25 15:07:13.59 3WJkXYG20.net
HttpClient WebClient WebRequest HttpRequest の違いがわかりません

340:デフォルトの名無しさん (ワッチョイ 63a4-QGIP)
17/01/25 22:04:46.00 Bb3u5ckd0.net
ふーん

341:デフォルトの名無しさん (ワッチョイ 33d6-3qL8)
17/01/25 22:18:36.99 W75ZhGr50.net
>>334
聞く前にググれ

342:デフォルトの名無しさん (アウアウイー Sa53-T3y8)
17/01/26 07:18:39.25 hf6GrTPoa.net
>>334
ググったなんて日本語が分からなかったの?

343:デフォルトの名無しさん (ワッチョイ 2613-uaQk)
17/01/26 09:58:48.02 sSYf7dfw0.net
>>337
ha?

344:デフォルトの名無しさん (ササクッテロラ Sp13-YLIH)
17/01/27 02:09:00.56 mwRO9ggOp.net
TextBoxの文字をクリックしたときにその行に頭が特定の文字ならアクションを起こすようなものを作りたいのですが
TextBoxクラスのGetCharIndexFromPosition(Point)で文字を取得するとクリック位置が文字の上から外れた場所でも取得できてしまいます
文字上でクリックされた時のみを感知したいのですが何かいい方法があれば教えてください

345:デフォルトの名無しさん (ワッチョイ 1ad4-AZYz)
17/01/27 12:09:25.78 7rtouHaU0.net
検索(SQLを投げた)結果を非同期でフォーム表示させようとしてます。
SqlCommandを組み立ててBeginExecuteReaderしました。
AsyncCallback 先で、EndExecuteReaderを実行し
DataTableに収納させるまではデバッガで動作確認できました。
ここからが問題なのですが
DataTableの内容をForm(DataGridView)で表示されようと思いました。
DataGridViewが貼り付いているFormをnewで生成し、DataGridView.DataSourceにDataTableを入れました。
最後にForm.Showでフォームが開くことを期待したのですが、フォームの枠が出るものの中身が真っ白
キャプションは「応答なし」と出て表示も操作もできません。
最初にBeginExecuteReaderした側のメインスレッドは普通に動いてます。
どうやったら、AsyncCallback 先でフォームを新規表示させることができるんでしょうか。

346:デフォルトの名無しさん (ワッチョイ d3c0-y5A3)
17/01/27 13:41:41.66 f0Kj2+Uu0.net
>>340
デバッガ使っているならForm.ShowのところでDataGridView.DataSourceにDataTableが入っているか見てみれば?

347:デフォルトの名無しさん (ワッチョイ 9719-VXgO)
17/01/27 14:04:14.64 FcmXFO0M0.net
今更AsyncCallback系とかどんな環境なのやら
サブスレッドでForm触るとろくなことにならないから
AsyncCallback内で全データ取得
→FormとかのBeginInvokeでメインスレッドでフォーム作って表示

348:デフォルトの名無しさん (ワッチョイ 1ad4-AZYz)
17/01/27 14:20:45.68 7rtouHaU0.net
>>341
そこは問題ないです
描画のところでサブスレッドに順番が回ってこないぽい感じです
>>342
>今更AsyncCallback系とかどんな環境なのやら
イマドキは別の方法があるんでしょうか
確かに、Callbackは面倒です。゜
やりたいのは、時間のかかるExecuteReaderで全てがブロックされることを防ぎたい、ってことです

349:デフォルトの名無しさん (スッップ Sdca-OKVk)
17/01/27 19:49:21.84 oQLdhHNUd.net
>>343
.NET Frameworkのバージョンいくつよ?

350:デフォルトの名無しさん (ワッチョイ af4a-y5A3)
17/01/27 21:29:15.85 +Ih6k9xI0.net
質問です。
object o = new List<string>();
このstringのところを文字列(を格納した変数)で指定したいのですが、どうすればいいでしょうか?
object o = new List<"string">(); ← こういうことをやりたい。
よろしくお願いします。

351:デフォルトの名無しさん (ワッチョイ f7dc-ci5U)
17/01/27 21:35:00.20 sOrVpnzk0.net
>>345
本当に文字列で指定したいのではなく、動的に型を指定してジェネリックリストを作りたいという要求だと仮定して回答
var argType = typeof(string);
var listType = typeof(List<>).MakeGenericType(argType);
var o = Activator.CreateInstance(listType);

352:デフォルトの名無しさん (ワッチョイ af4a-y5A3)
17/01/27 21:37:34.16 +Ih6k9xI0.net
>>346
早速の返答ありがとうございます。
そういう意図で合っていると思いますが、その3行をぱっと見では理解不能なので、テストしてきます。

353:デフォルトの名無しさん (ワッチョイ af4a-y5A3)
17/01/27 21:59:53.20 +Ih6k9xI0.net
>>346
申し訳ないです、質問で出した例えが悪かったです。
本当にやりたいのはJSONのデコードでなんですが、JSON.NETを使って
var o = JsonConvert.DeserializeObject<Hoge>(json);
このHogeの部分を動的にしたいのです。

354:デフォルトの名無しさん (ワッチョイ 2b4a-H6k8)
17/01/27 22:04:04.24 7pKAIIad0.net
>>348 Hogeの数だけifかswitchで分ければいいんじゃないか?



356:デフォルトの名無しさん (ワッチョイ af4a-y5A3)
17/01/27 22:09:45.37 +Ih6k9xI0.net
>>349
ずらずらと並べて書き始めて、
ふと動的に出来ないものかと思ってしまいましたが、
素直にそうやった方が手っ取り早いですかね。
ありがとうございました。

357:デフォルトの名無しさん (ワッチョイ f7dc-ci5U)
17/01/27 22:09:50.40 sOrVpnzk0.net
>>348
それを動的にやって何がしたいのか激しく疑問
どのみちobject型として扱うしかないんだから DeserializeObject(string)


358: でobject型にデシリアライズすればいいだろ >>349と被ったが、後で as や is でHogeにダウンキャストするんだったらその選択肢は予め決まってるはずだから、 switch (str) { case “Hoge”: type = typeof(Hoge); break; case ・・・ } みたいにすればいいだけ それでも本当にどうしても文字列で指定しなきゃいけないというなら Type.GetType(“俺の名前空間.” + str) でできなくはないけど、まず意味はないと思う



359:デフォルトの名無しさん (ワッチョイ af4a-y5A3)
17/01/27 22:50:37.80 +Ih6k9xI0.net
>>351
> それを動的にやって何がしたいのか激しく疑問
自分も質問文を書きながら、そう思われるだろうなと思っていました。
たぶん、こんなことをしたいと思いつく考え方が、そもそも間違いの可能性が高そうなのですが、
なぜこういうことを思いついたかというと、一つの問い合わせに対して返ってくるJSONの型が
複数あったりするので、どうやれば上手くまとまるかな? と考えたのがはじまり。
成功時→ {"person":{"name":"だれそれ","age":20}}
失敗時→ {"noresponse":{"message":"該当なし"}}
エラー→ {"error":{"number":1,"message":"error message."}}
頭の文字列(personなど)引っ張り出して、対応する型名(Person)をHashtableなんかから引っ張り出せばいいかなと。
hashtable.Add("person","Person");
hashtable.Add("error","Error");
...
object Json2Object(string json)
{
string typename = Regex.Match(json, @"\{""([^""]+)").Groups[1].Value
var o = JsonConvert.DeserializeObject<$$hashtable[typename]$$> (json);
return o;
}
呼び出した側では結局as is しますが、こんな発想自体ナンセンスですか?

360:デフォルトの名無しさん (ワッチョイ f7dc-AomC)
17/01/27 22:55:29.64 sOrVpnzk0.net
>>352
結局呼び出し元でキャストするんならJson2Objectをジェネリックメソッドにすればいいだけでは?

361:352 (ワッチョイ f7dc-ci5U)
17/01/27 23:00:09.77 sOrVpnzk0.net
いやすまんJSONに含まれるフィールドに応じて型を変えたいってことか
単に Dictionary<string, Type> でよくね?

362:デフォルトの名無しさん (ワッチョイ af4a-y5A3)
17/01/27 23:07:41.42 +Ih6k9xI0.net
>>354
なんどもありがとうです。
dictionary.Add("person",typeof(Person));
var o = JsonConvert.DeserializeObject<dictionary["person"]>(json);
と言うことでしょうか?
VS2015 .NET4.6 では出来なさそうなのですが。

363:デフォルトの名無しさん (ワッチョイ f7dc-ci5U)
17/01/27 23:25:42.83 sOrVpnzk0.net
>>355
var o = JsonConvert.DeserializeObject(json, dictionary["person"]);

364:デフォルトの名無しさん (ワッチョイ af4a-y5A3)
17/01/27 23:33:36.50 +Ih6k9xI0.net
>>356
なんと!!
自分の調べ不足を痛感しました。
ほんとうにありがとうございました。

365:デフォルトの名無しさん (ワッチョイ 2a4a-y5A3)
17/01/28 00:50:12.18 4RGYrg++0.net
斜め読みだが
やっぱDictionaryで済む話やなw

366:デフォルトの名無しさん (ワッチョイ 0faf-56sz)
17/01/28 01:52:46.60 7wXqm53L0.net
>>339
自己解決しました
表示からは見えなくてもTextBox.Textには改行コードが含まれていたのですね
GetCharIndexFromPosition(Point)で取得したインデックスの文字ををcharに入れてみて初めて気が付きました
欲しい文字の判定時についでにクリックされた文字が\nではないかを調べることで実現できました

367:デフォルトの名無しさん (ワッチョイ af4a-WsPK)
17/01/28 10:57:29.19 Pp3LUsbs0.net
zip内の画像ファイルを展開せずに閲覧する場合に基本クラスとその他のライブラリで速度に違いはあるんでしょうか?

368:デフォルトの名無しさん (ワッチョイ 6b64-cWHx)
17/01/28 11:05:01.86 1xyPMcX/0.net
もっと詳しく、丁寧に質問して

369:デフォルトの名無しさん (ワッチョイ af4a-WsPK)
17/01/28 11:26:44.22 Pp3LUsbs0.net
zipファイルに格納された画像ファイル(jpgやpngやbmpやgif等)を展開せずにストリームで読み込む場合に
基本クラスであるZipFileクラスやZipArchiveクラスを使用した場合と、
#ziplibやDotNetZipやJ#のvjslib.dll等のライブラリを使用した場合では速度に有意な差が出るのでしょうか?

370:デフォルトの名無しさん (アウアウウー Sa7f-//rF)
17/01/28 12:01:12.08 XpAKmUmza.net
実装に差あるから、有意な差はでるだろうな
問題になるほどその差が大きいとは思えないが

371:デフォルトの名無しさん (ワッチョイ 7e5e-y5A3)
17/01/28 12:04:25.80 s1e/PAHl0.net
>>362
自分で比較してみればいいじゃん
展開でそんなに差は出ないと思うけど※個人の感想です、ってしかならない
なんで画像ファイル限定なのか知らんけど
pngやjpgだとzipには無圧縮で入っていることが多いからそのまま展開されずに読みだされるけど、その手の話かな?

372:デフォルトの名無しさん (ワッチョイ af4a-WsPK)
17/01/28 12:16:07.03 Pp3LUsbs0.net
>>363
大した差が無いようであれば基本クラスを使おうと思います
>>364
>pngやjpgだとzipには無圧縮で入っていることが多いからそのまま展開されずに読みだされるけど、その手の話かな?
そうです
基本クラスと#ziplibは試したのですが差が有るような無いような微妙な感じでした

373:デフォルトの名無しさん (ワッチョイ 9777-QkVH)
17/01/28 12:20:54.91 GpK52peC0.net
>>365
基本クラスって言い方は紛らわしい。継承関連かと勘違いする。
標準のクラスとか言ってくれ。

374:デフォルトの名無しさん (ワッチョイ 2b4a-H6k8)
17/01/28 15:14:39.72 XnHJw37P0.net
>>365
目的はなんなん?

375:デフォルトの名無しさん (ワッチョイ af4a-WsPK)
17/01/28 21:03:02.05 Pp3LUsbs0.net
>>367
漫画ビューワですが

376:デフォルトの名無しさん (ワッチョイ 0a4c-cWHx)
17/01/28 22:28:40.58 46h3M0fs0.net
その漫画ビューアが殆ど完成しているのであれば、基本クラスと他のライブラリのスペック差を測れば良いんじゃね?
そこまで大きく実装かわらんでしょ?

377:デフォルトの名無しさん (ワッチョイ 7e9d-AZYz)
17/01/29 03:26:17.34 EZgBqwJb0.net
WebClientでHeadersにIf-Modified-Sinceを設定してDownloadFileとかやると
以下の例外が起きてしまいます
'If-Modified-Since' ヘッダーは、適切なプロパティまたはメソッドを使用して変更する必要があります。
パラメーター名:name
ヘルプによるとWebClientはIf-Modified-Sinceを設定できないようなのですが
HttpWebRequestを使わずにWebClientだけでなんとかなりませんか?

378:デフォルトの名無しさん (ワッチョイ 6f7b-TK3D)
17/01/29 11:34:33.85 I0IcYz370.net
派生させてGetWebRequestオーバーライドしてそこで追加すればいいけど
まあ無駄だな
HttpClientに移行しよう

379:デフォルトの名無しさん (ワッチョイ 1f0d-VFvX)
17/01/29 11:40:15.08 6efjD1Fp0.net
HttpClient WebClient WebRequest HttpRequest の違いがわかりません

380:デフォルトの名無しさん (ワッチョイ bfd6-AZYz)
17/01/29 11:59:58.20 lTC0Slsj0.net
まーたお前か

381:デフォルトの名無しさん (ワッチョイ 5ad4-B+LO)
17/01/29 18:52:35.60 yL6xb8U50.net
>>372
WebClientとWebRequestの違いはWebClientのが簡易。
WebClientはタイムアウトの設定ができない。
WebRequestはタイムアウトの設定がある。

382:デフォルトの名無しさん (ワッチョイ 1f0d-VFvX)
17/01/29 22:42:03.92 6efjD1Fp0.net
>>374
ありがとうございます
HttpClient WebClient の違いは一体何なのでしょうか?

383:デフォルトの名無しさん (ワッチョイ 5ad4-K8QZ)
17/01/30 08:21:14.87 rGZEoMYZ0.net
>>375
HttpClientは私は一度も使ったこと無いけど新しく作られたクラスで
たぶん非同期処理(async/await)で使うことを前提にしたクラスだと思う。
WebClientとWebRequestはGUIソフトで使うにはスレッド内で使わないと固まるけど、
HttpClientはスレッドを使わないでも非同期処理できるということ。
WebClientとWebRequestの違いの追加ですが、
httpヘッダーの取得はWebClientではできないと思う。
httpヘッダーの取得でHTTPステータス・コード、ファイルサイズなどを取得できる。
ファイルサイズ取得によりプログレスバーでダウンロード経過を表示したりとかできる。

384:デフォルトの名無しさん (ワッチョイ 1f0d-VFvX)
17/01/30 10:37:24.9


385:4 ID:U5GM4NUS0.net



386:デフォルトの名無しさん (ワッチョイ 1ad4-AZYz)
17/01/30 11:01:15.30 8jPCKhAg0.net
>>344
2000機が残ってたので3.5で作りましたが、ようやく全廃できたので、4以降で大丈夫です。
(XP機も一緒に駆逐したので、4.5以降で問題なし)

387:デフォルトの名無しさん (スップ Sdca-OKVk)
17/01/30 12:00:30.46 lLUdwlJ5d.net
>>378
まさかとは思うけど、4.0や4.5みたいなサポート切れのFramework使ってないよね?

388:デフォルトの名無しさん (ワッチョイ d3c0-y5A3)
17/01/30 12:13:50.48 b9p90kqg0.net
4.0以下が統一環境になっている俺社の悪口はやめろ

389:デフォルトの名無しさん (ワッチョイ 1ad4-AZYz)
17/01/30 12:55:47.69 8jPCKhAg0.net
VB5やVB6で書かれたプロジェクトも未だに保守してるけど

390:デフォルトの名無しさん (ワッチョイ 5b49-QkVH)
17/01/30 20:36:51.27 SB7dmMyN0.net
>>377
その認識でOK
HttpClientは高機能なのにとても使いやすくなった

391:デフォルトの名無しさん (JP 0H13-zSxl)
17/01/31 00:28:21.39 WN418v1sH.net
WebBrowser使ってるんだけど、HttpClientで取得してWebBrowserに表示のほうがいいのかな
一応WebBrowserでもasyncで取得はしてるんだが
あとAjaxにも対応はしてる

392:デフォルトの名無しさん (ワッチョイ ea30-UZfv)
17/01/31 08:53:34.35 AhlWkjVU0.net
目的達成できてるなら別に変える必要ねーじゃん
悪いとは言わないけど効率の悪い思考だ

393:デフォルトの名無しさん (ワッチョイ af4a-y5A3)
17/01/31 21:52:08.03 H4Wkov650.net
using (HttpClient client = new HttpClient())
{
client.Timeout = Timeout.InfiniteTimeSpan;
using (var stream = await client.GetStreamAsync(url).ConfigureAwait(false))
using (var reader = new StreamReader(stream))
{
while (!reader.EndOfStream)
{
var task = reader.ReadLineAsync();
if (task.Wait(3000))
{
/*通常の処理*/
}
else
{
/*タイムアウト時の処理*/
break;
}
}
}
}
HTTPでのストリーミング受信をこのような感じで受け取るようにしました。
無通信が一定期間(上記だと3秒)あればタイムアウトさせているつもりなのですが、
3秒以上の無通信期間をHTTPホスト側で設けてみても、いっこうにタイムアウトせずに待ち続けています。
task.Wait()の代わりにTask.WaitAny()やTask.WhenAny()なども試してみましたが、
タイムアウト側へ処理が行かないのです。
もっと単純にvar task = Task.Delay(5000);ってやると、タイムアウト側へ処理が流れます。
HttpClientの時だけうまくいかない?
HTTPホスト側のスクリプトはPHPで待機時間を1秒ずつsleep()時間を増やしながらループさせていて、
ホスト側はまず間違いないと思っています。
よろしくお願いします。

394:デフォルトの名無しさん (ブーイモ MMca-AomC)
17/02/01 08:46:58.23 /3Lab+YmM.net
>>385
CancelationToken渡してTask.Delayがタイムアウトしたらキャンセルすれば

395:デフォルトの名無しさん (ワッチョイ af37-AZYz)
17/02/01 11:47:22.62 3Z+GxYTF0.net
paiza ioでC#が始まりました
爆発的にC#人口が増えると思います

396:デフォルトの名無しさん (JP 0Ha3-y5A3)
17/02/01 12:00:51.68 +pDV2e5ZH.net
現状別に少なくないのに
爆発的に増やせるpaizaってどんな影響力持ってんだよ

397:デフォルトの名無しさん (ワッチョイ 2a23-y5A3)
17/02/01 12:58:05.37 G1eAOkHI0.net
>>385
1. client.Timeoutに無限大じゃなくて3秒をセットする
2.処理待ちはストリームリーダーじゃなくてhttpclientで発生しているから、今の処理は無駄なので、ReadLineAsyncはawaitします
3.タイム・アウトすると例外が発生するからハンドリングして処理してください

398:デフォルトの名無しさん (ワントンキン MM1a-FuHd)
17/02/01 13:37:46.83 E2USh33dM.net
相談させてください。
別プロセスを実行し、そのExitCodeをチェックしていますが、間歇でC0000005hが返ってきます。
このコード自体はアクセス違反らしいですが、回避する方法はないでしょうか?
ProcessStartInfo psInfo = new ProcessStartInfo();
psInfo.FileName = "~.exe";
psInfo.CreateNoWindow = true;
psInfo.UseShellExecute = false;
psInfo.RedirectStandardOutupt = true;
psInfo.RedirectStandardError = true;
Process p = Process.Start(psInfo);
p.WaitForExit();
int code = p.ExitCode;
p.Close();

399:デフォルトの名無しさん (アウアウウー Sa7f-//rF)
17/02/01 14:05:38.83 ItKIvr6ga.net
またPickitか?切り出すと分からないから、ソースコードというかプロジェクトまるごとどっかにうpしろ

400:デフォルトの名無しさん (ワッチョイ 9719-QC3X)
17/02/01 14:32:56.95 YUyrzX090.net
起動される側の問題なんだから起動する側ではなんもできん

401:デフォルトの名無しさん (ワッチョイ af4a-y5A3)
17/02/01 15:50:40.89 0UxsMyd00.net
レスありがとうございます。
>>386
なんとなくスマートじゃなさそうな気がしていましたが、ちょっとやってみます。
>>389
やはり2番のそれなんですね。なんとなくそうじゃないかなと思い始めていました。
でも、1番のclient.Timeoutに3秒をセットすると、ホストとの接続が3秒で切れてしまいます。
ループ内のReadLineAsync()で1行ずつ受信できている間は永遠に接続して、
1行受信する間が3秒以上開いたら、回線もしくはホスト側のトラブルの可能性ありとして
受信を見送りいったんループを抜けたいのです。
もう一度2番の内容を念頭に置いてソースコードを見直してみます。
ありがとうございました。

402:デフォルトの名無しさん (ワッチョイ 5b90-Ve17)
17/02/01 15:55:16.40 3kHXSGfF0.net
LINQを使ってGroupBox内のでどのRadioButtonが選択されているか知りたいのですがそういったことはできますか?

403:デフォルトの名無しさん (ワッチョイ 0a4c-ZNcG)
17/02/01 16:02:24.19 jnCvpXDY0.net
その前に、ラジオボタンのCheckedChangedイベントを共通にしちゃダメか?
そいで、senderで判断しちゃ?

404:デフォルトの名無しさん (アウアウウー Sa7f-BDy3)
17/02/01 16:33:48.49 l+tZDtqWa.net
>>394
こういうの?
LINQ苦手だからもっと簡単に書けるかもしれん...
var r = gb.Controls.Cast<Control>().Where(x => x is RadioButton).Cast<RadioButton>().FirstOrDefault(x => x.Checked);

405:デフォルトの名無しさん (ワッチョイ f7dc-ci5U)
17/02/01 16:42:08.74 2EAgbNLS0.net
>>396
OfType使えよ

406:デフォルトの名無しさん (ワッチョイ 5b90-Ve17)
17/02/01 16:59:16.27 3kHXSGfF0.net
自己解決しました。こうなりました
var check = groupBox1.Controls.OfType<RadioButton>().Where(r => r.Checked == true);
>>395
LINQでCheckChangedイベントを追加するようにしました

407:デフォルトの名無しさん (アウアウウー Sa7f-BDy3)
17/02/01 17:25:56.68 l+tZDtqWa.net
>>397
あw

408:デフォルトの名無しさん (ワントンキン MM1a-FuHd)
17/02/01 18:24:38.35 E2USh33dM.net
>390 です。
呼び出される側の問題とのこと、理解しました。
呼び出される側は、VS2005のコンソールアプリです。
中身は外部機器との(多分)ソケット通信等を行うものです。
(外部機器専用のdllを利用するため、中身は分かりませんが)
C0000005hが呼び出し元に返ってくる場合でも、
呼び出され側のmain()の return xxx;直前のコードは正常であることはコンソール出力で確認しています。
.net framework絡みだとGCが関係してるような記述も目にしましたが、
これだけの情報で、もし原因の目処、もしくは対策/回避策がございましたらアドバイスいただけないでしょうか。

409:デフォルトの名無しさん (ワッチョイ 0a4c-ZNcG)
17/02/01 19:24:59.53 jnCvpXDY0.net
dll側でヒープの解放(delete)忘れ、CloseHandle忘れとかなんじゃね

410:デフォルトの名無しさん (ワッチョイ d390-Ve17)
17/02/01 20:00:35.33 cSMjRhkv0.net
また質問なんですが
var rb = groupBox1.Controls.OfType<RadioButton>().Where(x => x.Checked == true)
これで取り出した要素なんですが、ここからRadioButtonのNameプロパティを参照したい場合foreach使わないとダメですか?

411:デフォルトの名無しさん (ワッチョイ 0a4c-ZNcG)
17/02/01 20:15:39.46 jnCvpXDY0.net
>>402
それ394で全部解決だって。
senderをキャストすれば、そのラジオボタンだから

412:デフォルトの名無しさん (ワッチョイ 0a4c-ZNcG)
17/02/01 20:21:32.94 jnCvpXDY0.net
URLリンク(msdn.microsoft.com)(v=vs.110).aspx
ここの一番下のサンプルみてみ

あと、rbが選択されたラジオボタンなんよね?

413:デフォルトの名無しさん (ワンミングク MM1a-bF0B)
17/02/01 20:24:36.92 Q5WgQ/3wM.net
チェックボックスにはバインドしないの?

414:デフォルトの名無しさん (ワッチョイ d390-Ve17)
17/02/01 20:26:26.00 cSMjRhkv0.net
>>403
RadioButtonの共通のCheckChangedイベントじゃなくて別のメソッドから呼びたいんですが・・・
CheckChangedイベントで毎回選択されたものを他の変数に保存したりとかでできそうですが、列挙が一つだけの場合foreachを使わずとも取り出す方法があるなら知りたいと思いまして

415:デフォルトの名無しさん (ワッチョイ d390-Ve17)
17/02/01 20:38:00.85 cSMjRhkv0.net
>>404
見ましたけど自分がほしい情報とは違う気がします

416:デフォルトの名無しさん (アウアウウー Sa7f-BDy3)
17/02/01 20:43:13.76 l+tZDtqWa.net
>>402
これじゃいかんの?
var name = gb.Controls.OfType<RadioButton>().FirstOrDefault(x => x.Checked)?.Name;

417:デフォルトの名無しさん (ワンミングク MM1a-bF0B)
17/02/01 20:46:49.32 Q5WgQ/3wM.net
バインドしないの?

418:デフォルトの名無しさん (ワッチョイ 5b49-QkVH)
17/02/01 21:28:09.21 wmVXAizR0.net
>>400
NativeのDLLの関数を呼び出す場合はGCが関係する場合もあるけど、別プロセスを起動する場合は関係ない。
>>401
単純に開放を忘れただけだったら、アクセス違反にはならんだろ。

419:デフォルトの名無しさん (アウアウウー Sa7f-//rF)
17/02/01 21:30:05.48 ItKIvr6ga.net
呼んでるexeが、最後にreturn 0x C0000005;をしてる原因をエスパーしてくれってことじゃないのか?

420:デフォルトの名無しさん (ワッチョイ 7e5e-y5A3)
17/02/01 21:34:07.73 0YuVGhJt0.net
>>411
return 0x C0000005;とかでなく多分呼び出した先の不正終了
何らかの形で強制終了させられたとかそのあたり

421:デフォルトの名無しさん (ワッチョイ d390-Ve17)
17/02/01 23:00:22.10 cSMjRhkv0.net
>>408
そうです、こういうのを探していました

422:デフォルトの名無しさん (ワッチョイ 6b64-ZNcG)
17/02/01 23:01:28.57 NPEB4GMb0.net
>>407
var rbまで書いてるから、rb.Nameでもいいよねって事。

423:デフォルトの名無しさん (ワッチョイ d390-Ve17)
17/02/01 23:33:29.26 cSMjRhkv0.net
>>414
書けませんし、まず型が違います

424:デフォルトの名無しさん (ワントンキン MM1f-1ST5)
17/02/02 09:38:52.54 F4pSw7TdM.net
>>412
呼び出され側が
int code;

Console.WriteLine("code = " + code.ToString());
return code;
で、呼び出し元で、標準出力を取得すると code = 0 等となっています。

1台のPC上で、複数の呼び出し元を非同期に実行しています。
この辺りが関係してるのでしょうか?
詳しい情報を出せなくて申し訳ないですが、エスパーしてもらえるとありがたいです。

425:デフォルトの名無しさん (JP 0Ha7-FWOa)
17/02/02 11:09:28.98 vkBB6VucH.net
アプリケーション設定ってユーザー¥ユーザー名の下に保存されるけど、windowsのログインアカウント変えたらわ設定読み書きできないよね
ユーザー¥Defaultの下に保存して読み書きできるようにできないかな?

426:デフォルトの名無しさん (ワッチョイ a390-/j6a)
17/02/02 12:35:49.22 twb4E7Xn0.net
ffmpegのエンコ設定の介助ツールみたいなのを作っています
今はコマンドラインを作成してそれをProcess.Start()で引数として渡しているんですが、Process.Start()のときに実行ファイルの確認ダイアログが出ます
これを出ないようにしたいのですが何か方法はありませんか?

427:デフォルトの名無しさん (JP 0Hff-aC2u)
17/02/02 12:43:00.80 8Ui/Ypx9H.net
>>417
ユーザーごとの設定はUsers\<ユーザー名>\AppData\Roaming\の下
ユーザーに依存しない設定はProgramData\の下

428:デフォルトの名無しさん (ワッチョイ 3fd4-0MWP)
17/02/02 12:47:24.46 U1i9H1FA0.net
Defaultは、プロファイルのない新ユーザーが初めてログインしたときの初期値を入れておくとこ

429:デフォルトの名無しさん (JP 0Ha7-FWOa)
17/02/02 13:08:04.48 vkBB6VucH.net
>>419
それってどこで設定するの?
アプリケーション設定のスコープはユーザーかアプリケーションで、アプリケーションだと設定変更できない読み取り専用だよね。
>>420
そういう目的なのか…
てっきり全ユーザー用かと思ってた

430:デフォルトの名無しさん (JP 0H27-yene)
17/02/02 13:16:15.02 K/b9EIy4H.net
むかしはAll UsersってのがあったけどProgramDataになった
というか%ALLUSERSPROFILE%を参照せよ

431:デフォルトの名無しさん (ワッチョイ b319-PiNc)
17/02/02 13:48:00.41 ahVNqXc30.net
user.configは文字通りuser単位なんだからシステム全体向けに保存するわけない
URLリンク(www.codeproject.com)
ここみたいにSettingsProviderを派生させて任意の場所に保存させるようにすることも一応できるけど
保存処理は自分で書く必要がある
バージョニングとかも確か自前実装になるんだったかな

432:デフォルトの名無しさん (ワッチョイ 7f23-yene)
17/02/02 14:07:29.43 jMAutYAP0.net
>>418
前に作った同種のツールは
var info = new ProcessStartInfo();
info.FileName = FFmpegModel.FFmpegPath;
info.Arguments = string.Format(" -i \"{0}\" ", _fullname);
info.CreateNoWindow = true;
info.RedirectStandardOutput = false;
info.RedirectStandardError = true;
info.UseShellExecute = false;
proc.StartInfo = info;
proc.Start();
となっていた。

433:デフォルトの名無しさん (ワッチョイ 134a-yene)
17/02/02 15:42:02.09 TIj28lOD0.net
解決の報告。 >>385
>>389さんの2番で指摘されたようにストリームリーダーのreader.ReadLineAsync()で
待っていたのではなかったのですが、whileループ判定のreader.EndOfStreamで待機していました。
そんなわけで、以下のようにすることで無通信タイムアウトor接続終了でループを抜けられました。
while (Task.Run(() => reader.EndOfStream).Wait(3000) && !reader.EndOfStream)
ありがとうございました。

434:デフォルトの名無しさん (ワッチョイ 036a-2dgJ)
17/02/02 15:56:42.85 pMXQtjQo0.net
MSがアプリケーション共通データはProgramDataの下に書けって言ってなかったっけ

435:デフォルトの名無しさん (JP 0Ha7-FWOa)
17/02/02 16:05:02.97 vkBB6VucH.net
>>423
>>426
ありがとう!
ProgramDataの下にeveryoneにフルアクセス権つけて保存するの作った
ちとスマホからカキコなのでコード書けないけど、DirectorySecurityオブジェクト作ってDirectory.CreateDirectoryでそのオブジェクトを第二引数に指定してDirectory作成。
そこに自作Classをシリアライズしたファイルを保存したって感じ。

436:デフォルトの名無しさん (ワッチョイ ffe1-MPVQ)
17/02/02 17:22:57.87 uXo0yMJE0.net
>>416
呼び出され側もC#なの?
そんならmainじゃなくてMainじゃん
まず、別プロセスにしてる地点で呼び出す側は何も関係ない
単独で呼び出される側のデバックをするしかない
コマンドプロンプトから実行して例外とかが出ないかを見ろとしかいえん

437:デフォルトの名無しさん (ワッチョイ a390-/j6a)
17/02/02 23:43:17.24 twb4E7Xn0.net
>>424
レス遅くなりましたが、ありがとうございます
新たに質問なんですが、ffmpegのエンコード・デコードできる形式や進行状況を取得したりとかはできないんでしょうか?

438:デフォルトの名無しさん (アウアウウー Sa07-xgqO)
17/02/03 01:25:05.94 3xPmzf3na.net
>>429
ffmpegのスレで聞いた方が回答来やすいんじゃないか?

439:デフォルトの名無しさん (ワッチョイ b319-PiNc)
17/02/03 08:57:53.93 jUrc0d/y0.net
-formatsとか-codecsとかでとれるのを解析
標準エラー出力から出力されるのを解析

440:デフォルトの名無しさん (ワッチョイ 7f7b-z2sC)
17/02/03 09:51:46.77 ZetScHUj0.net
>>427
UAC下で管理者でログオンしてるならusers\public\documentsにでも保存すれば?
ProgramDataはフルトークンじゃないとアクセスできないし、そのためにアクセスコントロールいじるのは本末転倒な感じがする
全員に必要な設定やファイルは昇格してからどうぞっていうのがmsの方針なんだろけど

441:デフォルトの名無しさん (ワッチョイ a390-/j6a)
17/02/03 10:37:37.52 aUC8zgXQ0.net
>>430
ffmpeg -formats等でコマンドプロンプト上の表示されるログを取得したいんです
コマンドを知りたいわけではないのです

442:デフォルトの名無しさん (ワッチョイ b319-PiNc)
17/02/03 11:26:59.72 jUrc0d/y0.net
ん?
ProcessStartInfoのRedirectStandardOutputかRedirectStandardErrorかをtrueにして
ProcessのStandardOutputかStandardErrorかを読み取るだけだけど
ffmpegはその辺全部エラー出力の方に吐くんだったっけ

443:デフォルトの名無しさん (ワッチョイ 7f4f-uZek)
17/02/03 22:16:13.16 nKkuONMd0.net
ADコンバータのデータをロギングするアプリケーションを作成中なのですが、
当たり前ですが取得値がふらつくので移動平均を取って平滑化したいと思います。
プログラム経験はマイコンしかないのですが、256サンプル足して8ビットシフトかな~と思っていますが
データ取得クラスと読み出しクラスの両方からアクセスできるグローバルなキューを実現するにはデータ保持用のクラスを作ってインスタンスを持って回るしかないんでしょうか。
なんかもっとスマートに実装できそうな気がするんですけど、いい知恵があればどなたかご教示ください。

444:デフォルトの名無しさん (ブーイモ MMc7-tPtZ)
17/02/03 22:57:31.92 OPa+5hnkM.net
>>435
IEnumerable<int> EnumerateValues() {
while (true) { yield return ReadValueFromADConverter(); }
}
IEnumerable<int> MovingAverage(IEnumerable<int> source, int windowSize) {
var w = new Queue();
foreach (var x in source) {
w.Enqueue(x);
if (w.Count == windowSize) yield return w.Average();
}
}
void Run() {
foreach (var x in MovingAverage(EnumerateValues(), 256))
WriteToFile(x);
}

445:デフォルトの名無しさん (ブーイモ MMc7-tPtZ)
17/02/03 22:59:04.80 OPa+5hnkM.net
>>436
Dequeueを忘れてた
まあわかるでしょ

446:デフォルトの名無しさん (ワッチョイ 13bb-0MWP)
17/02/03 23:02:18.71 WxaeQtuW0.net
イタコード

447:デフォルトの名無しさん (アウアウオー Sa5f-m1Xa)
17/02/03 23:32:37.24 zNHW0BwXa.net
>>436
移動平均計算するのに毎回平均取っちゃうのはちょっと...
合計 = 前回の合計 - デキューした値 + キューする値

448:デフォルトの名無しさん (アウアウオー Sa5f-m1Xa)
17/02/03 23:35:31.03 zNHW0BwXa.net
っていうか、正直>>435が何を聞きたいのかよく分からないw

449:デフォルトの名無しさん (ワントンキン MM1f-4SR0)
17/02/03 23:54:59.42 LN7efSZ0M.net
>>439
そういうくだらない最適化は必要になってからでいい

450:デフォルトの名無しさん (ワッチョイ c349-O+qq)
17/02/04 00:04:44.68 Al8N6D5z0.net
ADコンバータならそれなりのデータ量だし、>>436はあまりにも無駄

451:デフォルトの名無しさん (ワッチョイ 7f4a-yene)
17/02/04 00:08:25.84 rQvpLhJ+0.net
改良したソース出してあげたらん?

452:デフォルトの名無しさん (アウアウオー Sa5f-m1Xa)
17/02/04 00:21:55.25 nTbtTF57a.net
>>441
こんなのは最適化とかそれ以前の問題だと思うよww

453:デフォルトの名無しさん (ワッチョイ 13bb-0MWP)
17/02/04 00:25:52.61 1qBqX1sw0.net
速度=遅い
効率=無視
安全性=なし
可読性=なし
保守性=なし
バグ=あり
自慢=あり
結論:痛いコード

454:デフォルトの名無しさん (アウアウウー Sa07-xgqO)
17/02/04 00:42:30.14 94H9RTyka.net
サンプリング速度にもよるけど、256平均ぐらいなら毎回でもいいかなと思う

455:デフォルトの名無しさん (ワッチョイ 33dc-vqxm)
17/02/04 00:52:17.40 hSQcSff/0.net
・キューを共有していない
・責任が明確に分離されている
・(好みの問題はおいといて)簡潔に実装されている
移動平均のアルゴリズムの効率はともかく、>>435に対する回答としては十分適切だと思うが

456:デフォルトの名無しさん (アウアウオー Sa5f-m1Xa)
17/02/04 01:11:57.49 nTbtTF57a.net
そもそも>>435が何を聞きたいのかよく分からんのだけど、平滑化の方法としては
愚直な移動平均以外にEMAってのもあって、こっちの方が実装も簡単でカスタマイズの余地が大きい
ただこれ、客には嫌われることが多いんだよねw
移動平均の欠点を欠点だと気づいてない人が多いから

457:デフォルトの名無しさん (ワッチョイ 034a-Sup+)
17/02/04 12:22:51.23 QL7U0SpI0.net
adコンバーター出力に平滑フィルター入れればいいだろ

458:デフォルトの名無しさん (ワッチョイ 7f23-yene)
17/02/04 14:27:50.39 vMv5JOxc0.net
質問はキューの実装方法じゃなくてグローバルなクラスの実装方法だから
1.スタティッククラス
2.シングルトン
3.DIコンテナ
あたりを列挙すれば良いんじゃなかろうか?

459:デフォルトの名無しさん (ワッチョイ a30d-PzOe)
17/02/05 15:32:53.00 eeOYv4qE0.net
とあるメソッドの処理をボタンを押すと一時停止・再開させたり中断したいのですがどうすればいいでしょうか?

460:デフォルトの名無しさん (ワッチョイ 53d6-0MWP)
17/02/05 15:36:44.08 JshVpFTv0.net
1)とあるメソッドに処理停止用フラグおよび停止処理を記述します
2)ボタン押下時のイベントで処理停止用フラグを立てます
3)完成

461:デフォルトの名無しさん (ワッチョイ a30d-PzOe)
17/02/05 15:58:45.91 eeOYv4qE0.net
>>452
具体的な停止処理の記述を教えてください

462:デフォルトの名無しさん (ワッチョイ 53d6-0MWP)
17/02/05 16:06:08.06 JshVpFTv0.net
お前のソースを出せ

463:デフォルトの名無しさん (ワッチョイ 33dc-tPtZ)
17/02/05 16:07:14.40 8HS86KpH0.net
>>453
止めたい処理に応じて考えるしかない
時間がかかる処理というのはプログラムのごく一部だから、そこを無理やり打ち切って処理を一旦終わらせてやる
で元の状態から再開できるように作り込む
一般論として言えるのはそれくらい

464:デフォルトの名無しさん (ワントンキン MM1f-4SR0)
17/02/05 16:12:16.68 JJBphtlBM.net
別のスレッドで実行してサスペンド・リジュームするだけ
一般的なスレッド安全性だけ考えておけば個別の処理は必要ない

465:デフォルトの名無しさん (ブーイモ MM07-tPtZ)
17/02/05 16:23:21.66 InU5HIWuM.net
>>456
その一般的なスレッド安全性とやらをどうやって確保するの?
止めた時点でたまたま静的コンストラクタが走ってただけで確実にデッドロックするんだぞw

466:デフォルトの名無しさん (ワッチョイ 9323-yene)
17/02/05 16:34:38.22 63QLrGCH0.net
俺なら、再開と中断のボタンを2つ用意して、処理中なら中断ボタンだけ、中断中なら再開ボタンだけを表示して処理を分けるな
処理は2度押しだけ気をつけたらなんとかなるでしょ
あと、停止中は中断ボタンを表示して、ディセーブルとする

467:デフォルトの名無しさん (ワッチョイ 7f30-MDPp)
17/02/05 18:30:12.19 Eg2ZHPf+0.net
suspendable(cancellable)な処理の書き方はMSDNのタスク並列がどうののページに書いてなかったか?
あれを読めよ
あれが読めないなら手出すのは1年早いから大人しく処理終わるの待ってろ

468:デフォルトの名無しさん (ワッチョイ 433c-yene)
17/02/05 21:51:14.37 72Lq68qY0.net
始めたばかりのレベルで
どんなプログラム作ったらスキル上がりましたか?

469:デフォルトの名無しさん (ワッチョイ 337b-IIg7)
17/02/05 22:47:23.50 moJwvdIq0.net
ゲームとかとにかく実践が大事
ネット記事とか本とか読んで出来るつもりになるのが一番ダメ

470:デフォルトの名無しさん (ワントンキン MM1f-4SR0)
17/02/05 22:49:26.11 JJBphtlBM.net
最初は具体的なアプリを作らないことが重要
文法とランタイムについて納めたら、ひたすらに書籍やウェブサイトでコーディングの良い習慣とイディオムを学ぶ
ある程度自信がついてきたらDDDについて二、三冊本を読む
コーディングはそのあとだな

471:デフォルトの名無しさん (ワッチョイ ffed-ugtB)
17/02/05 22:51:09.08 jq5X/Y9H0.net
電卓は状態遷移とか結構奥深い
括弧とかに対応すると構文解析まで勉強できる

472:デフォルトの名無しさん (ワントンキン MM1f-4SR0)
17/02/05 22:53:11.80 JJBphtlBM.net
にわか仕込みの汚いコードを書く時間を極力減らすこと
最初に書いた汚いコードが癖になるといつまでも平気で汚いコードを垂れ流す
それはこの業界の先人達が証明している

473:デフォルトの名無しさん (ワッチョイ c349-a8w2)
17/02/05 22:57:07.16 fsvHmggw0.net
>>462
DDDじゃ初心者にはチンプンカンプンだろ

474:デフォルトの名無しさん (ブーイモ MM07-tPtZ)
17/02/05 22:59:17.71 zwp3LS7QM.net
モチベーションが一番重要だから作りたいものを作ればいい
ただしシステムユーティリティや操作自動化の類だけは避けること
初心者はそういうのを選びがちだが、確実に泥沼に嵌って時間ばかり浪費し、
得られるのは全く応用の利かないバッドノウハウだけ

475:デフォルトの名無しさん (ワッチョイ 53d6-0MWP)
17/02/05 23:35:26.59 JshVpFTv0.net
簡単な画像処理するのを書いたかな
書籍のやつを丸コピーだったけど書いた内容が
そのまま画面に反映されるからモチベの維持はバッチリだったわ

476:デフォルトの名無しさん (ワッチョイ 7f4a-yene)
17/02/06 00:37:58.37 9OgQn1wp0.net
入門者にシューティングゲーまじお勧め

477:デフォルトの名無しさん (ドコグロ MM7f-C4Pq)
17/02/06 07:19:50.36 87jFG7WVM.net
>>465
最近覚えて使いたくてしょうがないんだろ

478:デフォルトの名無しさん (ワントンキン MM1f-4SR0)
17/02/06 07:48:52.02 gKH+iZUMM.net
あっここ初心者スレだったか


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