【发布时间】:2011-03-08 12:14:55
【问题描述】:
我正在使用 VB6 和 ADO 以及 Microsoft 文本驱动程序从 ASCII 文件中导入数据。该文件以逗号分隔,但它还包含文本数据字段周围的双引号。这些字段也是固定宽度的。
我遇到了一个问题,即驱动程序在任何时候其中一行在内容中包含引号 双引号 时都会错误地读取列。这发生在左侧第二列的“部件描述”列中。出现这种情况时,右边的列都是 Null 值,而在文本文件中不是这样。
我认为最好只使用逗号作为分隔符。但是,我相信逗号也出现在“部件描述”列中,所以这意味着我应该真正将文件加载为固定宽度。我不知道有什么方法可以做到这一点,除非我可以在 schema.ini 文件中指定。
关于如何解决这个问题的任何想法?
编辑:
您可以在 Schema.ini 文件中指定固定宽度。但是,在我看来,也作为分隔符/限定符存在的逗号和引号会阻止它正常工作。看起来我可能必须“手动”读入文件并以我自己的格式写回,然后再使用 MS Text 驱动程序加载它。仍在寻找其他意见。
【问题讨论】:
-
如果将引号称为引号而将撇号称为撇号,则更容易清楚。 “双引号”是指连续两个引号,例如“”。
-
这将很难重新解析和重新格式化。如果您尝试忽略引号作为文本分隔符,那么值中嵌入的逗号会让您感到困惑。
-
很高兴你能看到 Bob 的困境。似乎下面的两个答案都忽略了我所说的这个文件有多个分隔符和固定宽度。
标签: vb6 ado text-files text-driver