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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 9f0b-Fgt1)
垢版 |
2019/12/11(水) 22:12:11.28ID:d09CciDz0
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part145
https://mevius.5ch.net/test/read.cgi/tech/1570446977/
■関連スレ
C#, C♯, C#相談室 Part95
https://mevius.5ch.net/test/read.cgi/tech/1508168482/
■コードを貼る場合は↓を使いましょう。
http://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/index
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
http://referencesource.microsoft.com/
・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
2020/01/11(土) 00:43:53.19ID:HNDaLABiM
目次見る限りasync/awaitまで書いてあるようだが内容古いかな?

C#による マルチコアのための非同期/並列処理プログラミング
http://gihyo.jp/book/2013/978-4-7741-5828-0
2020/01/11(土) 10:39:28.88ID:LYbiGn3M0
C#で明示的にメモリを開放する手段はGC.Collect以外にはないんでしょうか?
画像やオーディオファイルを扱うアプリを作っている最中ですが、数百MBのデータを扱い終えても数分はメモリ使用量がそのままで少し気持ち悪いです
GC.Collectを行うと副作用も色々とあるようなので他に手段があればと
2020/01/11(土) 10:49:45.29ID:W2txbHVT0
>>344
その場合どれがコールバック?

c#ならラムダを使えばjsのコールバック地獄と同じような地獄を味わえるが、async/awaitは関係ないな。
2020/01/11(土) 11:09:15.66ID:UtksiWPF0
async/awaitの件解決しました。
ありがとうございました!
2020/01/11(土) 11:28:43.37ID:TUd4PMk40
DoEvents最強!
350デフォルトの名無しさん (ワッチョイ df35-e1y7)
垢版 |
2020/01/11(土) 11:44:58.26ID:tdQ2h9sk0
>>347
普通にミスった
関数ポインタ的なものを渡してるつもりだったけど実行演算子付けてたら意味ないな

f1(x1,y1,(y1,y2)=>
 f2(x2,y2,(x3,y3)=>
  f3(x3,y3,(x4,y4)=>
   f4(x4,y4)
  )
 )
)

多分こうかな
やっぱりこのほうがいいな
そもそもこんなに非同期処理並べるときあるか分からないけど
await f1(x1,y1)
await f2(x2,y2)
await f3(x3,y3)
f4(x4,y4)
2020/01/11(土) 11:58:16.27ID:W2txbHVT0
それ、非同期ラムダならawaitで待つけど普通のラムダなら普通に呼ぶだけだろう。
awaitで解消できるわけじゃなくて。
352デフォルトの名無しさん (ワッチョイ df35-e1y7)
垢版 |
2020/01/11(土) 12:03:26.24ID:tdQ2h9sk0
こうか
f1(x1,y1,async (y1,y2)=>
 await f2(x2,y2,async (x3,y3)=>
  await f3(x3,y3,async (x4,y4)=>
   f4(x4,y4)
  )
 )
)
353デフォルトの名無しさん (ワッチョイ df35-e1y7)
垢版 |
2020/01/11(土) 12:04:51.20ID:tdQ2h9sk0
いや、これだとasync, await使ってるから本末転倒やな
もう時間ない
2020/01/11(土) 12:28:03.20ID:yg8EbsDw0
>>346
> GC.Collectを行うと副作用も色々とある
あくまで一般的な方針ってだけなので別に自分のアプリで問題(望ましくない時にスパイクを起こすとか)無ければ好きに呼べば良いよ
別にイリーガルなAPIというわけでもない
まあ一般的な話で言えば「メモリ残っててなんか気持ち悪い」程度の理由で呼ぶ必要はまったくないが
355デフォルトの名無しさん (ラクッペ MMf3-elwi)
垢版 |
2020/01/11(土) 12:48:55.66ID:iMRI2zWpM
>>350のコールバックが非同期で呼び出されるってことだろうから普通に並べて呼ぶだけじゃ無理じゃね
2020/01/12(日) 10:53:37.47ID:dSru1J0h0
>>354
たしかに基本的には問題になりませんが、
数GBを消費することもあり、もしそのときに使用者が他に重いプログラムを起動するなどするとメモリ不足になる場合もあるかなと・・・
こういうプログラムはGC任せにするのではなくC++などで作るべきという結論になるんでしょうか?
2020/01/12(日) 11:39:38.30ID:hca/fTZV0
>>356
仮想メモリでググってみて
2020/01/12(日) 12:06:08.27ID:EKUpo6h10
>>346
IDisposableなオブジェクトがあれば不要になった時点できちんとDispose()するようにするとかかな。
画像を扱っているんであればSystem.Drawing.Imageとかいろいろあるんでは。
2020/01/12(日) 12:10:08.97ID:VFqe+WSm0
usingで囲むのが定石かな?
2020/01/12(日) 12:28:05.83ID:dSru1J0h0
主にはMemoryStreamで巨大データを扱っていてちゃんとDisposeは行っていますが、タスクマネージャーで監視している限りだと中々メモリ使用量が減りません
2020/01/12(日) 12:32:04.56ID:21O0ncu50
>>356
その消費されているメモリがどのメモリなのかきちんと把握しないと意味がないよ

