掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ファイルから配列データを動的配列への一括読み込み (ID:151234)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
※WORD から BYTE に変更してある TA = array[0..0] of Byte; PA = ^TA; TArray3 = class private SX: DWORD; SY: DWORD; SZ: DWORD; function GetItems(X,Y,Z: DWORD): Byte; procedure SetItems(X,Y,Z: DWORD; Value: Byte); public DATA: PA; constructor Create(X,Y,Z: DWORD); overload; destructor Destroy; override; property Items[X,Y,Z: DWORD]: Byte read GetItems write SetItems; default; end; function TArray3.GetItems(X,Y,Z: DWORD): Byte; begin RESULT := DATA[(X * SY * SZ) + (Y * SZ) + Z]; end; procedure TArray3.SetItems(X,Y,Z: DWORD; Value: Byte); begin DATA[(X * SY * SZ) + (Y * SZ) + Z] := VALUE; end; constructor TArray3.Create(X,Y,Z: DWORD); begin inherited Create; SX := X; SY := Y; SZ := Z; //GetMem(DATA,X*Y*Z*SizeOf(WORD)); end; destructor TArray3.Destroy; begin //FreeMem(DATA); inherited; end; procedure TForm6.Button1Click(Sender: TObject); var I,J,K: Integer; B1,B2: Byte; MemoryStream: TMemoryStream; A3: TArray3; begin MemoryStream := TMemoryStream.Create; A3 := TArray3.Create(3,3,3); MemoryStream.LoadFromFile('Project5.exe'); A3.DATA := MemoryStream.Memory; for I:=0 to 2 do begin for J:=0 to 2 do begin for K:=0 to 2 do begin B1 := A3[I,J,K]; MemoryStream.Read(B2,1); Memo1.Lines.Add(IntToStr(B1) + ' ' + IntToStr(B1)); end; end; end; A3.Free; MemoryStream.Free; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.