Коллеги, здравствуйте. Подскажите, пожалуйста, по такому вопросу: Есть на диске текстовый файл, зовут его 1.txt, расположен он в C:\1 Хочется прочитать в текстовую переменную ВСЕ содержимое файла. Рисую процедуру:
Код
Sub Test()
Dim objFileSys As Object, sS As String
Set objFileSys = CreateObject("Scripting.FileSystemObject")
sS = objFileSys.OpenTextFile("C:\1\1.txt").ReadAll
End Sub
В 1.txt заношу незатейливый текст: "мама мыла раму Раму мыла мама" Запускаю процедуру пошагово - в переменной sS вижу нужный текст, ура!
Далее вставляю довольно большой кусок текста в файл (около 300 строк от 1 до 170 знаков в строке) запускаю процедуру пошагово - в переменной sS сиротливая строка "ая" Что это? Ограничение на количество знаков в переменной? Вроде там миллионы допускаются...
В общем вопрос - как забрать в переменную все содержимое текстового файла? Построчно читать и добавлять к переменной? Или все-таки есть более простой способ? Подскажите, пожалуйста. Спасибо за внимание.
Hugo, подозреваю, что сейчас был юмор. Но из-за своей дремучести в этой теме - я его не понимаю. Подскажите, что я не так в процедуре пишу? Все не так, какая-то часть не так, и т.д. Я в теме работы с объектами и файлами - не разбираюсь от слова "совсем".
Да это я сгоряча ляпнул, понятно, что конвертировать... Как это устроить средствами VBA, вот какой встанет тогда вопрос... Так проверил - пересохранил в ANSI кодировке - в переменную стало попадать...
З.Ы. Это что ж мне теперь - программно Notpad запусти, файл загрузи, SaveAs укажи... Блин.
Пытливый, пробовал через StrConv(txt, vbFromUnicode) и напрямую и через байтовый массив - кракозябры. Остается только вариант с записью этого текста в *txt через VBA.
Если только чтение и запись, то можно и самым простым способом:
Код
Sub ЗаписьВпеременную()
Dim a$
Open "C:\1.txt" For Input As 1
a = Input(LOF(1), 1)
Close 1
Debug.Print a
End Sub
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. А в том, чтобы писать программы, работающие при любом количестве ошибок.
Это он кодировку не понял. Если в Юникоде, то не прокатит так.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. А в том, чтобы писать программы, работающие при любом количестве ошибок.