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

■ このスレッドは過去ログ倉庫に格納されています
2018/04/06(金) 17:40:19.48ID:oKXVP34zM
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■関連スレ
C#, C♯, C#相談室 Part95
http://mevius.5ch.net/test/read.cgi/tech/1508180530/
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part136
http://mevius.5ch.net/test/read.cgi/tech/1520057345/

■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2018/05/11(金) 21:57:27.82ID:wYle0Ioy0
>>447
キチガイ
2018/05/11(金) 22:04:41.45ID:F4aYSsq30
>>448
ほう
じゃあ、編集ツール出して見ろよ
そんな誰も編集できないフォーマットで設定とか言ってたって全く説得力ないよ
はい、論破
2018/05/11(金) 22:08:27.43ID:KxM4SNOx0
yamlとかtomlもまぁアリだな
jsonはtailing commaがちょっと煩い
2018/05/11(金) 22:08:43.32ID:wYle0Ioy0
ごめんキチガイに触ってしまった
2018/05/11(金) 22:09:55.64ID:o64e7/8Ad
>>450
C#ならappsettings.jsonで良くね?IOptionとの相性いいし
2018/05/11(金) 22:11:29.14ID:KxM4SNOx0
>>452
JSONが標準だとは思うし, まぁJSONにする
が, リスト末尾のカンマは許して欲しい
454444 (ワッチョイ 4b9f-ZOQu)
垢版 |
2018/05/11(金) 23:25:00.79ID:A7KRRugp0
なるほど、今時はJSONですか。
ただ、少し調べて見たところweb系の構成ファイルとして使う?みたいで自分の思ってるのとは違うのかなと感じました。

後出しになってしまって申し訳ないんですが、自分のイメージしてるのはFormアプリで例えば「最前面に表示する/しない」だとか「昇順/降順で並べる」みたいな、チェックボックスやラジオボタンの選択内容を起動時に読み込み、終了時に書き込みする想定です。

appsettings.jsonは読み込みしかなさそうだったのですが、書き込みってありますか?自分でjson形式にコンバートしてベタに書き込みしろってことですかね?
2018/05/11(金) 23:28:06.24ID:gh5GwZAv0
>>454
その用途ならアプリ外からエディタで編集させることなんて無いだろうから、正直なんでも良いと思う
2018/05/11(金) 23:31:25.65ID:fVy+Ps+50
jsonならNewtonSoftがあるけどyamlシリアライザだとどれがデファクトなんだ?
2018/05/11(金) 23:31:53.13ID:fVy+Ps+50
jsonならNewtonSoftがあるけどyamlシリアライザだとどれがデファクトなんだ?
2018/05/11(金) 23:33:44.23ID:KxM4SNOx0
>>454
JSONで読んだり書いたりするなんてどうとでも出来る
まぁXML以外ならなんでもいいと思うけどね
2018/05/12(土) 00:31:10.54ID:wbfjgNFba
前も書いたけど騙されたらダメwww

.NETには標準のシリアライザがいくつも存在するんだから、特に理由がないかぎり
あえて外様を使うとか頭の悪い中学生じみてる
460デフォルトの名無しさん (ワッチョイ cbe8-k37M)
垢版 |
2018/05/12(土) 03:56:46.76ID:ek+Myn8j0
var exts = {".jpeg", ".jpg", ".png", ".gif"};

var f = Directory.GetFiles(dir, "*.*", SearchOption.AllDirectories)
.Where(c => exts.All(extension => !c.EndsWith(extension)))
.ToArray();

extsの拡張子以外のファイルを抽出したいんだけど
大文字小文字区別せずに拡張子だけを比較する方法ないですか?

もっと効率いい方法ある気が・・・
461デフォルトの名無しさん (ワッチョイ cbe8-k37M)
垢版 |
2018/05/12(土) 04:18:13.81ID:ek+Myn8j0
!c.ToLower().EndsWith(extension)
で対応します
462デフォルトの名無しさん (ワッチョイ 039d-uwJI)
垢版 |
2018/05/12(土) 05:18:29.02ID:V3QYZkJA0
>.NETには標準のシリアライザがいくつも存在するんだから、特に理由がないかぎり
>あえて外様を使うとか頭の悪い中学生じみてる

