Здравствуйте.
Использую AutoIt 3.3.8.1
Помогите обработать ошибку
при не нахождении шаблона.
К примеру, если 11, 12 и 13-й параметр не передается сервером то ячейки заполняются целой строкой. Как этого избежать?
Повторюсь, "ошибка" появляется только при отсутствии передачи 11, 12 и 13 параметров.
Использую AutoIt 3.3.8.1
Помогите обработать ошибку
Код:
StringRegExpReplace
Код:
;Удалить все + удалить файлы и настройки сохраненные дополнениями:
RunWait('RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 4351')
Sleep(3000)
Global $aInfoTrack[1], $aGetInfoTrack[14]
;########################## Запрос страницы
;$sInfoTrackInetRead = InetRead('http://f1.101.ru/api/getplayingtrackinfo.php?station_id=18&short=1&typechannel=channel')
$sInfoTrackInetRead = InetRead('http://f1.101.ru/api/getplayingtrackinfo.php?station_id=18')
If $sInfoTrackInetRead = '' Then
SetError(100, 'ERROR', 'ERROR')
MsgBox(1, 'Error', @error)
Exit
EndIf
;########################## Запрос страницы
;########################## Перекодиовка страницы
$sInfoTrackBinaryToString = BinaryToString($sInfoTrackInetRead)
If $sInfoTrackBinaryToString = '' Then
SetError(101, 'ERROR', 'ERROR')
MsgBox(1, 'Error', @error)
Exit
EndIf
;########################## Перекодиовка страницы
;########################## Заданные паттерны
$aGetInfoTrack[0] = '.*?"server"[\:]"(.*?)"[\,].*' ; Server - Сервер вещания
$aGetInfoTrack[1] = '.*?"title"[\:]"(.*?)"[\,].*' ; Title - Название трека 1
$aGetInfoTrack[2] = '.*?"id"[\:]"(.*?)"[\,].*' ; ID - Идентификатор
$aGetInfoTrack[3] = '.*?"start[\_]time"[\:]"(.*?)"[\,].*' ; Start - Старт воспроизведения
$aGetInfoTrack[4] = '.*?"finish[\_]time"[\:](.*?)[\,].*' ; Finish - Конец воспроизведения
$aGetInfoTrack[5] = '.*?"end[\_]time"[\:](.*?)[\,].*' ; EndTime - Конец воспроизведения
$aGetInfoTrack[6] = '.*?"query[\_]time"[\:](.*?)[\,].*' ; QueryTime - Запрашиваемое (установленное) время воспроизведения
$aGetInfoTrack[7] = '.*?"sample"[\:]"(.*?)".*' ; Sample - Адрес воспроизводимого трека
$aGetInfoTrack[8] = '.*?"track[\_]title"[\:]"(.*?)"[\,].*' ; Track Title - Название трека 2
$aGetInfoTrack[9] = '.*?"executor[\_]title"[\:]"(.*?)"[\,].*' ; Album Track Title - Название альбома
$aGetInfoTrack[10] = '.*?"trackTimeMillis"[\:](.*?)[\,].*' ; Track Time (ms) - Время трека в милисекундах (осуществляется перевод в минуты)
$aGetInfoTrack[11] = '.*?"trackName"[\:]"(.*?)"[\,].*' ; Track Name - Имя трека из базы или по тэгам
$aGetInfoTrack[12] = '.*?"collectionName"[\:]"(.*?)"[\,].*' ; Collection Name - Имя используюемое в коллекции
$aGetInfoTrack[13] = '.*?"artistViewUrl"[\:]"(.*?)"[\,].*' ; Artist View Url - Адрес странички артиста в itunes.apple.com
;########################## Заданные паттерны
;########################## Обработка полученой страницы заданными паттернами
For $i = 0 To UBound($aGetInfoTrack)-1
ReDim $aInfoTrack[$i + 1]
If $i = 6 Then
$aInfoTrack[$i] = StringRegExpReplace($sInfoTrackBinaryToString, '(?i)'&$aGetInfoTrack[$i], '$1')
If @error = 2 Then $aInfoTrack[$i] = 'ERROR'
If $aInfoTrack[$i] = '' Then $aInfoTrack[$i] = 'ERROR'
EndIf
If $i = 7 Then
$aInfoTrack[$i] = StringRegExpReplace(StringRegExpReplace($sInfoTrackBinaryToString, '(?i)'&$aGetInfoTrack[$i], '$1'), '[\\]', '')
If @error = 2 Then $aInfoTrack[$i] = 'ERROR'
If $aInfoTrack[$i] = '' Then $aInfoTrack[$i] = 'ERROR'
EndIf
If $i = 10 Then
$aInfoTrack[$i] = Round((StringRegExpReplace($sInfoTrackBinaryToString, '(?i)'&$aGetInfoTrack[$i], '$1') / 1000) / 60, 2)&' Min'
If @error = 2 Then $aInfoTrack[$i] = 'ERROR'
If $aInfoTrack[$i] = '' Then $aInfoTrack[$i] = 'ERROR'
EndIf
If $i = 13 Then
$aInfoTrack[$i] = StringRegExpReplace(StringRegExpReplace($sInfoTrackBinaryToString, '(?i)'&$aGetInfoTrack[$i], '$1'), '[\\]', '')
If @error = 2 Then $aInfoTrack[$i] = 'ERROR'
If $aInfoTrack[$i] = '' Then $aInfoTrack[$i] = 'ERROR'
EndIf
If $i <> 13 And $i <> 10 And $i <> 7 And $i <> 6 Then
$aInfoTrack[$i] = StringRegExpReplace($sInfoTrackBinaryToString, '(?i)'&$aGetInfoTrack[$i], '$1')
If @error = 2 Then $aInfoTrack[$i] = 'ERROR'
If $aInfoTrack[$i] = '' Then $aInfoTrack[$i] = 'ERROR'
EndIf
Next
;########################## Обработка полученой страницы заданными паттернами
If Not IsArray($aInfoTrack) Then
SetError(102, 'ERROR', 'ERROR')
MsgBox(1, 'Error', @error)
Exit
EndIf
;########################## Вывод результата в консоль
For $i = 0 To UBound($aGetInfoTrack)-1
ConsoleWrite($i&' = '&$aInfoTrack[$i]&@LF)
Next
;########################## Вывод результата в консоль
Код:
--> Press Ctrl+Alt+F5 to Restart or Ctrl+Break to Stop
0 = 172.17.255.130
1 = MICHAEL, Justin - Eyes Closed (feat. AJ from Saint Motel, Jerome Isma-Ae rmx)
2 = 199538
3 = 1382465859
4 = 1382466226
5 = 291
6 = 1382465935
7 = http://wz5.101.ru/full/18/199538.mp3
8 = Eyes Closed (feat. AJ from Saint Motel, Jerome Isma-Ae rmx)
9 = MICHAEL, Justin
10 = 0 Min
11 = {"status":0,"result":{"duration_sec":"367","title":"MICHAEL, Justin - Eyes Closed (feat. AJ from Saint Motel, Jerome Isma-Ae rmx)","id":"199538","start_time":"1382465859","finish_time":1382466226,"mdb_idtrack":"128421","mdb_idexecutor":"20783","mdb_retry":"0","module":"channel","itunes":"","track_title":"Eyes Closed (feat. AJ from Saint Motel, Jerome Isma-Ae rmx)","executor_title":"MICHAEL, Justin","end_time":291,"query_time":1382465935,"server":"172.17.255.130","sample":"http:\/\/wz5.101.ru\/full\/18\/199538.mp3"},"errorCode":0,"errorMsg":""}
12 = {"status":0,"result":{"duration_sec":"367","title":"MICHAEL, Justin - Eyes Closed (feat. AJ from Saint Motel, Jerome Isma-Ae rmx)","id":"199538","start_time":"1382465859","finish_time":1382466226,"mdb_idtrack":"128421","mdb_idexecutor":"20783","mdb_retry":"0","module":"channel","itunes":"","track_title":"Eyes Closed (feat. AJ from Saint Motel, Jerome Isma-Ae rmx)","executor_title":"MICHAEL, Justin","end_time":291,"query_time":1382465935,"server":"172.17.255.130","sample":"http:\/\/wz5.101.ru\/full\/18\/199538.mp3"},"errorCode":0,"errorMsg":""}
13 = {"status":0,"result":{"duration_sec":"367","title":"MICHAEL, Justin - Eyes Closed (feat. AJ from Saint Motel, Jerome Isma-Ae rmx)","id":"199538","start_time":"1382465859","finish_time":1382466226,"mdb_idtrack":"128421","mdb_idexecutor":"20783","mdb_retry":"0","module":"channel","itunes":"","track_title":"Eyes Closed (feat. AJ from Saint Motel, Jerome Isma-Ae rmx)","executor_title":"MICHAEL, Justin","end_time":291,"query_time":1382465935,"server":"172.17.255.130","sample":"http://wz5.101.ru/full/18/199538.mp3"},"errorCode":0,"errorMsg":""}
+>22:18:54 AutoIt3.exe ended.rc:0