Тема: Как реализовать запись в текстовый файл?

Здравствуйте!
Подскажите, пожалуйста, как в VBA реализовать запись данных (текстовой строчки) в конец текстового файла с новой строки.
Спасибо.

Re: Как реализовать запись в текстовый файл?

Думаю, можно так:

file_number = FreeFile
Open fname For Append As file_number
Print #file_number, "kuku"
Close #file_number

Re: Как реализовать запись в текстовый файл?

Спасибо! То, что нужно!

Re: Как реализовать запись в текстовый файл?

Можно конечно и так =)
Но МС некомендует все таки использовать для этого 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

Re: Как реализовать запись в текстовый файл?

> Лёша

> Boxa
Чтобы использовать File System Object надо подключить к проекту библиотеку Microsoft Scripting Runtime.
А вообще по работе с файлами средствами VBA
см. Кен Гетц
    Майк Джилберт
    "Программирование и Microsoft Office"

Re: Как реализовать запись в текстовый файл?

Почему бы не использовать функции API. Понятный и удобный интерфес для юзера, и минимум гловоломки для программиста. Пример здесь http://www.cad.dp.ua/stats/a_vba/conten … t.html#API OPENFILENAME

Re: Как реализовать запись в текстовый файл?

> Saor
Этот пример отражает использование диалогового окна выбора имени файла, вызываемого через функции API. А сама работа с файлом как написала Маша > masha (2006-07-27 15:05:04)

Re: Как реализовать запись в текстовый файл?

Чтобы использовать File System Object надо подключить к проекту библиотеку Microsoft Scripting Runtime.

Уж сколько раз говорено было - НЕ НАДО!
Dim fs, f, ts, s

Re: Как реализовать запись в текстовый файл?

> td
Уж сколько раз говорено было — НЕ НАДО!
Смягчаю формулировку: желательно подключить к проекту библиотеку Microsoft Scripting Runtime, чтобы лишний раз не вызывать из небытия монстров типа ActiveX object.
И еще одно соображение - если нет необходимости в каких-то дополнительных возможностях, применяй самые простые инструменты. В данном случае, встроенные в VBA низкоуровневые функции ввода-вывода файлов вроде тех, что советует > masha (2006-07-27 15:05:04)
IMHO

Re: Как реализовать запись в текстовый файл?

ИМХО, эти инструменты пришли по наследству от Qbasic 4.5 и посепенно уходят в прошлое, и их пора забывать.
Про подключение библиотеки слышу впервые, прошу ссылку на источник. В хелпах не нашел. Программы используются на многих машинах, баги с этой библиотекой ни разу не возникали.

Re: Как реализовать запись в текстовый файл?

> Воха
прошу ссылку на источник
В каком смысле ссылку?
Tools->References->Microsoft Scripting Runtime(file: scrrun.dll)
Затем открываешь Object Browser -> Scripting и обозреваешь объектную модель подключенной библиотеки.
То что баги не возникали - хорошо, по идее так оно и должно быть, но не всегда бывает.
По своему опыту знаю, что при работе циклов (несколько тысяч элементов) ощущается заметное снижение быстродействия. Я использовал другой ActiveX Object, но технология та же.
Кстати такой стиль объявления переменных -
Dim fs, f, ts, s -
это тоже одна из причин замедления работы программы.
По поводу низкоуровневых функций ввода-вывода файлов. Ты прав, они пришли из глубины веков. Специалисты утверждают, что они появились еще до изобретения компьютера. Ну и что? А работают как зверь. И в чем же выражается их постепенный уход в прошлое?