!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
探検
ふらっと C#,C♯,C#(初心者用) Part146
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 9f0b-Fgt1)
2019/12/11(水) 22:12:11.28ID:d09CciDz0345デフォルトの名無しさん (ブーイモ MM23-WKbt)
2020/01/11(土) 00:43:53.19ID:HNDaLABiM 目次見る限りasync/awaitまで書いてあるようだが内容古いかな?
C#による マルチコアのための非同期/並列処理プログラミング
http://gihyo.jp/book/2013/978-4-7741-5828-0
C#による マルチコアのための非同期/並列処理プログラミング
http://gihyo.jp/book/2013/978-4-7741-5828-0
346デフォルトの名無しさん (ワッチョイ 7f24-lB9F)
2020/01/11(土) 10:39:28.88ID:LYbiGn3M0 C#で明示的にメモリを開放する手段はGC.Collect以外にはないんでしょうか?
画像やオーディオファイルを扱うアプリを作っている最中ですが、数百MBのデータを扱い終えても数分はメモリ使用量がそのままで少し気持ち悪いです
GC.Collectを行うと副作用も色々とあるようなので他に手段があればと
画像やオーディオファイルを扱うアプリを作っている最中ですが、数百MBのデータを扱い終えても数分はメモリ使用量がそのままで少し気持ち悪いです
GC.Collectを行うと副作用も色々とあるようなので他に手段があればと
347デフォルトの名無しさん (ワッチョイ df4f-lB9F)
2020/01/11(土) 10:49:45.29ID:W2txbHVT0348デフォルトの名無しさん (ワッチョイ 5f7d-vCMi)
2020/01/11(土) 11:09:15.66ID:UtksiWPF0 async/awaitの件解決しました。
ありがとうございました!
ありがとうございました!
349デフォルトの名無しさん (ワッチョイ dfa7-Eq4u)
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)
普通にミスった
関数ポインタ的なものを渡してるつもりだったけど実行演算子付けてたら意味ないな
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)
351デフォルトの名無しさん (ワッチョイ df4f-lB9F)
2020/01/11(土) 11:58:16.27ID:W2txbHVT0 それ、非同期ラムダならawaitで待つけど普通のラムダなら普通に呼ぶだけだろう。
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)
)
)
)
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使ってるから本末転倒やな
もう時間ない
もう時間ない
354デフォルトの名無しさん (ワッチョイ 5f0c-lB9F)
2020/01/11(土) 12:28:03.20ID:yg8EbsDw0 >>346
> GC.Collectを行うと副作用も色々とある
あくまで一般的な方針ってだけなので別に自分のアプリで問題(望ましくない時にスパイクを起こすとか)無ければ好きに呼べば良いよ
別にイリーガルなAPIというわけでもない
まあ一般的な話で言えば「メモリ残っててなんか気持ち悪い」程度の理由で呼ぶ必要はまったくないが
> GC.Collectを行うと副作用も色々とある
あくまで一般的な方針ってだけなので別に自分のアプリで問題(望ましくない時にスパイクを起こすとか)無ければ好きに呼べば良いよ
別にイリーガルなAPIというわけでもない
まあ一般的な話で言えば「メモリ残っててなんか気持ち悪い」程度の理由で呼ぶ必要はまったくないが
355デフォルトの名無しさん (ラクッペ MMf3-elwi)
2020/01/11(土) 12:48:55.66ID:iMRI2zWpM >>350のコールバックが非同期で呼び出されるってことだろうから普通に並べて呼ぶだけじゃ無理じゃね
356デフォルトの名無しさん (ワッチョイ 7f24-lB9F)
2020/01/12(日) 10:53:37.47ID:dSru1J0h0 >>354
たしかに基本的には問題になりませんが、
数GBを消費することもあり、もしそのときに使用者が他に重いプログラムを起動するなどするとメモリ不足になる場合もあるかなと・・・
こういうプログラムはGC任せにするのではなくC++などで作るべきという結論になるんでしょうか?
たしかに基本的には問題になりませんが、
数GBを消費することもあり、もしそのときに使用者が他に重いプログラムを起動するなどするとメモリ不足になる場合もあるかなと・・・
こういうプログラムはGC任せにするのではなくC++などで作るべきという結論になるんでしょうか?
357デフォルトの名無しさん (ワッチョイ 7f52-4RSc)
2020/01/12(日) 11:39:38.30ID:hca/fTZV0 >>356
仮想メモリでググってみて
仮想メモリでググってみて
358デフォルトの名無しさん (ワッチョイ df4f-lB9F)
2020/01/12(日) 12:06:08.27ID:EKUpo6h10 >>346
IDisposableなオブジェクトがあれば不要になった時点できちんとDispose()するようにするとかかな。
画像を扱っているんであればSystem.Drawing.Imageとかいろいろあるんでは。
IDisposableなオブジェクトがあれば不要になった時点できちんとDispose()するようにするとかかな。
画像を扱っているんであればSystem.Drawing.Imageとかいろいろあるんでは。
359デフォルトの名無しさん (ワッチョイ 5fda-KD25)
2020/01/12(日) 12:10:08.97ID:VFqe+WSm0 usingで囲むのが定石かな?
360デフォルトの名無しさん (ワッチョイ 7f24-lB9F)
2020/01/12(日) 12:28:05.83ID:dSru1J0h0 主にはMemoryStreamで巨大データを扱っていてちゃんとDisposeは行っていますが、タスクマネージャーで監視している限りだと中々メモリ使用量が減りません
361デフォルトの名無しさん (ワッチョイ 5f0c-lB9F)
2020/01/12(日) 12:32:04.56ID:21O0ncu50 >>356
その消費されているメモリがどのメモリなのかきちんと把握しないと意味がないよ
マネージドメモリが消費されればそれだけ手動でCollectせずともGCは働くはず
なのに残っているとしたらstatic変数等で無駄に参照し続けている可能性がある
アンマネージドなメモリなら既に書かれてる通りDisposeを必要な場面で呼び出していない可能性がある
加えてGC性能の観点からはDispose(正確にはファイナライザの方だけど)をGC任せにするのは
程度問題ではあるけど基本的にはご法度
現状「メモリが大量に消費されているが手動でCollectして大丈夫か」の情報だけでは現状方針は立てようがない
その消費されているメモリがどのメモリなのかきちんと把握しないと意味がないよ
マネージドメモリが消費されればそれだけ手動でCollectせずともGCは働くはず
なのに残っているとしたらstatic変数等で無駄に参照し続けている可能性がある
アンマネージドなメモリなら既に書かれてる通りDisposeを必要な場面で呼び出していない可能性がある
加えてGC性能の観点からはDispose(正確にはファイナライザの方だけど)をGC任せにするのは
程度問題ではあるけど基本的にはご法度
現状「メモリが大量に消費されているが手動でCollectして大丈夫か」の情報だけでは現状方針は立てようがない
362デフォルトの名無しさん (ワッチョイ 7f24-lB9F)
2020/01/12(日) 12:37:20.88ID:dSru1J0h0 >>361
一応上でも書きましたがメモリリークの相談ではありません
一応上でも書きましたがメモリリークの相談ではありません
363デフォルトの名無しさん (ワッチョイ 5f0c-lB9F)
2020/01/12(日) 12:52:17.43ID:21O0ncu50364デフォルトの名無しさん (ワッチョイ 7f24-lB9F)
2020/01/12(日) 13:07:52.95ID:dSru1J0h0 >>363
言葉足らずでしたが、Dispose処理を行ったであろうタイミングで減らないというだけであって待つなりそこでCG.Collectを行えばちゃんと解放はされます
ただ上でも言ったようにGC.Collectは副作用があるようなのでC++のdeleteのようなものは無いのかなと
言葉足らずでしたが、Dispose処理を行ったであろうタイミングで減らないというだけであって待つなりそこでCG.Collectを行えばちゃんと解放はされます
ただ上でも言ったようにGC.Collectは副作用があるようなのでC++のdeleteのようなものは無いのかなと
365デフォルトの名無しさん (ワッチョイ 5fde-Eq4u)
2020/01/12(日) 13:49:29.53ID:GXqrVy4G0 GCって動かしてやらないと限界まで解放しないよ
限界までいって開放時のその時起きるのはストップザ・ワールドと呼ばれる有名な現象
その前にもメモリの残量を見てるアプリが動かなくなる
あ、メモリ少ないじゃん俺起動やめんべ
こういうのも絡んで再現不能な不具合を多々撒き散らす
常駐アプリならストップザ・ワールドが困るなら定期的に解放せんとまずい
ちなみにストップザ・ワールドは10分は動かなかったときがある
限界までいって開放時のその時起きるのはストップザ・ワールドと呼ばれる有名な現象
その前にもメモリの残量を見てるアプリが動かなくなる
あ、メモリ少ないじゃん俺起動やめんべ
こういうのも絡んで再現不能な不具合を多々撒き散らす
常駐アプリならストップザ・ワールドが困るなら定期的に解放せんとまずい
ちなみにストップザ・ワールドは10分は動かなかったときがある
366デフォルトの名無しさん (ワッチョイ 5f0c-lB9F)
2020/01/12(日) 13:50:45.08ID:21O0ncu50 >>364
まあ生存しているマネージドメモリの正体がわかり切っていて処理の途中でも無いなら
(例えば単純にユーザー操作からファイルの読み込みが完了して結果が表示された後とか)
それはCollect使っても構わない場面だと思うよ
結局副作用と言ってもヒューリスティックなGCの調整に影響が出て
細かくGCが起きる場面でのスループットが低下する、かもしれない
とかその程度だしね
まあ生存しているマネージドメモリの正体がわかり切っていて処理の途中でも無いなら
(例えば単純にユーザー操作からファイルの読み込みが完了して結果が表示された後とか)
それはCollect使っても構わない場面だと思うよ
結局副作用と言ってもヒューリスティックなGCの調整に影響が出て
細かくGCが起きる場面でのスループットが低下する、かもしれない
とかその程度だしね
367デフォルトの名無しさん (ドコグロ MM7f-JyDu)
2020/01/12(日) 13:53:55.26ID:F6k+/xNLM サーバーじゃなくてクライアントアプリだろ?
ガンガンGC.Collect打っても全然問題ないよ
ガンガンGC.Collect打っても全然問題ないよ
368デフォルトの名無しさん (ワッチョイ 5f5f-alJZ)
2020/01/12(日) 13:54:13.68ID:yOfvFL1A0369デフォルトの名無しさん (ワッチョイ 5fde-Eq4u)
2020/01/12(日) 14:00:58.90ID:GXqrVy4G0370デフォルトの名無しさん (ブーイモ MM0f-2EI0)
2020/01/12(日) 14:21:33.28ID:EstEf4vMM >>364
大きなメモリブロックを頻繁に扱うならアンマネージドメモリを使いなよ
アンマネージドメモリなら開放したいときに無駄なく開放できる
今はspanがあるからアンマネージドメモリの扱いも簡単だ
GCの手動実行は開放したいメモリ以外にもマークアンドスイープが発生しちゃうから効率が悪い
ちなみにMemoryStream.Disposeはインターフェース共通化のために実装してあるだけで呼び出す意味はない
大きなメモリブロックを頻繁に扱うならアンマネージドメモリを使いなよ
アンマネージドメモリなら開放したいときに無駄なく開放できる
今はspanがあるからアンマネージドメモリの扱いも簡単だ
GCの手動実行は開放したいメモリ以外にもマークアンドスイープが発生しちゃうから効率が悪い
ちなみにMemoryStream.Disposeはインターフェース共通化のために実装してあるだけで呼び出す意味はない
371デフォルトの名無しさん (ワッチョイ 7fad-tNwm)
2020/01/12(日) 14:32:31.87ID:fMqCO5na0 逆に10分止めちゃうようなコードを見てみたい
372デフォルトの名無しさん (ワッチョイ 5f63-hsX7)
2020/01/12(日) 14:39:35.43ID:OVUZbrRA0 GCが分単位でかかる状況ってそもそも作り出せるもの?
373デフォルトの名無しさん (アウアウウー Saa3-7oRq)
2020/01/12(日) 14:49:38.22ID:KwEpglzAa ストップザワールドてw
PC-98の時代で頭が止まってるのかwww
PC-98の時代で頭が止まってるのかwww
374デフォルトの名無しさん (ワッチョイ 7f01-KDxU)
2020/01/12(日) 16:50:21.94ID:M8sF3s6B0 時間経過だけを条件にフルGCがされることってあるのかな?
メモリリークではないと言ってるけど状況的にそう言える根拠はないような・・・
- 数GBが開放されない
- 数分待てば開放される(ように見える)
- GC.Collectすれば開放される
- タスクマネージャーでのみ確認
メモリリークではないと言ってるけど状況的にそう言える根拠はないような・・・
- 数GBが開放されない
- 数分待てば開放される(ように見える)
- GC.Collectすれば開放される
- タスクマネージャーでのみ確認
375デフォルトの名無しさん (ワッチョイ dfa7-Eq4u)
2020/01/12(日) 17:07:03.57ID:M6sT7X550 MSDNより
ガベージ コレクションの条件
ガベージ コレクションは、次のいずれかの条件に当てはまる場合に発生します。
・システムの物理メモリが少ない場合。 OS からのメモリ不足通知またはホストによって示されたメモリ不足のいずれかによって検出されます。
・マネージド ヒープで割り当てられたオブジェクトによって使用されているメモリが、許容されるしきい値を超える場合。 このしきい値は、プロセスの進行に合わせて絶えず調整されます。
・GC.Collect メソッドが呼び出された場合。 ほとんどの場合、ガベージ コレクターは継続して実行されるため、このメソッドを呼び出す必要はありません。 このメソッドは、主に特別な状況やテストで使用されます。
ガベージ コレクションの条件
ガベージ コレクションは、次のいずれかの条件に当てはまる場合に発生します。
・システムの物理メモリが少ない場合。 OS からのメモリ不足通知またはホストによって示されたメモリ不足のいずれかによって検出されます。
・マネージド ヒープで割り当てられたオブジェクトによって使用されているメモリが、許容されるしきい値を超える場合。 このしきい値は、プロセスの進行に合わせて絶えず調整されます。
・GC.Collect メソッドが呼び出された場合。 ほとんどの場合、ガベージ コレクターは継続して実行されるため、このメソッドを呼び出す必要はありません。 このメソッドは、主に特別な状況やテストで使用されます。
376デフォルトの名無しさん (ワッチョイ 7f59-G18V)
2020/01/12(日) 18:10:01.75ID:bIiQ1z8t0377デフォルトの名無しさん (ワッチョイ 5f2c-CCy/)
2020/01/12(日) 18:32:57.05ID:je4+hRX40 そして時は動き出す…!
378デフォルトの名無しさん (ワッチョイ 5fda-KD25)
2020/01/12(日) 19:53:41.49ID:VFqe+WSm0 out of memory.
379デフォルトの名無しさん (ワッチョイ dfe7-b6Cp)
2020/01/12(日) 20:13:16.17ID:6g8s1ic00 >>373
GC界隈では普通に使う表現
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);
}
}
データに「"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);
}
}
381デフォルトの名無しさん (アウアウイー Sab3-VpI/)
2020/01/13(月) 00:49:22.13ID:3SwxEC/oa nugetでcsvhelper
どうしても自前で車輪の再発明をしなければ気が済まないならTextFieldParserあたり
どうしても自前で車輪の再発明をしなければ気が済まないならTextFieldParserあたり
382デフォルトの名無しさん (ワッチョイ 7fad-UU8b)
2020/01/13(月) 00:50:08.91ID:wNJBXid30383デフォルトの名無しさん (ワッチョイ 5fda-KD25)
2020/01/13(月) 00:50:48.38ID:5a7SXLUb0 ダブルクオートの数は論理行内で偶数に
なる事に気がつけば
難しくないよね?
なる事に気がつけば
難しくないよね?
384デフォルトの名無しさん (ワッチョイ 7f2c-JQ6m)
2020/01/13(月) 04:40:58.64ID:6QaMEdT10 Ruby なら、CSV モジュールを使うだけ
CSVでは、要素内に、列区切り文字(カンマ)・行区切り文字(改行)がある場合は、
その要素をクォート文字(ダブルクォーテーション)で囲まなければならない
要素内に、クォート文字がある場合は、クォート文字を2つにしてから、
その要素をクォート文字で囲まなければならない
CSVでは、要素内に、列区切り文字(カンマ)・行区切り文字(改行)がある場合は、
その要素をクォート文字(ダブルクォーテーション)で囲まなければならない
要素内に、クォート文字がある場合は、クォート文字を2つにしてから、
その要素をクォート文字で囲まなければならない
385デフォルトの名無しさん (ワッチョイ ffe3-G18V)
2020/01/13(月) 11:08:21.47ID:0YkcX+ND0 >>384
クォート文字有り無しが混在している時点でCSVじゃねえってことか
クォート文字有り無しが混在している時点でCSVじゃねえってことか
386デフォルトの名無しさん (ワッチョイ 5fda-KD25)
2020/01/13(月) 11:21:19.23ID:5a7SXLUb0 元々のCSVはSuperCalc の形式(オズボーン1にバンドルされていた)
今目にするCSVの仕様は、管理工学研究所が定義したK3形式が元になっている
で、実際の処理には何の関係も無い
今目にするCSVの仕様は、管理工学研究所が定義したK3形式が元になっている
で、実際の処理には何の関係も無い
387デフォルトの名無しさん (ブーイモ MM9f-2EI0)
2020/01/13(月) 11:38:13.56ID:IOw3xBOoM CSVという欠陥品はやめてJSONを使おう
JSONならテーブル形式も違和感ない
JSONならテーブル形式も違和感ない
388デフォルトの名無しさん (ワッチョイ 7f59-G18V)
2020/01/13(月) 12:42:50.09ID:DisUSQsY0 丁度いいから聞きたいんだけどjsonのnugetってどれがいいんだ?
ニュートンでいいの?
ニュートンでいいの?
389デフォルトの名無しさん (ワッチョイ 5f63-hsX7)
2020/01/13(月) 13:17:46.09ID:lNXH+eFP0 utf8json
390デフォルトの名無しさん (ワッチョイ dfe5-alJZ)
2020/01/13(月) 16:30:16.82ID:5i4YDTtr0 csvhelperなるものがあるのですね
情報ありがとうございます
ドボンさんの情報は以前は参考にさせて頂いてましたが、
.NET2.0くらいのやり方が多いので、今はより洗練された方法がありそうだなと
思っておりました
情報ありがとうございます
ドボンさんの情報は以前は参考にさせて頂いてましたが、
.NET2.0くらいのやり方が多いので、今はより洗練された方法がありそうだなと
思っておりました
391デフォルトの名無しさん (ワッチョイ 7f2c-DGfv)
2020/01/13(月) 21:40:59.14ID:n3H4xPlw0392384 (ワッチョイ 7f2c-JQ6m)
2020/01/13(月) 22:56:09.48ID:6QaMEdT10 >>385
クォート文字の有り無しは、混在できる
CSVでは、要素内に、列区切り文字(カンマ)・行区切り文字(改行)・クォート文字(ダブルクォーテーション)がある場合は、
その要素をクォート文字(ダブルクォーテーション)で囲まなければならない
ただし要素内に、クォート文字がある場合は、クォート文字を2つにしてから、
その要素をクォート文字で囲まなければならない
でも要素内に、それらの特殊文字が無いなら、クォート文字で囲まなくてもよい
クォート文字の有り無しは、混在できる
CSVでは、要素内に、列区切り文字(カンマ)・行区切り文字(改行)・クォート文字(ダブルクォーテーション)がある場合は、
その要素をクォート文字(ダブルクォーテーション)で囲まなければならない
ただし要素内に、クォート文字がある場合は、クォート文字を2つにしてから、
その要素をクォート文字で囲まなければならない
でも要素内に、それらの特殊文字が無いなら、クォート文字で囲まなくてもよい
393デフォルトの名無しさん (アウアウウー Saa3-7oRq)
2020/01/13(月) 23:01:31.99ID:kDbPI+DBa それCSVっていうよりBASIC系のエスケープっぽいねw
そもそもCSVってカチッとした仕様がなかった気がするんだけど
そもそもCSVってカチッとした仕様がなかった気がするんだけど
394デフォルトの名無しさん (ワッチョイ 7f47-uhcM)
2020/01/13(月) 23:06:38.56ID:VhiGJyHM0395デフォルトの名無しさん (ワッチョイ 7f52-4RSc)
2020/01/13(月) 23:18:49.19ID:lfPKL+oG0 >>393
もともとちゃんとした仕様が決まってないままに様々な方言が普及しちゃった後に、後付けでrfc4180が定義されたらしい。
もともとちゃんとした仕様が決まってないままに様々な方言が普及しちゃった後に、後付けでrfc4180が定義されたらしい。
396デフォルトの名無しさん (アウアウウー Saa3-7oRq)
2020/01/13(月) 23:30:20.68ID:kDbPI+DBa397デフォルトの名無しさん (ワッチョイ 5f17-lB9F)
2020/01/13(月) 23:36:49.28ID:VaOcNYgw0 けっこう色々な種類のcsvファイル触ってきたけどこの定義から外れたもの見たことないから
とりあえずこの通りに実装しとけば問題ないけどね
とりあえずこの通りに実装しとけば問題ないけどね
398デフォルトの名無しさん (ワッチョイ 5f90-mHUb)
2020/01/13(月) 23:37:58.26ID:tegDOPxe0 >>394
そもそもこれstandards trackじゃないし。informationalやん
そもそもこれstandards trackじゃないし。informationalやん
399デフォルトの名無しさん (アウアウウー Saa3-7oRq)
2020/01/13(月) 23:40:16.54ID:kDbPI+DBa よく見ると冒頭にちゃんと
Category: Informational
と書いてあるね
Category: Informational
と書いてあるね
400デフォルトの名無しさん (ワッチョイ 7f2c-JQ6m)
2020/01/14(火) 03:26:39.48ID:3sd16sWN0 Ruby のCSV も、RFC4180
これが標準
これが標準
401デフォルトの名無しさん (ワッチョイ 7f47-uhcM)
2020/01/14(火) 04:05:32.78ID:N3SxpKLV0 ルビーはどうでもいいけどRFC4180が標準だわな
402デフォルトの名無しさん (ワッチョイ df01-eaUz)
2020/01/14(火) 07:09:18.01ID:TfUAOhnl0 今のご時世で新規開発のデータ出力にcsv採用はセンス無いですか?
csv受け取るサブシステムは今の所無いと考えて
csv受け取るサブシステムは今の所無いと考えて
403デフォルトの名無しさん (ワッチョイ dfde-Eq4u)
2020/01/14(火) 07:12:40.24ID:Z55vDhY10 出力した後の運用によるだろ
PGがさわるわけでもないのにxmlで出されても工場のおじさん困っちゃう
PGがさわるわけでもないのにxmlで出されても工場のおじさん困っちゃう
404デフォルトの名無しさん (ワッチョイ 7f01-qx2z)
2020/01/14(火) 07:56:37.29ID:RxBpnTJ90 >>402
例えば時系列の数値データとかだと今でもCSVが最適解のケースが多いと思う
構造が必要なデータとかでないとXMLやjsonはちょっと冗長
まあC#ならライブラリも充実してるからぶっちゃけどうとでもなるけど
例えば時系列の数値データとかだと今でもCSVが最適解のケースが多いと思う
構造が必要なデータとかでないとXMLやjsonはちょっと冗長
まあC#ならライブラリも充実してるからぶっちゃけどうとでもなるけど
405デフォルトの名無しさん (ワッチョイ 7f2c-JQ6m)
2020/01/14(火) 09:02:31.67ID:3sd16sWN0 表みたいに、行・列だけの、ネストしない単純な構造物は、CSV がベスト!
一方、構造がネストするものは、JSON, YAML, XML など
一方、構造がネストするものは、JSON, YAML, XML など
406デフォルトの名無しさん (ブーイモ MM0f-rUPC)
2020/01/14(火) 09:18:13.67ID:HiotJy5MM Pandsみたいな優秀なライブラリ誰か作って、オレオレクラス定義すんの面倒になってきた
407デフォルトの名無しさん (アウアウウー Saa3-7oRq)
2020/01/14(火) 12:25:10.48ID:1JLYJ3w5a CSVを使う動機は他のプログラムにデータを渡すことでしょ。
例えばエクセル。日本も欧米もエクセルスキー多いからな
閉じたシステムでしか使わないデータのフォーマットなんか何だっていいでしょ。
あえてCSVを使う理由なんかどこにもないと思うけど
例えばエクセル。日本も欧米もエクセルスキー多いからな
閉じたシステムでしか使わないデータのフォーマットなんか何だっていいでしょ。
あえてCSVを使う理由なんかどこにもないと思うけど
408デフォルトの名無しさん (ワッチョイ 5fde-Eq4u)
2020/01/14(火) 12:27:31.80ID:Kx+Dz7Lq0 >>405
否
構造がネストしてたってCSVに入れなければならないときがある
そもそもネストしたぐらいでリストにできないんじゃデータベースにどうやって入れるんだ?
parentid持ってりゃネストしてたって再構築できるだろ
否
構造がネストしてたってCSVに入れなければならないときがある
そもそもネストしたぐらいでリストにできないんじゃデータベースにどうやって入れるんだ?
parentid持ってりゃネストしてたって再構築できるだろ
409デフォルトの名無しさん (ワッチョイ 7f52-4RSc)
2020/01/14(火) 13:05:22.12ID:eL1p+DpS0 まあ、いつものRuby君だからな。
聞き齧った情報を単純化して暗記だけして、関われそうな話題が出るとここぞとばかりに唱え続けるのはいつものこと。
聞き齧った情報を単純化して暗記だけして、関われそうな話題が出るとここぞとばかりに唱え続けるのはいつものこと。
410デフォルトの名無しさん (ワッチョイ df35-e1y7)
2020/01/14(火) 13:09:26.15ID:Cb2SImdL0 CSVで親IDとか使うの?
411デフォルトの名無しさん (ドコグロ MM7f-qx2z)
2020/01/14(火) 13:55:46.20ID:/uoR9pL9M412デフォルトの名無しさん (ドコグロ MM7f-qx2z)
2020/01/14(火) 13:58:11.66ID:/uoR9pL9M413デフォルトの名無しさん (ドコグロ MM7f-JyDu)
2020/01/14(火) 14:06:50.32ID:/8RfG7cVM CSVは項目の増減があるとウザいんだよな
もちろんちゃんとヘッダ付けてスキーマが変わった時点でファイルを区切ればいいんだけど、
CSVは文化的に周辺のツールやDBのコマンドなどのエコシステムが全体的にスキーマは不変であるという前提で設計されてて、変更に弱い傾向がある気がするわ
選べるならJSON Linesの方が好き
もちろんちゃんとヘッダ付けてスキーマが変わった時点でファイルを区切ればいいんだけど、
CSVは文化的に周辺のツールやDBのコマンドなどのエコシステムが全体的にスキーマは不変であるという前提で設計されてて、変更に弱い傾向がある気がするわ
選べるならJSON Linesの方が好き
414デフォルトの名無しさん (ワッチョイ 5fda-KD25)
2020/01/14(火) 14:38:15.52ID:1W0s33Ee0 sqlldrが対応したら考える
415デフォルトの名無しさん (ワッチョイ ff42-lB9F)
2020/01/14(火) 15:11:21.78ID:EWDA2lfk0 CSVは方言があるから、きちっと規則が決まっているフォーマットのほうがあらゆる場所で使いやすい
データをそのまんま見る必要はまったくないからな
データをそのまんま見る必要はまったくないからな
416デフォルトの名無しさん (ワッチョイ 7f01-qx2z)
2020/01/14(火) 15:19:51.61ID:RxBpnTJ90 >>413
> CSVは文化的に周辺のツールやDBのコマンドなどのエコシステムが全体的にスキーマは不変であるという前提で設計されてて、変更に弱い傾向がある気がするわ
それCSVの問題じゃないだろ…
そもそも文化的にとかイミフだし
> CSVは文化的に周辺のツールやDBのコマンドなどのエコシステムが全体的にスキーマは不変であるという前提で設計されてて、変更に弱い傾向がある気がするわ
それCSVの問題じゃないだろ…
そもそも文化的にとかイミフだし
417デフォルトの名無しさん (ドコグロ MM7f-JyDu)
2020/01/14(火) 17:27:20.18ID:/8RfG7cVM >>416
仕事してるなら感覚的に伝わると思ったけど、具体的に言おうか?
CSVはヘッダが必須ではないから、CSVを扱うソフトウェアやシステムはヘッダに依存せずに設定として列の項目名を持つようになっているケースがよくある。
だから列の増減や差し替えがあったりするとたとえ直接関係のない列の変更であっても各所に散財する設定を変更して回らなければならなくなることが多い。
仕事してるなら感覚的に伝わると思ったけど、具体的に言おうか?
CSVはヘッダが必須ではないから、CSVを扱うソフトウェアやシステムはヘッダに依存せずに設定として列の項目名を持つようになっているケースがよくある。
だから列の増減や差し替えがあったりするとたとえ直接関係のない列の変更であっても各所に散財する設定を変更して回らなければならなくなることが多い。
418デフォルトの名無しさん (ワッチョイ 7f01-qx2z)
2020/01/14(火) 18:03:11.50ID:RxBpnTJ90 だからそれってアプリの設計の問題だろ
ヘッダーが必須じゃないのがCSVの欠陥という主張なのか?
ヘッダーが必須じゃないのがCSVの欠陥という主張なのか?
419デフォルトの名無しさん (ワッチョイ df2f-JQ6m)
2020/01/14(火) 18:09:29.11ID:pFXvs9YC0 まあCSVがデータ交換の第一候補とされる時代で、動的なスキーマ扱うのは大変だったからな
たんに昔は大変だったってだけの話だが、それを文化的にっていうならそうなんじゃね
たんに昔は大変だったってだけの話だが、それを文化的にっていうならそうなんじゃね
420デフォルトの名無しさん (オッペケ Srb3-lZna)
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でもらった証明書は使えないもんなの?
これって、内臓のWebサーバを使う限り、Let’s Encryptでもらった証明書は使えないもんなの?
422デフォルトの名無しさん (ドコグロ MM7f-JyDu)
2020/01/14(火) 20:17:19.61ID:/8RfG7cVM 今時のWebサイトのSSL証明書はAWSのロードバランサでポチるもんだ
サーバーはただHTTPを垂れ流せばよい
サーバーはただHTTPを垂れ流せばよい
423デフォルトの名無しさん (ワッチョイ df2d-guBg)
2020/01/14(火) 20:34:04.12ID:hCHR2L1S0 おお、運用する時はこれが良いな
正直、サーバの設定もわかんないので任せっきりの方が安心そうだ
ただ勉強中は、100円で買ったドメイン + 安物VPS + 無料証明書でうまく動いてくれたらすごく助かるんだけど・・・・無理なのかな?
正直、サーバの設定もわかんないので任せっきりの方が安心そうだ
ただ勉強中は、100円で買ったドメイン + 安物VPS + 無料証明書でうまく動いてくれたらすごく助かるんだけど・・・・無理なのかな?
>>420
むしろ csv より tsv の方がいろいろな点で優秀なのに、どうして tsv がはやらなかったのか?
むしろ csv より tsv の方がいろいろな点で優秀なのに、どうして tsv がはやらなかったのか?
425デフォルトの名無しさん (オッペケ Srb3-lZna)
2020/01/14(火) 21:41:46.70ID:X7PL8nyZr エディタ次第で見た目が変わるからと
人が加工しづらいからだろうね
タブが入ってますと言っても判らんかもしれない
文字列が長いとそろわないのでタブの位置がおかしくなるかもしれない
人が加工しづらいからだろうね
タブが入ってますと言っても判らんかもしれない
文字列が長いとそろわないのでタブの位置がおかしくなるかもしれない
426デフォルトの名無しさん (ワッチョイ 5f63-hsX7)
2020/01/14(火) 22:06:19.07ID:iQtyfXTR0 csvよりtsvが優秀な点って何?
結局データ内にtabがある可能性があるならおなじじゃね?
だからカンマとかタブとかひっくるめてcharcter separated valuesの意味とされることも多いんでしょうが
結局データ内にtabがある可能性があるならおなじじゃね?
だからカンマとかタブとかひっくるめてcharcter separated valuesの意味とされることも多いんでしょうが
427デフォルトの名無しさん (ワッチョイ df4f-lB9F)
2020/01/14(火) 22:20:24.32ID:Vj8ecsI80 TABをデータの一部として含む必要のない用途って圧倒的に多いと思う。
428デフォルトの名無しさん (ワッチョイ 5fb2-rUPC)
2020/01/14(火) 22:35:55.95ID:Q89341GR0 いみわかめ
429デフォルトの名無しさん (アウアウイー Sab3-VpI/)
2020/01/14(火) 23:48:13.12ID:ohbZmYwxa えっcsvってcomma-separated-valuesの略だと思ってた
character-separated-valuesが正しいのね
カンマは含むけどTABを含むことはないデータを扱うのであればTSVのほうがちょっとだけ楽
あとTSVならExcelへのデータコピペ貼り付けが楽ちん
なnだけどExcelは拡張子tsvを認識してくれるわけじゃないし
デフォルト状態のテキストエディタだとTSVを開くとTABが見えなくて一般エンドユーザには扱いづらい
このあたりが普及しなかった理由かなあとも思う
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
431デフォルトの名無しさん (ワッチョイ 7f2c-JQ6m)
2020/01/14(火) 23:53:53.34ID:3sd16sWN0432デフォルトの名無しさん (ワッチョイ c563-slCE)
2020/01/15(水) 00:02:56.00ID:DW97+S7b0 >>429
別にどっちが正しいとか無いよ
個人的にはカンマの意味で使うことのほうが多いしRFCでもカンマだし
csvよりtsvのほうがいろいろ優秀とかいうほんまか?みたいな説があったから気になった
改行以外の制御文字は非エンジニアには理解しづらいし表示は環境依存になること多いし別にどっちが優秀とか全く思わん
別にどっちが正しいとか無いよ
個人的にはカンマの意味で使うことのほうが多いしRFCでもカンマだし
csvよりtsvのほうがいろいろ優秀とかいうほんまか?みたいな説があったから気になった
改行以外の制御文字は非エンジニアには理解しづらいし表示は環境依存になること多いし別にどっちが優秀とか全く思わん
433デフォルトの名無しさん (ワッチョイ a9a7-oy3B)
2020/01/15(水) 00:30:13.30ID:7BgXM3KH0 chimpo-separated-values
で行くわ
で行くわ
434デフォルトの名無しさん (アウアウウー Sa05-mgaX)
2020/01/15(水) 00:51:08.61ID:4wm3SGsoa >>431
SQLコマンドによるCSVのバルクロードすらやったことがない素人ルビカスは巣に帰れ
SQLコマンドによるCSVのバルクロードすらやったことがない素人ルビカスは巣に帰れ
435デフォルトの名無しさん (ワッチョイ 1db2-V+qk)
2020/01/15(水) 02:19:39.36ID:qS+FX29K0 >>434
431が正しいだろ
431が正しいだろ
436デフォルトの名無しさん (ワッチョイ 8de6-A78j)
2020/01/15(水) 02:27:50.62ID:EZqAV4Af0 JSON Linesってヘッダー名が無駄だよね。
俺なら縦横逆にしてJSON Columnsだな
俺なら縦横逆にしてJSON Columnsだな
437デフォルトの名無しさん (ワッチョイ 02ad-NcMA)
2020/01/15(水) 03:11:55.49ID:5FatvImR0 >>426
大抵の場合カンマもダブルクォートも気にしなくてよくなる分有利だと思う
データ内にtabが必要なデータって出会ったことある?
完全に自分で決めていい場合なんかはまずデータで発生しない垂直タブとかにすることもある
あとbcpはいい加減囲み文字に対応してくれ・・・
大抵の場合カンマもダブルクォートも気にしなくてよくなる分有利だと思う
データ内にtabが必要なデータって出会ったことある?
完全に自分で決めていい場合なんかはまずデータで発生しない垂直タブとかにすることもある
あとbcpはいい加減囲み文字に対応してくれ・・・
438デフォルトの名無しさん (ワッチョイ 0201-mQF2)
2020/01/15(水) 05:03:47.76ID:ga1RRQJH0439デフォルトの名無しさん (ワッチョイ 412d-GCXE)
2020/01/15(水) 06:40:51.71ID:p7xf33n60 ASP.Net coreを学習してて思ったんだけど、cshtmlファイルって簡単にプレビューすることってできないの?
もしかしてデザインを確認するたびにWebアプリをビルドして動かさなきゃならないのかな・・・・・?
もしかしてデザインを確認するたびにWebアプリをビルドして動かさなきゃならないのかな・・・・・?
440デフォルトの名無しさん (アウアウウー Sa05-mgaX)
2020/01/15(水) 08:55:22.37ID:4wm3SGsoa >>439
プレビューは無理だが、実行中に変更して保存すれば自動的に反映される
今時のWeb開発はReactのようなブラウザ側でテンプレートをレンダリングするフレームワークを使うのが主流だから、
いわゆるライブプレビュー問題はそもそも関心の対象から外れつつある
プレビューは無理だが、実行中に変更して保存すれば自動的に反映される
今時のWeb開発はReactのようなブラウザ側でテンプレートをレンダリングするフレームワークを使うのが主流だから、
いわゆるライブプレビュー問題はそもそも関心の対象から外れつつある
441デフォルトの名無しさん (ワッチョイ 412d-GCXE)
2020/01/15(水) 10:19:44.72ID:p7xf33n60 >>440
ありがとう、簡単に反映されて見やすくなったよ!!!
しかも学習が進む前に主流がここにないこともわかって助かったぜ!!!
わからない点もあるけど、RazorやMVCを勉強するより、WebAPI+Reactのセットを勉強すれば良いのかな
ありがとう、簡単に反映されて見やすくなったよ!!!
しかも学習が進む前に主流がここにないこともわかって助かったぜ!!!
わからない点もあるけど、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から変換したいです。
ヘッダーまで含めた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
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
444デフォルトの名無しさん (ワッチョイ bd02-otum)
2020/01/15(水) 19:28:24.52ID:JJ7ufGPT0 >>443
ありがとうござます!あとで試してみます!
ありがとうござます!あとで試してみます!
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 ★2 [Hitzeschleier★]
- 小島瑠璃子さん、代表取締役を務める会社を破産申請 [牛丼★]
- 「残クレ」でマイホーム、国が銀行向け保険 新型住宅ローン普及促す -日経 ★3 [少考さん★]
- 【サッカー】日本代表、FIFAランキング“4位”の強豪イングランドとの対戦が正式決定! 来年3月に聖地ウェンブリーで激突へ [久太郎★]
- (´・ω・`)クリスマスが今年もやってくる~
- 千晴さん千晴さん
- 晃←コレの読み方wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
- 【悲報】ジャップ、日中戦争に賛成が5割弱...軍歌の音が聞こえる... [856698234]
- 関西住みのニューハーフ、彼氏が欲しくて泣く
- 俺も猫か犬と布団で寝たい
