Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] скомпилированный (exe-file) скрипт при запуске вываливается с ошибкой у части юзеров (http://forum.oszone.net/showthread.php?t=187403)

saavaage 04-10-2010 22:13 1511465

скомпилированный (exe-file) скрипт при запуске вываливается с ошибкой у части юзеров
 
Проблема:
у ряда пользователй скомпилированный скрипт вываливается с ошибкой (например, line 21332 Error: array variable has incorrent number of subscripts or subscript dimension range exceeded)
Вопрос: каким образом, можно узнать к какой чтроке скрипта это имеет отношение? Как вообще расшифровывать подобные послания?

madmasles 05-10-2010 00:33 1511546

saavaage,
1. У меня Ваш скрипт тоже вываливается с ошибкой. Ругается на 568 строку. У Вас объявлен массив Dim $aAuto[20][2], а у меня в результате получается 24 записи, потому и ругается. Поменял на Dim $aAuto[100][2] - работает нормально.
2. При выборе размещения файла подкачки Вы в комбобоксах указываете 'C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z'. У вас же есть массив дисков ($DrivesArr = DriveGetDrive("Fixed", 910 строка). Наверное, лучше данные из этого массива в комбобоксы поместить.

saavaage 05-10-2010 00:50 1511552

madmasles,
Цитата:

Цитата madmasles
1. У меня Ваш скрипт тоже вываливается с ошибкой. Ругается на 568 строку. У Вас объявлен массив Dim $aAuto[20][2], а у меня в результате получается 24 записи, потому и ругается. Поменял на Dim $aAuto[100][2] - работает нормально. »

только сейчас с помощью Yashied вышел на след этого массива...
Никогда бы не подумал, что у народа столько может прог в автозагрузке висеть. Думал 20 хватит за глаза...

Спасибо.

Цитата:

Цитата madmasles
2. При выборе размещения файла подкачки Вы в комбобоксах указываете 'C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z'. У вас же есть массив дисков ($DrivesArr = DriveGetDrive("Fixed", 910 строка). Наверное, лучше данные из этого массива в комбобоксы поместить. »

Здравое замечание. Не подумал. Спасибо за подсказку

madmasles, по ошибке с вываливанием уже даже предложили решение:

Код:

Dim $aAuto[20][2]
...

$row = 0
For $p = 0 To 6
    $key = 1
    While 1
        $sVal = RegEnumVal($aPath[$p], $key)
        If @error Then ExitLoop
        If $row > UBound($aAuto) - 1 Then ReDim $aAuto[$row + 100][2]
        $aAuto[$row][0] = $sVal
        $aAuto[$row][1] = RegRead($aPath[$p], $sVal)
        $row += 1
        $key += 1
    WEnd
Next
If $row Then
    ReDim $aAuto[$row][2]
EndIf

Даю, на всякий, ссылку на русский форум (там, заодно, подсказка как искать строку с ошибкой)

http://autoit-script.ru/index.php/to...20244.html#new

madmasles, вопрос по поводу
Цитата:

Цитата madmasles
2. При выборе размещения файла подкачки Вы в комбобоксах указываете 'C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z'. У вас же есть массив дисков ($DrivesArr = DriveGetDrive("Fixed", 910 строка). Наверное, лучше данные из этого массива в комбобоксы поместить. »

Это не будет более ресурсоемкое решение, чем мое?

madmasles 05-10-2010 09:07 1511676

Цитата:

Цитата saavaage
Это не будет более ресурсоемкое решение, чем мое? »

Почему? У Вас же этот массив $DrivesArr = DriveGetDrive("Fixed") все равно используется.

saavaage 05-10-2010 12:54 1511827

madmasles, уже сделал, как сказали. Все зеер гут. Спасибо.


Время: 23:59.

Время: 23:59.
© OSzone.net 2001-