private int ParseFromUri(string uri) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); request.AllowAutoRedirect = false; request.UserAgent = "RedFace/0.1"; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); RedFaceParser p = new RedFaceParser(); p.ParserEventRaised += WriteEvent; string charsetName = EncodingSniffer.ExtractEncodingNameFromMetaElement(response.ContentType); if(!string.IsNullOrEmpty(charsetName)){ Console.WriteLine("HTTP応答ヘッダで文字符号化方式が指定されています。: {0}", charsetName); p.SetForceEncoding(charsetName); } using(Stream data = response.GetResponseStream()){ p.Parse(data); } PrintResult(p); return 0; }
private int ParseFromFile(FileInfo file) { Console.WriteLine("ファイル: <{0}> をパースします。", file.FullName); RedFaceParser p = new RedFaceParser(); p.ParserEventRaised += WriteEvent; using(FileStream fs = file.Open(FileMode.Open, FileAccess.Read, FileShare.Read)){ p.Parse(fs); } PrintResult(p); return 0; }