掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ストリームを高速に検索するには? (ID:2631)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
アドバイスありがとうございます。 >たかみちえ さま ご提示いただいたサンプルは存じていたのですが、内部処理が アセンブラなので使用を躊躇しておりました。 ただ、分からないなりにアセンブラ部を見てみると、どうも検索 対象がアスキー文字列のみではないようなので、「これはいける!」 と思って実際に組み込んでみました。 しかし、検索対象ファイルがバイナリなので、PCharにキャストした 時点で$0以下のデータが切り捨てられてしまい、検索できません でした。 とりあえずこのコードを参考に、バイナリに対応できるよう、考えて みたいと思いますが、私の頭ではなかなか難しいです。 >None さま バッファリングに関しては、以下のコードで一括ロード/アクセス できると思っていたのですが、ShowMessageで長さを取ってみると 確かに長さが足りないですね。 ということは、ヘルプが間違っているのでしょうか・・・? procedure TForm1.Button1Click(Sender: TObject); var ims: TmemoryStream; PS: ^String; S: String; begin ims := TMemoryStream.Create; ims.LoadFromFile('C:\test.dat'); PS := @ims.Memory; ShowMessage(IntToStr(PS^));// SetLength(S, Length(PS^) * 2); BinToHex(PChar(PS^), PChar(S), Length(PS^)); RichEdit1.Lines.Text := S; ims.Free; end; ちなみにDelphi6PROを使用しております。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.