Что нового

Сравнение даты

Nefakt

Новичок
Сообщения
74
Репутация
3
Всем привет.
Такой вопрос
Как можно сравнить дату компьютера с датой которая прописана в .ini файле
И если они совпадут вывести сообщение.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Автор
Nefakt

Nefakt

Новичок
Сообщения
74
Репутация
3
Спасибо помогло.


Добавлено:
Сообщение автоматически объединено:

Немного поспешил.
В общем проблема в том что данный скрипт работает немного не так.
В ini я добавил несколько пунктов с разными датами.
Данный скрипт видит только даты которые будут а сегодняшнюю дату он не видит почему то.

Как решить?
 

joiner

Модератор
Локальный модератор
Сообщения
3,570
Репутация
632
если несколько дат записано в одной секции, то использовать
Код:

получишь массив , потом в цикле сравнивай.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Nefakt [?]
В ini я добавил несколько пунктов с разными датами.
Наличие двух одинаковых ключей в одной секции недопустимо (будет прочитан только последний первый ключ).
При наличии нескольких секций с одинаковым именем, прочитана будет лишь последняя первая секция .
 
Автор
Nefakt

Nefakt

Новичок
Сообщения
74
Репутация
3
IniReadSection я использую .
Ini такого вида
Код:
[Date]
Test = 28.09.2014
Date = 29.09.2014
Date 2 = 30.09.2014
Test1 = 29.09.2014
Буду дома выложу сам код как беру значения из ini и сравниваю его.
 
Автор
Nefakt

Nefakt

Новичок
Сообщения
74
Репутация
3
Вот какой у меня код
Код:
$sDatePC = StringFormat('%.02d.%.02d.%.04d', @MDAY, @MON, @YEAR)
While 1
$varq = IniReadSection(@ScriptDir & '\settings.ini', 'Date')
If @error Then
    MsgBox(4096, "", "Произошла ошибка, возможно отсутствует INI-файл.")
Else
    For $i = 1 To $varq[0][0]
		$date = $varq[$i][0]
		$sDateINI =IniRead(@ScriptDir & '\settings.ini', "Date", $date, "")

		If $sDateINI == $sDatePC Then
 		MsgBox(8192+16, "",  $date)
		IniDelete ( @ScriptDir & '\settings.ini', "Date" , $date )
		EndIf
	Next
EndIf
Sleep(1000)
WEnd



Добавлено:
Сообщение автоматически объединено:

joiner
Спасибо работает. В принципе код от Garrett похож на твой но почему то работал немного не так.
Странно...
Ну все равно спасибо всем кто помог.
 

InnI

AutoIT Гуру
Сообщения
4,969
Репутация
1,459
Garrett [?]
будет прочитан только последний ключ [...] прочитана будет лишь последняя секция
Тесты говорят об обратном - только первый ключ и первая секция будут прочитаны.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Nefakt [?]
В принципе код от Garrett похож на твой но почему то работал немного не так.
Читайте справку!!!
Код:
$sDateINI = IniRead( "settings.ini", "Date", "Date 2", "default")
$sDatePC = StringFormat('%.02d.%.02d.%.04d', @MDAY, @MON, @YEAR)
If $sDateINI == $sDatePC Then
   ConsoleWrite('>Ok!' & @CR)
EndIf


Вами был задан вопрос:
Nefakt [?]
Как можно сравнить дату компьютера с датой которая прописана в .ini файлеИ если они совпадут вывести сообщение.

И я считаю, что дал вам исчерпывающий ответ!
Но, вместо того чтобы самообразовываться вы начинаете вести себя как первоклассник, которому предстоит постичь тайны логического мышления!

Прочтите, может поможет?!
Искусство правильно мыслить


Добавлено:
Сообщение автоматически объединено:

InnI [?]
Тесты говорят об обратном
Да вы правы, ошибся. Первый найденный ключ или секция.
 

InnI

AutoIT Гуру
Сообщения
4,969
Репутация
1,459
В wikipedia тоже указано, что, согласно соглашениям, обрабатываются последние ключ и секция. Вероятно, AutoIt данных соглашений не придерживается.
 
Верх