Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Leizer on August 26, 2021, 05:21:37 PM
-
Привет, есть скрипт в котором использован скрипт с выбором.
Он несколько раз повторяется в скрипте, первый раз все как надо, а во втором и далее все плачевно:
Варианты выбора рандомно раскиданы, при сделаном выборе в файл сохраняются значения из предведущего выбора.
буду благодарен если подскажите как решить.
Скрипт с выбором:
$input_file = "\vibor\Buildings.txt" // Исходные данные - большой список
$output_file = "\vibor\Buildings_selected.txt" // Результат - список выбранных
TFREADARR($input_file, $items_all)
TFREADARR("\vibor\item_flags_all.txt", $itemsflags_all)
IF(ARRSIZE($itemsflags_all) < ARRSIZE($items_all))
FOR($i = ARRSIZE($itemsflags_all) , $i < ARRSIZE($items_all))
ARRPUSH($itemsflags_all, 0)
END_CYC
END_IF
//##############################################################################
//Вывод текста на экран по 10 строк с чекбоксами
FOR($a, $a < INT ((ARRSIZE($items_all) / 22)+1))
$n = $check * 22
FOR($i = $n, (($i < $n+22) AND ($i < ARRSIZE($items_all))))
ARRPUSH($items, $items_all[$i])
ARRPUSH($itemsflags, $itemsflags_all[$i])
END_CYC
Window_checkbox_flags(101, "Выберите пункты :", 3000)
// Window_checkbox_flags(110, "Выберите пункты :", 35) //жирным шрифтом текст не помещается ?
STRSEPARATE ($flags, ",", $item_flags)
STRSEPARATE($text, "|", $selecteditems)
$flags = $item_flags[0]
FOR($i=0, $i < ARRSIZE($item_flags))
$flags = STRCONCAT($flags, ",", $item_flags[$i])
IF($item_flags[$i] = 1) // Запись выбранных в массив
ARRPUSH($Selected, $selecteditems[$i])
END_IF
END_CYC
//==============================================================================
// Подговка ответа
IF(ARRSIZE($Selected) > 0)
$otv = $Selected[0]
FOR($i=1, $i < ARRSIZE($Selected))
$otv = STRCONCAT($otv, "\n", $Selected[$i])
END_CYC
$text = STRCONCAT("Выбраны пункты:\n\n", $otv)
IF($return = -1)
$hint = "Состояние чекбоксов не изменено"
HINTPOPUP($hint, "ВНИМАНИЕ")
END_IF
ELSE
$text = "Вы ничего не выбрали"
END_IF
//==============================================================================
TFWRITEARR ($output_file, $Selected) // Запись списка выбранных
UNDEFINE($items)
UNDEFINE($itemsflags)
UNDEFINE($Selected)
INC($check) // следующие 10 строк
END_CYC
-
как минимум не задано начальное значение переменной цикла $a
Дальше не смотрел.
-
Вроде исправил, но не помогло. :(
-
Посмотрел с компа.
Не знаю весь это скрипт или часть. Если он выполняется по кругу, то вот в начале есть чтение в массив
TFREADARR("\vibor\item_flags_all.txt", $itemsflags_all)
Дальше он добивается нулями до длины массива $items_all.
На следующем проходе скрипта (если он есть) новое чтение TFREADARR добавит всё из файла к уже существующему массиву.
В цикле $a:
STRSEPARATE($flags, ",", $item_flags)
STRSEPARATE($text, "|", $selecteditems)
массивы $item_flags и $selecteditems каждый раз создаются разбивкой строк. При этом старое содержимое не удаляется. Массивы бесконтрольно растут и не соответствуют тому, что нужно.
-
Спасибо, простите за глупые вопросы просто не очень хорошо разбираюсь.
Можно как-то очистить данные масивы посел прохода скрипта?
UNDEFINE не помагает пытался.
-
Именно UNDEFINE . Добавить 2 шт. к остальным