Компьютерный форум 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=239672)

RadioSys 31-07-2012 11:01 1961968

Изменение времени строк в текстовом файле на определенную величину
 
Добрый день!

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

Пример файла:

Код:

17.07.2012 00:19:00        ""
17.07.2012 00:52:00        ""
17.07.2012 01:19:00        ""
17.07.2012 01:52:00        ""
17.07.2012 02:19:00        ""
17.07.2012 02:52:00        ""
17.07.2012 03:19:00        ""
17.07.2012 03:52:00        ""
17.07.2012 04:19:00        ""
17.07.2012 04:52:00        ""
и т. д. до 24 часов

Необходимо увеличить время на четыре часа:

Код:

17.07.2012 04:19:00        ""
17.07.2012 04:52:00        ""
17.07.2012 05:19:00        ""
17.07.2012 05:52:00        ""
17.07.2012 06:19:00        ""
17.07.2012 06:52:00        ""
17.07.2012 07:19:00        ""
17.07.2012 07:52:00        ""
17.07.2012 08:19:00        ""
17.07.2012 08:52:00        ""

и т. д.

Форматы файлов неизменны, кодировка неизменна (CP1251).

Заранее спасибо.

DmitriiV 31-07-2012 12:21 1962052

Пример для обработки одной строки:
Код:

strTemp = "17.07.2012 20:52:00        """""
arrTemp = Split(strTemp, ":00")
strTemp = DateAdd("h", 4, arrTemp(0))
WScript.Echo FormatDateTime(strTemp, 2) & " " & FormatDateTime(strTemp, 4) & ":00" & arrTemp(1)

С файловыми операциями и циклом самостоятельно управитесь?

RadioSys 31-07-2012 12:38 1962065

Спасибо большое!

Самостоятельно не управлюсь :-(. Только учусь.

DmitriiV 31-07-2012 15:23 1962165

Например, так:
Код:

Dim objFS, objFile, arrData, arrTemp, strTemp
strPath = "D:\Temp\log.txt"
Set objFS = CreateObject("Scripting.FileSystemObject")
If objFS.FileExists(strPath) Then
    Set objFile = objFS.OpenTextFile(strPath, 1)
    arrData = Split(objFile.ReadAll, vbNewLine)
    objFile.Close
    For i = 0 To UBound(arrData)
        If Len(arrData(i)) > 0 Then
            If InStr(arrData(i), ":00") > 0 Then
                arrTemp = Split(arrData(i), ":00")
                strTemp = DateAdd("h", 4, arrTemp(0))
                arrData(i) = FormatDateTime(strTemp, 2) & " " & FormatDateTime(strTemp, 4) & ":00" & arrTemp(1)
            End If
        End If
    Next
    Set objFile = objFS.OpenTextFile(strPath, 2, True)
    For i = 0 To UBound(arrData)
        objFile.WriteLine arrData(i)
    Next
    Erase arrData
    objFile.Close
    Set objFile = Nothing
    WScript.Echo "Готово."
Else
    WScript.Echo "Не найден путь " & strPath
End If
Set objFS = Nothing
WScript.Quit 0


RadioSys 31-07-2012 15:43 1962177

Спасибо большое!

Работает!!!! Буду разбирать построчно и "мотать на ус".

NoIZz 31-07-2012 17:10 1962222

Было бы неплохо увидеть это в комманд-шелле

Iska 31-07-2012 20:22 1962294

Цитата:

Цитата NoIZz
Было бы неплохо увидеть это в комманд-шелле »

Зачем?


Время: 19:56.

Время: 19:56.
© OSzone.net 2001-