Проект KeyNote NF 1.7.8.1

Проект по программе KeyNote NF 1.7.8.1 создан для нашего коллеги под ником greg ака Григорий.
  1. Оффлайн

    greg

    Звание: Сталкер

    Знаток

    Сообщений: 94

    Создано тем: 4

    Рейтинг: 3

    Репа: (10|10|0)

    Баллы: 246

    Был: 2024-04-06 20:17

    Лайков: 10

    Цитата: 78Sergey
    Определение местоположения счётчиков для строк этой панели покажу в WinHex.

    Ставим курсор на последнем байте строки и выделяем влево побайтово строку смотря на счётчик находящийся в нижнем правом углу программы WinHex.
    Выделив всю строку соответствие не нашлось.

    2022-11-04_103618.png title=2022-11-04_103618.png

    Продолжаем выделять ещё немного. Нашлось соответствие

    2022-11-04_104334.png title=2022-11-04_104334.png


    У меня в WinHex курсором строка не выделяется, он выделяет только один символ. Нужно изменить какие-то параметры программы, 78Sergey?

    А далее проверка.


    И ещё было так:
    3. Сделайте правки размеров блоков и строк в hex-редакторе

    В чем будет заключаться проверка или правка, чтобы в результате слева в диалоге были длинные строки?

    Цитата: 78Sergey


    2022-11-15_182614.png title=2022-11-15_182614.png


    В сравнении картинок почему-то у меня русские буквы не видны:



    Что-то тоже изменить?
    15 ноября 2022 - 22:34 / #41
  2. Оффлайн

    78Sergey

    Звание: Эксперт

    Мастер

    Сообщений: 504

    Создано тем: 52

    Рейтинг: 6

    Репа: (269|269|0)

    Баллы: 1661

    Страна: не указана!

    Был: 2024-04-17 23:55

    Лайков: 256

    Цитата: greg
    У меня в WinHex курсором строка не выделяется, он выделяет только один символ.


    Зажав левую кнопку мыши байты строки у вас не выделяются?

    В чем будет заключаться проверка или правка, чтобы в результате слева в диалоге были длинные строки?


    Проверять надо работоспособность файла после правок.
    Правку счётчиков надо делать в соответствии размеров длины строк и размеров блоков.

    В сравнении картинок почему-то у меня русские буквы не видны:
    Что-то тоже изменить?


    greg нравится это сообщение.
    15 ноября 2022 - 23:00 / #42
  3. Оффлайн

    NNK_RTR

    Звание: Бывалый

    Мастер

    Сообщений: 275

    Создано тем: 51

    Рейтинг: 5

    Репа: (61|61|0)

    Баллы: 1756

    Был: 2024-04-19 08:37

    Лайков: 85

    Получил приглашение поучаствовать в проекте через ЛС. В результате анализа проблемы я пришел к выводу, что
    ^ в левой части диалога находится компонент Delphi TTreeView.
    ^ Искомые (требующие перевода) строки - короткие строки Pascal - не больше 255 значащих символов и в первом байте указана текущая длина строки,
    ^ Код программы обрезает все символы, код которых больше 80 (128) поэтому текст пропадает, если подставить русские символы в шест. редакторе,
    ^ Здесь нет привычных нам ссылок на строку, блок данных считывается целиком.
    На мой взгляд методика перевода следующая:
    - определиться (вычислить, подсчитать) с размером неразрывного блока данных и найти ссылку на вход блока
    - сделать предварительный перевод и понять, можем ли мы за счет уменьшения длины одних строк и увеличения других сохранить общий размер блока. Если да, то прекрасно, если нет, то пытаться найти свободное место в программе или добавить секцию к файлу
    - Разобраться с обрезкой Русских символов. Здесь очень внимательно, не нарушит ли это работу программы. У меня был случай, когда я был вынужден помечать еще в файле нужные строки и пропускать только их.
    - Использовать функцию API или написать свой код преобразования однобайтных Русских символов в UT-16 (в программе латинские символы просто расширяются нулями)
    К сожалению у меня не всегда есть доступ к сайту и я потерял нить - не пойму, каким образом Вы умудрились решить проблему преобразованием кодировки. В программе строки в кодировке ASCII, которые перед отображением преобразовываются в UT-16. Причем тут UT-8, которая для латинских символов соответствует ASCII (не отличишь, пока не подставишь Русский символ)
    Кроме того, каким способом, не изменяя кода программы, Вы смогли обойти ограничение - пропускать только символы из первой половины кодовой таблицы.
    Однако, судя по всему, проблема решена. Попробую понять, но если Вы простыми словами объясните суть Ваших действий, скажу большой спасибо. Сам принцип.
    16 ноября 2022 - 10:36 / #43
  4. Оффлайн

    greg

    Звание: Сталкер

    Знаток

    Сообщений: 94

    Создано тем: 4

    Рейтинг: 3

    Репа: (10|10|0)

    Баллы: 246

    Был: 2024-04-06 20:17

    Лайков: 10

    Цитата: 78Sergey
    Зажав левую кнопку мыши байты строки у вас не выделяются?


    Нет, 78Sergey.
    Цитата: 78Sergey



    001.png title=001.png



    Вот так у меня:

    [quote]


    Русской кодировки не видно. Моя версия WinHex - 12.5. Может проблема в ней, и нужна другая?

    Цитата: 78Sergey
    Правку счётчиков надо делать в соответствии размеров длины строк и размеров блоков.



    Цитата: 78Sergey
    Примерно также и со счётчиками размеров блоков (От первого байта FF до последнего байта строки)

    2022-11-15_182614.png title=2022-11-15_182614.png


    Это попробую сделать, когда выяснится вопрос выделения и версии WinHex. Кроме того, непонятно, где же тогда начинается блок, если написано "От первого байта FF", хотя ОН НЕ ВЫДЕЛЕН. Может, если показать выделение блока КРАСНОЙ РАМКОЙ, а строки - синей, - станет нагляднее и понятнее, какие элементы имеются в виду и где последний байт строки?
    16 ноября 2022 - 11:34 / #44
  5. Оффлайн

    NNK_RTR

    Звание: Бывалый

    Мастер

    Сообщений: 275

    Создано тем: 51

    Рейтинг: 5

    Репа: (61|61|0)

    Баллы: 1756

    Был: 2024-04-19 08:37

    Лайков: 85

    Однако я ошибся. действительно, строки воспринимаются программой в кодировке UT-8 и та часть кода, которая, как я посчитал занимается "обрезанием" на самом деле вычленяет латинские символы, а все остальные передает для дальнейшей обработки.
    То есть, если писать перевод в кодировке UT8, то Русские символы прекрасно отображаются.
    А что делать с длиной строки? Ведь количество допустимых символов уменьшится вдвое?
    Остается перенести блок целиком в специально созданную секцию и в ней заниматься переводом, но может возникнуть проблема с допустимой длиной коротких строк Паскаля. Впрочем, я и здесь возможно не прав, поскольку до начала значимой части строки еще остается 3 байта. Возможно это служебные байты и полностью предоставлены для указания длины строки.
    16 ноября 2022 - 14:23 / #45
  6. Оффлайн

    78Sergey

    Звание: Эксперт

    Мастер

    Сообщений: 504

    Создано тем: 52

    Рейтинг: 6

    Репа: (269|269|0)

    Баллы: 1661

    Страна: не указана!

    Был: 2024-04-17 23:55

    Лайков: 256

    Мужики, прошу прощения, что я заморочил всем голову с перекодировкой в utf-8.
    В utf-8 в Notepad++ перекодировать не надо.
    Надо только переключить на utf-8 в Notepad++

    greg нравится это сообщение.
    16 ноября 2022 - 15:26 / #46
  7. Оффлайн

    78Sergey

    Звание: Эксперт

    Мастер

    Сообщений: 504

    Создано тем: 52

    Рейтинг: 6

    Репа: (269|269|0)

    Баллы: 1661

    Страна: не указана!

    Был: 2024-04-17 23:55

    Лайков: 256

    Цитата: NNK_RTR
    Однако я ошибся. действительно, строки воспринимаются программой в кодировке UT-8 и та часть кода, которая, как я посчитал занимается "обрезанием" на самом деле вычленяет латинские символы, а все остальные передает для дальнейшей обработки.
    То есть, если писать перевод в кодировке UT8, то Русские символы прекрасно отображаются.
    А что делать с длиной строки? Ведь количество допустимых символов уменьшится вдвое?
    Остается перенести блок целиком в специально созданную секцию и в ней заниматься переводом, но может возникнуть проблема с допустимой длиной коротких строк Паскаля. Впрочем, я и здесь возможно не прав, поскольку до начала значимой части строки еще остается 3 байта. Возможно это служебные байты и полностью предоставлены для указания длины строки.


    Строки блока можно перевести Notepad++, затем сделать правки счётчиков в Hex-редакторе.
    А вставка отредактированного блока в Radialix происходит без проблем.
    16 ноября 2022 - 15:30 / #47
  8. Оффлайн

    78Sergey

    Звание: Эксперт

    Мастер

    Сообщений: 504

    Создано тем: 52

    Рейтинг: 6

    Репа: (269|269|0)

    Баллы: 1661

    Страна: не указана!

    Был: 2024-04-17 23:55

    Лайков: 256

    Цитата: greg

    Это попробую сделать, когда выяснится вопрос выделения и версии WinHex. Кроме того, непонятно, где же тогда начинается блок, если написано "От первого байта FF", хотя ОН НЕ ВЫДЕЛЕН. Может, если показать выделение блока КРАСНОЙ РАМКОЙ, а строки - синей, - станет нагляднее и понятнее, какие элементы имеются в виду и где последний байт строки?


    greg, возьмите WinHex от версии 19.8 или новее.

    greg нравится это сообщение.
    16 ноября 2022 - 15:36 / #48
  9. Оффлайн

    78Sergey

    Звание: Эксперт

    Мастер

    Сообщений: 504

    Создано тем: 52

    Рейтинг: 6

    Репа: (269|269|0)

    Баллы: 1661

    Страна: не указана!

    Был: 2024-04-17 23:55

    Лайков: 256

    greg, вот полное видео всего процесса
    greg, Dodakaedr нравится это сообщение.
    16 ноября 2022 - 18:54 / #49
  10. Оффлайн

    greg

    Звание: Сталкер

    Знаток

    Сообщений: 94

    Создано тем: 4

    Рейтинг: 3

    Репа: (10|10|0)

    Баллы: 246

    Был: 2024-04-06 20:17

    Лайков: 10

    78Sergey, видео отличное.
    Смущает сравнение со своей пробой.
    Вот из видео по строке (счетчик [в правом нижнем углу]=20):



    Из WinHex по той же строке с тем же выделением (счетчик=32):



    Из WinHex по БЛОКУ этой же строки (счетчик=125 ???):



    Теперь непонятно, что и думать (особенно по блоку - как его вписывать), хотя в видео всё наглядно и понятно. Повторил еще пару раз, а затем еще и вообще весь проект с начала. Загадка fridayЗаново проект тоже начинал по методике справочного файла члена команды "Смотрящий".
    Отдельно для себя отметил: в WinHex хорошо бы настройкой усилить цвет выделения, потому что слишком слабое, плохо просматривается.
    Сообщение отредактировал greg 17 ноября 2022 - 10:02
    16 ноября 2022 - 22:15 / #50

Статистика форума, пользователей онлайн: 1 (за последние 20 минут)

Создано тем
1173
Всего сообщений
15310
Пользователей
17846
Новый участник
ZAZ968Alex