【发布时间】:2018-08-07 22:11:58
【问题描述】:
我有一个程序使用“\n”字符写入文本文件。我让它将它写入一个 .csv 文件,以便我可以获取该信息并将其导入 Access 数据库。我遇到的问题是 Microsoft Access VBA 和记事本无法识别文件中的换行符。写字板、Access 的内置 Import 和 Excel DO 可以识别换行符。如果我在 Excel 或写字板中打开 .csv 文件,不做任何更改,然后再次将文件另存为 .csv 文件,它就会正确显示。
我有一个 VBA 脚本来从文件中导入数据,因为数据会重复添加到主工作表中。我希望它从 .csv 文件中获取每一行,如果 ID 不存在,则将其作为新行插入,或者如果存在则更新现有行。这已经过测试并适用于它们明显位于不同行的文件(在记事本中显示为不同的行),但它只是我的程序生成的文件(使用 \n 作为新行)。
另一个程序是用 C# 构建的......所以,我想我的问题是:是否有更好的换行符或序列可以在 C# 中使用,以便在存在换行符时更普遍地识别它?
为了后代,这是我的 VBA 脚本正在使用的代码,它将文件作为一行读取并缺少换行符:
'Now read the file
Open csvLoc For Input As #1
Do While Not EOF(1)
Line Input #1, csvLine
Debug.Print csvLine
lineArray = Split(csvLine, ",")
<-- Code handling the now split line array -->
Loop
Close #1
【问题讨论】:
-
也许试试 '\r\n'。
-
用于指示换行符的字符通常因操作系统而异:在 Windows 上通常是回车 + 换行。 en.wikipedia.org/wiki/Newline