- 2017-2-26
- Visual C#
CSVファイルを読み込んで、string配列へ格納するコードを
必要に迫られて書いた。
そのうち、もちょっと修正しよう。。
しかし、言語が変わっても、自分の発想が変わってないのが悲しい。
VCで似たの書いてた。。
ちなみに、サイズの大きなCSVファイルには、使用しないでね。
使う場合は、何件分取得するとかで修正する。
private void btnSplit_Click(object sender, EventArgs e)
{
List<string[]> sStrList = new List<string[]>(); // CSV分割後格納リスト
if( CsvSplit( sCsvPath, ',', ref sStrList ) == false )
{
// なんか失敗
return;
}
sStrList.ForEach( sList =>
{
Debug.WriteLine(sList);
});
}
/// <summary>
/// CSVファイルを読込分割してリストを返す。
/// </summary>
/// <param name="sCsvFilePath">
/// CSVファイルパス
/// </param>
/// <param name="chDlimiter">
/// CSVの区切り文字
/// </param>
/// <param name="sStrList">
/// 返却用のListオブジェクト List<string[]>
/// xmlxmlxml</param>
/// <returns>
/// true:正常
/// false:異常
/// </returns>
public bool CsvSplit( string sCsvFilePath,
char chDlimiter,
ref List<string[]> sStrList )
{
bool bRet = true;
try
{
// CSVファイル読込
using ( StreamReader objReader = new StreamReader( sCsvFilePath,
Encoding.GetEncoding( "shift_jis" ) ) )
{
// ストリームの末尾まで繰り返す
while (objReader.EndOfStream != true)
{
// ファイルから一行読み込む
string sLine = objReader.ReadLine();
// 読み込んだ一行を区切り文字で分けて配列に格納する
string[] sValues = sLine.Split( chDlimiter );
// 返却用リストに格納
sStrList.Add(sValues);
}//End while
}
}
catch ( Exception e )
{
// ファイルを開くのに失敗したとき
Debug.WriteLine(e.Message);
bRet = false;
}
return bRet;
}
がんばろ