いくつもあるの? どんなのがあるのか三つくらい教えてください。
ビルドするごとに消えるのでは使いにくいというか何度もビルドするのは普通だとおもうので
それでは使い物にならないので、ビルドしても消えないものがいい。
2018/05/12(土) 06:12:38.61ID:Qc7Beiuka
>>459
今時その認識は正直ヤバい
今の.NETの標準のシリアライザはJSON.NET
Core系では完全に標準シリアライザとしてフレームワークで使われてるし、MSDNにもJSONならJSON.NET使えと書いてる
2018/05/12(土) 06:16:13.33ID:9vavBtpKM
>>462
https://msdn.microsoft.com/ja-jp/library/4abbf6k0(v=vs.120).aspx
2018/05/12(土) 06:20:19.72ID:9vavBtpKM
>>463
DataContractJsonSerializer でなくJson.net のソースは?
2018/05/12(土) 06:29:12.76ID:hwxaPbIq0
設定ファイルは、csv, yaml, json。
Java系のant, maven などは、XML。
Mac系は、property file

chef, vagrant では、Ruby。
Gradle では、Groovy

Haxe のserializer は、数個のプログラミング言語に渡って機能するし、
json, xml みたいに型情報が無くなったりしない

もちろん、Ruby, Groovy も、
プログラミング言語自体が設定ファイルだから、そのまま使える
2018/05/12(土) 07:13:07.72ID:Qc7Beiuka
>>465
https://msdn.microsoft.com/ja-jp/library/system.web.script.serialization.javascriptserializer(v=vs.110).aspx
なんか勘違いしてるみたいだけど、DataContract系は通信に使うもので
ファイルの読み書きに使うことを想定されているもんじゃないよ
2018/05/12(土) 07:21:14.10ID:UP+Hygq+M
DataContractSerializerは絶対にファイルに書いちゃダメってわけではないけど、データのスキーマがあらかじめ決まってる場合には使えない
あくまで書く側と読む側とで解釈が共通でありさえすれればよくて、その中身を人間は気にしないよ、ってときに使う
469444 (ワッチョイ 4b9f-ZOQu)
垢版 |
2018/05/12(土) 07:26:10.70ID:4i84e4IV0
調べが足りずすみません。
NewtonsoftのJSON.NETというのを使えばいいみたいですね。
.NET標準のXmlSerializerと同じような感じの使い方ですね。

ちなみに、XMLはやめた方が良いと意見ありましたが、
どういった理由からでしょうか?
2018/05/12(土) 07:35:16.58ID:Qc7Beiuka
XMLは全世界共通の汎用データ交換フォーマットであることが採用する唯一の理由であり、
JSONが主流になった時点で既に存在意義が失われているから
2018/05/12(土) 07:45:11.57ID:hwxaPbIq0
XML は、JSON よりも可読性が高いから、人が見る・書く設定ファイル。
例えば、アプリのフォームのデザインの設定ファイルに使う

人が見ない、単にコンピューター間のデータの受け渡しには、JSON

XMLを使うと、ややこしい
2018/05/12(土) 07:52:19.68ID:yKmgHprg0
>>471
高くねーよ
タグの対応が外れたら素人に発見できんのか?
プログラマならともかくパンピーじゃ無理
473デフォルトの名無しさん (ワッチョイ 039d-uwJI)
垢版 |
2018/05/12(土) 08:08:53.44ID:V3QYZkJA0
XMLは可読性がわるい。つまり直観が効かない。機械向きで非人間的だから設定ファイルには不向き。
たしかに寄ってたかってよく考えてあるのは解る。それには感心するが、寄ってたかって考えすぎると
たいていは失敗する。その代表的な例としてはXMLもっとも良い例のひとつだろう。つまり駄作だなとおもう。
2018/05/12(土) 08:28:20.91ID:YrlOJuyZ0
jsonはいい加減コメントの使用を本家が認めるべきだわな
475デフォルトの名無しさん (ワッチョイ 8d03-XovT)
垢版 |
2018/05/12(土) 08:45:40.67ID:tydT0Seq0
>>471
XMLが読みやすいってwサヴァン症候群なんおまえ?w
2018/05/12(土) 08:49:00.82ID:KCIDKf2Q0
コメントがあると独自スキーマを作り始めるからわざと外したと言っているけど病的だわ
これだから実務屋でない奴は
2018/05/12(土) 08:50:11.44ID:KCIDKf2Q0
そいつC#スレとPythonスレでよく見かけるが
サヴァンかどうかはともかく発達障害は煩ってるぞ
2018/05/12(土) 08:52:02.93ID:Y49XSW9o0
>>460
EndsWithの第二引数は使えない?
2018/05/12(土) 08:57:27.63ID:vhGL8v7ea
>>476
悪名高いJSONライセンス(Good, not Evil)も作ってるからなぁ
2018/05/12(土) 09:22:58.61ID:9vavBtpKM
>>467
THX
2018/05/12(土) 09:36:45.26ID:15xgRckc0
>>454
その用途ならこれで十分かと
https://docs.microsoft.com/en-us/dotnet/framework/winforms/advanced/application-settings-for-windows-forms
2018/05/12(土) 09:37:39.20ID:btyZbm2S0
XMLのタグの対応って言うけど
JSONも例えば}が数階層のどっかで一つ消えたら人間に対応できなくなるよね
2018/05/12(土) 09:45:59.03ID:iloBjJ0sM
データの規模が大きくなったらXMLのほうが断然有利
JSONとXHTMLを等価変換するスクリプトを書いてJSONだけでウェブサイトを構築する実験を社内でやった事があるがJSONのスコアは酷いものだった
JSONはネストが深くなると使い物にならん
2018/05/12(土) 09:49:55.91ID:15xgRckc0
>>483
どんな点で有利なのかすら書けないクズ
2018/05/12(土) 09:51:04.77ID:56F0arFd0
何のデータも示さずjsonは使い物にならないと言われてもねー
2018/05/12(土) 09:56:29.74ID:iloBjJ0sM
データは自社の資産だから常識的に勝手には公表できない
実験方法は簡単にだけど示したのだからデータが欲しければ実験して検証すればいい

