ふらっと C#,C♯,C#(初心者用) Part156 at TECH
[2ch|▼Menu]
[前50を表示]
600:デフォルトの名無しさん
22/11/03 12:47:38.39 M3w0A0V30.net
>>598
何を怒ってるかわかんない。甘く見られたって事?
そんな事で怒らんでも良いじゃん。アホ過ぎるとこっちの話が理解できないこともあるよ。俺は計算資源さえ許せばちゃんとレンダリングした方がええでしょ、WebViewでもpuppeterとかでも。
うーん、jsとdomをエミュレートしてレンダリングするタイプは、要は突き詰めるとヘッドレスなブラウザを作ることと変わんなくなるので、確かに味は変わるが、ルーから作ると失敗するぞ言いたい。

601:デフォルトの名無しさん
22/11/03 12:48:40.21 M3w0A0V30.net
ええでしょ、と思うよ、だった。すまんね。

602:デフォルトの名無しさん
22/11/03 12:49:54.05 irjlHMAba.net
>>596
何を言ってるんだ
スクロールに従って画像を表示するのにDOMは使わないって話をしてるんだよ
<img src=@(img)/>と書きゃimg変数のURLにある画像が表示される
画面に表示されるとこだけそのタグを作る
タグを作るのにDOMは使わない
そういう話だ

603:デフォルトの名無しさん
22/11/03 12:55:41.20 M3w0A0V30.net
>>602
え?何言ってるの?「DOM APIが何かわかってる?」に対して「Blazorはそれを…」の返事に「違うよ」って返したんじゃん?
しかも、結局それBlazorはDOM APIを使って画面に表示するところだけそのタグ作ってるからね。

604:デフォルトの名無しさん
22/11/03 12:57:28.19 irjlHMAba.net
とりあえず元のスレでやれ
何がしたいのかよくわからんがお前がウザいのはわかった
スクレイピングの話なら素直にセレニウム使っとけ

605:.NET MAUI HighScool
22/11/03 13:01:54.15 fiCeisHS0.net
>>604
だからSelenium使わずにWebViewでやったらキチガイがSeleniumやWebViewは初心者wとか言って絡んで来たんだが

606:デフォルトの名無しさん
22/11/03 13:06:30.69 irjlHMAba.net
読む気にもならんから知らんが初心者が初心者向けの方法を使って悪いことは何もあるまい
お前が上級者だと言うなら他のやり方を気にせず上級者のテクニックを使ってスクレイピングとかいう糞みたいな作業を続ければいい

607:.NET MAUI HighScool
22/11/03 13:09:44.54 fiCeisHS0.net
>>606
バカにされたままだとうぜえからこのスキル使えるようになりたいと思ったがなんか無理そうだな

608:デフォルトの名無しさん
22/11/03 13:09:44.56 WOBTUDvw0.net
初心者がスクレイピングとか迷惑でしか無い

609:.NET MAUI HighScool
22/11/03 13:09:55.62 fiCeisHS0.net
>>608
なぜ?

610:デフォルトの名無しさん
22/11/03 13:18:41.93 kiz4JKw0a.net
Javascriptのインタプリタをつくればいいだけじゃないの?

611:デフォルトの名無しさん
22/11/03 13:39:14.90 q0+PchV30.net
漏れは、Ruby Selenium Webdriver で、ブラウザを自動操作してる。
サイトのログインとか
更に、Nokogiri でスクレイピングもできる

612:デフォルトの名無しさん
22/11/03 13:39:56.44 m6o3Pqh2d.net
MAUI「htmlを、regexでアクセスしてる」
うざいやつ「htmlは、DOM APIでアクセスしろ」
って事??

613:デフォルトの名無しさん
22/11/03 13:41:07.19 x8JkO9N7M.net
ていうかさあ
よそのスレで起こした(しかもお前が立てたスレの)揉め事をこのスレに持ち込んで助けを求めるようなことするなよ
ここで付け焼刃の知識を仕入れて建てたスレでイキりたいんだろうけど
そんなことやってて恥ずかしくないの?

614:.NET MAUI HighScool
22/11/03 13:44:22.86 ymgDfjLU0.net
>>613
俺は恥ずかしくないよ?

615:デフォルトの名無しさん
22/11/03 13:45:03.53 x8JkO9N7M.net
と思ったらMAUIの人か
じゃあ諭すだけ無駄か・・・・・
まあなんだ、VIP板とやらで頑張ってくれ
こっちに帰ってくるなよ

616:デフォルトの名無しさん
22/11/03 13:52:27.10 j+eH91hfa.net
MAUIに変なイメージついたな
マウイ高校の人に謝れ

617:デフォルトの名無しさん
22/11/03 14:03:01.23 tn2ZhR3p0.net
せっかくXamarinについた変なイメージを隠したのにな。

618:.NET MAUI HighScool
22/11/03 15:12:06.23 ymgDfjLU0.net
なんで俺は.NET MAUIの地位向上に努めてるのに避難されなきゃいけねぇんだ

619:デフォルトの名無しさん
22/11/03 15:34:50.67 WOBTUDvw0.net
>>609
・まともなクローラーが作れない
・テストを知らないから、未完成状態でサイトに頻繁にアクセスする
・例外処理の設計ができていないから、サイト側からフィルタされてもアクセスし続ける
結果:監視カメラの前で裸踊りしてる様子を記録されていることに気が付かない
スクレイピング対象になりえるサイトのデータの二次利用は民法的に大体アウト(良くてグレー、真っ白は基本的にありえない)
そのクソみたいなアクセスのせいで、サーバリソース追加しなきゃならんケースがあるからサイト側からすると迷惑でしかない

