• Как вывести кириллицу в Python?

    На python3 с кириллицей нет проблем, попробуйте сохранить файл в utf8.

    5eedb1a0ebb8d502485058.png
    Ответ написан
    Комментировать
  • Как вывести кириллицу в Python?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Не знаю, что такое easygui, но скорее всего просто использовать Python 3 и позаботиться, чтобы скрипт был в кодировке UTF-8.
    Ответ написан
    5 комментариев
  • DELPHI защита файлов?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Контрольные суммы положить в 3-й файл.
    Вопросы/ответы считали и, по 3-му файлу, проверили.
    Не совпали - выводим: "Нарушена целостность файлов теста.".

    Бонусная "закусь": Можно и контрольную сумму самого файла КС положить в него же. Тогда вообще будет сложно что-либо поправить даже при открытых ответах (чистым текстом).
    Ответ написан
    2 комментария
  • DELPHI защита файлов?

    akelsey
    @akelsey
    Подключайся к своему легитимному сетевому хранилищу каждый запуск программы (хоть яндекс диск по webdav) и получай хеши этих файлов, при старте проверяй - если локальные файлы имеют те же хэши - то все ок, если нет, то завершай программу с сообщением что идут попытки подмены.
    Ответ написан
    2 комментария
  • Штрихкод EAN-13, как формируется 13 цифра?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А что именно вам непонятно? 13 цифра определяется последовательностью L- и G-кодов левой части (цифры 12-7).
    Ответ написан
    6 комментариев
  • Штрихкод EAN-13, как формируется 13 цифра?

    Как-то русская немного противоречит английской. https://en.wikipedia.org/wiki/International_Articl...

    В английской версии написано, что первые 3 цифры - код страны, https://en.wikipedia.org/wiki/List_of_GS1_country_codes
    Ответ написан
    4 комментария
  • Раскраска StringGrrid Дельфи, сохранение цвета?

    HemulGM
    @HemulGM Куратор тега Delphi
    Delphi Developer, сис. админ
    DrawCell - это событие, которое происходит каждый раз при отрисовке каждой ячейки. Следовательно, когда ты устанавливаешь значения переменным AR, AC, то при отрисовке, которую ты вызываешь методом Refresh, происходит вызов DrawCell для каждой ячейки. И раз ты заменяешь значения этим переменным, то и закрашиваются у тебя только последние установленные.

    Чтобы закрасить нужные ячейки, ты должен иметь возможность в любой момент получить состояние нужной ячейки (закрашивать ей, или нет).

    Как уже предложили выше, можешь использовать массив. Который должен совпадать по размерам с таблицей. Т.е. быть двумерным и иметь соответствующее кол-во "строк" и "столбцов". А в методе SetColor ты будешь устанавливать в массив значение, например "-1" или <цвет>. "-1" - не закрашивать, ну а любое значение - закрашивать.
    Ответ написан
    Комментировать
  • Раскраска StringGrrid Дельфи, сохранение цвета?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    Как сделать чтобы цвет сохранился?
    Создать массив закрашенных ячеек. Использовать OnDrawCell.
    Ответ написан
    Комментировать
  • Чем плоха вставка в массив в заданную позицию?

    @ddd329
    Приветствую!

    Если отвечать прямо на поставленный вопрос, то это плохо тем, что в среднем половину элементов придется сдвигать.

    Вопрос почти философский, и есть ли алгоритмы более лучше чем которые я описал?

    Если вам необходимо поддерживать данный массив в отсортированном виде, то здесь нужен не алгоритм, а другая структура данных - двоичное (бинарное) дерево. Там вам быстрый поиск и вставка обеспечена.

    Если вам просто необходимо реализовать такую возможность как вставка в массив, то со сдвигом элементов вправо, вы точно ничего не сделаете, а вот каждый раз увеличивать длину массива это явно плохая идея.

    В .Net Framework над массивом реализован абстрактный тип данных (АТД) - список, т.е. List. Так вот там при создании пустого списка, массив имеет длину 4 элемента, если необходимо будет вставить 5-ый элемент, то длина массива просто увеличивается в 2 раза, и станет равна 8-ми. Вставишь 9-ый элемент, то размер увеличиться до 16 и т.д.
    Ответ написан
    Комментировать
  • Чем плоха вставка в массив в заданную позицию?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Прелесть массива в том, что он позволяет искать по индексам. И делается это очень быстро, потому что это индексация в самой памяти. То есть вычисляется адрес ячейки памяти с помощью арифметических операций:
    БАЗА + [РАЗМЕР ЯЧЕЙКИ] * СМЕЩЕНИЕ
    И затем просто происходит обращение на чтение/запись.

    Таким образом, чтобы сохранить это свойство массива, необходимо сохранить непрерывную структуру в оперативной памяти. А для этого операция вставки в середину массивы приводит к смещению половины массива на размер одного элемента. То есть это копирование большого куска памяти. Вот это и плохо.

    На самом деле, это не плохо и не хорошо. Если это делать редко, а читать данные часто, то это даже отлично. Но если вставка происходит слишком часто, то лучше пересмотреть выбранную архитектуру структуры данных приложения. То есть переписать логику программы так, чтобы не приходилось вставлять в середину массива, обычно это возможно.

    А если это не возможно, то может быть, что обращение по индексу не нужно, а только полный перебор (в заданном порядке), тогда можно использовать список, где вставка происходит очень быстро. Ну и так далее, зависит от конкретной задачи. Универсальность и скорость алгоритма, как правило, противоречат друг другу.
    Ответ написан
    5 комментариев