Тема: Как реализовать запись в текстовый файл?
Здравствуйте!
Подскажите, пожалуйста, как в VBA реализовать запись данных (текстовой строчки) в конец текстового файла с новой строки.
Спасибо.
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Как реализовать запись в текстовый файл?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Здравствуйте!
Подскажите, пожалуйста, как в VBA реализовать запись данных (текстовой строчки) в конец текстового файла с новой строки.
Спасибо.
Думаю, можно так:
file_number = FreeFile Open fname For Append As file_number Print #file_number, "kuku" Close #file_number
Можно конечно и так =)
Но МС некомендует все таки использовать для этого File System Object
Sub TextStreamTest Const ForReading = 1, ForWriting = 2, ForAppending = 3 Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0 Dim fs, f, ts, s Set fs = CreateObject("Scripting.FileSystemObject") fs.CreateTextFile "test1.txt" 'Create a file Set f = fs.GetFile("test1.txt") Set ts = f.OpenAsTextStream(ForWriting, TristateUseDefault) ts.Write "Hello World" ts.Close Set ts = f.OpenAsTextStream(ForReading, TristateUseDefault) s = ts.ReadLine MsgBox s ts.Close End Sub
> Лёша
> Boxa
Чтобы использовать File System Object надо подключить к проекту библиотеку Microsoft Scripting Runtime.
А вообще по работе с файлами средствами VBA
см. Кен Гетц
Майк Джилберт
"Программирование и Microsoft Office"
Почему бы не использовать функции API. Понятный и удобный интерфес для юзера, и минимум гловоломки для программиста. Пример здесь http://www.cad.dp.ua/stats/a_vba/conten … t.html#API OPENFILENAME
> Saor
Этот пример отражает использование диалогового окна выбора имени файла, вызываемого через функции API. А сама работа с файлом как написала Маша > masha (2006-07-27 15:05:04)
Чтобы использовать File System Object надо подключить к проекту библиотеку Microsoft Scripting Runtime.
Уж сколько раз говорено было - НЕ НАДО!
Dim fs, f, ts, s
> td
Уж сколько раз говорено было — НЕ НАДО!
Смягчаю формулировку: желательно подключить к проекту библиотеку Microsoft Scripting Runtime, чтобы лишний раз не вызывать из небытия монстров типа ActiveX object.
И еще одно соображение - если нет необходимости в каких-то дополнительных возможностях, применяй самые простые инструменты. В данном случае, встроенные в VBA низкоуровневые функции ввода-вывода файлов вроде тех, что советует > masha (2006-07-27 15:05:04)
IMHO
ИМХО, эти инструменты пришли по наследству от Qbasic 4.5 и посепенно уходят в прошлое, и их пора забывать.
Про подключение библиотеки слышу впервые, прошу ссылку на источник. В хелпах не нашел. Программы используются на многих машинах, баги с этой библиотекой ни разу не возникали.
> Воха
прошу ссылку на источник
В каком смысле ссылку?
Tools->References->Microsoft Scripting Runtime(file: scrrun.dll)
Затем открываешь Object Browser -> Scripting и обозреваешь объектную модель подключенной библиотеки.
То что баги не возникали - хорошо, по идее так оно и должно быть, но не всегда бывает.
По своему опыту знаю, что при работе циклов (несколько тысяч элементов) ощущается заметное снижение быстродействия. Я использовал другой ActiveX Object, но технология та же.
Кстати такой стиль объявления переменных -
Dim fs, f, ts, s -
это тоже одна из причин замедления работы программы.
По поводу низкоуровневых функций ввода-вывода файлов. Ты прав, они пришли из глубины веков. Специалисты утверждают, что они появились еще до изобретения компьютера. Ну и что? А работают как зверь. И в чем же выражается их постепенный уход в прошлое?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Как реализовать запись в текстовый файл?
Форум работает на PunBB, при поддержке Informer Technologies, Inc