- 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; }
がんばろ