掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Pointer型の配列の使い方 (ID:32297)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
type TByteArray = array [0..MaxInt - 1] of Byte; ★1 // TByteArray = array [0..1] of Byte; ★2 PByteArray = ^TByteArray; var MS: TMemoryStream; Data: PByteArray; --------------------------------- MS := TMemoryStream.Create; try MS.LoadFromFile('test.dat'); // not演算で暗号化されたファイル(5,059 バイト) Data := MS.Memory; // not演算の暗号を解く for i := 0 to MS.Size - 1 do Data^[i] := not Data^[i]; ★3 // Data[i] := not Data[i]; ★4 MS.SaveToFile('test_fukugen.dat'); --------------------------------- 上記のようなプログラムを実行させると暗号化が解けるのですが、 仕組みがよく分からないのでお教え願えないでしょうか? 知りたいのは下記の2点です。 1.★1を削除して★2にした場合でも復号化ができる点 暗号ファイルが 5,059 バイトあるので、配列の要素も5059以上にしないと いけないという解釈だったのですが、★2に変えてもfor文で5059文処理して 復号できてしまった。どうしてでしょうか? 2.★3を★4に変えても復号できる、また^を右辺左辺どちらか一方に 付けた場合も復元できる ^が付く場合と付かない場合は何が違うのでしょうか? よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.