Эта ошибка - это что-то еще!
Вот как я ее исправил. Я использую xcode Version 6.1.1 и использую swift. Я получал эту ошибку каждый раз, когда мое приложение пыталось выполнить segue, чтобы перейти к следующему экрану.
Приветствия,
Строка
Set listFile = fso.OpenTextFile(aniLines).ReadAll
не будет работать по двум причинам:
Set
может использоваться только при назначении объектов для переменных, но ReadAll
возвращает строку . OpenTextFile()
ожидает строку, но aniLines
представляет собой массив строк. Чтобы обработать все элементы массива, вы можете использовать что-то вроде этого:
For Each line In aniLines
' read dirlist.txt file
Next
Вопрос в том, как вы хотите читать файлы dirlist.txt
. Вы можете сделать то же, что и с другими файлами: прочитайте весь контент файла и разделите его на массив:
listFile = fso.OpenTextFile(line).ReadAll
listLines = Split(listFile, vbCrLf)
, а затем используйте другой цикл, подобный приведенному выше, для обработки полей массива listLines
. Этот подход предпочтительнее для небольших файлов, потому что код проще.
Или вы можете использовать подход ReadLine
(который предпочтительнее, когда вам приходится обрабатывать большие файлы, поскольку он позволяет избежать исчерпания памяти):
Set listFile = fso.OpenTextFile(line) ' <-- remove .ReadAll from this line!
Do Until listFile.AtEndOfStream
fName = listFile.ReadLine
' do stuff with fName
Loop
Я рекомендую использовать Do Until
вместо Do While Not
, потому что семантика такая же, но первая ближе к естественному языку и поэтому ее легче читать.
Также достаточно было бы создать экземпляр объекта FileSystemObject
один раз в начале скрипта и просто использовать этот экземпляр в остальной части скрипта. Бессмысленно повторять его снова и снова.
ReadLine
просто потому, что он имеет гораздо больше смысла, чемReadAll
& amp;Split
комбо. – Daniel 31 October 2012 в 05:29