ふらっと C#,C♯,C#(初心者用) Part156

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 5f01-NOMG)
垢版 |
2022/09/18(日) 14:39:29.51ID:VjUDO6tf0
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part155
https://mevius.5ch.net/test/read.cgi/tech/1655422932/
■関連スレ
C#, C♯, C#相談室 Part96
https://mevius.5ch.net/test/read.cgi/tech/1639965805/
■コードを貼る場合は↓を使いましょう。
https://ideone.com/
https://dotnetfiddle.net/
■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries/
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries/
https://referencesource.microsoft.com/
https://source.dot.net/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
-
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
612.NET MAUI HighScool (ワッチョイ fb01-cPfV)
垢版 |
2022/11/03(木) 12:17:32.39ID:Kj7ywx2W0
>>611
つまりこいつはDOMを使ってるくせにイキってたってわけか?
だっさw
2022/11/03(木) 12:28:05.12ID:M3w0A0V30
DOM APIって何かわかってる?
2022/11/03(木) 12:31:33.00ID:irjlHMAba
>>613
BlazorはそれをRenderFragmentで作るんだぞ
これ読んでみろ
https://learn.microsoft.com/ja-jp/aspnet/core/blazor/components/virtualization?view=aspnetcore-6.0
2022/11/03(木) 12:39:09.32ID:M3w0A0V30
>>614
DOM APIを作るの?ちゃうでしょ…。

BlazorのうちWebなものはDOMを(もちろん内部的にはDOM APIを使って)作るけど、DOM APIを作ってるわけじゃ無いでしょ。

あくまでブラウザ、WebViewだったりWPFやXamarin.formsといった、レイアウトやレンダリングを行うエンジンへの架け橋で、そのレイアウト・レンダリングエンジンがWebViewなら、それはDOM APIを使って実現されると言う感じで。

これが俺が想定してたレンダリングエンジンで、その主語がデカかった理由。
616.NET MAUI HighScool (ワッチョイ fb01-cPfV)
垢版 |
2022/11/03(木) 12:41:37.25ID:Kj7ywx2W0
つまりそのGoでスクレイピングを作ってる奴は結局ルウからカレー作ってるように見せかけてインスタントカレー作ってたってことだろ?
617.NET MAUI HighScool (ワッチョイ fb01-cPfV)
垢版 |
2022/11/03(木) 12:42:38.00ID:Kj7ywx2W0
じゃあWebView使ってスクレイピングする方法と何ら変わらんだろって思ってブチギレるわけよ
あんだけ突っかかってきて作ったのインスタントカレーじゃんwってなるわけよ
2022/11/03(木) 12:44:00.31ID:M3w0A0V30
DOM → Document Object Modelなデータや構造
DOM API → Document Object Modelなデータや構造を操作するAPI群
という一般的な定義で話してる。

jsのライブラリで言えばparse5とかとjsdomの違いぐらいの話。jsdomがDOM APIを持ってるのが話がややこしい。
2022/11/03(木) 12:47:38.39ID:M3w0A0V30
>>617
何を怒ってるかわかんない。甘く見られたって事?
そんな事で怒らんでも良いじゃん。アホ過ぎるとこっちの話が理解できないこともあるよ。俺は計算資源さえ許せばちゃんとレンダリングした方がええでしょ、WebViewでもpuppeterとかでも。

うーん、jsとdomをエミュレートしてレンダリングするタイプは、要は突き詰めるとヘッドレスなブラウザを作ることと変わんなくなるので、確かに味は変わるが、ルーから作ると失敗するぞ言いたい。
2022/11/03(木) 12:48:40.21ID:M3w0A0V30
ええでしょ、と思うよ、だった。すまんね。
2022/11/03(木) 12:49:54.05ID:irjlHMAba
>>615
何を言ってるんだ
スクロールに従って画像を表示するのにDOMは使わないって話をしてるんだよ
<img src=@(img)/>と書きゃimg変数のURLにある画像が表示される
画面に表示されるとこだけそのタグを作る
タグを作るのにDOMは使わない
そういう話だ
2022/11/03(木) 12:55:41.20ID:M3w0A0V30
>>621
え?何言ってるの?「DOM APIが何かわかってる?」に対して「Blazorはそれを…」の返事に「違うよ」って返したんじゃん?