620:デフォルトの名無しさん
22/11/03 15:37:50.67 2Kw6fOvE0.net
散々イキりまくった挙句技術力不足で他人を頼ってくるとか情けなさすぎる
MAUIの地位を貶めるためにやってるんじゃないなら相当やばい

621:デフォルトの名無しさん
22/11/03 22:02:04.04 20/srh0o0.net
>>619
ヘッドレスブラウザでトライ&エラー繰り返されたらあれだろうがHttpClientでhtml単品要求してくるくらいなら別に自由にしたらって思うけどな

622:デフォルトの名無しさん
22/11/04 00:40:17.01 IgmKO4aZ0.net
HttpClient使わないとrobots.txtが取りづらいよな?という嫌味ならなるほどなとは思う。

623:デフォルトの名無しさん
22/11/04 19:03:03.51 nywf9UY+0.net
boolでは2つの返り値を持つ事はできないですか?
URLリンク(i.imgur.com)
ゲームで接地判定を作っているのですが、真ん中からレイを飛ばすと崖でレイが反応しなくなるので、このように両脇から2本飛ばしています。
判定用の関数を作ってます。

624:デフォルトの名無しさん (ワッチョイ 8bbb-/OGx)
22/11/04 19:12:28.11 7HgZbeW40.net
>>621
同じアドレスにウェイトなしアクセスをぶん回してくるやつとかいるんだぜ

625:デフォルトの名無しさん (ワッチョイ d941-2RrB)
22/11/04 19:22:14.68 IiXUZSOe0.net
>>623
boolでは2つの返り値を持つ事はできないです。
なぜならboolはメソッドではなく型だからです。

626:デフォルトの名無しさん (ラクッペペ MMeb-YnjT)
22/11/04 19:33:46.65 5m02ltgpM.net
Win32/C++
BOOL GetMessage(略) ・・・

627:デフォルトの名無しさん
22/11/04 19:37:37.70 kqfS0jzoM.net
>>623
(bool foo, bool bar) F() {
return (true, false)
}
var x = F();
WriteLine(x.foo);
WriteLine(x.bar);
(var a, var b) = F();
WriteLine(a);
WriteLine(b);

628:デフォルトの名無しさん
22/11/04 20:31:37.30 nywf9UY+0.net
>>627
bool型の関数の場合は1つしか持てないじゃないでしょうか

629:デフォルトの名無しさん
22/11/04 20:49:12.99 T0hKgiyQa.net
戻り値では無く引数にrefでboolを2つ渡せばいいんじゃ無い

630:.NET MAUI HighScool
22/11/04 20:50:56.37 OnPQoW1c0.net
.NET 7いつ降りてくるんだ?

631:デフォルトの名無しさん
22/11/04 21:08:53.29 u3TD418O0.net
>>629
相手すんなよ...

632:デフォルトの名無しさん
22/11/04 21:27:00.15 Fl24BIVd0.net
論理演算で一つにまとめればいいじゃん

633:デフォルトの名無しさん
22/11/04 21:31:27.64 SZTCZ5vE0.net
タプル使うと後が大変かも

634:デフォルトの名無しさん
22/11/04 21:57:15.77 8LyOgWL1a.net
タプルってディクショナリーで複合キーみたいに使えるんかね
dict[("aaa",1)]=456.8

635:デフォルトの名無しさん
22/11/05 00:03:26.00 z7QTqWos0.net
進次郎構文を質問に応用するとこうなるのか...

636:デフォルトの名無しさん
22/11/05 01:03:31.06 zPyCNtrD0.net
複数の引数を戻り値で受け取りたいとか言う奴いるけど
参照でええやん・・・

637:デフォルトの名無しさん
22/11/05 05:24:52.32 tZqy6bJ10.net
>>636
参照?どういうこと
普通に関数2つ作るのがシンプルかもしれませんね

638:デフォルトの名無しさん
22/11/05 06:12:30.08 tZqy6bJ10.net
プログラミングは日本語で言語化することが大事でしょうか
それがフローチャートだったりするのでしょうが

639:デフォルトの名無しさん
22/11/05 08:08:07.32 qYBt5eWid.net
「何をするプログラムなのか」「なぜこうするのか」といった仕様や意図を自然言語で分かりやすく正確に記述できる能力は重要
一般に日本人はそれを苦手とする者が多く、安易に図表に頼ったり、
自然言語で書くとなるとプログラムと逐次対応するような低レベルな記述(実質的にExcel方眼紙上でコーディングしているだけ)をする傾向がある

640:デフォルトの名無しさん
22/11/05 08:26:37.39 2xMBgYRAM.net
意味不明すぎる

641:デフォルトの名無しさん
22/11/05 08:34:43.47 yxkEcNx60.net
文章でグダグダ書かれるより図表や擬似コードで書いてくれた方が100倍マシ

642:デフォルトの名無しさん
22/11/05 08:36:00.30 sjtvh1h/M.net
visual transformer を図表無しで
納得させる資料を書いてから言え

643:デフォルトの名無しさん
22/11/05 08:43:50.98 3YlQFQnT0.net
質問者は投稿する前に、自分の質問をよく推敲しろよ。これはC#初心者以前の問題だ。
文章が意味不明で相手に伝わらず、あほな質問だと思われたらそれなりの答えしか返って来ないぞ。

