Войти

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


SergeyVD
01-07-2011, 17:49
Подскажите метод для JS или VBS как добавить к текстовому файлу первую строку.
А то не очень хочется считывать в массив и записывать обратно.
Может быть есть решение попроще ?

megaloman
01-07-2011, 18:06
Vbs: Прочитать файл в строковую переменную (ReadAll)- закрыть его - прибавить впереди что нужно+ vbCrLf -записать вместо имеющегося файла (Write). Массив не нужен. Проще сделать не удастся.В конец файла дописать что-то можно, в начало - никак иначе. Что-то похожее сделано здесь »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
Добавить в первую строку текстового файла его имя и дату »



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
Не надо пытаться считывать произвольный файл в память, работаете с диском!

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

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

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




© OSzone.net 2001-2012