マネージドメモリが消費されればそれだけ手動でCollectせずともGCは働くはず
なのに残っているとしたらstatic変数等で無駄に参照し続けている可能性がある

アンマネージドなメモリなら既に書かれてる通りDisposeを必要な場面で呼び出していない可能性がある
加えてGC性能の観点からはDispose(正確にはファイナライザの方だけど)をGC任せにするのは
程度問題ではあるけど基本的にはご法度

現状「メモリが大量に消費されているが手動でCollectして大丈夫か」の情報だけでは現状方針は立てようがない
2020/01/12(日) 12:37:20.88ID:dSru1J0h0
>>361
一応上でも書きましたがメモリリークの相談ではありません
2020/01/12(日) 12:52:17.43ID:21O0ncu50
>>362
タスクマネージャ眺めてるだけじゃ開発者が手続きを間違えいてるのか
.NETのGCがクソなのかも判断できないという話だよ

CLRProfilerなり使ってもうちょっと詳細詰めてみたら?
2020/01/12(日) 13:07:52.95ID:dSru1J0h0
>>363
言葉足らずでしたが、Dispose処理を行ったであろうタイミングで減らないというだけであって待つなりそこでCG.Collectを行えばちゃんと解放はされます
ただ上でも言ったようにGC.Collectは副作用があるようなのでC++のdeleteのようなものは無いのかなと
2020/01/12(日) 13:49:29.53ID:GXqrVy4G0
GCって動かしてやらないと限界まで解放しないよ
限界までいって開放時のその時起きるのはストップザ・ワールドと呼ばれる有名な現象

その前にもメモリの残量を見てるアプリが動かなくなる
あ、メモリ少ないじゃん俺起動やめんべ
こういうのも絡んで再現不能な不具合を多々撒き散らす
常駐アプリならストップザ・ワールドが困るなら定期的に解放せんとまずい

ちなみにストップザ・ワールドは10分は動かなかったときがある
2020/01/12(日) 13:50:45.08ID:21O0ncu50
>>364
まあ生存しているマネージドメモリの正体がわかり切っていて処理の途中でも無いなら
(例えば単純にユーザー操作からファイルの読み込みが完了して結果が表示された後とか)
それはCollect使っても構わない場面だと思うよ

