我想把动态数组的内容写入文件,该怎么操作?
数组的元素是记录型的。
数组的元素是记录型的。
解决方案 »
- dbgrideh竖直滚动条horzScrollBar显示只有(上中下)三个位置,怎么能正确显示实际位置?
- ◆◆◆-[ 关于……反黄…… ]-◆◆◆
- 谁有央视的《三国演义》下栽地址??可以下的话,我再送100分!谢谢
- 用什么方法可以在程序运行时象用ADO组件连接数据库的那个智能界面,急!
- 各位麻烦进来帮我看看我错在什么地方!
- (再续)刚才想散分,不过不能给超过100分。想开多个贴,结果只开了一个,然后荣誉分只有81分了……(10分钟后结贴)
- 实时更新问题
- 应该怎样显示从数据库里读出来的jpg图像
- 标题栏可以作为一个对象吗
- stringgrid???
- 请教:如何将octet string类型转换成string类型显示
- 如何计算逻辑表达式?
type
TMOInf = Record
op_cd: String;
mo_no: String;
mo_mob_use: String;
mo_phone: String;
mo_content: String;
mo_coding: Integer;
mo_pid: Integer;
mo_udhi: Integer;
corp_id: String;
mo_reserve: String;
mo_flag: Integer;
end;m_Queue: Array of TMOInf;
改为:array[0..Len-1] of Char;
或者:string[len];type
TMOInf = record
op_cd: string[20]; //具体大小根据实际需要定义
mo_no: string[20];
mo_mob_use: string[20];
mo_phone: string[20];
mo_content: string[20];
mo_coding: Integer;
mo_pid: Integer;
mo_udhi: Integer;
corp_id: string[20];
mo_reserve: string[20];
mo_flag: Integer;
end;const
cFileHead: array[0..2] of Char = 'que'; //文件头,避免读取其他格式的文件procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
m_Queue: array of TMOInf;
begin
//////写入
{ todo : m_Queue赋值 }
SetLength(m_Queue, 2);
m_Queue[1].mo_reserve := '测试!'; with TFileStream.Create('C:\temp\temp.dat', fmCreate) do try
Write(cFileHead[0], SizeOf(cFileHead));
I := Length(m_Queue);
Write(I, SizeOf(Integer));
for I := Low(m_Queue) to High(m_Queue) do
Write(m_Queue[I], SizeOf(TMOInf));
finally
Free;
end;
end;procedure TForm1.Button2Click(Sender: TObject);
var
I: Integer;
m_Queue: array of TMOInf;
vFileHead: array[0..2] of Char;
begin
//////读出
with TFileStream.Create('C:\temp\temp.dat', fmOpenRead) do try
if Read(vFileHead[0], SizeOf(vFileHead)) <> SizeOf(vFileHead) then Exit;
if vFileHead <> cFileHead then Exit;
Read(I, SizeOf(Integer));
SetLength(m_Queue, I);
for I := Low(m_Queue) to High(m_Queue) do
Read(m_Queue[I], SizeOf(TMOInf));
finally
Free;
end;
{ todo : 输出m_Queue }
if High(m_Queue) <= 1 then ShowMessage(m_Queue[1].mo_reserve);
end;
TMOInf = packed record