逆にJSONが優れていると言うなら
根拠無しではなくデータなり検証方法を示してほしいね
2018/05/12(土) 09:58:57.02ID:yKmgHprg0
>>486
だったら発言すんなよ
消えろクズ
2018/05/12(土) 10:00:05.00ID:vhGL8v7ea
https://www.infoq.com/news/2013/08/xml-json-performance

同じくらいのパフォーマンスというならまぁ納得出来る
クソみたいなパーサ使わにゃネスト深さでパフォーマンスが悪化するわけねーだろ
2018/05/12(土) 10:00:18.08ID:56F0arFd0
>>486
再現可能なサンプルぐらい作れ
今のままだと説得力ゼロで誰も納得しねーよ
2018/05/12(土) 10:00:46.67ID:My8LWy2ka
XHTMLって死んだ技術だと思うが
10年ぐらい前の世界かな?

xmlが見やすいって人は初めて見た
2018/05/12(土) 10:08:59.85ID:iloBjJ0sM
>>489
5chに書き込むためだけに実験費用払いたくねえよ
こういう実験はサンプルとして人を雇わないとできないんだよ
思考停止ノータイムでボタン押さずに常識的に少し考えてからレスしてくれ頼むから
2018/05/12(土) 10:10:42.69ID:vhGL8v7ea
再現するJSONとXMLを一個ずつ用意すれば終わるのに自分以外の人間が必要か?
プログラミングやったことありますか?
2018/05/12(土) 10:19:11.86ID:iloBjJ0sM
>>492
あんたは論外
パフォーマンスの話なんて誰もしてない
今はみんな生産性、可読性、保守性の話をしてるんだよ

それを測るためにJSONとXHTMLを等価変換するツールを作った

グループAの人達にはJSONでタグ打ちさせてそのJSONをツールでXHTMLに変換した

グループBの人達にはXHTMLで直接タグ打ちさせた

完成するまでの時間や完成したXHTMLのバグ密度など様々なメトリクスを計測したら直接タグ打ちしたグループBのほうがスコアが高かった

グループAとグループBのスコア差はネスト数が深いほど大きくなった

そういう話な
パフォーマンス比較なんてくだらん話は他所でやってくれ
2018/05/12(土) 10:21:37.68ID:My8LWy2ka
>>493
人間のやることじゃないことを人間にさせて比較する意味がよくわからない
2018/05/12(土) 10:22:19.67ID:7mnYG5Gia
>>493
無駄な変数が多すぎて何を比較したいのか分からなくなってるな
仕事できなそう
2018/05/12(土) 10:22:47.54ID:vhGL8v7ea
>>493
人間がやる意味が分からん
2018/05/12(土) 10:25:26.75ID:FqtFYlf30
流石にこれは擁護できんわw
2018/05/12(土) 10:25:55.10ID:My8LWy2ka
テキストデータをバイナリエディタで書かせるような意味不明な実験を
やって悦にいる会社に勤めてかわいそうとしか思えない
上が暗愚だと下が苦労する
2018/05/12(土) 10:26:11.54ID:iloBjJ0sM
馬鹿しかいないのか