結局副作用と言ってもヒューリスティックなGCの調整に影響が出て
細かくGCが起きる場面でのスループットが低下する、かもしれない
とかその程度だしね
2020/01/12(日) 13:53:55.26ID:F6k+/xNLM
サーバーじゃなくてクライアントアプリだろ?
ガンガンGC.Collect打っても全然問題ないよ
2020/01/12(日) 13:54:13.68ID:yOfvFL1A0
>>365
なるべくストップザ・ワールドしないようにGCは改良されてきたけど、
.NET Framework 4.8でも10分かかったりする?
2020/01/12(日) 14:00:58.90ID:GXqrVy4G0
>>368
俺がやったのは4.5ぐらい
でもこの辺の挙動って変わるかな?
2020/01/12(日) 14:21:33.28ID:EstEf4vMM
>>364
大きなメモリブロックを頻繁に扱うならアンマネージドメモリを使いなよ
アンマネージドメモリなら開放したいときに無駄なく開放できる
今はspanがあるからアンマネージドメモリの扱いも簡単だ
GCの手動実行は開放したいメモリ以外にもマークアンドスイープが発生しちゃうから効率が悪い
ちなみにMemoryStream.Disposeはインターフェース共通化のために実装してあるだけで呼び出す意味はない
2020/01/12(日) 14:32:31.87ID:fMqCO5na0
逆に10分止めちゃうようなコードを見てみたい
2020/01/12(日) 14:39:35.43ID:OVUZbrRA0
GCが分単位でかかる状況ってそもそも作り出せるもの?
373デフォルトの名無しさん (アウアウウー Saa3-7oRq)
垢版 |
2020/01/12(日) 14:49:38.22ID:KwEpglzAa
ストップザワールドてw
PC-98の時代で頭が止まってるのかwww
2020/01/12(日) 16:50:21.94ID:M8sF3s6B0
時間経過だけを条件にフルGCがされることってあるのかな?
メモリリークではないと言ってるけど状況的にそう言える根拠はないような・・・
- 数GBが開放されない
- 数分待てば開放される(ように見える)
- GC.Collectすれば開放される
- タスクマネージャーでのみ確認
2020/01/12(日) 17:07:03.57ID:M6sT7X550
MSDNより

ガベージ コレクションの条件
ガベージ コレクションは、次のいずれかの条件に当てはまる場合に発生します。
・システムの物理メモリが少ない場合。 OS からのメモリ不足通知またはホストによって示されたメモリ不足のいずれかによって検出されます。
・マネージド ヒープで割り当てられたオブジェクトによって使用されているメモリが、許容されるしきい値を超える場合。 このしきい値は、プロセスの進行に合わせて絶えず調整されます。
・GC.Collect メソッドが呼び出された場合。 ほとんどの場合、ガベージ コレクターは継続して実行されるため、このメソッドを呼び出す必要はありません。 このメソッドは、主に特別な状況やテストで使用されます。
2020/01/12(日) 18:10:01.75ID:bIiQ1z8t0
>>373
せやな
ザ・ワールドだけで通じるよな
2020/01/12(日) 18:32:57.05ID:je4+hRX40
そして時は動き出す…!
2020/01/12(日) 19:53:41.49ID:VFqe+WSm0
out of memory.
2020/01/12(日) 20:13:16.17ID:6g8s1ic00
>>373
GC界隈では普通に使う表現
380デフォルトの名無しさん (ワッチョイ dfe5-alJZ)
垢版 |
2020/01/13(月) 00:43:38.40ID:5i4YDTtr0
csvファイルを取り込むため下のようなプログラムを作ったのですが
データに「"1,234",test」のようなカンマ区切りの金額データが含まれるため
「1」「234」「test」のように列が分けられ配列に格納されてしまいます。
「1234」「test」のような形で配列を取得するにはどうしたら良いでしょうか?

static void Main(string[] args)
{
string textFile = @"C:\temp\test.csv";
System.Text.Encoding enc = System.Text.Encoding.GetEncoding("shift_jis");
string[] lines = System.IO.File.ReadAllLines(textFile, enc);
foreach(string line in lines)
{
string[] stArrayData = line.Split(',');
Console.WriteLine(stArrayData);
}
}
2020/01/13(月) 00:49:22.13ID:3SwxEC/oa
nugetでcsvhelper
どうしても自前で車輪の再発明をしなければ気が済まないならTextFieldParserあたり
382デフォルトの名無しさん (ワッチョイ 7fad-UU8b)
垢版 |
2020/01/13(月) 00:50:08.91ID:wNJBXid30
>>380
https://dobon.net/vb/dotnet/file/readcsvfile.html
2020/01/13(月) 00:50:48.38ID:5a7SXLUb0
ダブルクオートの数は論理行内で偶数に
なる事に気がつけば
難しくないよね?
2020/01/13(月) 04:40:58.64ID:6QaMEdT10
Ruby なら、CSV モジュールを使うだけ

CSVでは、要素内に、列区切り文字(カンマ)・行区切り文字(改行)がある場合は、
その要素をクォート文字(ダブルクォーテーション)で囲まなければならない

要素内に、クォート文字がある場合は、クォート文字を2つにしてから、
その要素をクォート文字で囲まなければならない
2020/01/13(月) 11:08:21.47ID:0YkcX+ND0
>>384
クォート文字有り無しが混在している時点でCSVじゃねえってことか
2020/01/13(月) 11:21:19.23ID:5a7SXLUb0
元々のCSVはSuperCalc の形式(オズボーン1にバンドルされていた)
今目にするCSVの仕様は、管理工学研究所が定義したK3形式が元になっている

で、実際の処理には何の関係も無い
2020/01/13(月) 11:38:13.56ID:IOw3xBOoM
CSVという欠陥品はやめてJSONを使おう
JSONならテーブル形式も違和感ない
2020/01/13(月) 12:42:50.09ID:DisUSQsY0
丁度いいから聞きたいんだけどjsonのnugetってどれがいいんだ?
ニュートンでいいの?
2020/01/13(月) 13:17:46.09ID:lNXH+eFP0
utf8json
390デフォルトの名無しさん (ワッチョイ dfe5-alJZ)
垢版 |
2020/01/13(月) 16:30:16.82ID:5i4YDTtr0
csvhelperなるものがあるのですね
情報ありがとうございます
ドボンさんの情報は以前は参考にさせて頂いてましたが、
.NET2.0くらいのやり方が多いので、今はより洗練された方法がありそうだなと
思っておりました
2020/01/13(月) 21:40:59.14ID:n3H4xPlw0
>>388
いいの定義次第ではあるが
.NET Core 3.0以降はSystem.Text.Jsonが標準ライブラリに組み込まれた
.NET Frameworkだと4.6.1以降で使える
2020/01/13(月) 22:56:09.48ID:6QaMEdT10
>>385
クォート文字の有り無しは、混在できる

CSVでは、要素内に、列区切り文字(カンマ)・行区切り文字(改行)・クォート文字(ダブルクォーテーション)がある場合は、
その要素をクォート文字(ダブルクォーテーション)で囲まなければならない

ただし要素内に、クォート文字がある場合は、クォート文字を2つにしてから、
その要素をクォート文字で囲まなければならない

でも要素内に、それらの特殊文字が無いなら、クォート文字で囲まなくてもよい
393デフォルトの名無しさん (アウアウウー Saa3-7oRq)
垢版 |
2020/01/13(月) 23:01:31.99ID:kDbPI+DBa
それCSVっていうよりBASIC系のエスケープっぽいねw
そもそもCSVってカチッとした仕様がなかった気がするんだけど
2020/01/13(月) 23:06:38.56ID:VhiGJyHM0
>>393
RFCの定義はある
https://tools.ietf.org/html/rfc4180
2020/01/13(月) 23:18:49.19ID:lfPKL+oG0
>>393
もともとちゃんとした仕様が決まってないままに様々な方言が普及しちゃった後に、後付けでrfc4180が定義されたらしい。
396デフォルトの名無しさん (アウアウウー Saa3-7oRq)
垢版 |
2020/01/13(月) 23:30:20.68ID:kDbPI+DBa
>>394
斜め読みした感じ、それって定義じゃないのでは?
むしろ定義なんかないってはっきり言ってない?
定義はないけど多くの実装の最大公約数的な仕様はこうだって書いてあるだけじゃないの?
2020/01/13(月) 23:36:49.28ID:VaOcNYgw0
けっこう色々な種類のcsvファイル触ってきたけどこの定義から外れたもの見たことないから
とりあえずこの通りに実装しとけば問題ないけどね
2020/01/13(月) 23:37:58.26ID:tegDOPxe0
>>394
そもそもこれstandards trackじゃないし。informationalやん
399デフォルトの名無しさん (アウアウウー Saa3-7oRq)
垢版 |
2020/01/13(月) 23:40:16.54ID:kDbPI+DBa
よく見ると冒頭にちゃんと
Category: Informational
と書いてあるね
2020/01/14(火) 03:26:39.48ID:3sd16sWN0
Ruby のCSV も、RFC4180

