Rinfes
Новичок
- Сообщения
- 25
- Репутация
- 0
Здравствуйте. Есть написанный мною рабочий скрипт.
Суть: идет проверка воспроизведения файла. Если файл воспроизводиться, то он конвертируется в 3 других файла. Далее эти 3 файла тестируются на воспроизведение и идет сравнение веса изначального файла с уже сконвертируемым.
Так как я только начал этим заниматься, хотелось бы услышать какие - нибудь советы по улучшению автоматизации или сокращению кода.
Например, у меня в начале идет объявление массива из 5 элементов. Каждому элементу присвоено значение в виде названия трека. Так вот, как сделать, если количество элементов не было бы известно, а массив заполнялся автоматический, заходя в папку Music и поочередно записывая все файлы в массив.
Так же почему то не добавляется пустая строка в файл (строка 36)
Суть: идет проверка воспроизведения файла. Если файл воспроизводиться, то он конвертируется в 3 других файла. Далее эти 3 файла тестируются на воспроизведение и идет сравнение веса изначального файла с уже сконвертируемым.
Так как я только начал этим заниматься, хотелось бы услышать какие - нибудь советы по улучшению автоматизации или сокращению кода.
Например, у меня в начале идет объявление массива из 5 элементов. Каждому элементу присвоено значение в виде названия трека. Так вот, как сделать, если количество элементов не было бы известно, а массив заполнялся автоматический, заходя в папку Music и поочередно записывая все файлы в массив.
Код:
#include <Array.au3>
run("D:\Program Files (x86)\AIMP3\AIMP3.exe")
WinWaitActive("AIMP3")
WinMove("AIMP3", "", 116, 458, 369, 512)
Dim $songs[5]
$songs[0] = "Max Payne 2 - Main Theme.wav"
$songs[1] = "Scorpions - Wind of change.mid"
$songs[2] = "Nirvana - The Man Who Sold The World.flac"
$songs[3] = "doc.docx"
$songs[4] = "The Doors - Riders on the storm.ogg"
$file = FileOpen("Otchet.txt", 1)
;**********проверка воспроизведения треков с различными форматами*******************
$cvet = 0x5B5B5B ;серый цвет на эквалайзере
$cvet2 = 0x939393 ; серый цвет на значке плей
For $element In $songs
Send("^{DEL}") ; очистка плейлиста
Send("{INS}") ; добавление файла
WinWaitActive("Открыть")
Send($element&"{ENTER}")
WinWaitClose("Открыть")
Send("{SPACE}") ; начать воспроизведение
Send("^{j}")
sleep(1000)
Send("01:00{ENTER}")
sleep(3000)
$var = PixelGetColor(388, 575) ; цвет на эквалайзере
$var2 = PixelGetColor(462, 510) ; цвет на значке плей
If $cvet = $var or $cvet2 = $var2 Then
FileWriteLine($file, "Трек " & $element& " не воспроизводиться" & @CRLF)
sleep(500)
Send("^{DEL}")
sleep(500)
Send("{NUMPAD5}"); кнопка "стоп"
sleep(500)
Else
FileWriteLine($file, "Трек " & $element&" воспроизводиться")
sleep(500)
Send("^{DEL}")
sleep(500)
Send("{NUMPAD5}")
sleep(500)
;*****КОНВЕРТИРОВАНИЕ*****
$size0 = FileGetSize($element)
$a = StringLeft($element, StringInStr($element, "."))
Dim $novNazv[3]
$novNazv[0] = StringReplace($a, ".", ".ape")
$novNazv[1] = StringReplace($a, ".", ".mpc")
$novNazv[2] = StringReplace($a, ".", ".opus")
Send("^{k}")
sleep(1000)
Send("{INS}")
sleep(1000)
Send($element&"{ENTER}")
sleep(1000)
Send("{TAB 2}{UP 7}") ; выбор формата
Sleep(300)
Send("{F9}") ; старт
Sleep(10000)
Send("{INS}")
sleep(1000)
Send("{ENTER}")
sleep(1000)
Send("{TAB 2}{DOWN 2}")
Send("{F9}")
Sleep(10000)
Send("{INS}")
sleep(1000)
Send("{ENTER}")
sleep(1000)
Send("{TAB 2}{DOWN 2}")
Send("{F9}")
sleep(10000)
Send("!{F4}")
; проверка воспроизведения полученных файлов и сравнение веса
For $element2 In $novNazv
Send("{NUMPAD5}")
sleep(500)
Send("^{DEL}")
sleep(500)
Send("{INS}")
sleep(500)
Send($element2&"{ENTER}")
sleep(500)
Send("{SPACE}")
sleep(500)
Send("^{j}")
sleep(1000)
Send("01:00{ENTER}")
sleep(3000)
$var = PixelGetColor(388, 575)
$var2 = PixelGetColor(462, 510)
$size1 = FileGetSize($novNazv)
If $cvet <> $var And $cvet2 <> $var2 Then
If $size0 <> $size1 Then
FileWriteLine($file, "Конвертирование трека " & $element2&" удачно. Файл воспроизводиться")
Else
$file = FileOpen("Otchet.txt", 1)
FileWriteLine($file, "Конвертирование трека " & $element2&" удачно. Но файл не воспроизводиться")
FileClose($file)
EndIf
Else
FileWriteLine($file, "Конвертирование трека " & $element2&" неудачно. Файл не воспроизводиться")
EndIf
Next
FileWriteLine($file, "" & @CRLF)
EndIf
Next
FileClose($file)
ProcessClose("AIMP3.exe")
Так же почему то не добавляется пустая строка в файл (строка 36)
Код:
FileWriteLine($file, "Трек " & $element& " не воспроизводиться" & @CRLF)