人間がやる意味がないとか言ってる連中は実験の趣旨を全く理解してない

だから思考停止してノータイムでボタン押すのやめろって言ってるんだよ

ほんと馬鹿の相手するの疲れるな
2018/05/12(土) 10:28:00.46ID:vhGL8v7ea
こいつはなかなか面白いな, 素でこのコミュ力ならなかなかの逸材だし作っているならよく理解している
2018/05/12(土) 10:30:21.85ID:My8LWy2ka
>>489
上が暗愚たと下も思考停止で伝染するんだな
バイナリデータでutf8の入力しづらさも検証したか?
2018/05/12(土) 10:31:58.09ID:My8LWy2ka
いや面白いな
どこかの技術系のサイトでネタにしてくれないかな
2018/05/12(土) 10:32:26.46ID:yKmgHprg0
結局、手動で設定するファイルであるなら
jsonもxmlもゴミだろ?
なんの話してんの?
2018/05/12(土) 10:36:00.72ID:My8LWy2ka
>>503
そうでもないよ
VScodeでjsonの各種設定ファイルを手で変えたりするけど
あれがXMLだととんでもないことになる
2018/05/12(土) 10:37:02.56ID:vhGL8v7ea
深くて3階層程度でそんなに行数多くないならJSONは苦痛は少ないかな
2018/05/12(土) 10:37:30.03ID:yKmgHprg0
>>504
そういう無意味な比較意味ないじゃん
xlsで設定できるアプリに使い勝手で勝てるの?
2018/05/12(土) 10:38:25.47ID:15xgRckc0
>>506
それが無意味に思えるなんて幸せなやつだな
2018/05/12(土) 10:39:01.19ID:yKmgHprg0
>>507
だってjsonもxmlもいらねーもんよ
2018/05/12(土) 10:39:07.44ID:PQYWGVmCd
>>506
xlsとかwwwバージョン管理システム使ったことすらなさそうだな
2018/05/12(土) 10:39:44.13ID:vhGL8v7ea
残念だけどXMLはクソオブクソだけどXLSとかCSVはそれをはるかに上回るクソなの
2018/05/12(土) 10:39:58.36ID:yKmgHprg0
>>509
csvでもいいよ
2018/05/12(土) 10:40:08.84ID:15xgRckc0
>>508
C#やめた方がいいよ
2018/05/12(土) 10:40:21.22ID:yKmgHprg0
>>510
理由は?
2018/05/12(土) 10:40:23.88ID:NuxM0Gnx0
せめてxlsxにしてくれ
2018/05/12(土) 10:41:06.38ID:PQYWGVmCd
>>511
反論する気すら起きんわ
2018/05/12(土) 10:41:21.27ID:yKmgHprg0
db(Sqlite)もあるぞ
2018/05/12(土) 10:41:32.86ID:wBO8DWf8M
>>493の実験は「XHTMLのデータはJSONで記述するには適さない」ということを示しているだけだな
そりゃXHTMLのスキーマはXMLで表現しやすいように設計されてるんだから、
JSONだと属性とコンテンツの区別がなかったりして記述しづらいのは当たり前だ
JSONにはJSONに適したスキーマ設計がある
2018/05/12(土) 10:41:52.87ID:15xgRckc0
やっぱGitすら使えなさそうだな
2018/05/12(土) 10:43:33.27ID:yKmgHprg0
>>518
gitでcsvの差分見れないの?
2018/05/12(土) 10:44:43.29ID:15xgRckc0
>>519
Gitでsqliteの差分見るのかい?
2018/05/12(土) 10:45:36.20ID:vhGL8v7ea
>>513
XLS: バイナリ, 標準化されてない(されてるかも知らんが概ねExcelないと読めん)
CSV: not well standarized
XLSX: zip圧縮されたXMLじゃん
2018/05/12(土) 10:45:58.87ID:yKmgHprg0
>>520
dbの比較は簡単
バージョン管理の機能にはないけど
2018/05/12(土) 10:46:25.99ID:iloBjJ0sM
>>504
VSCodeのセッティングはネストが浅くて比較的読みやすいし、VSCodeによるコード生成がうまく機能してるからね
2018/05/12(土) 10:47:06.15ID:15xgRckc0
>>522
もはや何を言っているのかわからん
2018/05/12(土) 10:47:34.43ID:yKmgHprg0
>>521
ビジネスでExcel入ってない環境とかあるの?
2018/05/12(土) 10:47:44.90ID:kT5GzpcRa
エクセルからマスターや設定をインポートするようになってるシステムは壊しそうで怖いわ
うっかりレイアウトがズレてて正しくデータが取れなくなるとかよくある
バージョン管理の問題にも関連するけど、再現性が乏しいんだよエクセルは
2018/05/12(土) 10:47:54.11ID:WIOr5zBad
>>522
おれsqliteのバイナリをテキストエディタで書き換える能力ないのよ
2018/05/12(土) 10:48:23.30ID:yKmgHprg0
>>524
DB同士のデータの比較したことねーの?
2018/05/12(土) 10:48:28.96ID:My8LWy2ka
>>517
そこの会社の内部の抗争があるんだと思う

