[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 9 месяцев
  • Сообщений: 1322
  • Репутация:127

    [+] [-]
ChkDskGui (PureBasic) Исходник + EXE, v4.2 (x86, x64)Скачать yadi.sk upload.eeвременная версия


Последний раз редактировалось: AZJIO (2024-11-07 09:05), всего редактировалось 44 раз(а)

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 9 месяцев
  • Сообщений: 1322
  • Репутация:127

    [+] [-]
sergeysvirid, не факт. Возможно округление, возможно тип Int отбрасывающий дробные части, например будет 50,5+49,5, он отбросит дробные и получим 50+49. На скрине мы видим точно 90%, а значит должен переключить. Можно вместо "If Progress > 90" сделать "If Progress >= 90", первый случай при 90 не переключает потому что ему нужно больше 90. Возможно ещё при запросе я получаю тип Int - целое число, и при вычислении хоть результат у меня является дробным типом числа, сам процесс вычисления возвращает целое число в дробный тип, иначе идеально 90 не бывает, вероятно 90,001, а всё равно не переключает. Сделаю знак ">=", это скорее всего будет тоже самое что 89 со знаком ">".
KisPavVlad
Проще нарыть информацию насколько по стандарту должно быть настроено в самом проводнике, как было задумано самими авторами из Микрософта.
У тебя же гугл есть, найди. Просто я не уверен, что кому то это надо, соответственно никто этого не делает, разве что Q-Dir, а он вполне может использовать объекты, то есть подключаться к объекту explorer. То есть это не распространённый пример, чтобы его легко найти. Да и как его обозвать, искомое (чтобы не искал левое)?
Перезалил, всвязи ">= 90".
Перезалил. Убрал пробелы перед "Занято", не умещается.
Мне тут ещё температуру предлагают добавить. Но тогда наверно надо менять тип утилиты на "Инфа о жёстких дисках. Хотя частично температура предвещает сбой если она превышает норму.

[Цитировать]

    gera_serg
  • 1171
  • Стаж: 9 лет 4 месяца
  • Сообщений: 1421
  • Репутация:9

    [+] [-]
Красный цвет может сбивать малоопытных юзеров на запуск утилиты конкретно по самым заполненным разделам
кмк, оставить везде голубой во избежании

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 9 месяцев
  • Сообщений: 1322
  • Репутация:127

    [+] [-]
KisPavVlad, Progress является целым числом, он не может быть равен 89.9, он может быть равен 89, 90, 91 и т.д. Вполне 89.5 может быть округлён до 90, и тогда сработать, но надо сохранять данные в дробное число. Мне пока лень возится. Хоть и хотелось бы совпадения, но не готов тратить выходные на угадывание алгоритма вычисления проводника.
По теории вероятности нужно 100 дисков, чтобы один из них показал неверный цвет.

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 9 месяцев
  • Сообщений: 1322
  • Репутация:127

    [+] [-]
KisPavVlad, попытай временный вариант, все диски у тебя увеличатся на 1 процент. Там сейчас вычисление до десятых, то есть 89,5 дадут 90%, а не 89, как ранее с отбрасыванием дробной части.
Добавлено через 4 минуты 47 секунд:
78290Возможно сам язык PureBasic не умеет этого
PureBasic умеет то что даёт автор, а ты ему не даёшь алгоритм ссылаясь на всякие отговорки, PureBasic не понимает отговорки, ты ему должен дать, а не придумывать отговорки.

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 9 месяцев
  • Сообщений: 1322
  • Репутация:127

    [+] [-]
KisPavVlad, я не мучаюсь. Если вы даёте результат границу переключения, то я могу подстроить алгоритм. Я уже сделал дробное. Если срабатывает раньше или позже я могу сдвинуть на 1. То есть сейчас диапазон плавает на границе 0,5, осталось его подстроить по-шагово (89,5 90,5, 91,5).
Возможно тот-же PECMD может.
автор может, программа это инструмент. Если автор знает алгоритм то он скармливает инструменту то что будет вычислено. 2+2=4 это простой алгоритм, здесь может быть сложная формула. Она просто должна быть, инструмент не вычисляет того чего нет, инструмент вычисляет только после того как автор задал алгоритм. Автор может или не может, а программа может то что заложит автор или не может если автор не может заложить.

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 9 месяцев
  • Сообщений: 1322
  • Репутация:127

    [+] [-]
78295у вас вряд ли тоже получится
я такую фразу слышу, когда меня хотят использовать.

[Цитировать]

    zdoba
  • 138
  • Стаж: 9 лет
  • Сообщений: 357
  • Репутация:22

    [+] [-]
  • Откуда: Россия
Меня как пользователя интересует вопрос: а зачем нужна такая точность в определении процентов забитости диска? Может это что-то сакральное и скрытое от простых обывателей? ah

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 9 месяцев
  • Сообщений: 1322
  • Репутация:127

    [+] [-]
zdoba, пускай будет, тем более сам человек делает, остаётся только использовать.

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 9 месяцев
  • Сообщений: 1322
  • Репутация:127

    [+] [-]
KisPavVlad, будет обновление. Но ещё проверь вариант - вместо 98.9 используй 99.9, а 1% измени в условии сравнения то есть не с 90, а с 91. Иначе у нас показания будут на 1 процент меньше реальных, при заполнении диска под завязку мы получим 99% вместо 100%.
У тебя обе строки правильно считают? и с Round и без Round? Если да то оставляем с Round, потому что мы получим ближе к реальности, чем отсечение дробных, так как при отсечении 99,9 покажут 99, но это не так это почти 100%, с Round (округление) покажет 100.


Последний раз редактировалось: AZJIO (2020-06-12 21:29), всего редактировалось 2 раз(а)

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 9 месяцев
  • Сообщений: 1322
  • Репутация:127

    [+] [-]
KisPavVlad
Скачай заново временный архив. Я там изменил исходники заменив Progress на тип .d во всех передаваемых функциях, теперь в условие сравнения "If Progress >= 90" переменная Progress является точным дробным числом. Вместо 90 можешь задавать например 90.845 и можешь проверить если хочешь, вывести переменную в отладчик "Debug Progress" он покажет точные данные. То есть настрой точность определения изменением числа 90.
Целый процент 89 это ещё недозаполненный 90 (скажем 89.9), а вот с 90 и чуть выше уже краснеет
Кранснеет то вовремя, а проценты считает неправильно. При заполненном диске покажет 99% вместо 100. Забудь на секунду про красную полосу, заполненный диск должен показывать 100%

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 9 месяцев
  • Сообщений: 1322
  • Репутация:127

    [+] [-]
KisPavVlad, перезалил временную использовал тип .f он компактнее (коэффициент менять не надо процентность сохраняется, просто число компактней). Тебе ничего не стоит у тебя уже диск настроен, просто сделай чтобы был красным в проводнике и регулируй чтобы был такой же в утилите. Там в принципе запускать и менять число каждый раз, мне просто лень опять забивать диск. Смысла собственную делать меньше, так как критерий - узнавать диск. Я уже делал попугайную полоску из 3-х цветов, можно больше, но давай уж как в проводнике.

[Цитировать]

    UserX
  • 667
  • Стаж: 9 лет 7 месяцев
  • Сообщений: 855
  • Репутация:37

    [+] [-]
При заполненном диске покажет 99% вместо 100
Это, скорее всего, свидетельствует о том, что данные типа Integer округляются ОТБРАСЫВАНИЕМ дробной части.
Проблема решается просто. Нужно ПЕРЕД округлением прибавить 0,5.
Тогда и покраснеет вовремя и покажет 100%, а не 99%

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 9 месяцев
  • Сообщений: 1322
  • Репутация:127

    [+] [-]
KisPavVlad, там работает округление или отбрасывание, потому что точный процент не работает, переключение происходит в 0,5 процента, в этом диапазоне. Буду возвращать назад как было но как я говорил 98.9 заменить на 99.9

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 9 месяцев
  • Сообщений: 1322
  • Репутация:127

    [+] [-]
KisPavVlad, я перезалил временный, работает с моим диском 1Гб идеально, с шагом теста 1 байт, добавляю файл 640 байт - синий, добавляю 641 байт - красный. Но если добавлю 640, а потом мелкие файлы то ещё несколько раз синий. Как будто он не вычисляет или не обновляет данные, не реагирует на них системно, так как теоретически утилита должна переключаться, а если не переключается то и запрос WinAPI функции о свободном месте не реагирует и результат утилиты просто дублирует идеально.
Обновил
Исправил точность процентов
Исправил двойной клик

[Цитировать]

    AZJIO
  • 17953
  • Стаж: 6 лет 9 месяцев
  • Сообщений: 1322
  • Репутация:127

    [+] [-]
KisPavVlad, исправил вид 100%, перезалил.
Кстати теперь правильно показывает и в сравнении с размером в "Диспетчер дисков", если тут 90%, то свободно показывает 10%, то есть тут граница переключения, как только свободно менее 10%, то есть 90,5, то уже округляется до 91%, а 9,5 до 9% и это уже красная полоса.
Что за исправление двойного клика?
кликни 2 раза на пункт, в старой и в новой.

Страница 24 из 34


Показать сообщения:    

Текущее время: 27-Ноя 10:50

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы