vba - Excel VBA 代码不会打开名为“CON.txt”的文件
问题描述
我正在处理一个带有管道分隔数据的大型文本文件,其中每一行都以文本“记录类型”字段开头——例如,“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
wheresTgtDir
是在所有其他情况下都有效的以“\”结尾的路径,sToken
是记录类型令牌,并且iFileNo
是基于令牌集合中项目数的整数。
解决方案
DOS 和 Windows 平台不会打开名为 CON (带有任何扩展名) 的磁盘文件,因为这是一个特殊的名称,指的是“CONsole”(屏幕)。对不起 - 你不走运!您只需使用不同的令牌名称(假设您没有更改操作系统的选项)。例如,Open
您可以在该行之前添加:
If UCase(sToken) = "CON" then sToken = "pCON"
推荐阅读
- css - 根据道具值材料ui datepicker conditiona css更改样式
- angular-material - 如何在选项卡之外而不是使用标签获取当前选择的 mat-tab 的信息?
- php - 警告:未定义的数组键“HTTP_ACCEPT”
- javascript - React.js 应用程序跨域请求被阻止
- javascript - 如何处理 OOP 这个。参数和getAttribute this。同一函数中的参数 - JS
- netty - 在 Netty 4.1 中使用 HttpPostRequestDecoder 的正确方法是什么?
- r - 存储数据点的两个字符串列 - 一个接一个访问
- r - 如何在ggplot2曲线的末端添加组标签
- php - 显示特定自定义分类类型的帖子
- .net - 如何使用 .net 中的环境变量更改 log4net 日志级别?