這個問題是非常基本的,因爲我在一個非常基礎的水平。我必須閱讀*.pam
擴展名的文件內容。這並不常見,這是由特定程序生成的文件,它具有xx KB的固定大小。裏面有一些數字和值。Delphi讀取文件在特定地址
我需要閱讀這個文件,所以我打算使用TStreamReader
。當然,我需要知道文件的結構,但我不知道。順便說我上面說的圖片是有用的信息表中的一個組成部分:
的含義是:一旦你打開的文件,去一個特定的地址,並獲得數據。例如,在0x30中,我可以找到有關'移動1當前PP'的數據。我的問題是:我如何跳轉到給定的地址?
procedure TForm1.Button1Click(Sender: TObject);
var sw: TStreamReader;
begin
Memo1.Clear;
sw := TStreamReader.Create('C:\aaa\myfile.pam', TEncoding.UTF8);
try
sw.Position := 0;
finally
sw.Free;
end;
我所看到的文件中,有一些像Seek
和Position
但似乎我不能使用它們。一般來說,我會使用
while not(sw.EndOfStream) do
begin
//read...
end;
這從頭開始,它讀取seqence中的數據。我如何跳轉到特定地址並閱讀內容?我想我可以將這個十六進制地址傳遞給像Seek這樣的函數,所以我可以去一個特定的點。然後,我可以檢索數據。
'TStreamReader'是用於讀取文本數據的助手類。你的文件不是文本,它是二進制文件。直接使用'TFileStream',然後你可以使用'Seek''''位置' –