/// <summary> 区切り文字で接続した文字列を返す </summary>
        public string Serialize(int columnLength, Delimiter option)
        {
            // 配列の範囲外アクセスを防止するため、長さを補正する
            columnLength = Mathf.Clamp(columnLength, 1, _table.Length - 1);

            // 行末になる要素
            var results = _table.Select((cell, id) => Parse(cell, id, columnLength));

            return(string.Join(option, results.ToArray()));
        }
Пример #2
0
        // 指定したオプションに基づく方法でファイル読み込みを試みる
        static string[] LoadAsset(this ImportOption option,
                                  string path, Delimiter delimiter)
        {
            // リソースをオプションに対応する方法で読み込む
            var resource = Import(option, path);

            // セルごとに切り分ける
            var split = Regex.Split(resource, delimiter.split);

            // セルのデータを整形する
            var table = split.Select(cell => _exclude.Replace(cell, string.Empty));

            // 余計な空データを取り除いたデータ列を返す
            return(table.Where(cell => !string.IsNullOrEmpty(cell)).ToArray());
        }
Пример #3
0
 /// <summary> 指定した方法による読み込みを試みる </summary>
 /// <param name="delimiter"> 区切り文字の種類を指定 </param>
 public static CsvAsset Load(string path, Delimiter delimiter, ImportOption option)
 {
     string[] table = option.LoadAsset(path, delimiter);
     return(_csvAsset.Invoke(new object[] { table, 0, 0, }) as CsvAsset);
 }
Пример #4
0
 /// <summary> Resources フォルダから読み込みを試みる </summary>
 /// <param name="delimiter"> 区切り文字の種類を指定 </param>
 public static CsvAsset Load(string path, Delimiter delimiter)
 {
     return(Load(path, delimiter, ImportOption.Resources));
 }