【发布时间】:2012-11-20 01:02:34
【问题描述】:
我刚刚安装了 Delphi 7 供个人使用,我正在尝试将 delphi ClientDataSet 文件转换为 dfXMLUTF8。我真正需要的是xml结构。 This site 建议运行 4 行代码将生成我想要的输出。但请注意,我的文件是 .cds,而不是示例中的 .dat。我不知道这是否会有所作为。
ClientDataSet1.Active := false;
ClientDataSet1.CreateDataSet;
ClientDataSet1.LoadFromFile('MyBinaryFile.dat');
ClientDataSet1.SaveToFile('MyXMLFile.XML', dfXMLUTF8);
我收到错误,因为我以前从未真正使用过 Delphi,我希望知道他们在做什么的人可以为我发布 非常短 xml 结构。 Here's the file(486 bytes) 我正在合作。我将用完整的 dfXMLUTF8 输出奖励第一个海报的正确答案。谢谢!
更新:
好的,我刚刚从头开始这个项目,我想我已经进行了一些设置。我添加了uses DBClient;、var ClientDataSet1: TClientDataSet,最后添加了程序:
ClientDataSet1.LoadFromFile('C:\Documents and Settings\XPMUser\Desktop\DelphiCDS\Master.cds');
ClientDataSet1.SaveToFile('C:\Documents and Settings\XPMUser\Desktop\DelphiCDS\output.XML', dfXMLUTF8);
它会抛出以下错误:
模块“Project.exe”中地址 004588B6 的访问冲突。阅读 地址 00000000。
更新2:
这是我最终得到的结果:
unit Script3;
interface
uses
Forms, DBClient;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
end;
var
Form1: TForm1;
CDS: TClientDataSet;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
CDS := TClientDataSet.Create(nil);
try
CDS.LoadFromFile('.\input.cds');
CDS.SaveToFile('.\output.xml', dfXMLUTF8);
finally
CDS.Free;
end;
end;
end.
【问题讨论】:
-
当您说“我收到错误”时,如果您在问题文本中实际提供错误,这将非常有用,因为我们无法从哪里看到您的屏幕我们是。请编辑您的问题并提供您收到的确切错误消息。谢谢。
-
我在下面的回答中为您提供了关于如何在代码中创建和使用
TClientDataSet的特定代码。如果您遇到访问冲突,则说明您没有使用我发布的代码。请再读一遍;您显然错过了其中的CDS := TClientDataSet.Create(nil)和CDS.Free;部分。
标签: xml delphi data-structures tclientdataset