CryptoUsbtor

Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Создаёшь глобальную переменную nSize в неё пишешь значения размера. и арифметические действия. если включили чекбокс, считываем File.GetSize(sFile) и прибавляем к значению переменной, если выключили, то вычитаем. Значение этой переменной, выводим где удобно и когда угодно. Вообще нет никаких проблем и решение не выходит за пределы прочтения соответствующих разделов справки. До всех операций, нужно назначить переменную: nSize = 0 Код: local sFile = _SourceFolder.. "\\Sborka\\antivir\\AntiSMS8.iso"; if CheckBox.GetChecked("anti1") then nSize = nSize+File.GetSize(sFile) else nSize = nSize-File.GetSize(sFile) end Label.SetText("Label1", "Общий размер выбранного софта: "..String.GetFormattedSize(nSize, FMTSIZE_AUTOMATIC, true)); | НО! считывание размеров, не быстрая операция, всё таки желательно размер прописывать отдельно и считывать его из файла конфигурации. так не будет тормозить интерфейс. Кстати у тебя в таком маленьком коде, куча мелких ошибок. Работать будет, но код не эстетичен. Код: if CheckBox.GetChecked("anti1") == true then | == true не нужно, так как если значение больше нуля, оно верно Код: Label.SetText("Label1", "Общий размер выбранного софта : "..nSize..""); | Многие не умеют, не понимают принцип слияние строки с переменной... Советую в справке внимательно прочитать. Хвост .."" излишен, так как сзади клеить ничего не требуется. Ну и отступы... Сам же после какого то времени, не разберёшься что делает код. Нужно учится пользоваться клавишей Tab Переменные... Их должно быть как можно меньше. Если есть возможность, то лучше удлинить строку, но не использовать переменную. Или сделать её локальной Local ибо каша из переменных, может негативно сказаться на стабильности работы кода, а в худшем случае, может привести к сбоям в работе кода, из за того что действие переменной вылезло за пределы своего предназначения. То есть, если имя переменной используете ещё где то, то значение переменной нужно в начале затереть. Код: nSize = String.GetFormattedSize(File.GetSize(sFile), FMTSIZE_AUTOMATIC, true); | Похвально что указываешь в имени переменной, её тип (первой буквой), жаль что неправильно. File.GetSize(sFile) выдаёт цифры number (n) String.GetFormattedSize() выдаёт строку, даже в имени функции написано (s) Ещё есть булевые значения True и False False равен цифре 0 True цифра больше нуля, часто значение равно 1, в имени переменной пишем (b) |