var
    Index,i:  Integer;
    F:  TFileStream;
    FileHead:TdatFileHead;
    Stock:  TStock;
begin
    Index:=Source.Index;
    F:=TFileStream.Create(FileName,fmcreate);
    FileHead.HYTFLAG:=$750103;
    FileHead.VERNO:=100;
    FileHEad.DATEYPE:=151;
    FileHead.REV:=100;
    F.Write(FileHead,Sizeof(TdatFileHead));
    I:= Source.Count;
    F.Write(I,4);
    for i:= 0 to Source.Count -1 do
    begin
        Source.Index:=i;
        Stock:=Source.stock;
        F.Write(stock,Sizeof(TStock));
        DataM.ProgressBar3.Position:=Round((i+1)*100/Source.Count);
        Application.ProcessMessages;
    end;
    F.Free;
    Source.index:=Index;
end;这是我写的股票列表保存函数,给你作参考。