Esempio n. 1
0
    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);
    }
Esempio n. 2
0
    /*===============================================================*/

    /*===============================================================*/

    /**
     * @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);
    }
Esempio n. 3
0
    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);
    }