しかも、結局それBlazorはDOM APIを使って画面に表示するところだけそのタグ作ってるからね。
2022/11/03(木) 12:57:28.19ID:irjlHMAba
とりあえず元のスレでやれ
何がしたいのかよくわからんがお前がウザいのはわかった
スクレイピングの話なら素直にセレニウム使っとけ
624.NET MAUI HighScool (ワッチョイ 0901-cPfV)
垢版 |
2022/11/03(木) 13:01:54.15ID:fiCeisHS0
>>623
だからSelenium使わずにWebViewでやったらキチガイがSeleniumやWebViewは初心者wとか言って絡んで来たんだが
2022/11/03(木) 13:06:30.69ID:irjlHMAba
読む気にもならんから知らんが初心者が初心者向けの方法を使って悪いことは何もあるまい
お前が上級者だと言うなら他のやり方を気にせず上級者のテクニックを使ってスクレイピングとかいう糞みたいな作業を続ければいい
626.NET MAUI HighScool (ワッチョイ 0901-cPfV)
垢版 |
2022/11/03(木) 13:09:44.54ID:fiCeisHS0
>>625
バカにされたままだとうぜえからこのスキル使えるようになりたいと思ったがなんか無理そうだな
2022/11/03(木) 13:09:44.56ID:WOBTUDvw0
初心者がスクレイピングとか迷惑でしか無い
628.NET MAUI HighScool (ワッチョイ 0901-cPfV)
垢版 |
2022/11/03(木) 13:09:55.62ID:fiCeisHS0
>>627
なぜ?
2022/11/03(木) 13:18:41.93ID:kiz4JKw0a
Javascriptのインタプリタをつくればいいだけじゃないの?
2022/11/03(木) 13:39:14.90ID:q0+PchV30
漏れは、Ruby Selenium Webdriver で、ブラウザを自動操作してる。
サイトのログインとか

更に、Nokogiri でスクレイピングもできる
2022/11/03(木) 13:39:56.44ID:m6o3Pqh2d
MAUI「htmlを、regexでアクセスしてる」
うざいやつ「htmlは、DOM APIでアクセスしろ」

って事??
2022/11/03(木) 13:41:07.19ID:x8JkO9N7M
ていうかさあ
よそのスレで起こした(しかもお前が立てたスレの)揉め事をこのスレに持ち込んで助けを求めるようなことするなよ
ここで付け焼刃の知識を仕入れて建てたスレでイキりたいんだろうけど
そんなことやってて恥ずかしくないの?
633.NET MAUI HighScool (ワッチョイ c101-cPfV)
垢版 |
2022/11/03(木) 13:44:22.86ID:ymgDfjLU0
>>632
俺は恥ずかしくないよ?
2022/11/03(木) 13:45:03.53ID:x8JkO9N7M
と思ったらMAUIの人か
じゃあ諭すだけ無駄か・・・・・

まあなんだ、VIP板とやらで頑張ってくれ
こっちに帰ってくるなよ
2022/11/03(木) 13:52:27.10ID:j+eH91hfa
MAUIに変なイメージついたな
マウイ高校の人に謝れ
2022/11/03(木) 14:03:01.23ID:tn2ZhR3p0
せっかくXamarinについた変なイメージを隠したのにな。
637.NET MAUI HighScool (ワッチョイ c101-cPfV)
垢版 |
2022/11/03(木) 15:12:06.23ID:ymgDfjLU0
なんで俺は.NET MAUIの地位向上に努めてるのに避難されなきゃいけねぇんだ
2022/11/03(木) 15:34:50.67ID:WOBTUDvw0
>>628
・まともなクローラーが作れない
・テストを知らないから、未完成状態でサイトに頻繁にアクセスする
・例外処理の設計ができていないから、サイト側からフィルタされてもアクセスし続ける

