Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Вставка диапазона дат в текстовый файл

Ответить
Настройки темы
[решено] Вставка диапазона дат в текстовый файл

Новый участник


Сообщения: 17
Благодарности: 0

Профиль | Отправить PM | Цитировать


Всем привет. Помогите реализовать следующий финт.
Есть текстовый файл.

VERSION 2
BITMAP 2,50 1,75 1,50 2,00 "Логотип.bmp"
TEXT 10 5,25 4,25 "Интервал исследования: 23.06.12 0:00 - 24.06.12 0:00" clBlack
TEXT 10 2,25 5,25 "Страна: Россия" clBlack

И вот как-бы так настроить чтобы менять дату автоматом, например при запуске скрипта 25.06.2012, чтобы он проставлял 25.06.12 0:00 - 26.06.12 0:00 и т.д.

Может кто помочь? Вероятно можно обойтись и без аутоит?

Отправлено: 21:23, 24-06-2012

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


irk72ag, для начала укажите потребную кодировку текстового файла.

Отправлено: 22:04, 24-06-2012 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 17
Благодарности: 0

Профиль | Отправить PM | Цитировать


1251 вроде как. Я не большой спец. В обычном виндовом блокноте открывается. В просмотрщике от тотал коммандера кажет анси и 1251.
Пардон если кого насмешил своими познаниями.

Последний раз редактировалось irk72ag, 24-06-2012 в 22:51. Причина: 1251


Отправлено: 22:50, 24-06-2012 | #3


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


irk72ag,
Попробуйте примерно так.
Код: Выделить весь код
#include <Date.au3>

$sFile = @ScriptDir & '\test.txt'
$sReplace = @MDAY & '.' & @MON & '.' & StringRight(@YEAR, 2) & ' 0:00 - ' & StringRegExpReplace(_DateAdd('D', 1, @YEAR & '/' & @MON & '/' & @MDAY), '^\d{2}(\d{2})/(\d{2})/(\d{2}).*$', '$3.$2.$1 0:00')
$iCode = FileGetEncoding($sFile)
$hFile = FileOpen($sFile, $iCode)
If $hFile = -1 Then Exit -33
$sText = FileRead($hFile)
FileClose($hFile)
$sText = StringRegExpReplace($sText, '(?s)^(.*?)\d{2}\.\d{2}\.\d{2}\s0:00\s-\s\d{2}\.\d{2}\.\d{2}\s0:00(.*?)$', '${1}' & $sReplace & '$2')
If @extended <> 2 Then Exit -44
$hFile = FileOpen($sFile, $iCode + 2)
If $hFile = -1 Then Exit -55
FileWrite($hFile, $sText)
FileClose($hFile)

Последний раз редактировалось madmasles, 24-06-2012 в 23:12.

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:07, 24-06-2012 | #4


Новый участник


Сообщения: 17
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо! Работает. Сейчас буду адаптировать и применять на практике.
Наш девиз - меньше ненужных телодвижений.

Есть вопрос, как правильно прописать, если нужно менять дату не в одном файле а сразу в нескольких?
Я, конечно сделал по топорному, просто продублировав скрипт для второго файла, но может можно элегантнее?

И еще вопрос, если не трудно подскажите где и что подправить, если мне нужно будет получить другое смещение времени?
К примеру мне еще нужно при запуске 25.06.12, чтобы дата прописалась 24.06.12 0:00 - 25.06.12 0:00

Последний раз редактировалось irk72ag, 25-06-2012 в 00:07.


Отправлено: 23:50, 24-06-2012 | #5


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


irk72ag,
Попробуйте так, особо не тестировал.
Код: Выделить весь код
#include <Date.au3>

Dim $aFileName[4] = [3, 'test.txt', '1_test.txt', '2_test.txt'], $sDir = @ScriptDir, $iOffsetDays = 5

For $i = 1 To $aFileName[0]
	$iCode = FileGetEncoding($sDir & '\' & $aFileName[$i])
	$hFile = FileOpen($sDir & '\' & $aFileName[$i], $iCode)
	If $hFile = -1 Then ContinueLoop
	$sText = FileRead($hFile)
	FileClose($hFile)
	_ReplaceDatePeriod($sText, $iOffsetDays)
	If @error Then ContinueLoop
	$hFile = FileOpen($sDir & '\' & $aFileName[$i], $iCode + 2)
	If $hFile = -1 Then ContinueLoop
	FileWrite($hFile, $sText)
	FileClose($hFile)
Next

Func _ReplaceDatePeriod(ByRef $s_Text, $i_OffsetDays = 0)
	Local $s_Start, $s_Start_1, $s_Replace
	If Not StringRegExp($s_Text, '\d{2}\.\d{2}\.\d{2}\s0:00\s-\s\d{2}\.\d{2}\.\d{2}\s0:00') Then Return SetError(1)
	$i_OffsetDays = Int($i_OffsetDays)
	If $i_OffsetDays Then
		$s_Start = _DateAdd('D', $i_OffsetDays, @YEAR & '/' & @MON & '/' & @MDAY)
		$s_Start_1 = StringRegExpReplace($s_Start, '^\d{2}(\d{2})/(\d{2})/(\d{2}).*$', '$3.$2.$1 0:00 - ')
	Else
		$s_Start = @YEAR & '/' & @MON & '/' & @MDAY
		$s_Start_1 = @MDAY & '.' & @MON & '.' & StringRight(@YEAR, 2) & ' 0:00 - '
	EndIf
	$s_Replace = $s_Start_1 & StringRegExpReplace(_DateAdd('D', 1, $s_Start), '^\d{2}(\d{2})/(\d{2})/(\d{2}).*$', '$3.$2.$1 0:00')
	$s_Text = StringRegExpReplace($s_Text, '(?s)^(.*?)\d{2}\.\d{2}\.\d{2}\s0:00\s-\s\d{2}\.\d{2}\.\d{2}\s0:00(.*?)$', '${1}' & $s_Replace & '$2')
EndFunc   ;==>_ReplaceDatePeriod

Последний раз редактировалось madmasles, 25-06-2012 в 00:53.

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:45, 25-06-2012 | #6


Новый участник


Сообщения: 17
Благодарности: 0

Профиль | Отправить PM | Цитировать


Как все сложно. Это вариант просто для нескольких файлов?

А что насчет:

И еще вопрос, если не трудно подскажите где и что подправить, если мне нужно будет получить другое смещение времени?
К примеру мне еще нужно при запуске 25.06.12, чтобы дата прописалась 24.06.12 0:00 - 25.06.12 0:00
ну т.е. как первый код, только для другого смещения дат.

Отправлено: 16:01, 25-06-2012 | #7


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


Цитата irk72ag:
А что насчет: »
Код: Выделить весь код
$iOffsetDays = 5
прибавит к сегодняшней дате 5 дней. Поменяйте на -3 - отнимет 3 дня.
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:55, 25-06-2012 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Вставка диапазона дат в текстовый файл

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - [решено] Изменить текстовый файл PoltavaPGS Скриптовые языки администрирования Windows 5 26-10-2011 16:56
VBS/WSH/JS - Экспорт значений реестра в общий текстовый файл + добавление доп данных в этот файл fedko Скриптовые языки администрирования Windows 0 17-06-2010 11:52
Чем открыть текстовый файл dat Jurbell Хочу все знать 6 05-07-2007 14:59
Как прочитать на JavaScript текстовый файл? Efremov Вебмастеру 5 11-01-2006 11:27
mySQL или текстовый файл chem1 Программирование и базы данных 12 02-02-2004 03:56




 
Переход