Что нового

Получение из имени файла текста с последующим применением

foster23

Новичок
Сообщения
8
Репутация
0
Доброго времени суток. Я в Autoit'е недавно, так что решил для начала с простенького научится. Написал скрипт по получению файла с интернета (в моем случае прайс-лист) в формате "xls" и с последующим его небольшим редактированием. Все хорошо получилось, но вот (читая уже 3 сутки форум) не пойму как мне скопировать часть имени файла и вставить этот кусок в имя другого. Нужный мне текст - это дата, которая меняется почти каждый день. Не зная как, я просто поставил вставку текущей даты, но она не всегда совпадает.
Думал как-то StringRegExp или StringRegExpReplace, но я никак не пойму расстановку метасимволов.
Да, еще - координаты движения мыши совпадают при разрешении 1280х1024 (Это так, на всяк случай).
P.S. Ну и в нагрузку подскажите, пожалуйста, может где как можно упростить.

Код:
#include <Excel.au3>
Func _Au3RecordSetup()
Opt('WinWaitDelay',100)
Opt('WinDetectHiddenText',1)
Opt('WinTitleMatchMode',2)
Opt('MouseCoordMode',0)
EndFunc

Func _WinWaitActivate($title,$timeout=0)
	WinWait($title,$timeout)
	If Not WinActive($title) Then WinActivate($title)
	WinWaitActive($title,$timeout)
EndFunc

FileRecycle(@DesktopDir & '\Мультимедиа*.xls')
InetGet("http://www.neo.poltava.ua/files/Goods.rar", @DesktopDir&"\Goods.rar",1,0)
$sUnRARExe = @ProgramFilesDir & '\WinRAR\UnRAR.exe'
$sRARFile = @DesktopDir & '\Goods.rar'
$sUnRARDir = @DesktopDir
Run($sUnRARExe & ' e "' & $sRARFile & '" "'& $sUnRARDir &'"',@WorkingDir, @SW_HIDE, 2)
Sleep(500)
_WinWaitActivate("Program Manager","FolderView")
FileMove("Neo*.xls","Мультимедиа " &@MDAY&'.'&@MON&'.'&@YEAR& ".xls")
Sleep(1000)
$sFilePath1 = @DesktopDir & "\Мультимедиа " &@MDAY&'.'&@MON&'.'&@YEAR& ".xls"
$oExcel = _ExcelBookOpen($sFilePath1)
_WinWaitActivate("Microsoft Excel")
WinSetState("Microsoft Excel", "", @SW_MAXIMIZE)
Sleep(200)
_ExcelWriteCell($oExcel,"",1,1)
_ExcelWriteCell($oExcel,"с.Стаси ул.Яковенка 10б",2,1)
MouseClick("left",170,275,1)
Send("{DEL}")
Sleep(500)
MouseClick("left",170,275,1)
Send("{DEL}")
Send("{LALT}с6")
_WinWaitActivate("Вставка рисунка","MSO Generic Control ")
Sleep(500)
Send(@DesktopDir&"\Мультимедиа.jpg")
Sleep(500)
Send("{ENTER}")
_WinWaitActivate("Microsoft Excel")
MouseClick("right",170,275,1)
Send("р")
_WinWaitActivate("Формат рисунка","")
MouseClick("left",590,470,2)
Send("50")
Sleep(500)
Send("{ENTER}")
Sleep(500)
MouseClick("left",8,235,1)
MouseMove(640,512)
_ExcelBookSave($oExcel)
_ExcelBookClose($oExcel)
Sleep(500)
MsgBox(64, "Готово", "Прайс-лист обновлен",5)
 

ivsatel

Продвинутый
Сообщения
319
Репутация
84
foster23


Код:
$fileName = 'Мультимедия12-12-2012.xls'
$Extr = StringRegExp($fileName, 'Мультимедия(.*?)[\.]xls', 3)
If @error Then
    MsgBox(48+262144, 'Error', @error)
	Exit
Else
	$Rez = $Extr[0]
	MsgBox('', '', $Rez)
EndIf
 
Автор
F

foster23

Новичок
Сообщения
8
Репутация
0
ivsatel

Так а как прописать, если у меня $fileName изменяется? Можно ли как-то написать, что-то типа $fileName = "Мультимедиа*"? Но у меня оно читается также со "*".

Порядок такой:
Скачал - распаковал - получил текст из имени распакованного файла.
 

ivsatel

Продвинутый
Сообщения
319
Репутация
84
foster23

Код:
#include <FileOperations.au3>

$FileList = _FO_FileSearch(@WindowsDir, 'explo*.exe', True, 0, 1, 0, 0)

$Extr = StringRegExp($FileList, 'explo(.*?).exe', 3)
If @error Then
    MsgBox(48+262144, 'Error', @error)
    Exit
Else
    $Rez = $Extr[0]
EndIf

MsgBox(0, 'Это поиск по шаблону', $FileList)
MsgBox(0, 'Это получение нужной части', $Rez)
MsgBox(0, 'Так можно использовать пойманую часть '&$Rez, 'explo'&$Rez&'.exe'
 
Автор
F

foster23

Новичок
Сообщения
8
Репутация
0
ivsatel

Спасибо. Должно помочь. Но вот еще проблемка - ругается на отсутствие FileOperations.au3, да и в папке с вложениями его нет. Ща скачаю и отпишусь.


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

ivsatel

Благодарю. Всё получилось.
 
Верх