关于文件分段读取的问题

pcf00 2009-01-12 06:11:34
在DELPHI中,文件里数据较多,我想分段读取,就是说一次读取N(一个具体的数据,小于文件大小)个数据(以16进制形式读出,方便处理),那么读取一次后,后面该怎么继续接着读取数据? 请给个具体代码示例,谢谢!
...全文
186 8 打赏 收藏 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
pcf00 2009-01-13
  • 打赏
  • 举报
回复
多谢各位帮助,问题基本解决!
pcf00 2009-01-13
  • 打赏
  • 举报
回复
多谢各位帮助,问题基本解决!
imho888 2009-01-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 flyman2004 的回复:]
给个思路吧,以前本人也写过类似的东西

1.全局变量
BlockSize : LongWord; // 每次读的块的大小,16的倍数
  NowPic : LongWord;    // 将要读入的文件的位置
Buffer : PChar; // 读入的块的缓冲区
FI : Integer; // 要读入的文件句柄

2. 打开文件
FI := FileOpen(Fname,fmOpenRead or fmShareDenyNone);

3. 读入数据
FileSeek(FI,NowPoi,0); /…
[/Quote]

已经很清楚了
flyman2004 2009-01-13
  • 打赏
  • 举报
回复
给个思路吧,以前本人也写过类似的东西

1.全局变量
BlockSize : LongWord; // 每次读的块的大小,16的倍数
  NowPic : LongWord;    // 将要读入的文件的位置
Buffer : PChar; // 读入的块的缓冲区
FI : Integer; // 要读入的文件句柄

2. 打开文件
FI := FileOpen(Fname,fmOpenRead or fmShareDenyNone);

3. 读入数据
FileSeek(FI,NowPoi,0); // 定位
if (FileRead(FI,Buffer^,BlockSize) = BlockSize) then begin
NowPoi := NowPoi + BlockSize;
end;

4. 再做其它处理
......

5. 关闭文件
FileClose(FI);


将以上各部分写到合适的函数或事件中就可以了.
flyman2004 2009-01-13
  • 打赏
  • 举报
回复

给个思路吧,以前本人也写过类似的东西

1.全局变量
BlockSize : LongWord; // 每次读的块的大小,16的倍数
  NowPic : LongWord;    // 将要读入的文件的位置
Buffer : PChar; // 读入的块的缓冲区
FI : Integer; // 要读入的文件句柄

2. 打开文件
FI := FileOpen(Fname,fmOpenRead or fmShareDenyNone);

3. 读入数据
FileSeek(FI,NowPoi,0); // 定位
if (FileRead(FI,Buffer^,BlockSize) = BlockSize) then begin
NowPoi := NowPic + BlockSize;
end;

4. 再做其它处理
......

5. 关闭文件
FileClose(FI);


将以上各部分写到合适的函数或事件中就可以了.

bdmh 2009-01-13
  • 打赏
  • 举报
回复
var
MyFile:TFileStream;
Buffer:array[0..Max] of byte;
i:integer;
begin
MyFile:=TFileStream.create('文件名',fmOpenRead or fmShareDenyWrite);
MyFile.Position := 0;
try
i:=0;
while i <MyFile.size do
begin
myfile.read(buffer,SizeOf(buffer));
inc(i,SizeOf(buffer));
end;
finally
myfile.free;
end;
end;
gwhdaxia 2009-01-12
  • 打赏
  • 举报
回复
ding
ljluck7687 2009-01-12
  • 打赏
  • 举报
回复
流式文件像流水线一样顺序操作
var
MyFile:TFileStream;
Buffer:array[0..65200] of byte;
i:integer;
begin
MyFile:=TFileStream.create('c:\exam.exe',fmOpenRead or fmShareDenyWrite);
try
i:=0;
while i<MyFile.size do
begin
myfile.read(buffer,high(buffer));
inc(i,high(buffer));
end;
finally
myfile.free;
end;
end;

随便写的代码,仅供参考
内容概要:本白皮书系统梳理了中国建筑声学行业的发展现状,重点围绕隔音材料的技术体系、市场格局与十大代表企业展开研究。文章厘清了隔音、吸音与防撞三大功能的概念边界,阐述了声音传播的物理机制及声学工程的材料、构造、施工与验证四层级结构;详细介绍了阻尼隔音板、隔音毡、吸音棉、减震构件、防撞软包等核心产品及其性能指标,并分析了行业标准、合规要求与工程实践中的常见误区;最后通过对广州朗音阁等十家大湾区代表性企业的并列介绍,揭示了行业“综合一体型”“材料制造型”“品牌产品型”等多元发展模式,强调系统交付能力、合规性与环保安全正成为企业核心竞争力。; 适合人群:建筑声学与隔音材料领域的工程采购方、建筑设计单位、总承包单位、行业研究者及政策监管相关人员。; 使用场景及目标:①帮助采购方科学选型,规避“以材料参数替代系统性能”等常见误区;②指导设计单位在公检法办案区、文化娱乐、医疗教育等细分场景中制定合理的声学解决方案;③为行业研究者提供市场格局、技术趋势与企业模式的客观参考;④推动企业提升合规意识与系统交付能力。; 阅读建议:读者应结合自身角色选择重点章节阅读——采购方可聚焦第一章、第三章、第五章、第八章及第九章;设计单位宜通读第一至七章;研究者建议全面研读并关注第二章市场格局与第四章技术趋势;所有读者均需注意本报告不进行企业排名,企业介绍篇幅差异不代表实力优劣,具体决策应以实地考察与合同约定为准。

16,741

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