結構體文件的讀寫(.dat)

本文介绍三种使用Delphi读取和写入.dat文件的方法,包括直接操作记录体、利用FileStream以及MemoryStream进行文件读取。这些方法适用于批量处理大量数据,如股票市场数据或经纪记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

讀寫方式一:
KChratList := TLRDL2StyleList.Create(‘E:\Voice-king\ADSLRDLC_CE2\090602.dat’);//重點
k:=0;
for i:= KChratList.Count-1 downTo 0 do
begin
inc(k);
if k >2000 then Break;
TheItem := KChratList[i];//重點
with TheItem do
begin
MessageStr := Format(’%10s %20s %8d %8d %8d %8f’,
[StockID,StockName,MoneyStockRatio,MoneyRatio,NetRatio,StockTer]);
end;
end;
讀寫方式二:
redFile := TFileStream.Create(Filesnames,fmOpenRead);//redFile為FileStream
if redFile.Size > 0 then
begin
numbercount := redFile.Size div sizeof(TBrokerRec);//TBrokerRec為記錄體
SetLength(readcmpyone,numbercount);//readcmpyone為記錄體TBrokerRec的集合
for i:= 0 to numbercount-1 do
begin
redFile.Read(readcmpyone[i],sizeof(TBrokerRec));
end;
end;
讀寫方式三:
TheFile := TMemoryStream.Create;
try
TheFile.LoadFromFile(DatFileName);//DatFileName是源文件(.dat)所在路徑
if TheFile.Size = 0 then Exit;
TheCount := TheFile.Size div Sizeof(TBrokerRec);//TBrokerRec為記錄體
SetLength(TheTBrokerRecArray, 0);//TheTBrokerRecArray為記錄體TBrokerRec的集合
SetLength(TheTBrokerRecArray, TheCount + 1);
Move(TheFile.Memory^, TheTBrokerRecArray[0], TheCount * Sizeof(TBrokerRec));
finally
TheFile.Free;
end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ysgs129

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值