掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TMemoryStreamのMemoryプロパティの途中から読み出す (ID:4396)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
そうですね。 たとえば、 Memoryの内容が 'abcdefghij' (Memory[0]が'a')のとき、 var pc: PChar; pdw: PDWORD; begin ... pc := Stream.Memory; pw := Stream.Memory; for i := 0 to 4 do begin Memo2.Lines.Add(Format('[%d]:%x', [i, Integer(pc^)])); Memo3.Lines.Add(Format('[%d]:%x', [i, Integer(pw^)])); Inc(pc, 1); Inc(pw, 1); end; ... end; としてやると、Memo2, Memo3にはそれぞれ Memo2 [0]:61 [1]:62 [2]:63 [3]:64 [4]:65 Memo3 [0]:6261 [1]:6463 [2]:6665 [3]:6867 [4]:6A69 と出ます。 つまり、WORDは2バイトの変数なので、1つインクリメントすれば、バイト数としては2バイト分先に進みます。 これは、C/C++でも同じだったと思います。 気になるのであれば、PCharとして先に進ませ、使用するときに必要な型に変換し直せば良いと思います。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.