/// <summary> /// 翻訳シート情報を作成する。 /// </summary> /// <param name="sheetInfo">翻訳シート情報</param> /// <param name="path">CSV形式の翻訳シートファイルのパス</param> /// <param name="fileID">FileID</param> /// <param name="removeTag">タグ化の制御文字化の有無</param> /// <param name="enc">文字コード</param> public static void LoadFromFile( PfkTransSheetInfo sheetInfo, string path, string fileID, bool removeTag, Encoding enc = null) { if (enc == null) { enc = Encoding.UTF8; } using (var reader = new StreamReader(path, enc)) { using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)) { //// 区切り文字 csv.Configuration.Delimiter = ","; //// ヘッダーの有無 csv.Configuration.HasHeaderRecord = true; //// CSVファイルに合ったマッピングルールを登録 csv.Configuration.RegisterClassMap <CsvMapperTransSheetForMod>(); //// データを読み出し var records = csv.GetRecords <PfkTransSheetEntry>(); var sheetFile = new PfkTransSheetFile(fileID); foreach (var record in records) { record.FileID = fileID; if (removeTag) { //// タグを制御文字に置換する。 record.Japanese = PfkTransSheetEntry.GetUnEscapedText(record.Japanese); record.MachineTranslation = PfkTransSheetEntry.GetUnEscapedText(record.MachineTranslation); } //// 翻訳シートのTABはタグ化されているので、無条件に制御文字化する。 record.Japanese = PfkTransSheetEntry.GetUnEscapedTab(record.Japanese); record.MachineTranslation = PfkTransSheetEntry.GetUnEscapedTab(record.MachineTranslation); sheetFile.AddEntry(record); } sheetInfo.AddFile(sheetFile); } } }
/// <summary> /// 翻訳シート情報を作成する。 /// </summary> /// <param name="sheetInfo">翻訳シート情報</param> /// <param name="sheetFolderPath">CSV形式の翻訳シートが格納されているフォルダーのパス</param> /// <param name="fileID">FileID</param> /// <param name="removeTag">タグ化の制御文字化の有無</param> /// <param name="enc">文字コード</param> public static void LoadFromFolder( PfkTransSheetInfo sheetInfo, string sheetFolderPath, string fileID, bool removeTag, Encoding enc = null) { IEnumerable <string> files = Directory.EnumerateFiles(sheetFolderPath, "*.csv", SearchOption.AllDirectories); foreach (string sheetFilePath in files) { if (Path.GetExtension(sheetFilePath).Equals(".csv", StringComparison.OrdinalIgnoreCase)) { LoadFromFile(sheetInfo, sheetFilePath, fileID, removeTag); } } }