Что нового

Вычисление разницы во времени в файле txt

Ragn

Новичок
Сообщения
48
Репутация
0
Здравствуйте, уважаемы форумчане.
Помогите решить проблему.

Как двумя скриптами 1.au3 и 2.au3 при их срабатывании - записать в один "файл.txt" текст построчно ?
Запись - через Tab.
Первый скрипт записывает в строке: "1", tab, текущая дата, tab, текущее время, tab
Второй скрипт - то же самое, но в начале строки - "2".

Действует условие: Если строка начинается с "2" - то нужно вычислить разницу во времени (в минутах) в отношении ближайшей верхней строки. И через Tab - записать.
Получится вот такой текст в документе "файл.txt":
1 04.11.18 15:30
2 04.11.18 15:34 4
1 04.12.18 09:23
2 04.12.18 09:40 17
1 04.13.18 12:45
2 04.13.18 12:48 3
1 04.16.18 03:01
2 04.16.18 03:29 28
1 04.21.18 21:05
2 04.21.18 21:11 6

Ссылка на файл:
dropmefiles.com/ujg7x
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Попробуйте так (это не окончательный вариант - нет проверок на ошибки итд )
Скрипт 1
Код:
#include <Date.au3>

FileWrite('File.txt', '1' & @TAB & _NowDate() & @TAB & _NowTime() & @CRLF)


Скрипт 2
Код:
#include <Date.au3>

Local $TimeDif = ''
$FileData = StringSplit(FileReadLine('File.txt', -1), @TAB)
$StartData=StringRegExpReplace($FileData[2], '(\d{2}).(\d{2}).(\d{4})', '$3/$2/$1')&' '& $FileData[3]
If $FileData[1] = 1 Then $TimeDif = _DateDiff('n',$StartData,_NowCalc())
FileWrite('File.txt', '2' & @TAB & _NowDate() & @TAB & _NowTime() & @TAB & $TimeDif & @CRLF)
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Я , вероятно не верно понял условие и считал время , только , если перед строкой 2 была строка 1 , если не важно, что перед строкой 2 , то ещё проще:
Код:
#include <Date.au3>

Local $TimeDif = ''
$FileData = StringSplit(FileReadLine('File.txt', -1), @TAB)
$StartData=StringRegExpReplace($FileData[2], '(\d{2}).(\d{2}).(\d{4})', '$3/$2/$1')&' '& $FileData[3]
$TimeDif = _DateDiff('n',$StartData,_NowCalc())
FileWrite('File.txt', '2' & @TAB & _NowDate() & @TAB & _NowTime() & @TAB & $TimeDif & @CRLF)

если нужно искать последнюю строку с 1 , то нужно её искать тогда,Ragn,уточните.
 
Автор
R

Ragn

Новичок
Сообщения
48
Репутация
0
Первый вариант - нормально работает.
Спасибо.
 
Верх