644:デフォルトの名無しさん
22/11/05 09:40:58.84 yYAK326QM.net
>>638
大事ではないけど
言語化と言うかもともと何をしたいのかと言うことがはっきりしていて
それをコードに落とし込んでいるはず
ところが後でコードからその何をしたいかが読み取れない場合があるので
おおまかなコメントなどを残すことになる
細かく内容を記述するのは無駄だしコードを手直しするたびに書き換えるのは無理だ
フローチャートは階層が深くなる複雑な制御構造になる場合に脳で追いきれなくなる場合に描いたりすると便利なんだろうけど
大体みんなちゃんとしたものじゃなくて流れを落書きする程度だと思う

645:デフォルトの名無しさん
22/11/05 11:36:03.24 cwSbm70XM.net
>>638
よく言われるのは「How」はコードで書く
「What、Why」は自然言語や図表を使って書く、、、てこと

646:デフォルトの名無しさん
22/11/05 17:37:50.25 tZqy6bJ10.net
>>644
>>645
どうも
きれいなコードを書くことでフローチャートはいらないのかもしれないですね
処理は言語化しないと何をしてるのか分からなくなったりしますね

647:デフォルトの名無しさん
22/11/05 17:53:52.87 zg6rbg9v0.net
フローチャートなんてアセンブリ言語でしか使わんぞ
もしかしたらCでギリギリ使うこともあるかもしれんがオブジェクト指向言語では必要ない
オブジェクト指向言語でフローチャート使わなきゃならんとしたらその前にまずオブジェクトの設計がおかしい

648:デフォルトの名無しさん
22/11/05 18:13:19.21 jSE+d3f7M.net
>>645
Whatもコードで表現しようぞ

649:デフォルトの名無しさん
22/11/05 18:22:12.07 anrNho5cM.net
>>648
宣言的プログラミングだね
理想的だけど手続きを全て無くすのは難しい
コードはどうしてもハイブリッドになってしまう

650:デフォルトの名無しさん
22/11/05 18:26:36.41 pQZkgeTuM.net
オブジェクト指向言語で処理の流れを図示するならシーケンス図やアクティビティ図
静的な構造の図示はクラス図やパッケージ図

651:デフォルトの名無しさん (ワッチョイ 9279-YsF2)
22/11/05 18:43:24.92 D4NMIenB0.net
アクティビティ図書くなら
フローチャートのがわかりやすいな

652:デフォルトの名無しさん
22/11/05 20:41:38.38 SeMW4Qkf0.net
VSがある程度自動的にクラス関係図生成してくれねぇかなあ

653:デフォルトの名無しさん
22/11/05 20:58:35.47 zg6rbg9v0.net
クラスデザイナーというのがあるからインストーラの個別のコンポーネントで検索してみろ

654:デフォルトの名無しさん
22/11/05 21:29:39.32 6Vg185nZ0.net
>>653
あれってCore系未対応じゃなかったっけ?

655:デフォルトの名無しさん
22/11/05 21:50:02.83 mwXpY34pM.net
>>649
HowだけでなくWhatもコードで表現しようとするのと宣言的プログラミングはちと違うんだが
いずれにしても重要なのは「仕様のWhat」を「コードのWhat」として対応付けること

656:デフォルトの名無しさん
22/11/05 22:06:58.20 neflR3f7M.net
>>652
クラス関係図ではないけどあるクラスのメソッドやフィールドと他のクラス(または外部ライブラリdll)への関係を図示するだけならコードマップ表示がある

657:デフォルトの名無しさん
22/11/05 22:57:43.05 x8IGYLJlM.net
Windowsフォームアプリ(.NET Core)のスケルトンコードより
フォーム初期化処理(InitializeComponent()メソッド)
URLリンク(i.imgur.com)

658:デフォルトの名無しさん
22/11/05 23:01:20.64 mbE+OsReM.net
>>655
ほとんど同じだよWhatをコードで表現しようとすると自然と宣言的になる
というか宣言的プログラミングがそういうもの
どうやってではなくてどうなって欲しいかを記述する

659:デフォルトの名無しさん
22/11/06 00:37:13.40 zZNJQBYc0.net
>>656
使用環境条件が厳しい
コード マップを使用して依存関係をマップする
URLリンク(learn.microsoft.com)
>コード マップの作成および編集には、Visual Studio Enterprise エディションが必要です。
>ただし、Visual Studio Community および Professional エディションでは、Enterprise エディションで
>生成されたダイアグラムを開くことはできますが、編集することはできません。

660:.NET MAUI HighScool
22/11/06 00:58:03.81 Am1kuzif0.net
.NET 7についての前情報得てるやついる?
どんな感じなんだろ?

661:デフォルトの名無しさん
22/11/06 02:59:28.10 3Vlqt+cVa.net
質問です。
構造体を使っていて関数内でnewしてそこで使い終わる(ボクシングしない)場合は、stackに乗るだけなので、heapは汚さないしgcには影響無い認識でいいですよね?ゲームを作ってるのでgcの影響を少なくしたいんです。

662:デフォルトの名無しさん
22/11/06 07:14:57.83 t/MPMTDqM.net
構造体でもインスタンス生成してる時点でガベージコレクションの対象
.NETでは値型であろうが参照型であろうがすべての変数は監視下に置かれる
ボクシングは値型の変数を参照型(object型)変数に代入する時に一時インスタンスを生成して値をコピーして渡す機能なので全く関係ない話

663:デフォルトの名無しさん
22/11/06 07:30:46.83 mzFwuoQr0.net
>>661
> 構造体を使っていて関数内でnew
よくわからんからコードで示して

664:デフォルトの名無しさん (ブーイモ MMad-yfbC)
22/11/06 09:30:46.32 OgJKt7GdM.net
>>661の理解で正しいよ。>>662は間違い。
値型は単なるデータ構造であり、それ自身はGCの管理対象にならない。