結果:監視カメラの前で裸踊りしてる様子を記録されていることに気が付かない

スクレイピング対象になりえるサイトのデータの二次利用は民法的に大体アウト(良くてグレー、真っ白は基本的にありえない)
そのクソみたいなアクセスのせいで、サーバリソース追加しなきゃならんケースがあるからサイト側からすると迷惑でしかない
639デフォルトの名無しさん (ワッチョイ 1302-Ojdt)
垢版 |
2022/11/03(木) 15:37:50.67ID:2Kw6fOvE0
散々イキりまくった挙句技術力不足で他人を頼ってくるとか情けなさすぎる
MAUIの地位を貶めるためにやってるんじゃないなら相当やばい
2022/11/03(木) 22:02:04.04ID:20/srh0o0
>>638
ヘッドレスブラウザでトライ&エラー繰り返されたらあれだろうがHttpClientでhtml単品要求してくるくらいなら別に自由にしたらって思うけどな
2022/11/04(金) 00:40:17.01ID:IgmKO4aZ0
HttpClient使わないとrobots.txtが取りづらいよな?という嫌味ならなるほどなとは思う。
2022/11/04(金) 19:03:03.51ID:nywf9UY+0
boolでは2つの返り値を持つ事はできないですか?
https://i.imgur.com/6s9o15k.jpg
ゲームで接地判定を作っているのですが、真ん中からレイを飛ばすと崖でレイが反応しなくなるので、このように両脇から2本飛ばしています。
判定用の関数を作ってます。
2022/11/04(金) 19:12:28.11ID:7HgZbeW40
>>640
同じアドレスにウェイトなしアクセスをぶん回してくるやつとかいるんだぜ
2022/11/04(金) 19:22:14.68ID:IiXUZSOe0
>>642
boolでは2つの返り値を持つ事はできないです。
なぜならboolはメソッドではなく型だからです。
2022/11/04(金) 19:33:46.65ID:5m02ltgpM
Win32/C++
BOOL GetMessage(略) ・・・
2022/11/04(金) 19:37:37.70ID:kqfS0jzoM
>>642
(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);
2022/11/04(金) 20:31:37.30ID:nywf9UY+0
>>646
bool型の関数の場合は1つしか持てないじゃないでしょうか
2022/11/04(金) 20:49:12.99ID:T0hKgiyQa
戻り値では無く引数にrefでboolを2つ渡せばいいんじゃ無い
649.NET MAUI HighScool (ワッチョイ 1301-cPfV)
垢版 |
2022/11/04(金) 20:50:56.37ID:OnPQoW1c0
.NET 7いつ降りてくるんだ?
2022/11/04(金) 21:08:53.29ID:u3TD418O0
>>648
相手すんなよ...
2022/11/04(金) 21:27:00.15ID:Fl24BIVd0
論理演算で一つにまとめればいいじゃん
2022/11/04(金) 21:31:27.64ID:SZTCZ5vE0
タプル使うと後が大変かも
653デフォルトの名無しさん (アウアウウー Sa9d-uirP)
垢版 |
2022/11/04(金) 21:57:15.77ID:8LyOgWL1a
タプルってディクショナリーで複合キーみたいに使えるんかね
dict[("aaa",1)]=456.8
2022/11/05(土) 00:03:26.00ID:z7QTqWos0
進次郎構文を質問に応用するとこうなるのか...
2022/11/05(土) 01:03:31.06ID:zPyCNtrD0
複数の引数を戻り値で受け取りたいとか言う奴いるけど
参照でええやん・・・
2022/11/05(土) 05:24:52.32ID:tZqy6bJ10
>>655
参照?どういうこと
普通に関数2つ作るのがシンプルかもしれませんね
2022/11/05(土) 06:12:30.08ID:tZqy6bJ10
プログラミングは日本語で言語化することが大事でしょうか
それがフローチャートだったりするのでしょうが
2022/11/05(土) 08:08:07.32ID:qYBt5eWid
「何をするプログラムなのか」「なぜこうするのか」といった仕様や意図を自然言語で分かりやすく正確に記述できる能力は重要
一般に日本人はそれを苦手とする者が多く、安易に図表に頼ったり、
自然言語で書くとなるとプログラムと逐次対応するような低レベルな記述(実質的にExcel方眼紙上でコーディングしているだけ)をする傾向がある
2022/11/05(土) 08:26:37.39ID:2xMBgYRAM
意味不明すぎる
2022/11/05(土) 08:34:43.47ID:yxkEcNx60
文章でグダグダ書かれるより図表や擬似コードで書いてくれた方が100倍マシ
2022/11/05(土) 08:36:00.30ID:sjtvh1h/M
visual transformer を図表無しで
納得させる資料を書いてから言え
2022/11/05(土) 08:43:50.98ID:3YlQFQnT0
質問者は投稿する前に、自分の質問をよく推敲しろよ。これはC#初心者以前の問題だ。
文章が意味不明で相手に伝わらず、あほな質問だと思われたらそれなりの答えしか返って来ないぞ。
2022/11/05(土) 09:40:58.84ID:yYAK326QM
>>657
大事ではないけど

