ランニングを通して健康的で楽しい毎日を。走る楽しさ発信中!!

【C#】CSVファイルの活用に関する備忘録

Post / Update

ここでは、僕がC#でプログラムを作成する時によく使用している、CSVファイルを扱うコードをまとめました。

Koki

僕自身のための備忘録も兼ねて、いろいろコードを書いています。

目次

    CSVファイルの読み取り

    基本形

    読み込みたいCSVファイルの絶対パスが決まっている場合のコードサンプルです。

    【C#】CSVファイルの内容を配列に取得

    // 参照の追加
    using System;
    using System.IO;
    using System.Text;
    using System.Windows.Forms;

    // ========================

    // 読み込むCSVファイルのフルパスを、Stringで指定
    string StrReadCSV = "D:\VisualStudio\readinfo.csv";

    // 情報を格納するためのArrayを宣言
    string[] ArrRecord = new string[1];
    int IntRecord = 0;

    // ストリームリーダーで読み取り
    StreamReader SrReadCSV = new StreamReader(StrReadCSV, Encoding.GetEncoding("shift_jis"));
    while (SrReadCSV.Peek() != -1)
    {
    string StrReadLine = SrReadCSV.ReadLine();

    Array.Resize(ref ArrRecord, IntRecord + 1);
    ArrRecord[IntRecord] = StrReadLine;
    }
    SrReadCSV.Close();

    // ARRAYの内容をコンソールに出力
    for (int ai = 0; ai < ArrRecord.Length; ai++)
    {
    Console.WriteLine(ArrRecord[ai]);
    }

    実行ディレクトリ下にCSVファイルを配置

    先ほどとの違いは、CSVファイルパスをアプリケーションの実行パスから取得しているところ。

    個人的には、実行パスと同フォルダにCSVファイルを置いておけばよいので、こちらのほうが管理が楽です。

    【C#】CSVファイルの内容を配列に取得する

    // 参照の追加
    using System;
    using System.IO;
    using System.Text;
    using System.Windows.Forms;

    // ========================

    // アプリケーションの実行パスを取得
    string StrExePath = Application.ExecutablePath;

    // 文字列置換により、読み込みたいファイルのフルパスを取得
    string StrReadCSV = StrExePath.Replace("csharp_memorandum.exe", "readinfo.csv");

    // 情報を格納するためのArrayを宣言
    string[] ArrRecord = new string[1];
    int IntRecord = 0;

    // ストリームリーダーで読み取り
    StreamReader SrReadCSV = new StreamReader(StrReadCSV, Encoding.GetEncoding("shift_jis"));
    while (SrReadCSV.Peek() != -1)
    {
    string StrReadLine = SrReadCSV.ReadLine();

    Array.Resize(ref ArrRecord, IntRecord + 1);
    ArrRecord[IntRecord] = StrReadLine;
    }
    SrReadCSV.Close();

    // ARRAYの内容をコンソールに出力
    for (int ai = 0; ai < ArrRecord.Length; ai++)
    {
    Console.WriteLine(ArrRecord[ai]);
    }

    ソート・重複除外

    読み取った情報をソートする

    読み取った情報を、昇順で並び替えしたい場合、以下のようにしています。

    読み取った情報の重複を除外する