一般情况下,这样写没问题
assignfile(filename,'c:\aaa.TXT');
rewrite(filename) ;
with ADOQuery2 do
begin
first;
while not eof do
begin
str1:=fieldbyname('编号').asstring;
str2:=fieldbyname('应收费').AsString ;
str4:=fieldbyname('姓名').AsString ;
str3:=fieldbyname('情况).asstring;
writeln(filename,'"'+str1+'","'+str3+'","'+str4+'",'+str2);
ADOQuery2.Next;
end;
end;
closefile(filename);
出来的结果:
"1","10","SSS","XXX"
"2","20","郁郁","FFF"但是因为写出的编号,姓名等字段的位置会发生改变
我用一个表记录了AAA:='"'+str1+'","'+str3+'","'+str4+'",'+str2;
再写出时上面的writeln(filename,'"'+str1+'","'+str3+'","'+str4+'",'+str2);
改成writeln(filename,AAA);
但出来结果变成了
'"'+str1+'","'+str3+'","'+str4+'",'+str2
要怎么样写才对
assignfile(filename,'c:\aaa.TXT');
rewrite(filename) ;
with ADOQuery2 do
begin
first;
while not eof do
begin
str1:=fieldbyname('编号').asstring;
str2:=fieldbyname('应收费').AsString ;
str4:=fieldbyname('姓名').AsString ;
str3:=fieldbyname('情况).asstring;
writeln(filename,'"'+str1+'","'+str3+'","'+str4+'",'+str2);
ADOQuery2.Next;
end;
end;
closefile(filename);
出来的结果:
"1","10","SSS","XXX"
"2","20","郁郁","FFF"但是因为写出的编号,姓名等字段的位置会发生改变
我用一个表记录了AAA:='"'+str1+'","'+str3+'","'+str4+'",'+str2;
再写出时上面的writeln(filename,'"'+str1+'","'+str3+'","'+str4+'",'+str2);
改成writeln(filename,AAA);
但出来结果变成了
'"'+str1+'","'+str3+'","'+str4+'",'+str2
要怎么样写才对
writeln(filename,Str1+','+str3+','+str2+','.....);
用STRINGLIST也可以
var A :STRINGs
a := TStringlist.create;
A.ADD(STR1+',');
A .ADD(STR2+',');
a.savetofile('c:\text.txt');
a.free;
var
i: integer;
filename: TextFile;
str1,str2,str3,str4: string;
begin
assignfile(filename,'c:\aaa.TXT');
rewrite(filename) ;
for i:=0 to 100 do
begin
str1:=inttostr(i);
str2:='str2-'+inttostr(i);
str3:='str3-'+inttostr(i);
str4:='str4-'+inttostr(i);
writeln(filename,'"'+str1+'","'+char(vk_tab)+str3+'","'+char(vk_tab)+str4+'",'+char(vk_tab)+str2);
end;
closefile(filename);
end;
如现在写出的是:编号,姓名,情况,收费
以后它可能要求写出来的顺序是:姓名,情况,编号,收费
所以我想把写出来的字段存到另外一个表中的字段AAA中,要改顺序的时候直接改那个表AAA的内容
AAA:='"'+str1+'","'+str3+'","'+str4+'",'+str2;
然后在这导出的时候就调用它
原写定的顺序 writeln(filename,'"'+str1+'","'+str3+'","'+str4+'",'+str2);
写出的结果
"1","10","SSS","XXX"
"2","20","郁郁","FFF"
是对的
现在我想调用writeln(filename,AAA);
但是AAA变成了字符
写出来的结果就变成
'"'+str1+'","'+str3+'","'+str4+'",'+str2
请问要做成这样的功能有什么好方法
如果比如表中是编号,姓名,情况,收费 则str1=编号的值,str2=姓名的值。
如果表中的顺序变了姓名,情况,收费,编号,你的str1=姓名的值,。。
这样就行了,也就是说你所变的只是在给str1,str2,str3,str4赋值时取的顺序是变化的
不知我这样说的是否明白呢