/// <summary> /// 取得 Txt2Brl.exe 轉點字時輸出的錯誤資訊。 /// </summary> /// <param name="errMsg"></param> /// <param name="invalidChars"></param> /// <returns></returns> private bool GetCvtErrors(ref string errMsg, ref List <CharPosition> invalidChars) { bool hasError = false; string fname; errMsg = ""; invalidChars.Clear(); // 取得結果旗號以及錯誤訊息(如果有的話) fname = AppGlobals.GetTempPath() + Constant.Files.CvtResultFileName; if (!File.Exists(fname)) { return(false); } using (StreamReader sr = new StreamReader(fname, Encoding.Default)) { string errFlag = sr.ReadLine(); if (String.IsNullOrEmpty(errFlag)) { return(false); } if (errFlag.Equals("1")) { hasError = true; errMsg = sr.ReadToEnd(); } sr.Close(); } if (!hasError) { return(false); } // 取得所有轉換失敗的字元 fname = AppGlobals.GetTempPath() + Constant.Files.CvtErrorCharFileName; if (!File.Exists(fname)) { return(hasError); } using (StreamReader sr = new StreamReader(fname, Encoding.Default)) { string s; string[] parts; while (true) { s = sr.ReadLine(); if (String.IsNullOrEmpty(s)) { break; } parts = s.Split(' '); if (parts.Length != 3) { throw new Exception("檔案格式不正確: " + fname); } CharPosition ch = new CharPosition { LineNumber = Convert.ToInt32(parts[0]), CharIndex = Convert.ToInt32(parts[1]), CharValue = parts[2][0] }; invalidChars.Add(ch); } sr.Close(); } return(hasError); }