掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ストリームを高速に検索するには? (ID:2628)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
あるバイナリファイルに存在する特定のバイナリブロックを置換する ために、対象ファイルをMemoryStreamなどに読み込んで、検索し、 ある一定の連続するバイト(3C 7E 90 C8 21 … など)と一致したら それを置換するようにしたいと思っています。 てっきりTStreamにはFind系のメソッドが存在すると思っていたの ですが、存在を確認できなかったため、しょうがなく1バイトずつ ループで回して検索しているのですが、1MBのファイルを検索する のに数分かかってしまっています。 チェック対象のファイルサイズや位置が固定されていれば、seek して指定位置を置き換えればよいだけなのですが、これらが可変 のため、少々難儀しております。 できればDelphiに最初からある方法でこれを解決したいのですが、 やはり自力でBM法などのルーチンを書いてクリアするしかないの でしょうか? 一度String型などに変換して、StringReplaceをかけるなどの方法も 考えたのですが、うまく行きませんでした。 少しでもアドバイスをいただけると幸いです。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.