Excel VBA-код не откроет файл с именем "CON.txt"
Я обрабатываю большой текстовый файл с разделенными каналами данными в нем, где каждая строка начинается с текстового поля "тип записи" - например," APP"," ATT"," CON"," A","T"... Мне нужно разделить файл на ряд файлов с определенными типами записей, так что " приложение.txt " имеет все типы записей приложений и т. д.
Я читаю строку из исходного файла, хватаю первое поле, проверяю, находится ли маркер в коллекции, а затем, если маркер находится в коллекции, открываю этот файл и запись в него или, если маркера нет в коллекции, создание нового файла, запись в него и добавление маркера в коллекцию. Моя программа работает нормально, за исключением случаев, когда создается "CON.txt" файл:
-
Если я удаляю все типы записей " CON " из исходного файла, это работает нормально.
-
Если запись " CON " появляется в строке 2, она взрывается в строке 2, создавая файл.
-
Если запись " CON " появляется в строке 50, она взрывается в строке 50.
-
Если я добавляю
p
перед каждым токеном, так что токеныCON
теперь являются токенамиpCON
, все работает нормально.
Я озадачен. Есть идеи, почему одно конкретное имя файла может дать этой программе conniptions? Код, который фактически открывает файл (который выдает ошибку 75 времени выполнения), является:
Open sTgtDir & sToken & ".txt" For Append As #iFileNo
Где sTgtDir
- Путь, заканчивающийся на"", который работает во всех остальных случаях, sToken
- маркер типа записи, а iFileNo
- целое число, основанное на количестве элементов в коллекции токенов.
1 ответ:
Платформы DOS и Windowsне откроют дисковый файл с именем CON (с любым расширением) , потому что это специальное имя, относящееся к "консоли" (экрану). Извините - вам не повезло! Вам просто придется использовать разные имена маркеров (если у вас нет возможности изменить операционную систему). Например, перед строкой
Open
можно добавить:If UCase(sToken) = "CON" then sToken = "pCON"