言語化と言うかもともと何をしたいのかと言うことがはっきりしていて
それをコードに落とし込んでいるはず

ところが後でコードからその何をしたいかが読み取れない場合があるので
おおまかなコメントなどを残すことになる
細かく内容を記述するのは無駄だしコードを手直しするたびに書き換えるのは無理だ

フローチャートは階層が深くなる複雑な制御構造になる場合に脳で追いきれなくなる場合に描いたりすると便利なんだろうけど
大体みんなちゃんとしたものじゃなくて流れを落書きする程度だと思う
2022/11/05(土) 11:36:03.24ID:cwSbm70XM
>>657
よく言われるのは「How」はコードで書く
「What、Why」は自然言語や図表を使って書く、、、てこと
2022/11/05(土) 17:37:50.25ID:tZqy6bJ10
>>663
>>664
どうも
きれいなコードを書くことでフローチャートはいらないのかもしれないですね

処理は言語化しないと何をしてるのか分からなくなったりしますね
2022/11/05(土) 17:53:52.87ID:zg6rbg9v0
フローチャートなんてアセンブリ言語でしか使わんぞ
もしかしたらCでギリギリ使うこともあるかもしれんがオブジェクト指向言語では必要ない
オブジェクト指向言語でフローチャート使わなきゃならんとしたらその前にまずオブジェクトの設計がおかしい
667デフォルトの名無しさん (ブーイモ MMa6-DHtG)
垢版 |
2022/11/05(土) 18:13:19.21ID:jSE+d3f7M
>>664
Whatもコードで表現しようぞ
2022/11/05(土) 18:22:12.07ID:anrNho5cM
>>667
宣言的プログラミングだね
理想的だけど手続きを全て無くすのは難しい
コードはどうしてもハイブリッドになってしまう
2022/11/05(土) 18:26:36.41ID:pQZkgeTuM
オブジェクト指向言語で処理の流れを図示するならシーケンス図やアクティビティ図
静的な構造の図示はクラス図やパッケージ図
2022/11/05(土) 18:43:24.92ID:D4NMIenB0
アクティビティ図書くなら
フローチャートのがわかりやすいな
2022/11/05(土) 20:41:38.38ID:SeMW4Qkf0
VSがある程度自動的にクラス関係図生成してくれねぇかなあ
2022/11/05(土) 20:58:35.47ID:zg6rbg9v0
クラスデザイナーというのがあるからインストーラの個別のコンポーネントで検索してみろ
2022/11/05(土) 21:29:39.32ID:6Vg185nZ0
>>672
あれってCore系未対応じゃなかったっけ?
674デフォルトの名無しさん (ブーイモ MM96-DHtG)
垢版 |
2022/11/05(土) 21:50:02.83ID:mwXpY34pM
>>668
HowだけでなくWhatもコードで表現しようとするのと宣言的プログラミングはちと違うんだが
いずれにしても重要なのは「仕様のWhat」を「コードのWhat」として対応付けること
2022/11/05(土) 22:06:58.20ID:neflR3f7M
>>671
クラス関係図ではないけどあるクラスのメソッドやフィールドと他のクラス(または外部ライブラリdll)への関係を図示するだけならコードマップ表示がある
2022/11/05(土) 22:57:43.05ID:x8IGYLJlM
Windowsフォームアプリ(.NET Core)のスケルトンコードより
フォーム初期化処理(InitializeComponent()メソッド)
https://i.imgur.com/ukmU36Z.png
2022/11/05(土) 23:01:20.64ID:mbE+OsReM
>>674
ほとんど同じだよWhatをコードで表現しようとすると自然と宣言的になる
というか宣言的プログラミングがそういうもの
どうやってではなくてどうなって欲しいかを記述する
2022/11/06(日) 00:37:13.40ID:zZNJQBYc0
>>675
使用環境条件が厳しい

