AzazeLHAck
Новичок
- Сообщения
- 2
- Репутация
- 0
Привет, ребята,
Скрипт сканирует папки и статистические данные из них:
Папки такого формата:
\cat0001
\subcat0001
\subcat0002
\item0001
\item0002
В каждой папке лежит файл Data.ini, в который при каждом запуске программы, записываются данные о подпапках и данные из ini, которые в этих подпапках.
И я тут не могу понять, почему в указанной в отчёте строке может происходить такая ошибка..?
Вот отчёт:
W:\Projects\Budjet Pro\Budjet Pro 1.1\BudjetPro.au3 (1478) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
IniWrite($Data&"\"&$cat_array[$i]&"\Data.ini","Category","last",$last_subcat)
IniWrite($Data&"\"&^ ERROR
Есть какие-нибудь мысли по этому поводу..?
Скрипт сканирует папки и статистические данные из них:
Папки такого формата:
\cat0001
\subcat0001
\subcat0002
\item0001
\item0002
В каждой папке лежит файл Data.ini, в который при каждом запуске программы, записываются данные о подпапках и данные из ini, которые в этих подпапках.
И я тут не могу понять, почему в указанной в отчёте строке может происходить такая ошибка..?
Код:
Func Total_Scan()
$cat_array = _DirListToArray($Data)
; Удаление старых данных о категориях
IniDelete($Data&"\Data.ini","list")
IniWrite($Data&"\Data.ini","main","quantity",$cat_array[0])
Global $total = 0
For $i=1 to $cat_array[0]
$subcat_array = _DirListToArray($Data&"\"&$cat_array[$i])
; Удаление старых данных о подкатегориях
IniDelete($Data&"\"&$cat_array[$i]&"\Data.ini","list")
IniWrite($Data&"\"&$cat_array[$i]&"\Data.ini","category","quantity",$subcat_array[0])
IniWrite($Data&"\Data.ini","list",$cat_array[$i],IniRead($Data&"\"&$cat_array[$i]&"\Data.ini","category","name","Noname"))
Local $cat_total = 0
For $j=1 to $subcat_array[0]
$item_array = _DirListToArray($Data&"\"&$cat_array[$i]&"\"&$subcat_array[$j])
; Удаление старых данных о предметах
IniDelete($Data&"\"&$cat_array[$i]&"\"&$subcat_array[$j]&"\Data.ini","list")
IniWrite($Data&"\"&$cat_array[$i]&"\"&$subcat_array[$j]&"\Data.ini","Subcategory","quantity",$item_array[0])
IniWrite($Data&"\"&$cat_array[$i]&"\Data.ini","list",$subcat_array[$j],IniRead($Data&"\"&$cat_array[$i]&"\"&$subcat_array[$j]&"\Data.ini","Subcategory","name","Noname"))
Local $subcat_total = 0
For $k=1 to $item_array[0]
; Считаем ПРЕДМЕТЫ
IniWrite($Data&"\"&$cat_array[$i]&"\"&$subcat_array[$j]&"\Data.ini","list",$item_array[$k],IniRead($Data&"\"&$cat_array[$i]&"\"&$subcat_array[$j]&"\"&$item_array[$k]&"\Data.ini","Item","type","Noname")&" "&IniRead($Data&"\"&$cat_array[$i]&"\"&$subcat_array[$j]&"\"&$item_array[$k]&"\Data.ini","Item","name","Noname"))
$tempprice = IniRead($Data&"\"&$cat_array[$i]&"\"&$subcat_array[$j]&"\"&$item_array[$k]&"\Data.ini","Item","priceusd",0)*IniRead($Data&"\"&$cat_array[$i]&"\"&$subcat_array[$j]&"\"&$item_array[$k]&"\Data.ini","Item","quantity",0)
$subcat_total = $subcat_total + $tempprice
Next
; Вписываем last
$last_item = $item_array[$item_array[0]]
$last_item = StringTrimLeft($last_item,4)
For $i = 1 to 4
$numctrl = StringMid($last_item,1,1)
If $numctrl <> 0 Then
ExitLoop
EndIf
$last_item = StringTrimLeft($last_item,1)
If $i = 4 Then $last_item = "0"
Next
IniWrite($Data&"\"&$cat_array[$i]&"\"&$subcat_array[$j]&"\Data.ini","Subcategory","last",$last_item)
; Считаем ПОДКАТЕГОРИИ
IniWrite($Data&"\"&$cat_array[$i]&"\"&$subcat_array[$j]&"\Data.ini","Subcategory","Total",$subcat_total)
$tempprice = IniRead($Data&"\"&$cat_array[$i]&"\"&$subcat_array[$j]&"\Data.ini","Subcategory","Total",0)
$cat_total = $cat_total + $tempprice
Next
; Вписываем last
$last_subcat = $subcat_array[$subcat_array[0]]
$last_subcat = StringTrimLeft($last_subcat,6)
For $i = 1 to 4
$numctrl = StringMid($last_subcat,1,1)
If $numctrl <> 0 Then
ExitLoop
EndIf
$last_subcat = StringTrimLeft($last_subcat,1)
If $i = 4 Then $last_subcat = "0"
Next
; СТРОКОЙ НИЖЕ ОШИБКА!!!
IniWrite($Data&"\"&$cat_array[$i]&"\Data.ini","Category","last",$last_subcat)
; Считаем КАТЕГОРИИ
IniWrite($Data&"\"&$cat_array[$i]&"\Data.ini","category","Total",$cat_total)
$tempprice = IniRead($Data&"\"&$cat_array[$i]&"\Data.ini","category","Total",0)
$total = $total + $tempprice
Next
; Вписываем last
$last_cat = $cat_array[$cat_array[0]]
$last_cat = StringTrimLeft($last_cat,3)
For $i = 1 to 4
$numctrl = StringMid($last_cat,1,1)
If $numctrl <> 0 Then
ExitLoop
EndIf
$last_cat = StringTrimLeft($last_cat,1)
If $i = 4 Then $last_cat = "0"
Next
IniWrite($Data&"\Data.ini","main","last",StringTrimLeft($last_cat,3))
IniWrite($Data&"\Data.ini","main","Total",$total)
EndFunc
Вот отчёт:
W:\Projects\Budjet Pro\Budjet Pro 1.1\BudjetPro.au3 (1478) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
IniWrite($Data&"\"&$cat_array[$i]&"\Data.ini","Category","last",$last_subcat)
IniWrite($Data&"\"&^ ERROR
Есть какие-нибудь мысли по этому поводу..?