665:デフォルトの名無しさん (ブーイモ MMad-yfbC)
22/11/06 09:45:40.42 OgJKt7GdM.net
ただし、もちろん値型の変数を使ったらその先が全てGCの追跡の対象外になるわけではなくて、値型に定義された参照型の変数はGCの追跡対象となる。
上に述べた通り値型は単なる埋め込みのメモリのデータ構造なので、それ自体は単にGCをバイパスする。
そして、最終的にメモリ上に展開された構造のうちで参照型の変数だけが追跡対象となるわけ。

666:デフォルトの名無しさん
22/11/06 09:52:21.19 mzFwuoQr0.net
>>664
newしてても?

667:デフォルトの名無しさん
22/11/06 09:54:44.02 zZNJQBYc0.net
値型のintでも実際はSystem.Int32構造体のインスタンスではなかったっけ?
MaxValue、MinValueなどのプロパティやToString()などのメソッドが使えたはず
値型の変数でもGCが追跡しているのでは?

668:デフォルトの名無しさん
22/11/06 09:57:00.84 OgJKt7GdM.net
>>666
構造体のnewは、スタック又はそれを保持する参照型オブジェクト上に事前に確保された領域に対し、コンストラクタをインプレースで実行する
新たなインスタンスを生成している訳ではない

669:デフォルトの名無しさん
22/11/06 10:00:33.74 OgJKt7GdM.net
>>667
値型に対してObjectクラス又はValueTypeクラスのメソッドを呼び出そうとすると、その時点でボックス化が発生し、ヒープ上に新たなインスタンスが生成される

670:デフォルトの名無しさん
22/11/06 10:06:01.01 sZiKsnj+0.net
ポインタがオマケでつくかつかないかだけなのか

671:デフォルトの名無しさん
22/11/06 11:39:39.10 8lzCZdko0.net
なんか久し振りにここでためになる話を聞けた気がする。
横からだけど、ありがとう。

672:デフォルトの名無しさん
22/11/06 12:23:04.83 eRXytuty0.net
>>662のしったか具合がやばい

673:デフォルトの名無しさん
22/11/06 12:28:55.33 46oDEsAIa.net
このスレは前からそんなもんだろ
素人が知ったかして嘘ばかり教えるスレ

674:デフォルトの名無しさん
22/11/06 13:25:57.55 zZNJQBYc0.net
intの構造体はC/C++で言うところの自己参照構造体を強引に組み込み型として実現してるっぽい
URLリンク(qiita.com)

675:デフォルトの名無しさん
22/11/06 13:54:54.11 FxP86aLpM.net
>>674
この記事では、そもそもなぜ再帰的な定義になっていて、それがどのように機能するかの説明にはなっていないような
C#のintやInt32型の変数は、実際にはどちらもILのプリミティブ型であるint32型にコンパイルされるんだよ
つまりInt32をint32型のフィールド一つだけを持つ構造体として定義してやれば、Int32とint32のメモリ上のレイアウトが同一になる
あとはコンパイラの型チェックを細工して、それらを区別しないようにしてやればよいというわけ

676:デフォルトの名無しさん
22/11/06 14:38:11.76 mupUNnkwa.net
>>664
680です!有難う、スッキリしました!

677:デフォルトの名無しさん
22/11/10 02:43:44.58 nQDHqGzi0.net
TwitterのAPIからツイートを取得し、それを保存する方法について知恵を貸してください
現状テキストファイルに以下のように保存しています
ツイートID||kugiri||ユーザID||kugiri||日付||kugiri||本文||kugiri||未読フラグ||kugiri||保護フラグ
これをString.Splitで配列にしています
問題は||kugiri||とツイートされるとデータが壊れます
実際は||kugiri||ではなくもうちょっと長い記号の羅列ですがどうしても万が一という不安が残ります
こういうデータはXMLで保存するものなのでしょうか
その際「<Honbun>本文</Honbun>」のように保存されると思いますが
「07214545</Honbun>hoge」などXMLのコードが含まれるツイートをされても壊れないものですか?
保存時に本文だけBase64等にするか全てバイナリで保存も考えましたが、ファイルを直接開いて検索したりできないのも不便です
あとは本文をデータの末尾にしてString.Splitを使わずに1つずつ配列に戻すか
データ量は20,000件程度です、他によい方法がありましたらアドバイスおねがいします

678:デフォルトの名無しさん
22/11/10 03:37:46.97 +sVvBbXs0.net
>>677
その程度のことで人に聞くならプログラムなんかするな


と言いたいところだが

タブで区切れ

679:デフォルトの名無しさん
22/11/10 05:44:42.33 nQDHqGzi0.net
>>678
ツイッターとか5chとか不特定多数のユーザが書き込みをできるシステムで
タブは絶対にユーザーが埋め込むことができない文字ということですか?

680:デフォルトの名無しさん
22/11/10 07:09:23.51 m98zu82a0.net
適当なで区切る
データにその記号があればエスケープしておく

681:デフォルトの名無しさん
22/11/10 07:45:50.73 nQDHqGzi0.net
>>680
例えば|chinko|という区切り文字を使っている場合にユーザーが|chinko|と書き込んだ場合
APIから取得時に|ちんこ|と置き換えておくと言う事ですね、表示するときには|chinko|に戻すと
現状改行コードを置き換えて保存しているので、そこにまとめて組み込めば楽そうです