コード マップを使用して依存関係をマップする
https://learn.microsoft.com/ja-jp/visualstudio/modeling/map-dependencies-across-your-solutions?view=vs-2022

>コード マップの作成および編集には、Visual Studio Enterprise エディションが必要です。
>ただし、Visual Studio Community および Professional エディションでは、Enterprise エディションで
>生成されたダイアグラムを開くことはできますが、編集することはできません。
679.NET MAUI HighScool (ワッチョイ 9201-84Ua)
垢版 |
2022/11/06(日) 00:58:03.81ID:Am1kuzif0
.NET 7についての前情報得てるやついる?
どんな感じなんだろ?
2022/11/06(日) 02:59:28.10ID:3Vlqt+cVa
質問です。
構造体を使っていて関数内でnewしてそこで使い終わる(ボクシングしない)場合は、stackに乗るだけなので、heapは汚さないしgcには影響無い認識でいいですよね?ゲームを作ってるのでgcの影響を少なくしたいんです。
2022/11/06(日) 07:14:57.83ID:t/MPMTDqM
構造体でもインスタンス生成してる時点でガベージコレクションの対象
.NETでは値型であろうが参照型であろうがすべての変数は監視下に置かれる
ボクシングは値型の変数を参照型(object型)変数に代入する時に一時インスタンスを生成して値をコピーして渡す機能なので全く関係ない話
2022/11/06(日) 07:30:46.83ID:mzFwuoQr0
>>680
> 構造体を使っていて関数内でnew
よくわからんからコードで示して
2022/11/06(日) 09:30:46.32ID:OgJKt7GdM
>>680の理解で正しいよ。>>681は間違い。
値型は単なるデータ構造であり、それ自身はGCの管理対象にならない。
2022/11/06(日) 09:45:40.42ID:OgJKt7GdM
ただし、もちろん値型の変数を使ったらその先が全てGCの追跡の対象外になるわけではなくて、値型に定義された参照型の変数はGCの追跡対象となる。
上に述べた通り値型は単なる埋め込みのメモリのデータ構造なので、それ自体は単にGCをバイパスする。
そして、最終的にメモリ上に展開された構造のうちで参照型の変数だけが追跡対象となるわけ。
2022/11/06(日) 09:52:21.19ID:mzFwuoQr0
>>683
newしてても?
2022/11/06(日) 09:54:44.02ID:zZNJQBYc0
値型のintでも実際はSystem.Int32構造体のインスタンスではなかったっけ?
MaxValue、MinValueなどのプロパティやToString()などのメソッドが使えたはず
値型の変数でもGCが追跡しているのでは?
2022/11/06(日) 09:57:00.84ID:OgJKt7GdM
>>685
構造体のnewは、スタック又はそれを保持する参照型オブジェクト上に事前に確保された領域に対し、コンストラクタをインプレースで実行する
新たなインスタンスを生成している訳ではない
2022/11/06(日) 10:00:33.74ID:OgJKt7GdM
>>686
値型に対してObjectクラス又はValueTypeクラスのメソッドを呼び出そうとすると、その時点でボックス化が発生し、ヒープ上に新たなインスタンスが生成される
2022/11/06(日) 10:06:01.01ID:sZiKsnj+0
ポインタがオマケでつくかつかないかだけなのか
2022/11/06(日) 11:39:39.10ID:8lzCZdko0
なんか久し振りにここでためになる話を聞けた気がする。
横からだけど、ありがとう。
691デフォルトの名無しさん (ワッチョイ 0935-8IBJ)
垢版 |
2022/11/06(日) 12:23:04.83ID:eRXytuty0
>>681のしったか具合がやばい
2022/11/06(日) 12:28:55.33ID:46oDEsAIa
このスレは前からそんなもんだろ
素人が知ったかして嘘ばかり教えるスレ
2022/11/06(日) 13:25:57.55ID:zZNJQBYc0
intの構造体はC/C++で言うところの自己参照構造体を強引に組み込み型として実現してるっぽい
https://qiita.com/cocoabreak/items/e93a3bd6d1640b622c42
2022/11/06(日) 13:54:54.11ID:FxP86aLpM
>>693
この記事では、そもそもなぜ再帰的な定義になっていて、それがどのように機能するかの説明にはなっていないような
C#のintやInt32型の変数は、実際にはどちらもILのプリミティブ型であるint32型にコンパイルされるんだよ
つまりInt32をint32型のフィールド一つだけを持つ構造体として定義してやれば、Int32とint32のメモリ上のレイアウトが同一になる
あとはコンパイラの型チェックを細工して、それらを区別しないようにしてやればよいというわけ
2022/11/06(日) 14:38:11.76ID:mupUNnkwa
>>683
680です!有難う、スッキリしました!
696デフォルトの名無しさん (ワッチョイ 9e2d-Bim8)
垢版 |
2022/11/10(木) 02:43:44.58ID:nQDHqGzi0
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件程度です、他によい方法がありましたらアドバイスおねがいします
697デフォルトの名無しさん (ワッチョイ b18e-ly3j)
垢版 |
2022/11/10(木) 03:37:46.97ID:+sVvBbXs0
>>696
その程度のことで人に聞くならプログラムなんかするな