これが標準
2020/01/14(火) 04:05:32.78ID:N3SxpKLV0
ルビーはどうでもいいけどRFC4180が標準だわな
2020/01/14(火) 07:09:18.01ID:TfUAOhnl0
今のご時世で新規開発のデータ出力にcsv採用はセンス無いですか?
csv受け取るサブシステムは今の所無いと考えて
2020/01/14(火) 07:12:40.24ID:Z55vDhY10
出力した後の運用によるだろ
PGがさわるわけでもないのにxmlで出されても工場のおじさん困っちゃう
2020/01/14(火) 07:56:37.29ID:RxBpnTJ90
>>402
例えば時系列の数値データとかだと今でもCSVが最適解のケースが多いと思う
構造が必要なデータとかでないとXMLやjsonはちょっと冗長
まあC#ならライブラリも充実してるからぶっちゃけどうとでもなるけど
2020/01/14(火) 09:02:31.67ID:3sd16sWN0
表みたいに、行・列だけの、ネストしない単純な構造物は、CSV がベスト!

一方、構造がネストするものは、JSON, YAML, XML など
2020/01/14(火) 09:18:13.67ID:HiotJy5MM
Pandsみたいな優秀なライブラリ誰か作って、オレオレクラス定義すんの面倒になってきた
407デフォルトの名無しさん (アウアウウー Saa3-7oRq)
垢版 |
2020/01/14(火) 12:25:10.48ID:1JLYJ3w5a
CSVを使う動機は他のプログラムにデータを渡すことでしょ。
例えばエクセル。日本も欧米もエクセルスキー多いからな

閉じたシステムでしか使わないデータのフォーマットなんか何だっていいでしょ。
あえてCSVを使う理由なんかどこにもないと思うけど
2020/01/14(火) 12:27:31.80ID:Kx+Dz7Lq0
>>405


構造がネストしてたってCSVに入れなければならないときがある
そもそもネストしたぐらいでリストにできないんじゃデータベースにどうやって入れるんだ?
parentid持ってりゃネストしてたって再構築できるだろ
2020/01/14(火) 13:05:22.12ID:eL1p+DpS0
まあ、いつものRuby君だからな。
聞き齧った情報を単純化して暗記だけして、関われそうな話題が出るとここぞとばかりに唱え続けるのはいつものこと。
410デフォルトの名無しさん (ワッチョイ df35-e1y7)
垢版 |
2020/01/14(火) 13:09:26.15ID:Cb2SImdL0
CSVで親IDとか使うの?
2020/01/14(火) 13:55:46.20ID:/uoR9pL9M
>>407
むしろ>>405の言う表みたいなやつでCSV以外を選択する理由がないと思うが
2020/01/14(火) 13:58:11.66ID:/uoR9pL9M
>>408
> parentid持ってりゃネストしてたって再構築できるだろ
それデータとして構造持ってるわけじゃないだろ
リスト構造が作れるからメモリーは構造持ってると言うようなもんだし
2020/01/14(火) 14:06:50.32ID:/8RfG7cVM
CSVは項目の増減があるとウザいんだよな
もちろんちゃんとヘッダ付けてスキーマが変わった時点でファイルを区切ればいいんだけど、
CSVは文化的に周辺のツールやDBのコマンドなどのエコシステムが全体的にスキーマは不変であるという前提で設計されてて、変更に弱い傾向がある気がするわ
選べるならJSON Linesの方が好き
2020/01/14(火) 14:38:15.52ID:1W0s33Ee0
sqlldrが対応したら考える
2020/01/14(火) 15:11:21.78ID:EWDA2lfk0
CSVは方言があるから、きちっと規則が決まっているフォーマットのほうがあらゆる場所で使いやすい
データをそのまんま見る必要はまったくないからな
2020/01/14(火) 15:19:51.61ID:RxBpnTJ90
>>413
> CSVは文化的に周辺のツールやDBのコマンドなどのエコシステムが全体的にスキーマは不変であるという前提で設計されてて、変更に弱い傾向がある気がするわ
それCSVの問題じゃないだろ…
そもそも文化的にとかイミフだし
2020/01/14(火) 17:27:20.18ID:/8RfG7cVM
>>416
仕事してるなら感覚的に伝わると思ったけど、具体的に言おうか?
CSVはヘッダが必須ではないから、CSVを扱うソフトウェアやシステムはヘッダに依存せずに設定として列の項目名を持つようになっているケースがよくある。
だから列の増減や差し替えがあったりするとたとえ直接関係のない列の変更であっても各所に散財する設定を変更して回らなければならなくなることが多い。
2020/01/14(火) 18:03:11.50ID:RxBpnTJ90
だからそれってアプリの設計の問題だろ
ヘッダーが必須じゃないのがCSVの欠陥という主張なのか?
2020/01/14(火) 18:09:29.11ID:pFXvs9YC0
まあCSVがデータ交換の第一候補とされる時代で、動的なスキーマ扱うのは大変だったからな
たんに昔は大変だったってだけの話だが、それを文化的にっていうならそうなんじゃね
2020/01/14(火) 18:11:38.55ID:X7PL8nyZr
カンマが入ってる場合はcsvじゃなくtsv(タブ区切り)がベストだと思う
421デフォルトの名無しさん (ワッチョイ df2d-guBg)
垢版 |
2020/01/14(火) 20:12:40.85ID:hCHR2L1S0
ASP.Net CoreでWebページを作れるようになりたくて勉強中なんだけどさ
これって、内臓のWebサーバを使う限り、Let’s Encryptでもらった証明書は使えないもんなの?
2020/01/14(火) 20:17:19.61ID:/8RfG7cVM
今時のWebサイトのSSL証明書はAWSのロードバランサでポチるもんだ
サーバーはただHTTPを垂れ流せばよい
423デフォルトの名無しさん (ワッチョイ df2d-guBg)
垢版 |
2020/01/14(火) 20:34:04.12ID:hCHR2L1S0
おお、運用する時はこれが良いな
正直、サーバの設定もわかんないので任せっきりの方が安心そうだ
ただ勉強中は、100円で買ったドメイン + 安物VPS + 無料証明書でうまく動いてくれたらすごく助かるんだけど・・・・無理なのかな?
2020/01/14(火) 21:14:07.19ID:m9Mcjsqu0
>>420
むしろ csv より tsv の方がいろいろな点で優秀なのに、どうして tsv がはやらなかったのか?
2020/01/14(火) 21:41:46.70ID:X7PL8nyZr
エディタ次第で見た目が変わるからと
人が加工しづらいからだろうね

