新手.bin文件怎么按指定字节读取

新手求助:.bin文件如何按指定字节读取?
需求:
现需通过UDP上传bin文件:
有一bin文件2548K,现在我做了这样一个记录体,发给底层设备: 现在需要这样读取:1024K的发送,直到把整个bin文件发完为止,不足1024 的余数则赋值给block:

 TUpload= packed record
  Session:word;//包序号,一次1024K发,从0开始,每次加一
  data:array[1..1025] of byte;//1024K读取
  Block:Dword;//不足1024的余数  
  end;

buttonclick:
var
Upload:TUpload;
i,j,m:integer;
begin
 for m:=0 to m do
 begin
  Upload.session:=m;//包序号
 end;
 filename:=opendialog1.FileName;
 path_edit.Text:=filename;
 for i:=length(fileName) downto 1 do
 if fileName[i]='\' then
  break;
 j:=1;
 while i<length(filename) do
 begin
  Upload.data[j]:=ord(filename[i+1]);
  i:=i+1;
  j:=j+1;
 end;//请问这里如何1024K,1024K读取,不足1024K的则赋值给 bolck;
UDP.sendbuffer(ip,port,upload,sizeof(Upload));
end;


------解决方案--------------------
procedure TfrmMain.Button1Click(Sender: TObject);
TUpload= record
Session:word;//包序号,一次1024K发,从0开始,每次加一
data:array[0..1023] of byte;//1024K读取
Block:word;//不足1024的余数
end;

var f:THandle;
Upload:TUpload;
i,j,m:integer;
begin
f:=FileOpen(FileName,0);
i:=0;
repeat
m:= FileRead(f,Upload.data,1024);
if(m>0) then begin
upload.Session:=i;
Inc(i);
Upload.Block:=1024-m;
UDP.sendbuffer(ip,port,upload,sizeof(Upload));
end;
until m<1024;
FileClose(f);
end;