と言いたいところだが



タブで区切れ
698デフォルトの名無しさん (ワッチョイ 9e2d-Bim8)
垢版 |
2022/11/10(木) 05:44:42.33ID:nQDHqGzi0
>>697
ツイッターとか5chとか不特定多数のユーザが書き込みをできるシステムで
タブは絶対にユーザーが埋め込むことができない文字ということですか?
699デフォルトの名無しさん (ワッチョイ 0935-8IBJ)
垢版 |
2022/11/10(木) 07:09:23.51ID:m98zu82a0
適当なで区切る
データにその記号があればエスケープしておく
2022/11/10(木) 07:45:50.73ID:nQDHqGzi0
>>699
例えば|chinko|という区切り文字を使っている場合にユーザーが|chinko|と書き込んだ場合
APIから取得時に|ちんこ|と置き換えておくと言う事ですね、表示するときには|chinko|に戻すと
現状改行コードを置き換えて保存しているので、そこにまとめて組み込めば楽そうです
2022/11/10(木) 08:16:38.34ID:XxWk5gSzr
文字列の改変で(削除でもなく)、エスケープとかサニタイズを独自に実装するのは苦労すると思うよ
2022/11/10(木) 08:34:01.14ID:9mQBoBy40
>>696
もしよろしけば下記について教えてほしい
その上で「JSON形式ではダメな理由」があるなら、それも教えて

1. 「保存」の目的(保存したデータの利用目的)
2. 現状の保存形式を選択した理由
2022/11/10(木) 09:11:14.02ID:O+ugNNB7M
xmlもjsonもエスケープ方法は規格として決められている
オレオレエスケープなんか考えなくても偉い人が作ったものを黙って使えば良い
2022/11/10(木) 09:13:17.40ID:TJ0qCovBd
ファイルに保存する際の定石をよく分かってないだけでしょ
JSONやXMLでもいいけど、この場合普通に一つのツリーとして書き出すと追記できなくて不便そうだから、JSON Linesがお勧めだな
Excelなどで表として扱いたいならCSVでもいいがJSON Linesよりはフォーマットにバリエーションがあるから考慮すべきことは多くなる
2022/11/10(木) 09:42:00.83ID:hu9oTdXa0
目視もしたいなら尚更そのままjsonでええやん
706デフォルトの名無しさん (アウアウアー Sac6-M3Dd)
垢版 |
2022/11/10(木) 10:19:10.77ID:24bGZvg4a
最近学びはじめてC♯ではメインメソッドを省略できるということで楽だなーと思っていたら関数のオーバーロードのところでエラーが出てしまいました
従来通りクラス名とメインメソッドを書くやり方だと普通に出来たのでローカル関数(オーバーロードできない?)として認識されているためエラーが出てるという認識で合っていますか?
メインメソッドを省略した場合どうやってもオーバーロードできないのでしょうか?
2022/11/10(木) 10:33:00.98ID:vuUWLQnn0
>>706
トップレベルに書かれたメソッドはローカル関数になります
cf) //ufcpp.net/study/csharp/misc/miscentrypoint/#top-level-statements
2022/11/10(木) 11:17:10.46ID:eH71UEsUa
>>700
違う、それだと |ちんこ| と書き込んだら |chinko| になっちゃうだろ
|chinko| と書き込まれてたら |エスケープ||chinko| にして、表示する時に |エスケープ||chinko| を |chinko| に戻す
ただこれだと |エスケープ||chinko| って入力されたら |エスケープ| が無くなっちゃうから |エスケープ| 自身もエスケープして |エスケープ| が来たら |エスケープ||エスケープ| にして、表示時に |エスケープ||エスケープ| を |エスケープ| に戻す
※ |エスケープ||chinko| の保存データは |エスケープ||エスケープ||エスケープ||chinko| になる

まあ>>703の言う通りオレオレエスケープは知識としては知っておくべきだけど自前で実装するよりライブラリ等に頼った方がいいと思うよ
709デフォルトの名無しさん (アウアウアー Sac6-M3Dd)
垢版 |
2022/11/10(木) 12:01:29.52ID:24bGZvg4a
>>707
ということはオーバーロードを使いたい場合トップステートメントのあとにクラスやら定義してから関数作るか別のファイルで作って呼び出すしかないという認識でいいですか?
2022/11/10(木) 12:31:50.00ID:vuUWLQnn0
>>709
それでいいと思います
ただ、そこまで色々するのならトップレベルに書かず普通に書いた方が分かりやすいんじゃないかなという気もしますが
711デフォルトの名無しさん (アウアウアー Sac6-M3Dd)
垢版 |
2022/11/10(木) 12:55:47.41ID:24bGZvg4a
>>710
なんかどうなのかな?ってもやもや気になってしまって
教えてくれてありがとうございましたスッキリしました!
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況