Вопрос № 82859: Пожалуста, кто может, покажите, как создать текстовый файл, добавить в него несколько строк и сохранить в нужном месте?...
Вопрос № 82.859
Пожалуста, кто может, покажите, как создать текстовый файл, добавить в него несколько строк и сохранить в нужном месте?
Отправлен: 16.04.2007, 21:32
Вопрос задал: Beruboi (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 6)
Отвечает: Alec Perle
Здравствуйте, Beruboi!
Практически классическими операторами Basic. См. код в приложении. Папка D:VBPrimer должна существовать.
Приложение:
--------- Пессимист - это хорошо информированный оптимист (а оптимист - хорошо проинструктированный пессимист)
Ответ отправил: Alec Perle (статус: 7-ой класс)
Ответ отправлен: 16.04.2007, 21:48 Оценка за ответ: 5 Комментарий оценки: Замечательный ответ, но второй ещё лучше, самое то, без изменений вставляю в свой код!!! Благодарность объявляю Вам!
Отвечает: Филатов Евгений Геннадьевич
Здравствуйте, Beruboi!
Если нужно создать текстовый файл из программы на VB, то пример в приложении.
Используется инструкция :
Open путь For режим [ Access доступ ] [ блокировка ] As [ # ] номерФайла [ Len=длина ]
Ограничение на длину файла 32767 байт, и после ввода обязательно закрыть инструкцией Close.
Для уточнения констант посмотрите справку на эти инструкции.
По-умолчанию текст сохранится в Windows-кодировке. Чтобы сохранить в DOS-кодировке необходимо преобразование символов - для этого я пользуюсь созданной DLL ( если текст только на английском языке, то преобразование не нужно ) .
Во втором примере создается bat файл и запускается на выполнение. Возвращаемое значение функции Shell представляет собой идентификатор программы. Можно использовать для приостановки выполнения текущей программы до окончания выполнения запущенного bat файла ( используется API и немного сложнее код программы ) .
С уважением.
Приложение:
Ответ отправил: Филатов Евгений Геннадьевич (статус: 7-ой класс)
Ответ отправлен: 16.04.2007, 22:06 Оценка за ответ: 4 Комментарий оценки: Очень объёмно, больше чем я хотел узнать:), но в будущем, конечно, пригодится. Немного не понятно(айкью у меня наверное низковат:)) и наверное глупость сделал, но запустил этот код в Бейсике, так он выдал еггог: "инвалид оутсайд процедур" на слово Set... Такие пироги...
Отвечает: PsySex
Здравствуйте, Beruboi!
Файл создается автоматически, если файл уже существует, то работа идет с существующим файлом.
=====================================
Open "c: est.txt" For Output As #1
'Open "c: est.txt" For Append As #1
Print #1, "First Message"+vbCrLf
Print #1, "Second Message"
Close #1
=====================================
При открытии(создании) файла таким образом строки помещаются с начала документа. Если же открывать файл с флагом "For Append"(закоментированная строка), то строки будут добавляться к концу файла. vbCrLf - переход на следующую строку.
--------------------------------------------------------
По поводу минифорума. А где цикл-то сам??
Вообщем сначала в цикле формируйте текстовую переменную, а потом используйте:
For fi = 20 To 27
sReportedString = sReportedString + Str(fi) + vbCrLf
'...
Next fi
Open "c:eport.txt" For Output As #1
Print #1, sReportedString
Close #1
---------------------
Кстати, Chr$(13) + Chr$(10) тоже самое, что vbCrLf
--------- Bom Shankar!
Ответ отправил: PsySex (статус: Практикант)
Ответ отправлен: 16.04.2007, 22:09 Оценка за ответ: 5 Комментарий оценки: Замечательно! Append помог, причём +vbCrLf писать вовсе не обязательно, режим доступа Append и так с новой строки добавляет символы. >Кстати, Chr$(13) + Chr$(10) тоже самое, что vbCrLf Новость для меня, благодарю, буду пользоваться.
Отвечает: AlbusFalco
Здравствуйте, Beruboi!
Open Путь_и_имя файла For Режим_открытия_файла as #номер_потока
Print #номер_потока, "строка"
Close #номер_потока
Режим_открытия_файла: Append, Binary, Output, или Random
Если вместо Append использовать Output, то файл (если он уже существует) будет перезатираться, а при Append строки будут добавляться в конец файла.
Приложение:
Ответ отправил: AlbusFalco (статус: 1-ый класс)
Ответ отправлен: 17.04.2007, 11:02 Оценка за ответ: 4 Комментарий оценки: Тема раскрыта. Но уже не актуально...