本文为原创,如需转载,请注明作者和出处,谢谢!
最近做个程序,需要将dbf和文本文件互相转换,也就是将dbf按表结构将字段和数据导成txt文件,再将txt文件导入其他的dbf表中。在 foxpro中完成这些工作简直太容易了,但很多功能必须用delphi实现。虽然可以用foxpro做个小程序,然后再用delphi调用,但比较麻 烦。因此,可以用Delphi通过调用Com组件的方式直接执行foxpro命令来实现,代码如下:
var
foxpro:olevariant;
begin
foxPro: = CreateOleObject( ' VisualFoxPro.Application ' );
foxPro.DoCmd( ' USE d:/student.dbf ' );
foxPro.DoCmd( ' copy to d:/student.txt delimited with tab ' );
foxPro.Quit;
foxPro: = Unassigned;
foxpro:olevariant;
begin
foxPro: = CreateOleObject( ' VisualFoxPro.Application ' );
foxPro.DoCmd( ' USE d:/student.dbf ' );
foxPro.DoCmd( ' copy to d:/student.txt delimited with tab ' );
foxPro.Quit;
foxPro: = Unassigned;
上面的代码是将student.dbf文件导出到student.txt文件。如果想导入,可以使用append命令,如下所示:
append from d:/student.txt type sdf
还想做什么,就看需求了。但不管做什么,只要在foxpro命令窗口可执行的命令,通过这种方式都可以执 行。使用createoleobject函数需要使用comobj单元。