/// <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())); }
// 指定したオプションに基づく方法でファイル読み込みを試みる 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()); }
/// <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); }
/// <summary> Resources フォルダから読み込みを試みる </summary> /// <param name="delimiter"> 区切り文字の種類を指定 </param> public static CsvAsset Load(string path, Delimiter delimiter) { return(Load(path, delimiter, ImportOption.Resources)); }