QA@IT

C# でCSVファイルをArrayListで取得した際、ArrayListの値を取得したいのですが、どのようにしたらよいのでしょうか。

6651 PV

C# でCSVファイルをArrayListで取得した際、ArrayListの値を取得したいのですが、どのようにしたらよいのでしょうか。

using System;
using System.Windows.Forms;
using System.IO;
using System.Collections;

// インスタンスを作成,パスをコンストラクタに渡す
StreamReader objReader = new StreamReader("C:\\files\\alist1.csv");

string sLine = "";
ArrayList arrText = new ArrayList();

// ファイルから1行ずつ読み込む
while (sLine != null)
{
    sLine = objReader.ReadLine();
    if (sLine != null)
      arrText.Add(sLine);
}
objReader.Close();
// -----------------------------------

foreach (string sOutput in arrText)
    Console.WriteLine(sOutput);
Console.ReadLine();

StreamReader objReader2 = new StreamReader("C:\\files\\blist1.csv");

string sLine2 = "";
ArrayList arrText2 = new ArrayList();

// ファイルから1行ずつ読み込む
while (sLine != null)
{
    sLine = objReader.ReadLine();
    if (sLine != null)
        arrText2.Add(sLine);
}
objReader.Close();
// -----------------------------------

foreach (string sOutput2 in arrText2)
    Console.WriteLine(sOutput2);
Console.ReadLine();

でcsvファイルをArrayListでファイルをメモリ上に取り込みました。
その際、ArrayListでcsvファイルで読み込んだ値を例えば、arrText2[0][1]といった感じで取り込みたいのですが、どのようにしたら、よいでしょうか。よろしくお願いします。

回答

パーサー使えるならそれが楽ですね。
データの形式がきっちり決まっているなら、Splitメソッドつかって自分で分割するとかでもいけると思います。

それはともかく。
AllayList使ったり、StreamReader使ったりと、かなり古い環境を使わないといけないという制約があるのでしょうか?
もしそうでないならいまのクラスライブラリならこのあたりもっと簡単に書けますよ。

どう書くかは調べてみてください(w

編集 履歴 (0)
  • ありがとうございます。やってみます。 -
  • ご連絡が遅くなり、大変失礼しました。ありがとうございます。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。