タブが入ってますと言っても判らんかもしれない
文字列が長いとそろわないのでタブの位置がおかしくなるかもしれない
2020/01/14(火) 22:06:19.07ID:iQtyfXTR0
csvよりtsvが優秀な点って何?
結局データ内にtabがある可能性があるならおなじじゃね?
だからカンマとかタブとかひっくるめてcharcter separated valuesの意味とされることも多いんでしょうが
2020/01/14(火) 22:20:24.32ID:Vj8ecsI80
TABをデータの一部として含む必要のない用途って圧倒的に多いと思う。
2020/01/14(火) 22:35:55.95ID:Q89341GR0
いみわかめ
2020/01/14(火) 23:48:13.12ID:ohbZmYwxa
えっcsvってcomma-separated-valuesの略だと思ってた
character-separated-valuesが正しいのね

カンマは含むけどTABを含むことはないデータを扱うのであればTSVのほうがちょっとだけ楽
あとTSVならExcelへのデータコピペ貼り付けが楽ちん
なnだけどExcelは拡張子tsvを認識してくれるわけじゃないし
デフォルト状態のテキストエディタだとTSVを開くとTABが見えなくて一般エンドユーザには扱いづらい
このあたりが普及しなかった理由かなあとも思う
430デフォルトの名無しさん (アウアウウー Saa3-7oRq)
垢版 |
2020/01/14(火) 23:53:37.69ID:1JLYJ3w5a
そういえばTSV使えばクリップボード経由でスプレッドシートに矩形のデータの貼り付けが出来たねw
2020/01/14(火) 23:53:53.34ID:3sd16sWN0
>>413
ヘッダー行無しで、列名を使わずに、
数字インデックスで、各列にアクセスするのは、ナンセンスw

各列の順序に、依存してはならない!
列名でアクセスすべき!
2020/01/15(水) 00:02:56.00ID:DW97+S7b0
>>429
別にどっちが正しいとか無いよ
個人的にはカンマの意味で使うことのほうが多いしRFCでもカンマだし

