Показать полную графическую версию : Добавить в первую строку текстового файла его имя и дату
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.
Добавить в первую строку текстового файла его имя и дату »
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 "Готово!"
Не надо пытаться считывать произвольный файл в память, работаете с диском!
SergeyVD
06-07-2011, 16:37
А можно поподробнее про работу с файлом. Ибо действительно возникают плавающие ошибки при считывании-записи ReadAll-Write.
megaloman
06-07-2011, 19:38
Busla, Не такой уж он произвольный, этот файл. И не вижу причин, почему бы не прочесть его в память, тут уж надо задачу уточнять, насколько он велик. Другое дело, повысить надёжность можно, если записать результат не в исходный файл, а, в, например, .TMP в этой же папке, с последующим его переименованием (перемещением) в исходный файл - то есть проделать то же, что придётся проделать при работе с файлом - иметь одновременно 2 файла: исходный и результат. При некотором стечении обстоятельств в обоих случаях одинаково можно получить неприятность при переименовании (перемещении). возникают плавающие ошибки - что имеется ввиду? В коде OSArev, мне не понравилось, что файл после чтения не закрыт. Не уверен, что это корректно. Буду благодарен за разъяснение.
В коде OSArev, мне не понравилось, что файл после чтения не закрыт. Не уверен, что это корректно. Буду благодарен за разъяснение. »
При завершении скрипта все файлы, открытые посредством FSO, закрываются. А так — да, нужно закрывать: кто его знает, куда этот код будет вставлен.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.