private CSVTable LoadCSVFromContent(string csvContent) { // データテーブルクラスの生成. CSVTable csvTable = new CSVTable(); string csvText = csvContent.Replace(Environment.NewLine, "\r"); // テキストデータの前後からCRを取り除く. csvText = csvText.Trim('\r'); csvText = csvText.Replace("\r\r", "\r"); // CRを区切り文字として分割して配列に変換. string[] csv = csvText.Split('\r'); // 複数の行を元にリストの生成. List <string> rows = new List <string>(csv); // 項目名の取得. string[] headers = rows[0].Split(','); // 項目の格納. foreach (string header in headers) { csvTable.AddHeaders(header); } // 項目名の削除. rows.RemoveAt(0); rows.RemoveAt(0); // 1件分のデータであるレコードを生成して追加. foreach (string row in rows) { // 各項目の値へと分割. string[] fields = row.Split(','); // レコードを追加. csvTable.AddRecord(CreateRecord(headers, fields)); } return(csvTable); }
/*===============================================================*/ /*===============================================================*/ /** * @brief CSVを読み込んで、レコードを所持するデータテーブルを渡す関数 * @param string 読み込むCSVのファイルパス * @return CSVTable CSVのデータテーブルクラス */ public CSVTable LoadCSV(string t_csv_path) { // データテーブルクラスの生成. CSVTable csvTable = new CSVTable(); // テキストアセットとしてCSVをロード. TextAsset csvTextAsset = Resources.Load(t_csv_path) as TextAsset; // OS環境ごとに適切な改行コードをCR(=キャリッジリターン)に置換. string csvText = csvTextAsset.text.Replace(Environment.NewLine, "\r"); // テキストデータの前後からCRを取り除く. csvText = csvText.Trim('\r'); // CRを区切り文字として分割して配列に変換. string[] csv = csvText.Split('\r'); // 複数の行を元にリストの生成. List <string> rows = new List <string>(csv); // 項目名の取得. string[] headers = rows[0].Split(','); // 項目の格納. foreach (string header in headers) { csvTable.AddHeaders(header); } // 項目名の削除. rows.RemoveAt(0); // 1件分のデータであるレコードを生成して追加. foreach (string row in rows) { // 各項目の値へと分割. string[] fields = row.Split(','); // レコードを追加. csvTable.AddRecord(CreateRecord(headers, fields)); } return(csvTable); }
private static CSVTable LoadCSVFromContent(string csvContent) { CSVTable csvTable = new CSVTable(); string csvText = csvContent.Replace(Environment.NewLine, "\r"); csvText = csvText.Trim('\r'); csvText = csvText.Replace("\r\r", "\r"); string[] csv = csvText.Split('\r'); List <string> rows = new List <string>(csv); // 添加表头 string[] headers = rows[0].Split(','); foreach (string header in headers) { csvTable.AddHeaders(header); } rows.RemoveAt(0); // 添加列的数据类型 string[] dataTypes = rows[0].Split(','); foreach (string dt in dataTypes) { csvTable.AddDataType(dt); } rows.RemoveAt(0); // 添加行数据 foreach (string row in rows) { string[] fields = row.Split(','); csvTable.AddRecord(CreateRecord(headers, fields)); } return(csvTable); }