csvよりtsvのほうがいろいろ優秀とかいうほんまか?みたいな説があったから気になった
改行以外の制御文字は非エンジニアには理解しづらいし表示は環境依存になること多いし別にどっちが優秀とか全く思わん
2020/01/15(水) 00:30:13.30ID:7BgXM3KH0
chimpo-separated-values
で行くわ
2020/01/15(水) 00:51:08.61ID:4wm3SGsoa
>>431
SQLコマンドによるCSVのバルクロードすらやったことがない素人ルビカスは巣に帰れ
2020/01/15(水) 02:19:39.36ID:qS+FX29K0
>>434
431が正しいだろ
2020/01/15(水) 02:27:50.62ID:EZqAV4Af0
JSON Linesってヘッダー名が無駄だよね。
俺なら縦横逆にしてJSON Columnsだな
437デフォルトの名無しさん (ワッチョイ 02ad-NcMA)
垢版 |
2020/01/15(水) 03:11:55.49ID:5FatvImR0
>>426
大抵の場合カンマもダブルクォートも気にしなくてよくなる分有利だと思う
データ内にtabが必要なデータって出会ったことある?

完全に自分で決めていい場合なんかはまずデータで発生しない垂直タブとかにすることもある

あとbcpはいい加減囲み文字に対応してくれ・・・
2020/01/15(水) 05:03:47.76ID:ga1RRQJH0
>>435
正しいかどうかはケースバイケース
まともでないヘッダーついてるデータを読み込めとかあったりするし
439デフォルトの名無しさん (ワッチョイ 412d-GCXE)
垢版 |
2020/01/15(水) 06:40:51.71ID:p7xf33n60
ASP.Net coreを学習してて思ったんだけど、cshtmlファイルって簡単にプレビューすることってできないの?
もしかしてデザインを確認するたびにWebアプリをビルドして動かさなきゃならないのかな・・・・・?
2020/01/15(水) 08:55:22.37ID:4wm3SGsoa
>>439
プレビューは無理だが、実行中に変更して保存すれば自動的に反映される
今時のWeb開発はReactのようなブラウザ側でテンプレートをレンダリングするフレームワークを使うのが主流だから、
いわゆるライブプレビュー問題はそもそも関心の対象から外れつつある
441デフォルトの名無しさん (ワッチョイ 412d-GCXE)
垢版 |
2020/01/15(水) 10:19:44.72ID:p7xf33n60
>>440
ありがとう、簡単に反映されて見やすくなったよ!!!
しかも学習が進む前に主流がここにないこともわかって助かったぜ!!!
わからない点もあるけど、RazorやMVCを勉強するより、WebAPI+Reactのセットを勉強すれば良いのかな
442デフォルトの名無しさん (ワッチョイ bd02-otum)
垢版 |
2020/01/15(水) 19:15:28.96ID:JJ7ufGPT0
System.Drawing.Imageで、ビットマップを読み込んでそこで色々加工した後
ヘッダーまで含めたDIBビットマップ情報を取得したいです(変換したいです)。
要するにバイナリでファイルから読んだのと同じ情報にSystem.Drawing.Imageから変換したいのですができますか?
今はやり方が分からないので、Imageからファイルを読み込んで一通り加工した後、一旦Saveでファイルに書き込み
それを自分でSystem.IO.FileStreamでバイナリとして読んでます。効率が悪いので直接Imageから変換したいです。
443デフォルトの名無しさん (ワイーワ2 FF4a-otum)
垢版 |
2020/01/15(水) 19:20:32.57ID:eUr1BYr3F

https://stackoverflow.com/questions/5931407/how-to-create-a-new-hbitmapdib-from-an-existing-hbitmapcreatecompatiblebitmap
https://social.msdn.microsoft.com/Forums/ja-JP/66a19da1-91cb-4a80-9d4b-07edfb3587f2/dib244182433512395-bitmapfileheader?forum=vbgeneralja
https://www.mm2d.net/main/legacy/c/c-11.html
2020/01/15(水) 19:28:24.52ID:JJ7ufGPT0
>>443
ありがとうござます!あとで試してみます!
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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