/// <summary> /// ファイル読み込み、実処理 /// </summary> private CSVAllData Read() { var csvData = new CSVAllData(); if (IsAccessFile()) { using (FileStream fs = new FileStream(this.F_FileName, FileMode.Open, FileAccess.ReadWrite, FileShare.None)) //using (StreamReader sr = new StreamReader(fs, new UTF8Encoding(false)))//BOMなし using (StreamReader sr = new StreamReader(fs, Encoding.GetEncoding("Shift_JIS"))) { int maxVal = 0; while (sr.Peek() >= 0) { string lineStr = sr.ReadLine(); if (string.IsNullOrEmpty(lineStr)) { continue; //改行などはとばす } CSVColumnData itemsList = new CSVColumnData(); itemsList.MakeListBy(lineStr); csvData.Add(itemsList); //一行分を追加 //一番多いカラム数を設定 if (maxVal < itemsList.Count) { maxVal = itemsList.Count; } } csvData.MaxColumnsInAllRows = maxVal; } } return(csvData); }
////例外の確認 /// <summary> /// グリッドのすべてのデータを作成 /// </summary> private CSVAllData GetAllData(DataTable table) { var csvData = new CSVAllData(); if (table != null) { foreach (DataRow row in table.Rows) { csvData.Add(this.GetCSVColumnData(row, table)); } } return(csvData); }
/// <summary> /// グリッドデータをロード /// </summary> private void LoadData(CSVAllData csvData) { var table = new DataTable(); //カラム設定 this.SetColumnIndex(csvData.MaxColumnsInAllRows, table); //レコード追加 foreach (CSVColumnData lineData in csvData) { string[] rowData = lineData.ToArray(); table.Rows.Add(rowData); } this.dataGridView1.DataSource = table; F_Control.SetViewMemento(this.dataGridView1); }
/// <summary> /// ファイル書き込み、実処理 /// </summary> /// <returns>true:成功</returns> private bool Write(CSVAllData csvData) { bool result = false; if (IsAccessFile()) { //Create:上書きさせるようにする using (FileStream fs = new FileStream(this.F_FileName, FileMode.Create, FileAccess.ReadWrite, FileShare.None)) //using (StreamWriter sw = new StreamWriter(fs, new UTF8Encoding(false)))//BOMなし using (StreamWriter sw = new StreamWriter(fs, Encoding.GetEncoding("Shift_JIS"))) { foreach (CSVColumnData lineData in csvData) { string oneLine = lineData.MakeLineByThisDatas(); sw.WriteLine(oneLine); } sw.Flush(); } result = true; } return(result); }
/// <summary> /// ファイルへ書き込み /// </summary> /// <returns>true:成功</returns> public bool OutputFile(CSVAllData csvData) { return(this.Write(csvData)); }