投稿

2021の投稿を表示しています

C#でCSVファイルを読む手順

CSVファイルを読み込むには、以下のライブラリを使う。これが定石。 Microsoft.VisualBasic.FileIO.TextFieldParser CSVファイルをきちんとカンマで区切りながら読んでくれる。とても便利。 ❓(質問)CSVファイルは Split メソッドを使えば列ごとに分解できるのでは? (回答)CSVファイルには、ダブルクォーテーションで囲まれたテキストもOKで、このときはSplitでカンマごとに分割しても「"」が残ってしまうのでダメです。 (例) 番号,レベル,説明 1,2,"説明1" 2,4,"説明2 詳細は***に示す" しかも、「"」で囲まれたテキストは改行してもよいので(上の例)、これではSplitでどうにかすることはできません。  TextFieldParser は上記のケースすべてに対応して、きちんと読み込むことができます。 (回答終了) CSVファイルを読み込むコードは以下のように書ける。ここでは以下の流れ。 CSVファイルを全行読み込む→配列に入る 配列を改行を挟んで連結する→長い文字列になる TextFieldParserのオブジェクトを作って、文字列を引数に渡す TextFieldParserの読み込み設定をする→「、」区切り 1行目はタイトルとして読む 2行目以降はデータとして読む ファイルのの先頭に using を追加 using Microsoft.VisualBasic.FileIO; コードの本体: string[] csvText = File.ReadAllLines(path); var sr = new System.IO.StringReader(string.Join(Environment.NewLine, csvText)); using (var pa = new TextFieldParser(sr)) { pa.TextFieldType = Fi

(チュートリアルをやってみる)Entity Framework Core

イメージ
 久しぶりに勉強してみようとマイクロソフトのサイトを読んでいたら、 Entity Framework 6 はすでに古いバージョンで、今は  Entity Framework Core が新しいらしい。 これ、WinFormsの古いデスクトップアプリでも使えるの? EFのドキュメントはここ Entity Framework ドキュメント | Microsoft Docs チュートリアルをやってみる。 Entity Framework Core をインストールする <pre> PM> Install-Package Microsoft.EntityFrameworkCore.Sqlite C:\Users\t-saw\source\Workspaces\test\調査\Entity Framework\EFGetStarted\EFGetStarted\EFGetStarted.csproj のパッケージを復元しています...   GET https://api.nuget.org/v3-flatcontainer/microsoft.entityframeworkcore.sqlite/index.json   OK https://api.nuget.org/v3-flatcontainer/microsoft.entityframeworkcore.sqlite/index.json 826 ミリ秒   GET https://api.nuget.org/v3-flatcontainer/microsoft.entityframeworkcore.sqlite/6.0.0/microsoft.entityframeworkcore.sqlite.6.0.0.nupkg   OK https://api.nuget.org/v3-flatcontainer/microsoft.entityframeworkcore.sqlite/6.0.0/microsoft.entityframeworkcore.sqlite.6.0.0.nupkg 5 ミリ秒 コンテンツ ハッシュ VwNbLaMpDD9s/tVmK/sivJsYoXdM3ARBjWMtFUXVExZ6AgZxPwSgILF2J4Y9CRvf/r6A0xitvFXQO6HPrZnwrg== の

テキストファイルを読み書きする

 テキストファイルの読み書きを最近はあまりしなくなったので、たまにコードを書かなくてはならなくなったときに、あれ?なんだっけ、、、となる。 テキストファイルの読み書きのサンプルコードを下記に書いておく。メモ代わり。 <pre>             /// ファイルにテキスト書き出しする /// { var sw = new System.IO.StreamWriter("sample.txt", false, Encoding.UTF8); for (int i = 0; i < 5; i++) { sw.WriteLine("サンプル" + i); } sw.Close(); } /// ファイルからテキストを読む /// { var sr = new System.IO.StreamReader("sample.txt", true); var t1 = sr.ReadLine(); var t2 = sr.ReadLine(); sr.Close(); } 久しぶりにブログを書いたらコードの引用方法を忘れているなあ、、、