需求:
现需通过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;
现需通过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;
解决方案 »
- QuickReport打印预览后点打印按钮没有反应
- ehlib 设置为过滤 但query.close 或者 open 另一个查询 会报错:list index out of bounds(1) 如何解决 ?
- 除了用一个时间器来定时获得当前时间外。还有什么办法可以实时准确的获得当前时间?
- 有兄弟做过金蝶的应收应付的接口么?
- ???为了交流技术,我有几套代码想交换,谁有好的东西看看能否互相交流一下。
- 文件夹更名的问题?
- 一个菜单不能完成的问题请教?在线等待!
- ×××××××××怎样把FLOAT类型的值四舍五入?××××××××××××
- 100分人人有,MCSD,MCSE拿多少工资啊?有没有意义啊?
- 使用TADOQuery.UpdateBatch时,如何对其进行错误处理?
- 又是listview的问题
- Delphi怎么用Dll
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;