[過去ログ]
C#, C♯, C#相談室 Part95 (1002レス)
C#, C♯, C#相談室 Part95 http://mevius.5ch.net/test/read.cgi/tech/1508168482/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
851: デフォルトの名無しさん (ワッチョイ 122c-LiuO) [sage] 2020/02/16(日) 22:47:15 ID:5EL9p8ON0 Seleniumデザインパターン&ベストプラクティス、2015、オライリー この本は、Ruby, Selenium WebDriver でのテスト手法を書いた本 例えば、Ruby, Selenium WebDriverで、 Yahoo への自動ログインするスクリプトは、下を参照 【VBScript】WSHについて話し合うスレ【JScript】 https://mevius.5ch.net/test/read.cgi/tech/1578522041/27 http://mevius.5ch.net/test/read.cgi/tech/1508168482/851
852: デフォルトの名無しさん (ワッチョイ 630c-OxJ8) [sage] 2020/02/16(日) 22:59:33 ID:jBsklMHb0 そしてさも当然ように混じり込むいつものRubyキチ http://mevius.5ch.net/test/read.cgi/tech/1508168482/852
853: デフォルトの名無しさん (ワッチョイ 477b-yNzz) [sage] 2020/02/16(日) 23:43:22 ID:j/dbz9ZG0 >>844 だから君は意識が高すぎるんだよ。 誰もAPIを欲してないし、スクリプトを書きたいとも思ってない。 GUIを自動化したいだけ。 そして君だって、1つや2つのファイル名の変更は、普通にエクスプローラで行うだろ。 勿論APIは整備されていて、コマンドプロンプトでren fileA fileB と打つだけなのに。 GUIの方が簡単だから、GUIで済む場合はGUIを選択する、これが普通だ。 勿論100個と言われたら考えるが、10個程度なら普通はそこでAPI調べてDSLとはならない。 理由は、10個程度なら我慢出来る範囲で、DSLを書く方が時間がかかるからだ。 そしてこの原因は、DSLの方言が酷く、オレオレアプリのDSLなんて書いてもすぐには動かないからだ。 だから「今やった操作をする為のスクリプト」が吐かれ、それをコピペすればすぐ動く、というのは優れたAPIではあるんだよ。 ただ、根本的な原因は既に言ったが『方言が酷すぎる』事だから、それをPowerShellで統一する、という野望は、 方向性として合ってるから悪くもない。 でもそれが達成出来てるとは全く思わないけど。 Unixの「テキストファイル/テキスト操作ツール群/ファイル操作」で統一しているシステムが出来が良すぎて、 結局WindowsもWSLやDockerを導入してる有り様だろ。 話を戻すと、PowerShell+APIでPerformClickが不要になる、なんて事にはなってないし、今後ともならないよ。 GUIの方が直感的で簡単だから世の中GUIな訳で、その操作を自動化するのならエミュレーションは一つの正しい解だ。 ただ、PowerShellの野望は面白いと思うし、なったらなったで俺は普通にそっちに乗っても問題ないけど。 そしてPowerShellが本当に面白いのは、.NETアプリならリフレクション使って何とでも出来ることだろ。 プロセスへのアタッチ機能も有るようだし、APIなんて無くてもやりたい放題だ。 これが、そそる、というのは分かる。 http://mevius.5ch.net/test/read.cgi/tech/1508168482/853
854: デフォルトの名無しさん (ワッチョイ 477b-yNzz) [sage] 2020/02/17(月) 00:04:24 ID:afVseoTo0 >>845 それがすんなり行くかどうかはアプリの作りによる。 例えば、VSのコンパイル機能は csc.exe へのフロントエンドでしか無く、コマンドラインオプションを作るだけの物ではあるだろ。 こういう場合は至って簡単で、そのまま吐くだけで済む。 上手く行かなかったとしたら、前回の内部状態と混線したのだろうけど、ぱっとは思いつかないね。 普通にアプリを作ってしまえば当然再現性はあり、 どのボタンを押したかをそのまま記録/再生すれば当然同じ結果は生成される。 それらを「人間が見て分かるそれなりのコマンド名」に落とし込むのは大変だろうけど、ぶっちゃけ、 CONTROL Button インスタンス名 Click 程度のDSLならその心配もない。 これ以上に格好良くしようとすると、色々大変なのは分かるが、正直、この程度でもDSLとしては十分だから問題はない。 (ちなみに一応言っておくと、Buttonのみならず、他全て、例えばradioButtonやNumericUpDown、TextBox等、 内部状態を変更するGUIコンポーネントについては全てこの方式で記録/再生してる。 そりゃ再生出来るに決まってるだろ、というのは分かると思う) http://mevius.5ch.net/test/read.cgi/tech/1508168482/854
855: デフォルトの名無しさん (ブーイモ MM0e-BzDP) [sage] 2020/02/17(月) 00:55:46 ID:b+8cPYAUM >>853 いやいや誰もUI操作を自動化したいとは思ってない UI操作の背後で行われてる処理を使ってマクロを組みたいんだよ ユーザーは無知だからUI操作をエミュレートする方法しか思いつかないんだろうけど開発者はそれじゃいけない 俺は名前変えるときでもコマンド打つけどねgit mv a bってさ つうかそういう話じゃないよ 普段GUIで作業してようがなにしようがオートメーションしたいならGUI操作じゃなくAPIが整備されてたほうが嬉しい それが当たり前の感覚であってAPIよりGUI操作のほうがいいなんてのは変人の考え方だ UI操作するオレオレDSLなんてまあバグだらけだろうな UI操作の不安定さなんてテスト自動化してる人なら誰でも身を持って経験してるからエンドユーザに提供するマクロ機能としてUI操作を強要するとかありえん UI操作に加えてDSLまで独自開発なんてしてたらバグだらけのうえに開発機能までショボくて使い物にならんだろうな PSみたいな既存言語に乗せればインタプリタの開発はマイクロソフトとコミュニティがやってくれる デバッガなど含めた開発環境もノーコストで手にはいる ユーザーは快適な環境でマクロを弄ることができるわけだ オレオレマクロのユーザーは不憫だな PerformClickはUIコンポーネントの開発者などが使うかもしれんから不要にはならないだろう だがオートメーションサポートするのに依然としてPerformClickは必要ないな UI非依存のAPIを提供するだけでいいのだからUIを操作する意味がない 人間が操作するときに直感的でわかりやすいといっても自動化に適するわけでもあるまい 自動化したいなら人間ではなくプログラムから見て呼び出しやすい構造を提供する必要がある それはアプリケーションプログラミングインターフェースのことであってUI操作ではない PSの面白いところはリフレクションとか意味わからんこと言うな PS普通に使っててもリフレクション使ったコードなんて滅多に書かねえよ http://mevius.5ch.net/test/read.cgi/tech/1508168482/855
856: デフォルトの名無しさん (ワッチョイ b7a7-sep5) [sage] 2020/02/17(月) 01:21:39 ID:HQMlSi3n0 処理の冒頭だけで途中でメッセージボックスが表示されてさらにユーザの追加入力が必要な処理はこれ使えねぇだろ まさにゴミだろキングオブゴミだろ http://mevius.5ch.net/test/read.cgi/tech/1508168482/856
857: デフォルトの名無しさん (ワッチョイ 634b-cV5V) [sage] 2020/02/17(月) 11:36:19 ID:7RiN2OZY0 ThreadPool を使って、非同期に処理を実行しています。 特定のタイミングで ThreadPool に溜まっている処理を全て削除したいのですが、どのようにすればよいでしょうか。 // Threadの登録 ThreadPool.QueueUserWorkItem(new WaitCallback(ThreadMethod)); // ThreadMethod の処理が終わる前に abort させたい スレ違いなら、誘導してもらえると助かります。 http://mevius.5ch.net/test/read.cgi/tech/1508168482/857
858: デフォルトの名無しさん (ワッチョイ f2cf-OxJ8) [sage] 2020/02/17(月) 12:34:12 ID:7ui4xGiq0 古すぎるコード http://mevius.5ch.net/test/read.cgi/tech/1508168482/858
859: デフォルトの名無しさん (ワッチョイ ded6-dJav) [sage] 2020/02/17(月) 13:00:54 ID:uup53KRg0 >>857 CancellationToken(CancellationTokenSource.Token) http://mevius.5ch.net/test/read.cgi/tech/1508168482/859
860: デフォルトの名無しさん (アウアウウー Sac3-+wK4) [] 2020/02/17(月) 13:25:50 ID:YCC5nnQ0a >>850 なんか話が噛み合ってないね。 ボタンABCDEを全部クリックしたのと同じことが起るボタンが欲しい、という要件が発生した時、 その責務をモデルに持たせるべきか、むしろUIレベルでやってしまった方がよいかは微妙で ケースバイケースだと思う。 俺は後者の場合の話をしています。 これまでの流れからそれは自明だと思うけど。 どうでもいいけどこういうのってemulat"なの? simulateでしょ?俺の認識がおかしいのかな。 emulateって言葉はこの世界ではハードウェアの機能をソフトで代替するって ニュアンスが強いと思うんだけどどうかな http://mevius.5ch.net/test/read.cgi/tech/1508168482/860
861: デフォルトの名無しさん (アウアウウー Sac3-+wK4) [] 2020/02/17(月) 13:37:48 ID:YCC5nnQ0a まああれだ、ボタンクリックをシミュレートするなんてなんかダサい、という 中二病的な発想は(同意はできないけど)理解はできないでもない そういう人は「プログラマの意図と実際のコードに乖離がある」 ことの方には気持ち悪さを感じないんだねw っていうか理解できないのか。>>850の人もそうだと思うけど。 だから、プログラマの意図というか要件は「ボタンABCDE全部が押されたのと同じことを起こすボタンが欲しい」 なんだけど。 http://mevius.5ch.net/test/read.cgi/tech/1508168482/861
862: デフォルトの名無しさん (ワッチョイ 1242-OxJ8) [sage] 2020/02/17(月) 14:03:27 ID:/fXse39B0 俺なら「ボタンが同時に押されないように作る若しくは押されても一つだけ有効にする」で組む方を優先するわ http://mevius.5ch.net/test/read.cgi/tech/1508168482/862
863: デフォルトの名無しさん (ブーイモ MM0e-BzDP) [sage] 2020/02/17(月) 18:09:56 ID:qOh2XpnLM >>860 微妙、ではなくモデルに持たせるのが正解 >>861 中2とか意味わからん理由ではなく実益をとっただけ 理解しやすさ、テスタビリティ、変更への耐久性、等を考えればボタンクリックは、無い プログラマ意図をコードに反映することは良い習慣だが 判断を誤ったプログラマの意図をコードに反映させることを正当化してはいけない まずは判断を正してから意図をコードに落とし込もうね http://mevius.5ch.net/test/read.cgi/tech/1508168482/863
864: デフォルトの名無しさん (ワッチョイ ef7b-sg8N) [sage] 2020/02/17(月) 18:50:47 ID:q0kZWH/L0 ワッチョイ 477b-yNzz ブーイモ MM0e-BzDP アウアウウー Sac3-+wK4 いつまで続ける気だよ役立たずどころかクソ迷惑 http://mevius.5ch.net/test/read.cgi/tech/1508168482/864
865: デフォルトの名無しさん (ブーイモ MM0e-BzDP) [sage] 2020/02/17(月) 19:14:45 ID:vEzx9LASM >>864 C#のスレでFormsについて話し合うことの何が問題なんだ? もともとはVC++だったけどこの話題はC#でも通じる話だからここで話してもなんの問題もないはずだ http://mevius.5ch.net/test/read.cgi/tech/1508168482/865
866: デフォルトの名無しさん (ワッチョイ 477b-yNzz) [sage] 2020/02/17(月) 19:45:45 ID:afVseoTo0 >>855 まあ君がどうしてもPowerShell推しなのはわかった。 > UI操作するオレオレDSLなんてまあバグだらけだろうな それはオレオレDSLに無理に高度な機能を持たせすぎてるから。 つるんと書かれたDSLをただ上から順番に実行するだけ、しかもエミュレーションの時に、 何行のコードを追加し、何行の既存コードを変更する必要があると思ってるんだ? 面倒だから答えを言ってしまうが、追加が30-50行程度、既存変更は0行、つまり変更無しだ。 エミュレーションが開発的に強烈なのはこの、完全に外付け出来る点だ。 >>849,850の争点もここで、俺は849と思想が同じく、「そもそもテスト項目を増やすな」でしかない。 だからバグっててもDSLモジュール内で閉じてて精々DSL機能が使えなくなるだけで、 追加テストはエミュレーション部分のみ、というのは十分魅力的なんだよ。 そして君はAPIAPI言っているけど、PowerShellには特にAPIを用意する必要があるわけではないだろ。 publicにしてある関数を勝手に呼ぶだけ、精々ドキュメントを整備するくらいだ。 当然リフレクションを使えば内部関数等は全部抜けるので、呼ぶだけならいくらでも出来る。 リバースコンパイラを使えば分かるが、リフレクションでも割と読めるコードが得られる。 後は好きなだけハッキングしろ、でしかない。(これを、そそる、と言っている) http://mevius.5ch.net/test/read.cgi/tech/1508168482/866
867: デフォルトの名無しさん (ワッチョイ 477b-yNzz) [sage] 2020/02/17(月) 19:46:35 ID:afVseoTo0 あと、PowerShellにこだわりすぎて、強力なDSLなんてPowerShellでしか得られないと思ってないか? 気づいていないんだろうけど、「テキストファイルで操作する」というのはUnixのAPIであって、 そこに揃えるだけでUnix周りのツールが全て使えるようになるんだよ。 具体的に言うと、DSLソースをファイルではなく標準入力とすれば、 (一応言っておくがC#等GUIアプリもコマンドラインから起動すれば普通にパイプできる) その前段のツールが標準出力に「CONTROL Button instancename Click」と吐きさえすれば自動化できるのだから、 PowerShellみたいな糞文法につき合う必要もなく、言語も選べる。当然、C#やPythonも使える。 これも一応具体的に言っておくと python myscript.py | my.NETapp.exe な。 だから高級なDSLが欲しいにしても、フルスペックのDSLを自前で持つ必要なんてまるでなくて、 自アプリ内はアホみたいに「食わされたコマンドを処理して終わり」なDSL実行部分だけで十分なんだよ。 それで後はAWK/Perl/Python/Ruby等、好きな言語使って勝手にやってくれ、になる。 つまり30-50行程度追加し、既存部分にバグが発生することもなく、 AWK/Perl/Python/Ruby等好きな言語を使って自動化出来るのがエミュレーションの利点であり、 Unixインタフェースに揃える美味さだ。だからみんなここから離れられない。 http://mevius.5ch.net/test/read.cgi/tech/1508168482/867
868: デフォルトの名無しさん (ワッチョイ 477b-yNzz) [sage] 2020/02/17(月) 19:47:56 ID:afVseoTo0 >>860 一応調べてみたが、この場合は微妙だし、どっちでも良いと思う。 > https://hinative.com/ja/questions/11390949 > https://xcelgo.com/emulation-vs-simulation/ 要は、中身まで模倣するのがemulationで、外面だけ合わせるのがsimulation。 よって実行速度は通常simulator>>>emulatorになる。 void Button_Clicked(Object^ sender, EventArgs^ e) { some_func(); } で some_func を直接呼ぶならsimulation、 Button_Clicked を呼んでもまあsimulation、 OnClick や PerformClick を呼ぶならemulation、というのが俺の見解。 emulation扱いの2つはClickイベントを発生させる=UIスレッドのイベントキューに積むだけであり、 ハードウェアマウスのイベントと見分けが付かないから。 (内部的にハードウェアマウスのクリックを模倣している) 対して上記simulation扱いの2つは、 simulatorが「このボタンをクリックしたら結果的にこの関数を実行する」と知っていて、 外面動作を合わせる為にそこを呼んでいる。 当然emulationの実行速度はsimulationと比べて遅い。 だから、最初からsome_func()呼べよ、という若さは分かるが、そこをケチっても実質的意味はない。 ここら辺は年を取れば老獪になるというか、手の抜きどころが分かるようになる。 emulation方式だと当然、UIスレッドがハングアップしていたら永久に処理されないし、 未処理のイベントがあればその後に処理されることになる。 ここら辺は完全にハードウェアマウスの動作と同じになる。 simulation方式だと、すぐに呼ばれる為、 非UIスレッドでDSLを処理した場合、未処理のUIイベントがあると処理順序が逆転してしまう。 だから、DSL実行環境とGUIの実行環境が同一の場合はDSL処理はUIスレッドでやるしかない。 だったら最初からPerformClickでやればそういう心配すらないだろ、ということになる。 http://mevius.5ch.net/test/read.cgi/tech/1508168482/868
869: デフォルトの名無しさん (ワッチョイ 477b-yNzz) [sage] 2020/02/17(月) 19:49:07 ID:afVseoTo0 余談だが>>850のUIテストが安定しないのはこの辺が大きい。 要は、GUIなんて所詮人間相手前提で組んであるのであって、 CPUの速度でイベントを積まれた場合にも正しく動くレベルまでのテストは為されていない事も多い。 技術的に見ればアプリが糞で組み方が悪いだけだが、そこまで保証する意味もないのも事実。 結果、「人間がやると動くが、CPUでやると動かない」なんてのは割とよく遭遇することになる。 だからまあ、「UIテストは安定しないから出来るだけ回避」も一つの戦術だが、 「UIテストも安定するようにちゃんと設計する」も一つの戦術なんだけどね。 「安定しない」のはあんまり正当化していい話でもないし、 ちゃんと設計されているアプリしか触ったことのない人にとってはポカーンな話でもあるとは思うよ。 ちなみに、文句を言っている連中に合わせるとしたら、以下のようなDSLにすればいい。 CONTROL Button instancename Click // PerformClickを呼ぶ some_func() // some_func()を直接呼ぶ これで、好きな方使えで済む話で、実際も、これに近い。 (当然だがDSL用のコマンドは別に持ってて、全部大文字なのはそれらと被らない為の方策) http://mevius.5ch.net/test/read.cgi/tech/1508168482/869
870: デフォルトの名無しさん (ワッチョイ 1fad-z23p) [sage] 2020/02/17(月) 19:55:08 ID:Nkb49BjE0 議論が発散しててよくわかんないな。 何が何なの?全員、アブストを書いたらどうだ? http://mevius.5ch.net/test/read.cgi/tech/1508168482/870
871: デフォルトの名無しさん (ブーイモ MM32-BzDP) [sage] 2020/02/17(月) 19:56:33 ID:iNM+ZupGM >>866 論点をずらそうとしてるね クソみたいなUI操作オレオレマクロよりUI非依存のPSのが低コストで品質がいいねというだけの話だろ 例としてPSを出したが別になんだっていいよ 最も大きな問題はインタプリタの方ではなくUI操作でオートメーションサポートするというバカバカしい発想の方な オートメーションをサポートするならUI非依存のAPIを整備しろ それが正しい道だ http://mevius.5ch.net/test/read.cgi/tech/1508168482/871
872: デフォルトの名無しさん (スッップ Sd32-3blX) [sage] 2020/02/17(月) 20:21:59 ID:YeNwIpPfd 話がまとまってないのに余談とか言っちゃって相手もそれに乗っかちゃって… これを繰り返すからいつまで経っても収束しないし元の議題が何だったかわかりづらくなる http://mevius.5ch.net/test/read.cgi/tech/1508168482/872
873: デフォルトの名無しさん (ワッチョイ 477b-yNzz) [sage] 2020/02/17(月) 20:24:09 ID:afVseoTo0 >>860 >>868訂正、結果的に>>869は間違いなのでよろしく 俺の見解では全部simulationになる。 確認してみたら、PerformClickは同期イベントだった。 呼び出し履歴見る限り、Button.PerformClick->Button.Onclick->Control.OnClick->イベントハンドラ なので、 OnClickもほぼ確実に同期だと思われる。 だから呼称は全て simulation の方が妥当となる。 イベントキューとかは全く関係なくなるので、該当部分の869の話は間違いということでよろしく。 同期イベントなのは.NETの癌だと思っていたが、 この点に関しては同期イベントの方がプログラミングしやすい、というのは事実だな。 (俺の想定の非同期イベントだと俺のコードは動かないはずなのに気づき、確認したところ、同期だったorz) http://mevius.5ch.net/test/read.cgi/tech/1508168482/873
874: デフォルトの名無しさん (ワッチョイ 477b-yNzz) [sage] 2020/02/17(月) 20:40:15 ID:afVseoTo0 >>871 > 論点をずらそうとしてるね お前がだろ。 > UI操作でオートメーションサポートするというバカバカしい発想の方な GUIの自動化ならGUIのエミュレーションが俺的に第一選択肢だ。 これについては既に>>842で言ったとおり、君が気に入らないのはどうぞご自由にだが、 最近話題のSeleniumでも同様なのだから、君が思うほど糞でもないんだよ。 もっとも汎用的で、もっともカッコ悪いが、どんな馬鹿でも使えるソリューションだ。 そして、やる気になればPerlやPythonと組み合わせて自由自在でもある。 ソースコード戦略にも、テストにも問題がない。ならこれで決まりでいい。 http://mevius.5ch.net/test/read.cgi/tech/1508168482/874
875: デフォルトの名無しさん (ブーイモ MM0e-BzDP) [sage] 2020/02/17(月) 21:41:26 ID:zVw4OscHM >>874 Selenium系はAPIを提供してないサイトのオートメーションをユーザーが苦労して泣く泣く自動化したい場合やテスト自動化で使うツールな 俺らが今議論してるのはユーザー目線じゃなくて提供者側なんだよ 提供者側がAPI実装を放棄してGUI操作をサポートするなど馬鹿なことだ ユーザーに苦労を押しつけてはいけない http://mevius.5ch.net/test/read.cgi/tech/1508168482/875
876: デフォルトの名無しさん (アウアウウー Sac3-+wK4) [] 2020/02/17(月) 21:45:10 ID:HH3Dtgxka >>863 複数のボタンを全部クリックした時の動作、なんていう下らない機能を モデルに持たせることが正当化されるケースってむしろあんまりないと思うよw ぱっと思いつくのは、ボタンABCDEをクリックした時の処理に共通する部分 (例えばファイルのopen/closeのような前処理後処理)があって、まとめてやる場合には 大幅な最適化が可能な場合。 この人本当にプログラマかな。 http://mevius.5ch.net/test/read.cgi/tech/1508168482/876
877: デフォルトの名無しさん (アウアウウー Sac3-+wK4) [] 2020/02/17(月) 21:49:38 ID:HH3Dtgxka >>870 白鳥はすべて白い(PerformClickなんて100%イラネ)という人がいるので、 いやいや世界には黒い白鳥もいるんだよ、とまあそういう話 http://mevius.5ch.net/test/read.cgi/tech/1508168482/877
878: デフォルトの名無しさん (ブーイモ MM0e-BzDP) [sage] 2020/02/17(月) 22:01:31 ID:zVw4OscHM >>876 その糞設計だと要件変化ですぐにコードが汚染されるだろうなぁ 処理は今までどおり実行したいが特定のボタンだけ画面から削除したくなったせいで謎のHiddenボタンを置いたり 処理の結果で後続の処理を分岐したくなったせいで不自然な制御フラグフィールドが乱立したり 画面のデザイン変えただけなのになぜか処理の実行順序が変わったり 少し想像しただけでトラブルの兆しがするするでてくる こういう発想はアマチュアらしくて微笑ましいけど業務で見かけたら説教しなきゃいけないぐらいだ http://mevius.5ch.net/test/read.cgi/tech/1508168482/878
879: デフォルトの名無しさん (ワッチョイ 932c-VKUZ) [sage] 2020/02/17(月) 22:05:59 ID:dzSo2/zk0 >>863 各ボタンに割り当ててるコマンドをcomposite Commandで繋いで終わりじゃない? http://mevius.5ch.net/test/read.cgi/tech/1508168482/879
880: デフォルトの名無しさん (アウアウウー Sac3-+wK4) [] 2020/02/17(月) 22:08:44 ID:HH3Dtgxka >>878 よく分からない妄想ワロタw 意味が分からないよ >要件変化ですぐにコードが汚染される まさにその通りw 君の設計方針だと必然的にそうなる。 http://mevius.5ch.net/test/read.cgi/tech/1508168482/880
881: デフォルトの名無しさん (アウアウウー Sac3-+wK4) [] 2020/02/17(月) 22:09:55 ID:HH3Dtgxka どーでもいい非必然的な機能をモデルに持たせることは、 UIにベタベタ処理を実装するのと同じ糞設計ですw http://mevius.5ch.net/test/read.cgi/tech/1508168482/881
882: デフォルトの名無しさん (アウアウウー Sac3-+wK4) [] 2020/02/17(月) 22:28:58 ID:HH3Dtgxka 一応言い訳しておくけど、>>876に書いたみたいに最適化の恩恵なんかなくても 複数の処理をまとめて一度にやるメソッドをモデルが持つことが自然なケースはもちろん存在すると思う。 っでも俺が言っているのは「黒い白鳥もいる」だからね。 「白鳥は全部白いは間違っている」と言ってるだけだから http://mevius.5ch.net/test/read.cgi/tech/1508168482/882
883: デフォルトの名無しさん (ブーイモ MM0e-BzDP) [sage] 2020/02/17(月) 22:56:12 ID:zVw4OscHM >>880 お前のやり方はではすぐにコードが汚くなるって言ってんの 俺のやり方はメンテナンスしやすいモデルを採用してるからコードの品質が維持される http://mevius.5ch.net/test/read.cgi/tech/1508168482/883
884: デフォルトの名無しさん (ブーイモ MM0e-BzDP) [sage] 2020/02/17(月) 23:01:51 ID:zVw4OscHM >>882 まとめて処理をする機能が要件にあるならそれをモデルに実装するのが王道で自然な方法 お前はそれをボタンクリックなどという大道芸的な方法で実装しようとしてる異端 http://mevius.5ch.net/test/read.cgi/tech/1508168482/884
885: デフォルトの名無しさん (ブーイモ MM0e-BzDP) [sage] 2020/02/17(月) 23:03:21 ID:zVw4OscHM >>881 そうだ だからまとめて処理をするという最小限の機能をモデルに実装せよと言ってる ボタンクリックなどという余計なお遊びは入れなくていい http://mevius.5ch.net/test/read.cgi/tech/1508168482/885
886: デフォルトの名無しさん (ワッチョイ b7a7-sep5) [sage] 2020/02/17(月) 23:09:15 ID:HQMlSi3n0 こない未来を予測してる奴はバカ 絶対失敗する しかも、最悪の形で http://mevius.5ch.net/test/read.cgi/tech/1508168482/886
887: デフォルトの名無しさん (ブーイモ MM0e-BzDP) [sage] 2020/02/17(月) 23:18:49 ID:43uLIzGsM >>886 来るかもしれない未来を考えないのも同じぐらい馬鹿だな そして未来がわからんなら余計な拡張性を導入するのではなくコードを容易に改修できるようにシンプルに保つことが重要 つまりシンプルなモデルにやりたいことを素直に書けばそれでいい それで済むものをわざわざボタンクリックなんていうやらなくていい遠回りな方法で実装するのは後で困る馬鹿の典型例 http://mevius.5ch.net/test/read.cgi/tech/1508168482/887
888: デフォルトの名無しさん (ワッチョイ 477b-yNzz) [sage] 2020/02/18(火) 00:50:17 ID:/0BlMKgF0 >>875 だから君はちょっと意識が高すぎるんだよ。 自動化したいユーザーは、今やったのと同じ操作を100個のファイルに適用したいとかだ。 「ログに出てるコマンドをコピペすれば今やった操作を自動化出来ます」との情報を得て、ログを見たら、 CONTROL TextBox filename my000.jpg CONTROL Button file_load Click CONTROL Button filter_A Click CONTROL Button file_save Click となってたら、まともなプログラマなら適当にスクリプト書いて10分後には完了してる。 そこを「APIを調べてPowerShellでスクリプトを書いてください」だと困る奴の方が多いと思うが。 何でオレオレアプリのAPIをユーザーが一々調べないといけないんだよ?調べるだけで10分かかる。 方法は何でもよく、勿論APIでもいいんだけど、ユーザーは手っ取り早く今の処理を100個のファイルに展開したいだけ。 それには歴史的にも今も「テキストファイル内にコマンド羅列(=つまりスクリプト)」という方法が用いられている。 これが一番分かりやすいからだよ。 PowerShellの「.NETアプリをインスタンス化して内部関数を直接呼ぶ」というのは発想としては面白いけど、 それが分かりやすいわけでもなく、汎用性があるわけでもなく、使いやすいわけでもない。 まあもうこれは堂々巡りだから終わりでいいが、 君の意見が正しければ、今後は全てのアプリでAPIが公開されていき、MS謹製のUIAutomationなんてゴミになることになる。 俺はそんなことにはならないと思うけど。 http://mevius.5ch.net/test/read.cgi/tech/1508168482/888
889: デフォルトの名無しさん (ワッチョイ b7a7-sep5) [sage] 2020/02/18(火) 00:57:57 ID:GPdxsdEp0 >>888 だからよ 1処理用の処理を連続で100回動かしたら確認ダイアログが100回出るだろーが バカかテメーは http://mevius.5ch.net/test/read.cgi/tech/1508168482/889
890: デフォルトの名無しさん (アウアウウー Sac3-I9Fa) [sage] 2020/02/18(火) 06:52:39 ID:fxDAJd/Ea 言い合いになるなら 構わなきゃいいのになあw http://mevius.5ch.net/test/read.cgi/tech/1508168482/890
891: デフォルトの名無しさん (ブーイモ MM32-BzDP) [sage] 2020/02/18(火) 07:50:57 ID:LkwV7cyFM >>888 意識は高くない普通の感覚だよ 当たり前のことを当たり前にやるだけだ モデルに処理を書いてビューに紐付けるってごくごく自然なコードだろ しかもそれすればほとんどタダでオートメーションサポート機能が手にはいるんだぞ ボタンクリックとかわざわざ苦労してトラブルを持ち込んでくる意味わからねえわ マゾなのか http://mevius.5ch.net/test/read.cgi/tech/1508168482/891
892: デフォルトの名無しさん (JP 0H6e-1vH+) [sage] 2020/02/18(火) 07:59:37 ID:ZOlvaa/TH >>889 その程度の回避策が思いつかないようなバカがいるとは http://mevius.5ch.net/test/read.cgi/tech/1508168482/892
893: デフォルトの名無しさん (ブーイモ MM32-BzDP) [sage] 2020/02/18(火) 08:20:17 ID:LkwV7cyFM >>888 ちなみにこのマクロでわかりやすいと思うのはお前だけだぞ 普通の人だったら オートメーションなのなんでコントロールを操らないといけないんだ意味わからん ボタンとかテキストとか書かれても何やってるか意味わからん 各行の関連性が意味わからん 操作してるインスタンスはどのフォームだよ意味わからん などなど大混乱してしまう ユーザーが見てわかりやすいレコードログってのは↓こういうものな $model = $MyAppHost.Resolve("MyModel") $model.FileName = "..." $model.LoadFile() $model.FilterA() $model.SaveFile() この処理をたとえばカレントディレクトリ全体に適用したいなーってユーザーが思ったらls | foreachでパイプするだけ お前の大好きなコード生成みたいなバカバカしい無駄な苦労をしなくて済む http://mevius.5ch.net/test/read.cgi/tech/1508168482/893
894: デフォルトの名無しさん (ワッチョイ 63de-sep5) [sage] 2020/02/18(火) 08:23:55 ID:didWPBin0 >>892 そこ工夫が必要ならこんなくだらんメソッド呼ばんわw http://mevius.5ch.net/test/read.cgi/tech/1508168482/894
895: デフォルトの名無しさん (ブーイモ MM32-BzDP) [sage] 2020/02/18(火) 08:43:22 ID:LkwV7cyFM >>888 例えばさぁ お前のオレオレうんこマクロでファイルが存在しなかった場合のハンドリング処理はどうやって書くつもりなんだ? ファイルの形式が間違ってた場合は? セーブに失敗したときどうする? 指定したディレクトリツリーのファイルすべて処理したいときはどう書くんだ? http://mevius.5ch.net/test/read.cgi/tech/1508168482/895
896: デフォルトの名無しさん (ワッチョイ 167b-4wVb) [sage] 2020/02/18(火) 21:08:13 ID:U5rnBvKT0 直のWINAPI(というか多分アンマネージ)が混ざる動作だとDebugとReleaseで動き変わること割りとあってめんどくさいな http://mevius.5ch.net/test/read.cgi/tech/1508168482/896
897: デフォルトの名無しさん (ドコグロ MM47-P13C) [sage] 2020/02/19(水) 07:47:22 ID:bztKe272M >>896 単なるお前のバグだろ http://mevius.5ch.net/test/read.cgi/tech/1508168482/897
898: デフォルトの名無しさん (ワイーワ2 FFdf-IPX/) [] 2020/02/19(水) 11:28:45 ID:cGULNOoWF WINAPIのはDebugだと0埋めされるんだろ そりゃ動作変わるって(バグがあればω) http://mevius.5ch.net/test/read.cgi/tech/1508168482/898
899: デフォルトの名無しさん (オイコラミネオ MMff-oN3k) [sage] 2020/02/19(水) 14:38:26 ID:xNHctau2M 0じゃなく埋められる数値は何種類かある デバッグリリースで挙動変わるのはほぼ確実にメモリ周りでなんかやらかしてるね http://mevius.5ch.net/test/read.cgi/tech/1508168482/899
900: デフォルトの名無しさん (ワッチョイ c37b-1Vd5) [sage] 2020/02/19(水) 21:10:46 ID:1xSUjqPH0 >>893 俺はPowerShell知らんから推測文法で勝手に書くと function apply_filterA(filename){ // (A) echo CONTROL TextBox filename $finename echo CONTROL Button file_load Click echo CONTROL Button filter_A Click echo CONTROL Button file_save Click } ls | foreach apply_filter とかか? まあ雰囲気は分かるだろ。どうしてもオブジェクト文法で書きたければ、property使える言語なら ref class OreOreWrapper { // (B) property String^ Filename { void set(String^ filename){echo("CONTROL TextBox filename "+finename);} } } model; とかかな。 俺が用意するのは公式UIAutomationでしか無い。 君は逆に何故UIAutomationがああなのか、また、 何故PowerShellなんて全く流行ってないのか、理解した方がいい。 既に言ったがコード戦略的には他にも色々理由はあるのだけど、それ以前に、 そもそも外面仕様的にも、.NET縛りになる糞APIを提供する意味なんて上記の通り、まるでないだろ。 Unixフォーマット(テキストと標準入出力)に揃えるのは、異様なほど自由度を提供する物なんだよ。 だからみんなそこから離れられない。 http://mevius.5ch.net/test/read.cgi/tech/1508168482/900
901: デフォルトの名無しさん (ワッチョイ c37b-1Vd5) [sage] 2020/02/19(水) 21:11:45 ID:1xSUjqPH0 君が間違えているのは、君が出来ているつもりになっている「レイヤー設計」だ。(>>819) 君の中ではPowerShell(中レベル)/アプリの2層しかないから 中レベルAPIをアプリ自体に求め、それで汎用性が全くなくなっている。 そうではなく、各言語向け中→低レベル変換ライブラリ(上記A,B等)を噛ませば、 各言語(中レベル)/各言語向けレベル変換ライブラリ/アプリ(低レベル)となり、 全ての言語で中レベルでも低レベルでも書ける状況になるだろ。 俺の好きなフォーマットで書かせろ、というのはいいが、それはAPIに直接求めるものではない。 どうせどんなAPI/フォーマットを提供したところで、全員が満足する事なんて無いんだ。 なら、上記のように、単純な関数化/ラップでそれぞれのオレオレ超最高フォーマットが手に入るのなら、 それは素晴らしいAPIってことになるんだよ。 そして本件なんて、文句を言った方が恥ずかしくなるレベルなのは君でも分かるだろ。 http://mevius.5ch.net/test/read.cgi/tech/1508168482/901
902: デフォルトの名無しさん (ブーイモ MMff-o/5i) [sage] 2020/02/19(水) 22:47:18 ID:Z9/2no0YM >>900 まる一日以上かけてそれかよ そんな汚いわかりにくいコードをありがたがるのはお前だけだぞ さて>>895に答えるのに何日かかるかなw http://mevius.5ch.net/test/read.cgi/tech/1508168482/902
903: デフォルトの名無しさん (ブーイモ MMff-o/5i) [sage] 2020/02/19(水) 22:52:36 ID:Z9/2no0YM >>901 ホント残念なやつだな アプリの中にさらに層が別れてるに決まってんだろ それぞれの層をスクリプティング用に公開することもほぼノーコストでできる 薄汚いオレオレラッパーを大量生産する苦痛とは無縁だ そんなこた言わなくてもわかることなんだがわからなかったか http://mevius.5ch.net/test/read.cgi/tech/1508168482/903
904: デフォルトの名無しさん (ブーイモ MMff-o/5i) [sage] 2020/02/19(水) 23:21:51 ID:Z9/2no0YM >>900 つうかな自由とハックを混同するな そういうのは黒魔術的な方向に進化してあっという間にカオス化して行く そんなものはだれもありがたがらない 製造元が頭の悪いマクロしか提供していないから泣く泣くラップ作業に着手するってんならまあ話はわかるが進んでやりたいことじゃねえわな http://mevius.5ch.net/test/read.cgi/tech/1508168482/904
905: デフォルトの名無しさん (ワッチョイ c37b-1Vd5) [sage] 2020/02/19(水) 23:22:37 ID:1xSUjqPH0 >>902 まあもう一々答える気はないんだけどな。 本当に問題になることを突かれた場合は改善に繋がるから有用なのだけど、 君のレベルではそれは無理だし、実際に今回も恥ずかしいことになってるだろ。 多分君が根本的に間違っているのは、バグをバグと認識できてないことだ。 既に言ったがUIを噛ませて動作が不安定になるのは、明確にバグなんだよ。 それはCPUが余りまくっている暇人環境なら再現しにくいだけで、 他アプリでCPUを取られている場合においてはユーザー環境でも普通に再現する。 つまりCPUロードが高い状況では不安定になるわけで、これは普通にバグだよ。 だから君はまずそのバグを直さないといけない。 そうすると>>850の認識をだいぶ修正出来るだろうさ。 http://mevius.5ch.net/test/read.cgi/tech/1508168482/905
906: デフォルトの名無しさん (ブーイモ MMff-o/5i) [sage] 2020/02/19(水) 23:24:13 ID:Z9/2no0YM >>905 答えられませんわかりませんって素直に言ったら? 潔さも時にはたいせつだよ http://mevius.5ch.net/test/read.cgi/tech/1508168482/906
907: デフォルトの名無しさん (ブーイモ MMff-o/5i) [sage] 2020/02/19(水) 23:31:23 ID:Z9/2no0YM >>905 つか不安定ってとこを拠り所にしてるようだが 仮に完全に安定しててもUI操作ベース貧弱文法のオレオレマクロなんて積極的に使う理由にならんからな UI非依存のAPIを優先して他に何もなくてどうしてもUI操作せざるを得ないとなったらそこで初めて使うか別のツールに移行するか検討すんだよ そこんとこはやく理解したほうがいいぞ 同僚や取引先にボタン押すオレオレマクロ機能をドヤ顔で提案して赤っ恥をかく前に気づいたほうがいい これ本当に君が心配だから言ってる http://mevius.5ch.net/test/read.cgi/tech/1508168482/907
908: デフォルトの名無しさん (ブーイモ MMff-o/5i) [sage] 2020/02/19(水) 23:36:36 ID:Z9/2no0YM しかもな もし仮に百万歩譲ってUI操作をサポートしなきゃならんとなったとしてもだ そんなものはUIA、WinAppDriver、Seleniumに任せときゃいいんだよ 時間と金をかけて赤っ恥マクロを製造する必要はない もうすでにゴミマクロの億万倍便利なライブラリがあるんだからそれつかいなよ エンドユーザだってそっち使うよ当たり前だろ http://mevius.5ch.net/test/read.cgi/tech/1508168482/908
909: デフォルトの名無しさん (ワッチョイ ff63-JjxG) [sage] 2020/02/20(木) 00:55:48 ID:FY8QkcoV0 >>905 正常系だけ動けばいいマクロだったら人間用のUIを触るでもなんとかなるよ。 異常系もハンドリングしなければならないなら、何が出てくるかの一覧もないような、ダイアログに書かれてることを理解しなくちゃいけないんだから、網羅するのはめちゃくちゃ大変だと思わないかな。 人間用には問題を自然言語で全体的な説明する必要があって、 外部プログラム用には事前定義されたメッセージで問題を端的かつ詳細に伝える必要があって、 両者はプロトコルが大きく異なるんだから、人間用に外部プログラム用の伝え方をしたり、もしくはその逆ってのはどう考えても筋が悪い。 外部プログラムに人間シミュレーターをやらせたり、 人間に外部プログラムシミュレーターをやらせたら、 余計なレイヤーが必要になってバグの温床になるだろ。 「バグはバグだろ」とか言ってたって品質は改善しないので、そもそもバグが生まれにくい構造にしておくのが当たり前。 設計からやったことないのかな? http://mevius.5ch.net/test/read.cgi/tech/1508168482/909
910: デフォルトの名無しさん (ワッチョイ c37b-1Vd5) [sage] 2020/02/21(金) 23:28:13 ID:UQ40Zz5M0 >>909 ではまず、 ・君的超最高な異常系ハンドリング方式、>>893と同様にコードで、と ・現状やたらあるタスクランナー等のどれ一つにもそれが採用されてない理由 を聞こうか。 http://mevius.5ch.net/test/read.cgi/tech/1508168482/910
911: デフォルトの名無しさん (アウアウエー Sadf-o/5i) [sage] 2020/02/22(土) 00:53:29 ID:eCNgUA1qa こういう返しをしてくるということは数日かけても本当に思いつかなかったんだなwww http://mevius.5ch.net/test/read.cgi/tech/1508168482/911
912: デフォルトの名無しさん (ワッチョイ e397-JjxG) [sage] 2020/02/22(土) 08:29:38 ID:lw7HhssO0 >>910 あなたは話を逸らす傾向にあるから、その前に、まず、 「自分のオレオレマクロでは正常系での動作しか考えられていなくて、 正常系で動かないのであれば、バグはバグなんだから修正する必要があると言っていた。 だが、異常系への対応までは考慮することができていなかった」 ということを暗に表明していることを認めてもらえるかな? 異論があるならどこが違うのか指摘してくれ。 http://mevius.5ch.net/test/read.cgi/tech/1508168482/912
913: デフォルトの名無しさん (ワッチョイ ff63-ufZq) [sage] 2020/02/22(土) 10:09:00 ID:hsz3eTB90 ガイジの相手をしているところが間違っているね http://mevius.5ch.net/test/read.cgi/tech/1508168482/913
914: デフォルトの名無しさん (アウウィフ FFe7-IPX/) [] 2020/02/22(土) 14:22:35 ID:2qBDSHyDF 正常系と異常系がごちゃまぜで どこが危なくてどこが危なくないのか全く区別がつかない http://mevius.5ch.net/test/read.cgi/tech/1508168482/914
915: デフォルトの名無しさん (ワッチョイ 937b-UH+R) [sage] 2020/02/22(土) 14:33:37 ID:4D2R9AsT0 毎度毎度スレ違いどころか明後日の方向レスの応酬やっている連中は病院行け http://mevius.5ch.net/test/read.cgi/tech/1508168482/915
916: デフォルトの名無しさん (ワッチョイ ff2c-lQWV) [sage] 2020/02/22(土) 14:53:22 ID:qQaAG+8d0 漏れは、スクレイピングに、Ruby, Selenium WebDriver, Nokogiri を使う。 ブラウザの自動操作もできるし ただ、各サイトの解析が大変。 特に、Ajax で動的に読み込むものは、読み込み前には存在しないから http://mevius.5ch.net/test/read.cgi/tech/1508168482/916
917: デフォルトの名無しさん (ワッチョイ 232f-lQWV) [sage] 2020/02/23(日) 21:04:42 ID:9ZBd+yN40 ところでこれ、既存の他アプリを操作するって話なの? 自分の既存アプリを多アプリが操作するって話なの? 多アプリで操作されるアプリを設計するって話なの? http://mevius.5ch.net/test/read.cgi/tech/1508168482/917
918: デフォルトの名無しさん (アウアウウー Sa0f-ymO9) [sage] 2020/03/09(月) 14:45:58 ID:aNmrWQjka こんな感じで TestDataGridView.Columns.Add("Number", "No."); TestDataGridView.Columns.Add("Item", "項目"); for (int i = 0; i < Max; i++) { TestDataGridView.Rows.Add(1); TestDataGridView["Number", i].Value = (i + 1).ToString(); TestDataGridView["Item", i].Value = ""; } 初期化して、TestDataGridView["Item", i].Valueに何らかを代入して作業を終えて 中身を消そうと for (int i = 0; i < Max; i++) { TestDataGridView["Item", i].Value = ""; } を実行するとGCがバカバカ発生して滅茶遅いのですが、なんでですか? http://mevius.5ch.net/test/read.cgi/tech/1508168482/918
919: デフォルトの名無しさん (ワッチョイ 4f7c-MjGO) [sage] 2020/03/09(月) 15:04:37 ID:306ybdW+0 GCがバカバカ発生したってのはどうやって確認したの? 遅い理由がGCにあるってどうやって確認したの? http://mevius.5ch.net/test/read.cgi/tech/1508168482/919
920: デフォルトの名無しさん (アウアウウー Sa0f-ymO9) [sage] 2020/03/09(月) 15:07:43 ID:aNmrWQjka >>919 デバッグで起動して、右側の診断ツールのプロセスメモリのグラフに黄色のマークがどんどん現れたのです。 http://mevius.5ch.net/test/read.cgi/tech/1508168482/920
921: デフォルトの名無しさん (ワッチョイ 9f24-CBSz) [sage] 2020/03/09(月) 15:52:53 ID:GI3THqg50 WinformsならSuspendLayout & ResumeRayout(true)で囲ってみては? DataGridViewってItemsSourceに代入するとき以外は代入するたびに表示の更新されるよね、確か http://mevius.5ch.net/test/read.cgi/tech/1508168482/921
922: デフォルトの名無しさん (アウアウウー Sa0f-ymO9) [sage] 2020/03/09(月) 16:45:24 ID:aNmrWQjka >>921 やってみましたが変わらずです。 11列×256行で最初の2列はそのままで以降の列に計測値と計算値を代入して、次の測定でクリアするのですが、一回目は瞬時クリアで2回目以降は20秒くらい待たされます。 自動調節などは入れていません。 今まで同様なソフト作っていて初めての事です。 http://mevius.5ch.net/test/read.cgi/tech/1508168482/922
923: デフォルトの名無しさん (スッップ Sdbf-UVo+) [sage] 2020/03/09(月) 17:12:18 ID:cFIy8do/d プロファイラでどこが時間くってるか見てみれば? http://mevius.5ch.net/test/read.cgi/tech/1508168482/923
924: デフォルトの名無しさん (ワイーワ2 FF3f-g6LZ) [] 2020/03/09(月) 18:10:16 ID:T4gz2l9RF 何らかの代入してる方に問題ありそう http://mevius.5ch.net/test/read.cgi/tech/1508168482/924
925: デフォルトの名無しさん (ワッチョイ cb7b-NDfE) [sage] 2020/03/09(月) 18:28:22 ID:UntOhQUT0 >>922 ミニマムコード作って動かしてみれば それでそんな動作になるのなら諦めるか改めてそのコード示して質問するか 一回目と2回目の動きが変わるとかGCが頻繁に動くとかちょっとありえないし http://mevius.5ch.net/test/read.cgi/tech/1508168482/925
926: デフォルトの名無しさん (ワッチョイ 9f24-CBSz) [sage] 2020/03/09(月) 18:28:52 ID:GI3THqg50 >>922 ちゃんと TestDataGridView.SuspendLayout(); TestDataGridView.ResumeRayout(true); って書いた? これはコントロール毎にしか聞かないから、Form1のサスペンド呼び出しても子コントロールには効かない http://mevius.5ch.net/test/read.cgi/tech/1508168482/926
927: デフォルトの名無しさん (ワッチョイ 9f24-CBSz) [sage] 2020/03/09(月) 19:15:42 ID:GI3THqg50 TestDataGridView.SuspendLayout(); //ここにTestDataGridViewの処理を書く TestDataGridView.ResumeRayout(true); いずれにしても20秒も掛かるとなると他に原因ありそうだな 一応自分はFlowLayoutPanelに自作コントロールをListViewのように並べるというソフト作ってた時、 1000個以上のアイテムを一気に追加すると数秒ラグってたのがこの手法によってほぼ一瞬で表示されるようにはなったが http://mevius.5ch.net/test/read.cgi/tech/1508168482/927
928: デフォルトの名無しさん (スッップ Sdbf-UVo+) [sage] 2020/03/09(月) 19:28:18 ID:JH2CO7i+d デバッガ表示見てるんだからプロファイラで問題箇所特定が一番早くて確実 その上で最小再現コード作ったり他の設定いじったり試行錯誤してみればいい なんで便利な標準ツールを使わずに他の手法を進めるのか理解できない http://mevius.5ch.net/test/read.cgi/tech/1508168482/928
929: デフォルトの名無しさん (ワッチョイ 9f94-ymO9) [sage] 2020/03/09(月) 21:38:17 ID:aWxXRkAf0 >>926 for文の前後に入れました。 http://mevius.5ch.net/test/read.cgi/tech/1508168482/929
930: デフォルトの名無しさん (ワッチョイ 9f94-ymO9) [sage] 2020/03/09(月) 21:39:54 ID:aWxXRkAf0 >>928 すまん、使いこなせないのだ。 http://mevius.5ch.net/test/read.cgi/tech/1508168482/930
931: デフォルトの名無しさん (ワッチョイ 9f94-ymO9) [sage] 2020/03/09(月) 21:50:06 ID:aWxXRkAf0 >>929 Resumeの()にはtrueじゃなくて空でした。 駄目? http://mevius.5ch.net/test/read.cgi/tech/1508168482/931
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 71 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.017s