public static ParseTeXSourceFile ( TextReader file, string &preamble, string &body ) : bool | ||
file | TextReader | |
preamble | string | |
body | string | |
return | bool |
public static void ImportImageFile(string path, out string preamble, out string body) { preamble = null; body = null; try { var text = TeXSource.ReadEmbededSource(path); if (text != null) { using (var sr = new StringReader(text)) { if (!TeXSource.ParseTeXSourceFile(sr, out preamble, out body)) { MessageBox.Show(Properties.Resources.ANALYZESOURCEERROR, "TeX2img"); } } } else { throw new IOException(); } } catch (NotImplementedException) { MessageBox.Show(Properties.Resources.EMBED_IS_ONLY_NTFS); } catch (Exception) { if (File.Exists(path)) { MessageBox.Show(String.Format(Properties.Resources.NO_EMBEDDED_SOURCE, path), "TeX2img"); } else { MessageBox.Show(String.Format(Properties.Resources.FAIL_OPEN, path), "TeX2img"); } } }
public static void ImportTeXFile(string path, out string preamble, out string body) { preamble = null; body = null; var extension = Path.GetExtension(path).ToLower(); byte[] buf; using (var fs = new FileStream(path, FileMode.Open, FileAccess.Read)) { buf = new byte[fs.Length]; fs.Read(buf, 0, (int)fs.Length); } var GuessedEncoding = KanjiEncoding.CheckBOM(buf); bool bom = false; if (GuessedEncoding != null) { bom = true; buf = KanjiEncoding.DeleteBOM(buf, GuessedEncoding); } else { var guessed = KanjiEncoding.GuessKajiEncoding(buf); if (guessed.Length == 0) { GuessedEncoding = null; } else { GuessedEncoding = guessed[0]; } } Encoding encoding; switch (Properties.Settings.Default.encode) { case "euc": encoding = Encoding.GetEncoding("euc-jp"); break; case "jis": encoding = Encoding.GetEncoding("iso-2022-jp"); break; case "utf8": encoding = Encoding.UTF8; break; case "sjis": encoding = Encoding.GetEncoding("shift_jis"); break; case "_utf8": if (GuessedEncoding != null) { encoding = GuessedEncoding; } else { encoding = Encoding.UTF8; } break; case "_sjis": default: if (GuessedEncoding != null) { encoding = GuessedEncoding; } else { encoding = Encoding.GetEncoding("shift_jis"); } break; } if (encoding.CodePage != GuessedEncoding.CodePage) { if (bom || MessageBox.Show(String.Format(Properties.Resources.CHECK_ENCODEMSG, encoding.EncodingName, GuessedEncoding.EncodingName, GuessedEncoding.EncodingName), "TeX2img", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) { encoding = GuessedEncoding; } } using (var sr = new StringReader(encoding.GetString(buf))) { if (!TeXSource.ParseTeXSourceFile(sr, out preamble, out body)) { MessageBox.Show(Properties.Resources.ANALYZESOURCEERROR, "TeX2img"); } } }