2014年04月04日
簡単な方法で、反転
posted by a23 at 10:20| Comment(0)
| 016 サンプル
動作確認済みのファイルバッファ用のClass
動作確認済みのファイルバッファ用のClassです。
TFixedStream.Create時にEndian設定しておくと、自動的にRead/Write時に反転します。PageInで、TSream系からバッファ読み込み、PageOutで、バッファ書き込みをします。(TFileStreamでも動作確認済み)
基本のデータ型の他、TDateTime, TVector, TMatrixなどのデータや単純型の配列の読み書きも可能です。
まだ、エラー処理等を組み込んでいないので、バッファサイズ以上にデータを書き込むと、エラーになります。
[使用例]
var
f: TFileSteam;
buf: TFixedStream;
m: TMatrixArray;
begin
f := TFileSteam.Create('test.xxx', fmCreate);
buf := TFixedStream.Create(edBigEndian);
buf.Size := 128;
buf.Clear;
//Matrixに書き込み
m[0].X := ?; m[0].Y := ?, m[0].W := ?;
<略>
buf.WriteMatrix(m);
buf.PageOut(TStream(f), 0, 128);
buf.Free;
f.Free;
end;
FixStrm.pas
From Delphi Talks
TFixedStream.Create時にEndian設定しておくと、自動的にRead/Write時に反転します。PageInで、TSream系からバッファ読み込み、PageOutで、バッファ書き込みをします。(TFileStreamでも動作確認済み)
基本のデータ型の他、TDateTime, TVector, TMatrixなどのデータや単純型の配列の読み書きも可能です。
まだ、エラー処理等を組み込んでいないので、バッファサイズ以上にデータを書き込むと、エラーになります。
[使用例]
var
f: TFileSteam;
buf: TFixedStream;
m: TMatrixArray;
begin
f := TFileSteam.Create('test.xxx', fmCreate);
buf := TFixedStream.Create(edBigEndian);
buf.Size := 128;
buf.Clear;
//Matrixに書き込み
m[0].X := ?; m[0].Y := ?, m[0].W := ?;
<略>
buf.WriteMatrix(m);
buf.PageOut(TStream(f), 0, 128);
buf.Free;
f.Free;
end;
FixStrm.pas
From Delphi Talks
posted by a23 at 10:19| Comment(0)
| 016 サンプル
動作確認済みのファイルバッファ用のClass
動作確認済みのファイルバッファ用のClassです。
TFixedStream.Create時にEndian設定しておくと、自動的にRead/Write時に反転します。PageInで、TSream系からバッファ読み込み、PageOutで、バッファ書き込みをします。(TFileStreamでも動作確認済み)
基本のデータ型の他、TDateTime, TVector, TMatrixなどのデータや単純型の配列の読み書きも可能です。
まだ、エラー処理等を組み込んでいないので、バッファサイズ以上にデータを書き込むと、エラーになります。
[使用例]
var
f: TFileSteam;
buf: TFixedStream;
m: TMatrixArray;
begin
f := TFileSteam.Create('test.xxx', fmCreate);
buf := TFixedStream.Create(edBigEndian);
buf.Size := 128;
buf.Clear;
//Matrixに書き込み
m[0].X := ?; m[0].Y := ?, m[0].W := ?;
<略>
buf.WriteMatrix(m);
buf.PageOut(TStream(f), 0, 128);
buf.Free;
f.Free;
end;
FixStrm.pas
From Delphi Talks
TFixedStream.Create時にEndian設定しておくと、自動的にRead/Write時に反転します。PageInで、TSream系からバッファ読み込み、PageOutで、バッファ書き込みをします。(TFileStreamでも動作確認済み)
基本のデータ型の他、TDateTime, TVector, TMatrixなどのデータや単純型の配列の読み書きも可能です。
まだ、エラー処理等を組み込んでいないので、バッファサイズ以上にデータを書き込むと、エラーになります。
[使用例]
var
f: TFileSteam;
buf: TFixedStream;
m: TMatrixArray;
begin
f := TFileSteam.Create('test.xxx', fmCreate);
buf := TFixedStream.Create(edBigEndian);
buf.Size := 128;
buf.Clear;
//Matrixに書き込み
m[0].X := ?; m[0].Y := ?, m[0].W := ?;
<略>
buf.WriteMatrix(m);
buf.PageOut(TStream(f), 0, 128);
buf.Free;
f.Free;
end;
FixStrm.pas
From Delphi Talks
posted by a23 at 10:19| Comment(0)
| 016 サンプル