可以在 mfc 中禁用 Schema.ini 内的 TextDelimiter 吗?
Can one disable TextDelimiter within Schema.ini for ado in mfc?
我必须处理导入 CSV 文件的问题。传统解决方案使用 MFC 和 ADO 文本驱动程序来管理它。我知道您可以在相应的 Schema.ini
文件中指定 TextDelimiter
-选项。
问题是,某些输入文件无法指定该文件中未使用的字符!
我们所有的文件都是 CP1252 编码的 - 我们无法处理其他编码,所以“☃”(SNOWMAN,U+2603)或类似的东西没有提供解决方案。
如果我省略一个字符,ADO 似乎会退回到默认字符(双引号):
[Import.txt]
ColNameHeader=False
Format=Delimited(;)
TextDelimiter= //← omit character doesn't work!
col1=...
我也无法定义字符序列,这会将不匹配的风险降低到可接受的值:
[Import.txt]
ColNameHeader=False
Format=Delimited(;)
TextDelimiter=@#+@ // produces error when opening the ADO connection!
所以我的问题是:是否可以完全禁用这个功能?我只是不想要任何自动文本定界!
代码是在基于 MFC 和 ADO 的 C++ 中实现的 - 所以没有 ADO.NET 解决方案可以帮助我。
应该这样做:
TextDelimiter=none
我必须处理导入 CSV 文件的问题。传统解决方案使用 MFC 和 ADO 文本驱动程序来管理它。我知道您可以在相应的 Schema.ini
文件中指定 TextDelimiter
-选项。
问题是,某些输入文件无法指定该文件中未使用的字符!
我们所有的文件都是 CP1252 编码的 - 我们无法处理其他编码,所以“☃”(SNOWMAN,U+2603)或类似的东西没有提供解决方案。
如果我省略一个字符,ADO 似乎会退回到默认字符(双引号):
[Import.txt]
ColNameHeader=False
Format=Delimited(;)
TextDelimiter= //← omit character doesn't work!
col1=...
我也无法定义字符序列,这会将不匹配的风险降低到可接受的值:
[Import.txt]
ColNameHeader=False
Format=Delimited(;)
TextDelimiter=@#+@ // produces error when opening the ADO connection!
所以我的问题是:是否可以完全禁用这个功能?我只是不想要任何自动文本定界!
代码是在基于 MFC 和 ADO 的 C++ 中实现的 - 所以没有 ADO.NET 解决方案可以帮助我。
应该这样做:
TextDelimiter=none