Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Добавить в первую строку текстового файла его имя и дату

Ответить
Настройки темы
VBS/WSH/JS - Добавить в первую строку текстового файла его имя и дату

Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Подскажите метод для JS или VBS как добавить к текстовому файлу первую строку.
А то не очень хочется считывать в массив и записывать обратно.
Может быть есть решение попроще ?

Отправлено: 17:49, 01-07-2011

 

Ветеран


Contributor


Сообщения: 2721
Благодарности: 1692

Профиль | Отправить PM | Цитировать


Vbs: Прочитать файл в строковую переменную (ReadAll)- закрыть его - прибавить впереди что нужно+ vbCrLf -записать вместо имеющегося файла (Write). Массив не нужен. Проще сделать не удастся.В конец файла дописать что-то можно, в начало - никак иначе. Что-то похожее сделано
Цитата megaloman:
здесь »
Код: Выделить весь код
fTxt1 = "d:\Delete\Целевой файл.txt"    ' Где Исходный текстовый файл

Set FSO = CreateObject("Scripting.FileSystemObject")

Plus = CStr(Now) + "   """ + FSO.GetFileName(fTxt1) + """   создан  " + CStr(FSO.GetFile(fTxt1).DateCreated)

Set F = FSO.OpenTextFile(fTxt1, 1)
S = F.ReadAll
F.Close

Set F = FSO.CreateTextFile(fTxt1, True)
F.Write Plus + vbCrLf + S
F.Close
Аналогично js.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 02-07-2011 в 11:29.


Отправлено: 18:06, 01-07-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 78
Благодарности: 23

Профиль | Отправить PM | Цитировать


Цитата SergeyVD:
Добавить в первую строку текстового файла его имя и дату »

Код: Выделить весь код
Dim fso, f 
Set fso = CreateObject("Scripting.FileSystemObject") 

myDate=Right("0" & Day(Date), 2)&"."& Right("0" & Month(Date), 2)&"."&Year(Date)

Set f = fso.OpenTextFile("C:\Users\OSA\Desktop\test.txt", 1) 'заменить путь
ReadAllTextFile = f.ReadAll 

Set f = fso.OpenTextFile("C:\Users\OSA\Desktop\test.txt", 2, True) 
f.WriteLine("test.txt" & "_" & myDate) 
f.Write(ReadAllTextFile) 

MsgBox "Готово!"

Отправлено: 18:17, 01-07-2011 | #3


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


Не надо пытаться считывать произвольный файл в память, работаете с диском!

Отправлено: 09:17, 05-07-2011 | #4


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


А можно поподробнее про работу с файлом. Ибо действительно возникают плавающие ошибки при считывании-записи ReadAll-Write.

Отправлено: 16:37, 06-07-2011 | #5


Ветеран


Contributor


Сообщения: 2721
Благодарности: 1692

Профиль | Отправить PM | Цитировать


Busla, Не такой уж он произвольный, этот файл. И не вижу причин, почему бы не прочесть его в память, тут уж надо задачу уточнять, насколько он велик. Другое дело, повысить надёжность можно, если записать результат не в исходный файл, а, в, например, .TMP в этой же папке, с последующим его переименованием (перемещением) в исходный файл - то есть проделать то же, что придётся проделать при работе с файлом - иметь одновременно 2 файла: исходный и результат. При некотором стечении обстоятельств в обоих случаях одинаково можно получить неприятность при переименовании (перемещении).
Цитата:
возникают плавающие ошибки
- что имеется ввиду? В коде OSArev, мне не понравилось, что файл после чтения не закрыт. Не уверен, что это корректно. Буду благодарен за разъяснение.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:38, 06-07-2011 | #6


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата megaloman:
В коде OSArev, мне не понравилось, что файл после чтения не закрыт. Не уверен, что это корректно. Буду благодарен за разъяснение. »
При завершении скрипта все файлы, открытые посредством FSO, закрываются. А так — да, нужно закрывать: кто его знает, куда этот код будет вставлен.

Отправлено: 20:06, 06-07-2011 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Добавить в первую строку текстового файла его имя и дату

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Поиск текстового файла по его содержимому Elektronik063 Скриптовые языки администрирования Windows 1 15-02-2011 03:35
MSFT SQL Server - результаты запроса в виде текстового файла и его обработка minusodin Программирование и базы данных 7 30-03-2010 15:48
CMD/BAT - [решено] Создание текстового файла при условии его отсутствия в папке spilberg Скриптовые языки администрирования Windows 1 12-07-2009 15:58
CMD/BAT - [решено] Как скопировать имя файла из текстового файла в код батника и т.д. Nun-Nun Скриптовые языки администрирования Windows 6 13-05-2009 13:28
как бы добавить в переменные имя ключа реестра и его значение ? mitiya Программирование и базы данных 21 23-04-2008 11:54




 
Переход