682:デフォルトの名無しさん
22/11/10 08:16:38.34 XxWk5gSzr.net
文字列の改変で(削除でもなく)、エスケープとかサニタイズを独自に実装するのは苦労すると思うよ

683:デフォルトの名無しさん
22/11/10 08:34:01.14 9mQBoBy40.net
>>677
もしよろしけば下記について教えてほしい
その上で「JSON形式ではダメな理由」があるなら、それも教えて
1. 「保存」の目的(保存したデータの利用目的)
2. 現状の保存形式を選択した理由

684:デフォルトの名無しさん
22/11/10 09:11:14.02 O+ugNNB7M.net
xmlもjsonもエスケープ方法は規格として決められている
オレオレエスケープなんか考えなくても偉い人が作ったものを黙って使えば良い

685:デフォルトの名無しさん
22/11/10 09:13:17.40 TJ0qCovBd.net
ファイルに保存する際の定石をよく分かってないだけでしょ
JSONやXMLでもいいけど、この場合普通に一つのツリーとして書き出すと追記できなくて不便そうだから、JSON Linesがお勧めだな
Excelなどで表として扱いたいならCSVでもいいがJSON Linesよりはフォーマットにバリエーションがあるから考慮すべきことは多くなる

686:デフォルトの名無しさん
22/11/10 09:42:00.83 hu9oTdXa0.net
目視もしたいなら尚更そのままjsonでええやん

687:デフォルトの名無しさん
22/11/10 10:19:10.77 24bGZvg4a.net
最近学びはじめてC♯ではメインメソッドを省略できるということで楽だなーと思っていたら関数のオーバーロードのところでエラーが出てしまいました
従来通りクラス名とメインメソッドを書くやり方だと普通に出来たのでローカル関数(オーバーロードできない?)として認識されているためエラーが出てるという認識で合っていますか?
メインメソッドを省略した場合どうやってもオーバーロードできないのでしょうか?

688:デフォルトの名無しさん
22/11/10 10:33:00.98 vuUWLQnn0.net
>>687
トップレベルに書かれたメソッドはローカル関数になります
cf) //ufcpp.net/study/csharp/misc/miscentrypoint/#top-level-statements

689:デフォルトの名無しさん
22/11/10 11:17:10.46 eH71UEsUa.net
>>681
違う、それだと |ちんこ| と書き込んだら |chinko| になっちゃうだろ
|chinko| と書き込まれてたら |エスケープ||chinko| にして、表示する時に |エスケープ||chinko| を |chinko| に戻す
ただこれだと |エスケープ||chinko| って入力されたら |エスケープ| が無くなっちゃうから |エスケープ| 自身もエスケープして |エスケープ| が来たら |エスケープ||エスケープ| にして、表示時に |エスケープ||エスケープ| を |エスケープ| に戻す
※ |エスケープ||chinko| の保存データは |エスケープ||エスケープ||エスケープ||chinko| になる
まあ>>684の言う通りオレオレエスケープは知識としては知っておくべきだけど自前で実装するよりライブラリ等に頼った方がいいと思うよ

690:デフォルトの名無しさん
22/11/10 12:01:29.52 24bGZvg4a.net
>>688
ということはオーバーロードを使いたい場合トップステートメントのあとにクラスやら定義してから関数作るか別のファイルで作って呼び出すしかないという認識でいいですか?

691:デフォルトの名無しさん
22/11/10 12:31:50.00 vuUWLQnn0.net
>>690
それでいいと思います
ただ、そこまで色々するのならトップレベルに書かず普通に書いた方が分かりやすいんじゃないかなという気もしますが

692:デフォルトの名無しさん
22/11/10 12:55:47.41 24bGZvg4a.net
>>691
なんかどうなのかな?ってもやもや気になってしまって
教えてくれてありがとうございましたスッキリしました!

693:デフォルトの名無しさん
22/11/10 15:17:52.70 F9S+K/27M.net
CSVのreader/writerは標準では無いんだね

694:デフォルトの名無しさん
22/11/10 18:43:48.03 NDp6c9mu0.net
>>693
readerというかParserはあるよ
TextFieldParserクラス
URLリンク(dobon.net)
同じところに載っている独自解析のサンプルや自分でParser作った方が動作は若干早くなるだろうけど

695:デフォルトの名無しさん
22/11/10 18:44:43.64 QLIhXLlU0.net
ツイートって文字数決まってなかったっけ?
このパターンなら昔は固定長とかも候補になっただろうに
最近の文字コード事情考えると固定長は厳しいよなぁ

696:デフォルトの名無しさん
22/11/10 19:17:24.93 BjQppGzz0.net
拡張性とか無くなるけど
本文の位置をラストにしてcountを渡せば
Split一発で配列に出来るかも

697:デフォルトの名無しさん
22/11/10 20:27:59.70 m98zu82a0.net
5chのDATのようにHTMLエンコードして改行を<br>で置き換えたものを<>で連結するフォーマットは何気に簡単でいいね

698:デフォルトの名無しさん (オイコラミネオ MM91-o+MF)
22/11/11 11:48:16.03 V/N8drZJM.net
ここで出てる案だと普通はタブ区切りがいい
汎用性がある
excelやpythonのpandasでシンプルに読める
VSCodeでアドインもある

699:デフォルトの名無しさん
22/11/11 12:23:50.12 z+UtuJ+k0.net
>>698
>>679 の回答によると思うが

700:デフォルトの名無しさん
22/11/11 12:29:30.36 8WOXnYS7M.net
システムとして必要がないので抹殺するのみ

701:デフォルトの名無しさん
22/11/11 13:24:51.05 zPVyBVcV0.net
馬鹿みたいにHTML解析してデータ取得してるならまだしも普通にapi投げてるならjson一択やろ

