nfonfonfoのプロフィール
- ベストアンサー数
- 12
- ベストアンサー率
- 63%
- お礼率
- 0%
FROM THE EARTH TO THE MOON.
- 登録日2002/08/06
- メモリの使用状況を解析するツール
現在、MFCを使ってドローツールを作成しています。 C言語で開発しているため、リソースの開放は必需なのです。 そこで質問なのですが、開発中のプログラムがリソースを食いつぶしていないか チェックするツールのようなものは在るのでしょうか? (自分の書いたソースのリーク場合は検出できます) 有償無償は問いませんので、便利なツールをご存知の方がいましたら 教えて下さい。どうぞ宜しくお願い致します。
- 文字コード判別ルーチンGetCodeの使用方法
文字コード判別ルーチンGetCodeの使用方法 メールマガジン「.NETプログラミング研究」で紹介されている文字コード判別ルーチンGetCode(http://dobon.net/vb/dotnet/string/detectcode.html)を利用してサイトからダウンロードしたHTMLの文字コード変換をしています 思う通りに変換出来ることもありますが、目も眩むような宇宙語になってしますことも多々あります このGetCodeルーチンは既にVB.NETでもC#でも相当な実績があると評価されています ですから使用方法の誤りなのでしょう ご指摘頂ければ幸いです ソース(C#)は下記の通りです string MyReadString; //変換後のHTML文書が格納される using ( WebClient MyClient = new WebClient()) using ( Stream MyStream = MyClient.OpenRead(http://www.~~)) using ( MemoryStream MyMemoryStream = new MemoryStream()) { byte[] ByteBuffer = new byte[4096]; //サイトからHTML文書を MyMemoryStream.Seek(0, SeekOrigin.Begin); // Memory Streamに読込み while (true) { int ReadByteLength = MyStream.Read(ByteBuffer, 0, ByteBuffer.Length); if (ReadByteLength <= 0) { break; } //読込み終了 MyMemoryStream.Write(ByteBuffer, 0, ByteBuffer.Length); } byte[] AllHTML = new byte[MyMemoryStream.Length]; //全HTML文書を MyMemoryStream.Seek(0, SeekOrigin.Begin); // byte配列に読込み MyMemoryStream.Read(AllHTML, 0, AllHTML.Length); System.Text.Encoding enc = GetCode(AllHTML); //文字コードを判定する ←←←この箇所です MyReadString = enc.GetString(AllHTML); //判定された文字コードで } // byte配列からstringへ変換する
- HTML文書の文字コードの判定法
HTML文書の文字コードの判定法 C#のWebClientクラスを使って文字コード不明のHTML文書をダウンロードしています 取り敢えずシフトJISと仮定して読込んでおりますが、文書中にEUC指定があった場合には改めてサイトよりEUCエンコード指定で再読込みしています 概略は次の通りです WebClient MyClient = new WebClient(); System.IO.Stream MyStream = MyClient.OpenRead("http://*****・・); System.IO.StreamReader MyReader = new System.IO.StreamReader(MyStream, System.Text.Encoding.GetEncoding("Shift_JIS")); ReadString = MyReader.ReadToEnd(); MyReader.Close(); MyStream.Close(); System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex( @"charset\s*=\s*euc-jp", System.Text.RegularExpressions.RegexOptions.IgnoreCase); if (r.IsMatch(ReadString)) { MyStream = MyClient.OpenRead("http://*****・・); ←以降2度読み MyReader = new System.IO.StreamReader(MyStream, System.Text.Encoding.GetEncoding("EUC-JP")); ReadString = MyReader.ReadToEnd(); MyReader.Close(); MyStream.Close(); } 2度読みというミットモナイ形になっているのは バッファに読込んだデータから文字コードを判定して各々適切にエンコードする方法が分らないからです 色々とトライしてみましたがNGでした この2度読みいう面目丸潰れ、無知蒙昧、天下の愚作を避ける簡単な手法を教えて頂けるよう恥を忍んでお願い申し上げます
- パケットキャプチャツール(WireSharkなど)
Wiresharkというパケットキャプチャーツールを使ってみたんですが、イーサネットのFCSにあたるデータが、パケットダンプに表示されません・・・。 マニュアルを見てみても、ツールが排除している記述が見当たりませんでした(英文なので見落としているかもしれませんが・・・) 様々なパケットキャプチャのツールがあると思いますが、一般的に、イーサネットのFCSはダンプしないのが「暗黙のルール」として存在しているのでしょうか? ご存知の方がおられたら教えてくださいm(__)m よろしくお願いいたします。