首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >FireDac TFDBatchMoveTextReader未引入完整字段值

FireDac TFDBatchMoveTextReader未引入完整字段值
EN

Stack Overflow用户
提问于 2019-10-24 07:21:55
回答 2查看 594关注 0票数 0

我有一个CSV文件要与FireDAC BatchMove系列组件(TextReader和DataSetWriter)一起导入。

示例CSV数据

代码语言:javascript
运行
复制
Vehicle,State,Toll distance (mi),Distance (mi),Time (hours)
Tr226,VA,0.0,8679.9,142.5
Tr114,VA,0.0,7227.2,151.5

示例代码

代码语言:javascript
运行
复制
  {FDBatchMove, FDBatchMoveTextReader, FDBatchMoveDataSetWriter, and FDMemTable are declared in the Private declarations of my form}
  FDBatchMove := TFDBatchMove.Create(nil);
  FDBatchMoveTextReader := TFDBatchMoveTextReader.Create(nil);
  FDBatchMoveDataSetWriter := TFDBatchMoveDataSetWriter.Create(nil);

  FDMemTable := TFDMemTable.Create(nil);

  FDBatchMoveTextReader.FileName := 'Y:\Shared\VehicleShort.csv';
  FDBatchMoveDataSetWriter.DataSet := FDMemTable;

  FDBatchMove.Reader := FDBatchMoveTextReader;
  FDBatchMove.Writer := FDBatchMoveDataSetWriter;

  FDBatchMove.Analyze := [taDelimSep, taHeader, taFields];

  FDBatchMove.AnalyzeSample := 10;

  FDBatchMove.Execute;

执行完上面的代码块后,我循环遍历FDMemTable并显示第一个字段的内容:

代码语言:javascript
运行
复制
  FDMemTable.First;
  while not FDMemTable.Eof do
  begin
    ShowMessage(FDMemTable.Fields[0].AsString);
    FDMemTable.Next;
  end;

我得到了以下答案。请注意,最后一个字符被剪掉了:

代码语言:javascript
运行
复制
Tr22
Tr11

如果我修改CSV数据以包括更长的车辆名称,如Truck226和Truck114,我会得到相同的问题,最后一个字符被截断。

代码语言:javascript
运行
复制
Truck22
Truck11

我对这里能做的事情有点不知所措。我需要在运行时创建BatchMove组件,而Delphi附带的演示没有深入到足以让我自己解决这个问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-25 01:42:22

在FredS发表评论后,我意识到如果我从我的SO问题中构建项目,它是有效的。这让我意识到我的文件一定有其特殊性。我意识到我的文件只有换行符。我用回车符\行换行符替换了所有换行符,它起作用了。

经过一些研究,我可以使用FDBatchMoveTextReader.DataDef.EndOfLine来控制这种行为。

票数 0
EN

Stack Overflow用户

发布于 2019-10-24 12:36:48

csv中的字符串字段没有用分隔符(双引号或单引号)括起来,因此必须设置FDBatchMoveTextReader.DataDef.Delimiter := #0;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58532149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档