13,005
回編集
71行目: | 71行目: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
==== | ==== CSVファイルの読み込み ==== | ||
===== エンコーディングの指定 ===== | |||
<code>TextFieldParser</code>クラスを使用してCSVファイルを読み込むには、<br> | <code>TextFieldParser</code>クラスを使用してCSVファイルを読み込むには、<br> | ||
まず、<code>TextFieldParser</code>クラスのコンストラクタに処理するCSVファイルを指定して、インスタンスを生成する。<br> | まず、<code>TextFieldParser</code>クラスのコンストラクタに処理するCSVファイルを指定して、インスタンスを生成する。<br> | ||
<br> | |||
CSVファイルに日本語が含まれている場合は、文字コードを指定する。<br> | CSVファイルに日本語が含まれている場合は、文字コードを指定する。<br> | ||
<syntaxhighlight lang="c#"> | <syntaxhighlight lang="c#"> | ||
79行目: | 81行目: | ||
using Microsoft.VisualBasic.FileIO; | using Microsoft.VisualBasic.FileIO; | ||
var parser = new TextFieldParser(@"hoge.csv", Encoding.GetEncoding("Shift_JIS")); // | var parser = new TextFieldParser(@"hoge.csv", Encoding.GetEncoding("Shift_JIS")); // Shift-JISを指定 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
===== デリミタの指定 ===== | |||
デリミタを指定する場合は、<code>TextFieldType</code>プロパティに<code>FieldType.Delimited</code>を指定する。<br> | |||
<br> | <br> | ||
<code>SetDelimiters</code>メソッドを使用して、区切り文字を指定する。(複数の区切り文字が指定可能)<br> | |||
CSVファイルの場合は、<code>,</code>(カンマ)を指定する。<br> | CSVファイルの場合は、<code>,</code>(カンマ)を指定する。<br> | ||
<br> | |||
また、<code>FieldType.FixedWidth</code>を指定する場合、フィールドが固定幅のファイルも扱うことができる。<br> | |||
<br> | |||
<syntaxhighlight lang="c#"> | <syntaxhighlight lang="c#"> | ||
parser.TextFieldType = FieldType.Delimited; | parser.TextFieldType = FieldType.Delimited; | ||
92行目: | 97行目: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
===== レコードの取得 ==== | |||
<code>TextFieldParser</code>クラスの<code>ReadFields</code>メソッドを実行するごとに、CSVファイルを1行ずつ読むことができる。<br> | <code>TextFieldParser</code>クラスの<code>ReadFields</code>メソッドを実行するごとに、CSVファイルを1行ずつ読むことができる。<br> | ||
<code>ReadFields</code>メソッドは、読み込んだレコードの全てのフィールドを文字列配列に変換して返す。<br> | <code>ReadFields</code>メソッドは、読み込んだレコードの全てのフィールドを文字列配列に変換して返す。<br> | ||
次のレコードが存在するかどうかは<code>EndOfData</code> | <br> | ||
次のレコードが存在するかどうかは<code>EndOfData</code>プロパティにより判定できるため、繰り返し文を使用してCSVファイル全体を処理する。<br> | |||
<syntaxhighlight lang="c#"> | <syntaxhighlight lang="c#"> | ||
while (!parser.EndOfData) | while (!parser.EndOfData) | ||
103行目: | 110行目: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
==== CSVファイルを読み込み表示する ==== | ==== CSVファイルを読み込み表示する ==== | ||
以下の例では、hoge.csvファイルを読み込み、各フィールドを切り出してタブ区切りで画面に出力する。<br> | 以下の例では、hoge.csvファイルを読み込み、各フィールドを切り出してタブ区切りで画面に出力する。<br> |