Excel VBA 代码不会打开名为 "CON.txt" 的文件
Excel VBA code won't open a file named "CON.txt"
我正在处理一个包含竖线分隔数据的大型文本文件,其中每一行都以文本 "record type" 字段开头——例如,"APP"、"ATT"、"CON", "A", "T"...我需要把文件拆分成一系列特定记录类型的文件,所以"APP.txt"有所有的APP记录类型等等。
我正在做的是从源文件中读取一行,获取第一个字段,检查令牌是否在集合中,然后,如果令牌在集合中,打开该文件并写入它,或者如果令牌不在集合中,则创建一个新文件,写入它,并将令牌添加到集合中。我的程序工作正常,除了在创建 "CON.txt" 文件时:
如果我从源文件中删除所有 "CON" 记录类型,它工作正常。
如果 "CON" 记录出现在第 2 行,它会在第 2 行创建文件时爆炸。
如果 "CON" 记录出现在第 50 行,它会在第 50 行炸掉。
如果我在每个标记前添加一个 p
,那么 CON
标记现在是 pCON
标记,一切正常。
我很困惑。知道为什么一个特定的文件名会给这个程序带来麻烦吗?实际打开文件的代码(抛出 75 运行 次错误)是:
Open sTgtDir & sToken & ".txt" For Append As #iFileNo
其中 sTgtDir
是以“\”结尾的路径,适用于所有其他情况,sToken
是记录类型标记,iFileNo
是基于Token 集合中的项目数。
DOS 和 Windows 平台 won't open a disk file named CON (with any extension),因为这是指代 "CONsole"(屏幕)的特殊名称。对不起 - 你运气不好!您只需使用不同的令牌名称(假设您没有更改操作系统的选项)。例如,在 Open
行之前,您可以添加:
If UCase(sToken) = "CON" then sToken = "pCON"
我正在处理一个包含竖线分隔数据的大型文本文件,其中每一行都以文本 "record type" 字段开头——例如,"APP"、"ATT"、"CON", "A", "T"...我需要把文件拆分成一系列特定记录类型的文件,所以"APP.txt"有所有的APP记录类型等等。
我正在做的是从源文件中读取一行,获取第一个字段,检查令牌是否在集合中,然后,如果令牌在集合中,打开该文件并写入它,或者如果令牌不在集合中,则创建一个新文件,写入它,并将令牌添加到集合中。我的程序工作正常,除了在创建 "CON.txt" 文件时:
如果我从源文件中删除所有 "CON" 记录类型,它工作正常。
如果 "CON" 记录出现在第 2 行,它会在第 2 行创建文件时爆炸。
如果 "CON" 记录出现在第 50 行,它会在第 50 行炸掉。
如果我在每个标记前添加一个
p
,那么CON
标记现在是pCON
标记,一切正常。
我很困惑。知道为什么一个特定的文件名会给这个程序带来麻烦吗?实际打开文件的代码(抛出 75 运行 次错误)是:
Open sTgtDir & sToken & ".txt" For Append As #iFileNo
其中 sTgtDir
是以“\”结尾的路径,适用于所有其他情况,sToken
是记录类型标记,iFileNo
是基于Token 集合中的项目数。
DOS 和 Windows 平台 won't open a disk file named CON (with any extension),因为这是指代 "CONsole"(屏幕)的特殊名称。对不起 - 你运气不好!您只需使用不同的令牌名称(假设您没有更改操作系统的选项)。例如,在 Open
行之前,您可以添加:
If UCase(sToken) = "CON" then sToken = "pCON"