PDA

Показать полную графическую версию : [решено] При посл.закачке 2х файлов через InetGet на 2ом файле всегда ошибка!


FlatX007
24-08-2009, 20:54
Вообщем должно закачатся последовательно 2 файла ... на 2ом файле всегда ошибка размера, даже если поменять функции местами.
Раньше работало :( а сейчас нехочет, что я сделал нетак ?

Я думаю в примере ненужно "назначать" переменные ... (ошибок в них нет я проверял)

If GUICtrlRead($Checkbox2) = 1 Then
$SizeNewVersionL = InetGetSize($Url & $NameNewVersionL)
InetGet($Url & $NameNewVersionL, $PachDirGameTempDir & "\" & $NameNewVersionL, 1, 1)
While @InetGetActive
$SizeDialogL = $SizeNewVersionL - @InetGetBytesRead
If $SizeDialogL = 0 Then $SizeDialogL = "OK"
TrayTip("Downloading : " & $NameNewVersionL, "Bytes = " & $SizeDialogL, 1, 1)
Sleep(250)
WEnd
If @InetGetBytesRead <> FileGetSize($PachDirGameTempDir & "\" & $NameNewVersionL) Then MsgBox(0, "L", "Ошибка!")
EndIf

If GUICtrlRead($Checkbox1) = 1 Then
$SizeNewVersionSXE = InetGetSize($Url & $NameNewVersionSXE)
InetGet($Url & $NameNewVersionSXE, $PachDirGameTempDir & "\" & $NameNewVersionSXE, 1, 1)
While @InetGetActive
$SizeDialogSXE = $SizeNewVersionSXE - @InetGetBytesRead
If $SizeDialogSXE = 0 Then $SizeDialogSXE = "OK"
TrayTip("Downloading : " & $NameNewVersionSXE, "Bytes = " & $SizeDialogSXE, 1, 1)
Sleep(250)
WEnd
If @InetGetBytesRead <> FileGetSize($PachDirGameTempDir & "\" & $NameNewVersionSXE) Then MsgBox(0, "sxe", "Ошибка!")
EndIf

Creat0R
24-08-2009, 23:53
ошибок в них нет я проверял »
Проверил, а потом обрезал скрипт? :read:

Скопируй то что в твоём посте и вставь в новый скрипт, будет оно работать? Правильно, не будет, и как теперь прикажешь воспроизвести твою ошибку?

Первое правило перед тем как создать новую тему с просьбой о помощи - написать для себя отдельный небольшой скрипт, воспроизводящий проблему.

FlatX007
25-08-2009, 12:36
Починил скрипт :) , удалил AutoIT Beta , и всё сразу заработало.
(но перед этим я снёс Win 7, и поставил ХРюшку - думал из за этого :) )

Medic84
25-08-2009, 12:40
Ну вот видишь :) А я уж собирался позаимствовать мысличитатель :)

Creat0R
25-08-2009, 17:08
FlatX007,
Т.е для других эта тема бесполезна? Решения нет, как собственно и проблемы?

FlatX007
25-08-2009, 17:47
Как нет проблемы ...
Всё заработало после удаления Бэты! Решение есть удалить бэту ...

Не работает не на одной ...
autoit-v3.3.1.0-beta-setup.exe
autoit-v3.3.1.1-beta-setup.exe

SyDr
25-08-2009, 17:53
У бэты проблемы с InetXXX
Особенно, если компилить полученный скрипт.

Creat0R
25-08-2009, 17:55
Как нет проблемы ...
Всё заработало после удаления Бэты »
Ну а где проблема? В чём она заключается? Это же не ясно...

Я предполагаю, что проблема в неправильном использовании функции Inet* в новой бета-версии, где эти функции сильно изменились. Перед тем как ставить новые версии, рекомендуется читать список изменении ;)

Однако для юзера который заашёл бы в эту тему, совсем небыло бы ясно в чём собственно проблема, и даже если есть решение, то не известно чему.

P.S
На будущее - вопрос нужно поставить так, чтобы он был понятен не только тебе, но и другим, а также упомянутая мной ранее заметка на счёт рабочего примера, это важно, в следующий раз тема с таким содержанием будет закрыта.

FlatX007
25-08-2009, 18:18
Бэта :

InetGet - работает прекрасно.

Мне кажется дело в макро @InetGetBytesRead - это макро неправильно передаёт колличество закаченых байт ПОСЛЕ закачки второго, третьего.... файла!!
Если скачивать один файл за время работы одного скрипта-программы то всё работает прекрасно.

Мактро @InetGetBytesRead - нет в SciTE в выпадающем списке, при компиляции постоянно ругается, типа неизвесное макро.

Такой ответ ждали :)

SyDr
25-08-2009, 18:33
Вот тут ты и попался!

- Changed: Inet functions rewritten with the following additions and changes:
- Removed: Long deprecate URLDownloadToFile() alias for InetGet().
- Added: HttpSetUserAgent(), InetClose(), InetGetInfo() and InetRead() functions.
- Added: Multiple background downloads are now supported with InetGet().
- Added #408: New flag for ignoring SSL errors for HTTPS connections.
- Added #884: Better proxy support with mode 0.
- Added #949: The user-agent can be changed.
- Changed: InetGet() returns a handle which must be closed.
- Changed: @InetGetBytes, @InetGetActive and InetGet("abort") are deprecated and will be removed in the future.

Creat0R
25-08-2009, 18:33
Мне кажется дело в макро @InetGetBytesRead »
Вот чтобы не казалось, почитай список изменении (http://www.autoitscript.com/forum/index.php?showtopic=96752) в бета:

.....
- Added: HttpSetUserAgent(), InetClose(), InetGetInfo() and InetRead() functions.
- Added: Multiple background downloads are now supported with InetGet().
.....
- Changed: InetGet() returns a handle which must be closed.
- Changed: @InetGetBytes, @InetGetActive and InetGet("abort") are deprecated and will be removed in the future.
.....

FlatX007
26-08-2009, 06:48
Да причём тут список изменений в Бете ...
Я анализирую факты, файлы скачиваются, запускаются т.е. они не повреждены, насчёт @InetGetBytesRead я писал выше...

Если насчёт моего скрипта ...всё работает прекрасно если неделать вот этого!
If @InetGetBytesRead <> FileGetSize($PachDirGameTempDir & "\" & $NameNewVersionSXE) Then MsgBox(0, "sxe", "Ошибка!")

@InetGetBytesRead - это макро неправильно передаёт колличество загруженых байт, после скачки 2го файла. Незнаю как это связано с InetGet .. но факт остаётся фактом.

SyDr
26-08-2009, 10:03
Так. Ты меня пугаешь. Сейчас распишу более подробно:

- Изменено: @InetGetBytes, @InetGetActive и InetGet("abort") являются устаревшими и будут удалены в будущем.
- Добавлено: несколько загрузок в фоне теперь возможны с помощью InetGet().

А теперь объясни мне, каким макаром @InetGetBytesRead должно угадаывать, к какому загружаемому файлу оно относится?
Два: теперь InetGet() возвращает хэндл, которой надо закрывать по окончании отработки функции.
Три: вместо @InetGetBytesRead теперь нужно использовать InetGetInfo(handle , 1)
Четыре: есть ошибка. В скомпилированном варианте эти функции нормально работать не будут. Можешь посмотреть на баг-трекере. Именно это я и имел ввиду, когда писал, что у бэты проблемы с InetGetXXX. В нескомпилированном варианте всё работает нормально.




© OSzone.net 2001-2012