702:デフォルトの名無しさん
22/11/11 13:33:07.32 OBpw9JhUa.net
ふつーYAML

703:デフォルトの名無しさん (ワッチョイ a2bd-+nMC)
22/11/11 16:29:42.18 WVb8D07I0.net
初めまして。
.NetCoreでコマンドラインみたいな改行させながらのログ表示をさせようと思ったのですが、どんなコントロール使えば良いのでしょう? 出来れば履歴遡れるようにスクロールバー付きで。
ラベルもテキストボックスもうまく表示してくれない・・・shownイベント以下に書いたからかな。

704:デフォルトの名無しさん (ワッチョイ f533-rIwK)
22/11/11 16:42:33.46 GYEdeJz40.net
>>703
画面への表示は何を使ってるの?
WinForms? WPF? それともそれ以外の何か?

705:デフォルトの名無しさん (アウアウウー Sacd-Aj/S)
22/11/11 16:50:47.79 YvvI/C4ma.net
同じところで普通に文字列渡したら表示されるなら読み込みに失敗してるのでコントロールのせいではない

706:デフォルトの名無しさん
22/11/11 18:11:52.32 FjpNhKohp.net
ただのテキストボックスとかラベルだと
そのとき持ってるテキストしか表示しないから
アペンドしてくしか無いんじゃね?

707:722
22/11/11 18:23:04.48 WVb8D07I0.net
 反応ありがとうございます。
>>704
 WinForm使っています。
 ・・・と、プロジェクト作成時に指定したと思ったのですが、プロジェクのプロパティを確認したら少し違っていました。
 Windowsフォームなのは間違いないですが、.NetCoreではなく.Net6.0でした。
 .NetとかCoreとかframewaorkとか、まだよく分かっていません。取り敢えず.Netにしとけって感じみたいですが。
 WPFはまだ私には早いらしいから避けて通ろうと思います。
>>705
 Form.Textは望んだ通りに表示されたのですけどねw
 当初 public Form1()の InitializeComponent();以下に記述していたのですが、処理が全部終わってからForm作画に入るのでShownイベントに移動したのですが・・・念を入れて配置した中断ボタンも作画されず穴開き状態で、ShownはFormの配置が終わった直後であって総ての配置が終わった跡ではないって事ですかね。 私が書いたのは読んだファイルを加工して別ファイルに書き出している程度のモノなのですが、普通の処理はどこに置けば良いんでしょうね。 要勉強なり。

#よく分からないまま入門しているから、一つの質問の不明部分を細く要件定義していくと目も当てられない長さになりますね・・・。

708:722
22/11/11 18:24:05.80 WVb8D07I0.net
>>706
 なるほど・・・試してみます。

709:デフォルトの名無しさん
22/11/11 18:38:29.81 k1VRcWZVa.net
キモイインデント

710:デフォルトの名無しさん
22/11/11 19:16:48.66 7I/0fxGc0.net
>>707
GUIなので実行ボタンでも押した時に処理すればいいんじゃないですかね?
ボタンの配置は気合を入れなくてもツールボックスからマウスでポトペタすると完成ですよ

