掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
バイナリデータの切り抜き保存 (ID:44302)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
こんばんは。 Windows7でXE3を使っています。 バイナリデータ(約200KB)の一部分を切り抜いて、 切り抜いたものを別のバイナリデータとして保存したいと考えています。 とりあえず、抜き出した部分を画面に表示させれたものの、 オフセットの値を大きく(例えば20000)すると読み取り違反となってしまいます。 切り抜き方に大きく問題があるとは思うのですが、 どうすれば良いのか、正解が見つかりません。 教えて頂けないでしょうか。 よろしくお願いいたします。 var FileName : string; ReadLength: Longint; I: Integer; Stream: TFileStream; DataOffset,CutLength : integer; //切り抜き開始場所,切り抜く長さ Buffer: array [0..255] of Byte; begin FileName :='test.dat'; DataOffset := 200; CutLength := 16; Stream := TFileStream.Create(FileName, fmOpenRead); try while True do begin ReadLength := Stream.Read(Buffer, SizeOf(Buffer)); if ReadLength = 0 then Break; for I := (DataOffset) to (DataOffset+CutLength-1) do begin (* 16進数で画面に出力 *) Edit1.Text :=Edit1.Text + (Format('%.2x ', [Buffer[I]])); end; Break; end; finally FreeAndNil(Stream); end; //このあとでEdit1.textを元にバイナリデータを作る end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.