いまどきxhtmlを使ってる派閥がいて
そいつらが不利になったので意味不明なテストでxhtmlすげーをやって
何も考えないやつがそれに賛同したと

エジソンが高圧送電は危険だと言って動物を殺す実験をしたようなもの
2018/05/12(土) 10:48:32.15ID:15xgRckc0
>>525
いくらでもあるよ
2018/05/12(土) 10:48:32.71ID:vhGL8v7ea
>>525
開発は仮想のLinux上とか普通にあるから
2018/05/12(土) 10:49:49.02ID:15xgRckc0
>>528
json vs xmlの比較とは全く異なる次元のものを持ち込んで比較しようとするクズ
2018/05/12(土) 10:50:39.51ID:yKmgHprg0
>>531
openoffice入れろよ
2018/05/12(土) 10:51:17.57ID:15xgRckc0
>>533
こいつdotnet newすら打ったことなさそうだな
2018/05/12(土) 10:51:39.21ID:yKmgHprg0
>>532
そっちは完全に編集するツールがないじゃん
あってもゴミみたいなのしか
2018/05/12(土) 10:51:42.38ID:vhGL8v7ea
>>533
開発用システムでXLS読むために入れるとか本末転倒
2018/05/12(土) 10:52:47.54ID:yKmgHprg0
>>536
お客さんに何で編集したいですか?
って聞いてみろよ
Excelでできるって言ったら大喜びするぜ
2018/05/12(土) 10:53:32.62ID:15xgRckc0
>>535
専用ツールがないと編集できないものなんてイラネ
2018/05/12(土) 10:53:45.26ID:iloBjJ0sM
>>506
Excelの場合はそもそもツリーデータ構造を表現するためのスタンダードなフォーマットが無いので比較する以前の段階

まずはツリー形式のデータ構造を表現するためのフォーマットのデファクトスタンダードを業界全体で決めてくれ
比較はその後に回していいんじゃないかな
2018/05/12(土) 10:54:09.51ID:15xgRckc0
>>537
Linux使ったことないやろ
2018/05/12(土) 10:55:07.24ID:NuxM0Gnx0
vscodeのsettings.jsonとか見せたら発狂しそう
2018/05/12(土) 10:55:50.61ID:vhGL8v7ea
>>537
客は会社のシステム部門なんで別にExcel喜ばれないですむしろ殴られそうです
2018/05/12(土) 11:00:04.65ID:vhGL8v7ea
あとXLSXはともかくXLSをC#から弄ったことないんだけどExcelなしで読めるの?
COM使って読むとか言わないよね?
2018/05/12(土) 11:08:10.26ID:iloBjJ0sM
>>517
やっとちゃんと読んでレスしてる人が来た

確かにもともとXMLをベースに考案されたデータ構造なのでXMLに有利と言えるかもしれない
しかしそれを認めると議論の発端である「jsonはxmlより優れている」という命題を「対象次第ではxmlのほうが有利である」という命題で最初から否定することになってしまう
本当に「jsonはxmlより優れている」なら対象がXHTMLだろうとなんであろうともjsonのスコアが高くなっていなければおかしい
2018/05/12(土) 11:23:55.86ID:P5sx5scC0
なんでもかんでもExcelでやりたいVBAer()さんはVBAスレにおかえりください
事務員さんの常識はプログラマには通用しません
2018/05/12(土) 11:30:46.95ID:15xgRckc0
>>543
ExcelCreator使って、Excelのインストールされてない環境で読み書きしてた
昔々ね
2018/05/12(土) 11:33:52.89ID:5EDA9IkjM
>>465
横から失礼。マイクロソフトの人もそう言ってるよ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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