Вверх ↑
Этот топик читают: Гость
Ответов: 34
Рейтинг: 0
#1: 2018-10-24 12:33:12 ЛС | профиль | цитата
Думал как реализовать следующую схему, допустим есть ини файл в который записывается дата и время в формате как у компонента TIME, т.е. вывел одинаковый формат из ини и из компонента TIME.
Хочу сделать так что бы прога каждые 5 минут считывала время и дату из ини файла и сравнивала ее с текущем временем в системе, и если разница между ини файлом и временем системы более 5 минут, то выполнялось определенной действие.
Пока что пришло в голову накидал схему, но непонимаю пока как задать сравнения так что бы прога могла отсчитать 5 минут, т.е. для нее в данный момент это просто два текста который между собой сравнивает, и если он не 100% одинаковый то всегда будет неравенство, а нужно что бы неравенство было при условии что только если разница больше 5 минут.

Add(Time,3343087,658,84)
{
Format="D:M:Y.h:m:s"
Point(DateTime)
}
Add(Ini,16232663,700,224)
{
FileName="C:\distr\yandexdisk\log\DESKTOP-GO0C4E5.ini"
Section="Signal"
Key="DT"
Type=1
link(onResult,7871936:doValue,[(744,230)(744,90)])
}
Add(If_else,8011879,651,168)
{
Type=3
link(onTrue,13523858:doMessage,[(786,174)(786,153)])
link(onFalse,15246099:doMessage,[(789,181)(789,223)])
link(Op1,7871936:Value,[(657,156)(755,156)])
link(Op2,3343087:FormatTime,[])
}
Add(Button,9993343,518,168)
{
Left=65
Top=30
link(onClick,5155244:doEvent1,[(580,174)(580,223)])
}
Add(Memory,7871936,749,84)
{
}
Add(Message,13523858,889,147)
{
Message="ВСЕ ХОРОШО"
Icon=4
}
Add(Message,15246099,896,217)
{
Message="Все плохо не сходится"
Icon=4
}
Add(Hub,5155244,609,217)
{
link(onEvent1,8011879:doCompare,[(637,223)(637,174)])
link(onEvent2,16232663:doRead,[])
}

карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 2193
Рейтинг: 673
#2: 2018-10-24 13:39:52 ЛС | профиль | цитата
ZloiDed, есть компонент DateDiff: Вычисление разницы между двумя датами, находится в вкладке Система\Дата-время. Дату в формат Real можно перевести компонентом DateConvertor: Конвертор даты-времени, находится в вкладке Инструменты\Конверторы.
И думаю что не нужно каждые пять минут читать\записывать ini файл. Достаточно при запуске программы один раз прочитать данные из ini файла, и при закрытии программы записать данные в ini файл.

Редактировалось 2 раз(а), последний 2018-10-24 13:42:13
карма: 10

0
Ответов: 34
Рейтинг: 0
#3: 2018-10-24 15:49:53 ЛС | профиль | цитата
sla8a писал(а):
ZloiDed, есть компонент DateDiff: Вычисление разницы между двумя датами, находится в вкладке Система\Дата-время. Дату в формат Real можно перевести компонентом DateConvertor: Конвертор даты-времени, находится в вкладке Инструменты\Конверторы.
И думаю что не нужно каждые пять минут читать\записывать ini файл. Достаточно при запуске программы один раз прочитать данные из ini файла, и при закрытии программы записать данные в ini файл.

Вот у меня есть ини с такой строкой
[Signal]
DT=24.10.2018.12:10:25
в конвертере сделал формат dd.MM.yyyy.HH:mm
режим поставил HeapIntToDateReal правильно? потому что у меня на выходе появляется какое то короткое число 8400, в то время как real с компонента TIME идет такой 736991.655996643

Полагаю что неверно режим указан?

Add(Time,3343087,672,259)
{
Format="D:M:Y.h:m:s"
Point(DateTime)
}
Add(Button,4624147,595,308)
{
Left=25
Top=155
Width=125
Height=30
Caption="Получить данные ТАЙМ"
link(onClick,16083268:doSwitch,[])
}
Add(Ini,16232663,700,224)
{
FileName="C:\distr\yandexdisk\log\DESKTOP-GO0C4E5.ini"
Section="Signal"
Key="DT"
Type=1
link(onResult,14810204:doConvert,[])
}
Add(Button,9993343,532,217)
{
Left=20
Top=30
Width=135
Height=35
Caption="Получить данные ИНИ"
link(onClick,5155244:doEvent1,[])
}
Add(Hub,5155244,609,217)
{
link(onEvent2,16232663:doRead,[])
}
Add(DateConvertor,14810204,763,224)
{
Mode=1
Format="dd.MM.yyyy.HH:mm"
link(onResult,15557200:doText,[])
}
Add(Edit,15557200,847,224)
{
Left=200
Top=35
Width=155
Height=30
}
Add(Edit,8411816,847,308)
{
Left=200
Top=140
Width=170
Height=50
}
Add(Switch,16083268,679,308)
{
Point(DataOn)
link(onSwitch,8411816:doText,[])
link(DataOn,3343087:DateTime,[])
}

карма: 0

0
Ответов: 233
Рейтинг: 12
#4: 2018-10-24 15:53:36 ЛС | профиль | цитата
Объясни задачу свою... для чего в ini писать дату одной прогой и читать другой? Может для тебя есть легкое решение.
карма: 2

0
Ответов: 2193
Рейтинг: 673
#5: 2018-10-24 16:08:30 ЛС | профиль | цитата
ZloiDed писал(а):
Полагаю что неверно режим указан?
Смотрите StrFmtToDateReal.
Add(MainForm,2953706,315,196)
{
Width=535
Height=336
Position=1
link(onCreate,7381605:doData,[])
}
Add(DateConvertor,14810204,413,210)
{
Mode=8
Format="dd.MM.yyyy.HH:mm"
Point(Data)
Point(Result)
}
Add(Time,3343087,469,210)
{
Format="D:M:Y.h:m:s"
Point(DateTime)
}
Add(DoData,7381605,364,210)
{
Data=String(12.4.2018.9:34:34)
link(onEventData,14810204:doConvert,[])
AddHint(-39,-42,112,13,Data)
}
Add(Timer,13496352,427,287)
{
link(onTimer,329977:doCalc,[])
}
Add(DateDiff,329977,469,287)
{
link(onCalc,7292714:doString,[])
link(DateTime1,14810204:Result,[(475,265)(419,265)])
link(DateTime2,3343087:DateTime,[])
}
Add(Label,8085276,560,287)
{
Left=125
Top=140
}
Add(FormatStr,7292714,511,287)
{
DataCount=5
Mask="Прошло:%2 дня %3 часа %4 минуты %5 секунд"
link(onFString,8085276:doText,[])
}

Редактировалось 1 раз(а), последний 2018-10-24 16:09:37
карма: 10

0
Ответов: 34
Рейтинг: 0
#6: 2018-10-24 17:48:23 ЛС | профиль | цитата
Iliya писал(а):
Объясни задачу свою... для чего в ini писать дату одной прогой и читать другой? Может для тебя есть легкое решение.

Писать он этой же прогой будет, просто надо что бы ИНИ был с читабельной датой, все получилось.
карма: 0

0
6
Сообщение
...
Прикрепленные файлы
(файлы не залиты)