Что нового

[Время, дата] Сравнение системной даты и имени файла

fortages

Новичок
Сообщения
81
Репутация
3
Добрый день.

Подскажите, пожалуйста, как быть.
Ситуация следующая:
Есть набор папок, в папках есть текстовые файлы с именами "по дате": 19.09.2014.txt, 20.09.2014.txt и так далее.
Нужно чтобы в определенный день функция открывала и обрабатывала именно те файлы, которые соответствуют сегодняшней дате. Например, если сегодня 24 сентября, то функция работает только с файлом 24.09.2014.txt, а все остальные (за предыдущие и будущие даты) игнорирует.

Чтоб было нагляднее, сделала картинку:



Функция работы с файлом (на один день) для раздела CATS такая:
Код:
$catsfile = "E:\TOPICS\CATS\19092014.txt"
FileOpen($catsfile file, 0)

$nametopic = FileReadLine($catsfile , 1)
FileOpen($catsfile , 0)

$CopyFile = FileRead($catsfile)
Send($CopyFile)

FileClose($catsfile)



Функция работы с файлом (также на один день) для другого раздела DOGS точно такая же, только меняется путь к файлу и имя переменной изменено на $dogsfile.

А вот как сделать проверку текущей даты и сопоставить ее с названием файла, ума не приложу. :'( Смотрю на функции работы с датой (https://www.autoitscript.com/autoit3/docs/libfunctions/Date%20Management.htm) и путаюсь, какую применить.
Код:
_Date_Time_SetFileTime
не подойдет, потому что устанавливает дату, когда файл был создан. А у меня файлы ведь наперед все создаются, заранее.
Код:
_Date_Time_FileTimeToSystemTime
тоже, вроде бы, не то.
Подскажите, пожалуйста. Что-то я запуталась...
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
fortages [?]
как сделать проверку текущей даты и сопоставить ее с названием файла
Код:
$Dir = "E:\TOPICS\CATS\"
$FileName = @MDAY & "." & @MON & "." & @YEAR & ".txt"
If FileExists($Dir & $FileName) Then
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
fortages,
Если я Вас правильно понял.
Код:
Local $sFileName = StringFormat('%s.%s.%s.txt', @MDAY, @MON, @YEAR), $aDirs[4] = [3, 'Dir1', 'Dir2', 'Dir3'], $sPath

For $i = 1 To $aDirs[0]
	$sPath = @ScriptDir & '\' & $aDirs[$i] & '\' & $sFileName
	ConsoleWrite($sPath & @LF)
	If FileExists($sPath) Then
;~ 		делайте с этими файлами то, что Вам надо
	Else
		ConsoleWrite('Нет такого файла' & @LF)
	EndIf
Next
Код:
#include <Date.au3>

Local $tTime, $sFileName, $aDirs[4] = [3, 'Dir1', 'Dir2', 'Dir3'], $sPath

$tTime = _Date_Time_GetSystemTime()
$sFileName = StringFormat('%02d.%02d.%04d.txt', DllStructGetData($tTime, 'Day'), DllStructGetData($tTime, 'Month'), DllStructGetData($tTime, 'Year'))
$tTime = 0
For $i = 1 To $aDirs[0]
	$sPath = @ScriptDir & '\' & $aDirs[$i] & '\' & $sFileName
	ConsoleWrite($sPath & @LF)
	If FileExists($sPath) Then
;~ 		делайте с этими файлами то, что Вам надо
	Else
		ConsoleWrite('Нет такого файла' & @LF)
	EndIf
Next
 
Автор
fortages

fortages

Новичок
Сообщения
81
Репутация
3
madmasles, прошу прощения, что долго не отвечала - грозы, не было интернета.
Огромнейшее спасибо, все заработало. Благодарю. :-[
 
Верх