Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Добавить в первую строку текстового файла его имя и дату (http://forum.oszone.net/showthread.php?t=210301)

SergeyVD 01-07-2011 17:49 1705312

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

megaloman 01-07-2011 18:06 1705321

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.

OSArev 01-07-2011 18:17 1705324

Цитата:

Цитата 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 "Готово!"


Busla 05-07-2011 09:17 1707174

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

SergeyVD 06-07-2011 16:37 1708352

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

megaloman 06-07-2011 19:38 1708449

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

возникают плавающие ошибки
- что имеется ввиду? В коде OSArev, мне не понравилось, что файл после чтения не закрыт. Не уверен, что это корректно. Буду благодарен за разъяснение.

Iska 06-07-2011 20:06 1708461

Цитата:

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

При завершении скрипта все файлы, открытые посредством FSO, закрываются. А так — да, нужно закрывать: кто его знает, куда этот код будет вставлен.


Время: 01:07.

Время: 01:07.
© OSzone.net 2001-