711:722
22/11/12 06:25:09.95 gXw8amZq0.net
>>710
 ボタンスタートと言う方法なら今の実力でも綺麗に収まると思うのですが、D&Dかダブルクリックで起動したら後はノンストップで処理してひっそり終了してもらいたいので、ボタンでワンストップは仕様として煩わしい。
 と言う美学的な理由でやろうとしないのでした(^^;
>>706 改めまして。
 実装してみました。
 TextBox.Text += newword;的な記述をして痛い目を見ました。 TextBox.AppendText(newword);としないといけないんですね。
 ついでに初期設定で TextBox.ScrollBars = ScrollBars.Both;でスクロールバーも付けました。
 buttonは機能しないのに、TextBoxは問題なく機能していますね。何故だろう。
 早くshownからどっかに移動しないとですね。

712:デフォルトの名無しさん
22/11/12 09:45:26.79 zAtFaE7C0.net
スタンドアローンなアプリで、アプリの起動をパスワード保護したいのですが、ILSpy等で丸見えにならない程度の強度を持つにはどのような方法がありますか?

713:デフォルトの名無しさん
22/11/12 09:59:48.08 tbSOUgpp0.net
C#以外でdllにしとけば?

714:デフォルトの名無しさん
22/11/12 10:23:23.19 B4kjFmw80.net
>>712
パスワードチェックロジックを難読化ツールでぐちゃぐちゃにすると追う気無くなる

715:デフォルトの名無しさん
22/11/12 10:29:06.28 ZNG2TRSk0.net
>>712
適当なアルゴリズムのハッシュ値を比較すれば?

716:デフォルトの名無しさん
22/11/12 12:11:02.84 Ra6ElU+i0.net


717:デフォルトの名無しさん
22/11/12 12:12:52.85 bRljaFHR0.net
>>712
んなもんローカルに全てのデータがある時点で何しても無駄
ILだけ対策すればいいならネイティブコンパイルすればいい
そうすりゃ他のネイティブアプリと同じく機械語になるから

718:デフォルトの名無しさん
22/11/12 12:13:15.16 Ra6ElU+i0.net
k

719:デフォルトの名無しさん
22/11/12 12:17:11.67 Ra6ElU+i0.net
n

720:デフォルトの名無しさん
22/11/12 13:44:40.40 4XgMUuW5M.net
>>712
アプリの本体をパスワード付きzipかなんかで圧縮しといて動的にロードする

721:デフォルトの名無しさん
22/11/12 13:48:14.08 YXyqvQzKa.net
>>720
ダサすぎるし解凍したところでコピーできんじゃん

722:デフォルトの名無しさん
22/11/12 13:55:42.98 guv9Rfqm0.net
パスワードのみのテキストファイルを
そのパスワードでzip圧縮
解凍成功と中身の照合で実行継続か

723:デフォルトの名無しさん
22/11/12 13:57:46.17 YXyqvQzKa.net
>>722
実行ファイルをバイナリエディタで開いて照合する箇所を飛ばす命令を書き込めば照合しなくなるぞ

724:デフォルトの名無しさん
22/11/12 14:51:41.26 f1IcSnyo0.net
>>722
それでいいなら主要なコードを暗号化しといて解凍したコードを動的ロードして実行すれば>>723みたいな攻撃にも耐えられるな

725:デフォルトの名無しさん
22/11/12 15:00:47.68 Y/i2pfZ30.net
>>715で良くね?

726:デフォルトの名無しさん
22/11/12 15:00:48.57 ajB/boEg0.net
ディスクに平文ファイルを書き出したところを盗まれる。
オンメモリでやりたいけどそっちはデータ実行で引っかかるんだよな。

727:デフォルトの名無しさん
22/11/12 15:02:24.87 YXyqvQzKa.net
>>724
暗号化する部分とキーが平文だからだめだな

728:デフォルトの名無しさん
22/11/12 15:11:29.38 c/ILT9OL0.net
まあ>>717の言う通りで
結局現行の高価な商用アプリはほぼシングルユーザーライセンスに移行してるし
今時ネットに繋いでないなんてありえないからKMSみたいに一定期間で認証させるとかだな
実行したらメモリに全部展開されるしそこ覗かれるようならローカルのファイルをいくら細工しても無駄だよ

729:デフォルトの名無しさん
22/11/12 15:12:12.94 LpiKZFMR0.net
なんか変に面倒な方向にしようとする人たちがいるな
>>712
パスワードを知られたくないだけなら>>715で十分。MD5でもSHA-512でもお好きなもので
パスワード起動部分を突破されたくないなら>>717

730:デフォルトの名無しさん
22/11/12 15:16:20.60 c/ILT9OL0.net
>>711
まずWindowsのGUIの基礎を確認した方がいいよ
メッセージループの仕組みやformの作成から表示までにどのイベントがどういう順序で呼ばれるかとか
shownのタイミングで設定が必要な場合もあるけど質問の内容はloadの段階で片がつくんじゃないかね

731:デフォルトの名無しさん
22/11/12 15:27:16.04 2L2Z04CZ0.net
ライセンス認証前提でレスしてる人が多いけど本当にそういう用途なのか?
今どきそんなことするかな?

732:デフォルトの名無しさん
22/11/12 15:54:02.21 ncy2h0/Ld.net
そのパスワード認証必要?

733:デフォルトの名無しさん
22/11/12 15:56:41.52 ncy2h0/Ld.net
毎回入力させるのか
次回以降のためにキャッシュでファイルローカルに持たせた場合、どう保存するのか

734:デフォルトの名無しさん
22/11/12 16:04:56.79 Y/i2pfZ30.net
どうって普通にパスワード置くだけじゃね

735:デフォルトの名無しさん
22/11/12 16:21:43.32 ncy2h0/Ld.net
普通に置くパスワードって必要?

736:デフォルトの名無しさん
22/11/12 16:29:23.68 Y/i2pfZ30.net


737:デフォルトの名無しさん
22/11/12 16:39:07.13 ZNG2TRSk0.net
こんな感じで良いんじゃない?
・パスワードが保存されてるか確認
・パスワード入力
・ハッシュ値を比較
・(OK)ログイン/平文パスワードを適当に保存
・(NG)リトライ
次回以降
・保存されたパスワードとハッシュ値を比較
・(OK)ログイン
・(NG)パスワードファイルを消してリトライ
ハッシュ値の生成はレインボーなやつとか総当りとかまでは対策しときたいかなぁ
パスワード検証用によく使われるアルゴリズム使用して、saltでゲタ履かせてストレッチングで処理時間の確保ぐらいはしときたい
バイナリいじるやつまで考えると全然対策にならんけどねぇw

738:デフォルトの名無しさん
22/11/12 16:44:03.53 Y/i2pfZ30.net
Linuxはどうしてるんだろう

739:デフォルトの名無しさん
22/11/12 16:51:30.20 ajB/boEg0.net
osのログインとアプリの起動を同列には考えられんが、linuxも
ディスクを抜き取って /etc/passwd を書き換えられたらアウト。

740:デフォルトの名無しさん
22/11/12 17:27:01.84 vKl12ZSx0.net
みんな俺のために働け

741:デフォルトの名無しさん
22/11/12 17:29:44.19 ZNG2TRSk0.net
今どき /etc/passwd にパスワードおいてるディストリビューションってあるの?

742:デフォルトの名無しさん
22/11/12 17:48:17.21 ajB/boEg0.net
そこは本質的な話じゃないから適宜shadowにでも読み替えて。

743:デフォルトの名無しさん
22/11/12 17:52:51.14 2L2Z04CZ0.net
>>737
ハッシュ化するのは平文パスワードを保存しないためなんだが・・・

744:デフォルトの名無しさん
22/11/12 17:59:12.62 1r3Bwkn20.net
>>737
今時平文パスワードを保存って発想が出て来るのは不味いぞ

745:デフォルトの名無しさん
22/11/12 18:17:21.03 ZNG2TRSk0.net
>>743
ハッシュ値にこだわるなら、ストレッチングの回数を適当に減らしたハッシュ値を保存→次回以降は減らした回数ストレッチングして検証。でも良いと思うけど、すでにユーザの手元にパスワードがある前提のスタンドアロンアプリだからねぇ
適当なトークンの作成ロジックが隠せない以上平文で良いと思う
平文が嫌なら、毎回パスワードを聞く感じかなぁ

746:デフォルトの名無しさん
22/11/12 18:49:41.37 Y/i2pfZ30.net
ハッキングでもされなきゃローカルに保存したパスワードなんて流出しないやろ

747:デフォルトの名無しさん
22/11/12 18:53:34.55 lzvWNBzY0.net
ローカルで動作するアプリは、極論言ってしまうと労力惜しまなければどうやってもクラッキング出来てしまうからなぁ
ドングルみたいなハードウェアや、ネットワーク認証挟むとかなり強固にはなるけど
結局のところ、どこまでの強度が必要かって話になる

748:デフォルトの名無しさん
22/11/12 18:56:34.83 THWEmJXVa.net
いくら認証を強化しても認証をスキップするよう書き換えられたら終わるんだから気にしないが吉

749:デフォルトの名無しさん
22/11/12 19:00:47.98 Y/i2pfZ30.net
ユーザーが保存したキーの窃取とアプリのキーの解析を混同してる奴いそう

750:デフォルトの名無しさん
22/11/12 19:33:04.85 guv9Rfqm0.net
>>712
> ILSpy等で丸見えにならない程度
じゃないのか・・・

751:デフォルトの名無しさん
22/11/12 19:47:44.72 bRljaFHR0.net
その程度を求めてるならネイティブコードにコンパイルすればいいんだって
逆アセンブルで丸見えだけどな
なぜかILだけ逆アセンブルできると思ってるやつ時々いるよな

752:デフォルトの名無しさん
22/11/12 19:56:29.64 lzvWNBzY0.net
何なら難読化ツールもあるし

753:デフォルトの名無しさん
22/11/12 19:57:28.32 Y/i2pfZ30.net
バイナリ改変したら動かないようにできないの?

754:デフォルトの名無しさん
22/11/12 20:00:08.63 syTmwMgY0.net
プログラムコードにしか見えない文字列をデータとして格納しておいて、それをキーにする

755:デフォルトの名無しさん
22/11/12 20:04:47.69 THWEmJXVa.net
てかデフォで難読化してくれよ

756:デフォルトの名無しさん
22/11/12 20:07:09.00 guv9Rfqm0.net
>>753
それが完璧に出来るならコンピュータウィルスの大部分が無くなりそう

757:デフォルトの名無しさん
22/11/12 20:08:53.77 lzvWNBzY0.net
>>755
パフォーマンスは落ちるだろうし、別に難読化が要らないプログラムの方が多いから
そんなもんオプションでいいだろ

758:デフォルトの名無しさん
22/11/12 20:09:20.08 ZNG2TRSk0.net
>>722
コレ結構好きかも
個別にパスワードを設定したいならかなりお手軽だね

759:デフォルトの名無しさん
22/11/12 20:10:42.29 THWEmJXVa.net
>>757
オプションでもいいけどVSに実装してくれ

760:デフォルトの名無しさん
22/11/12 20:13:56.36 ZNG2TRSk0.net
>>753
配布時の検証にはMD5とかよく見るね
動作も制限できそうだけど、その部分を回避されるとやっぱりだめだからなぁ

761:デフォルトの名無しさん
22/11/12 20:17:55.47 EWhm+EbT0.net
起動は別ファイルからってやつは
実行前にバイナリ確認してるのかな?

762:デフォルトの名無しさん
22/11/12 23:06:21.95 B4kjFmw80.net
>>759
Dotfuscatorがあるでしょ

763:デフォルトの名無しさん
22/11/13 00:12:55.08 0j2qr49h0.net
zipはパスワード分からなくても中身のファイル名わかれば上書き可能なので
いろいろ工夫しないとめちゃくちゃ簡単に突破されるよ

764:デフォルトの名無しさん
22/11/13 00:51:17.24 uK9Cge080.net
>>753
アプリの電子署名がそれじゃないの?
Windowsだけど

765:722
22/11/13 06:22:17.77 TFN9Og8f0.net
>>730 見落としていました。申し訳ございません。
 確かに、基礎的な所は全然分かっておりません。
 WINDOWS環境では、C+DXライブラリしか経験ないものでして。 あとHSP。
 C#の入門サイトでWINの基礎を抑えている所にまだ当たっていないというのもあります。
 と言うか、多分その基礎が身に付いたらここで質問せず教える立場だろーなーと思いますw
 WINDOWSの基礎からC#のWinFormを入門してコントロールの制御以上に踏み込んでいるサイトがありましたら、紹介よろしくお願いします。
 少し報告。
 shownイベントが駄目なら、Main()に書き足せば良いんじゃね?とProgram.csを探し出してshownから移植しようとしてみました。
 クラスをよく分かっていないのでpublic static void body()とか理解もしていないのにテキトーなキーワードを散りばめてメンバーを書き足したのですが、そこからだとコントロールが一切見えないっぽいので諦めて元に戻しました。
 D&Dと単独実行(コマンドライン引数とカレントのファイル検索からのファイル取得)からのノンストップなスムーズ実行を実現したいからbutton以下に収めない記述を探しているのですが・・・まさかチュートリアルが見付からないとか、戸惑っています。


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

529日前に更新/249 KB
担当:undef