Копирование/вставка определителя в GrdUtil

Еще замечания:

1) При копировании дампа GrdUtil кладет в клипборд данные в бинарном формате, а также в текстовых форматах (в виде пар HEX-цифр, разделенных пробелами). А при вставке берет бинарный формат, а если бинарного нет, то берет текстовый, но интерпретирует его как бинарный, а не как Hex-строку.
Таким образом, между диалогами GrdUtil данные можно копировать-вставлять (работает бинарный формат), а хранить данные в текстовом файле (используя внешний текстовом редактор) нормально не получается. Скажем, дамп (12 34 56 78) будет перенесен в текстовый редактор как строка "12 34 56 78", а при вставке в GrdUtil он превратится в (31 32 20 33 34 20 35 36). Без каких-либо предупреждений.

2) При нажатии кнопки "Генерить новое значение", моргает весь экран. Наверное, нужно заменить что-то типа InvalidateRect(0, ...) на что-то типа InvalidateRect(hDumpEditWnd, ...)

Re: Копирование/вставка определителя в GrdUtil

Luck пишет:

При копировании дампа GrdUtil кладет в клипборд данные в бинарном формате, а также в текстовых форматах (в виде пар HEX-цифр, разделенных пробелами). А при вставке берет бинарный формат, а если бинарного нет, то берет текстовый, но интерпретирует его как бинарный, а не как Hex-строку.
Таким образом, между диалогами GrdUtil данные можно копировать-вставлять (работает бинарный формат), а хранить данные в текстовом файле (используя внешний текстовом редактор) нормально не получается. Скажем, дамп (12 34 56 78) будет перенесен в текстовый редактор как строка "12 34 56 78", а при вставке в GrdUtil он превратится в (31 32 20 33 34 20 35 36). Без каких-либо предупреждений.

Данное поведение является нормальным, тут нужно обратить внимание на то, что встроенный редактор GrdUtil не то же самое, что любой обычный текстовый редактор, например в качестве определителя алгоритма GSII64 можно ввести (как вручную с клавиатуры, таки и скопированный текст) текстовое значение, которое будет соответственно интерпретировано:

https://forum.guardant.ru/uploads/legacy/0/0/446/thumb/p16a323m07rjkt10pdi1hmie61.jpg

Re: Копирование/вставка определителя в GrdUtil

Нормальная поведение программы - одинаковая интерпретация данных и при импорте и при экспорте (в частности, при использовании клипборда).

GrdUtil ведет себя нормально в отношении зарегистрированного ей клипборд-формата "BinaryData". Данные одинаково интерпретируются и при Copy и при Paste. Поэтому копирование/вставка данных внутри программы работает нормально.

А в отношении текстовых клипборд-форматов GrdUtil ведет себя ненормально: при Copy в клипборд помещаются данные в виде шестнадцатеричных цифр, а при Paste текст интерпретируется буквально, как бинарные данные. Поэтому копирование/вставка данных с внешними программами не работает (что, в общем-то и изображено на вашем рисунке).

Re: Копирование/вставка определителя в GrdUtil

Luck пишет:

Нормальная поведение программы - одинаковая интерпретация данных и при импорте и при экспорте (в частности, при использовании клипборда).

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

Luck пишет:

GrdUtil ведет себя нормально в отношении зарегистрированного ей клипборд-формата "BinaryData". Данные одинаково интерпретируются и при Copy и при Paste. Поэтому копирование/вставка данных внутри программы работает нормально.

Совершенно верно.

Luck пишет:

А в отношении текстовых клипборд-форматов GrdUtil ведет себя ненормально: при Copy в клипборд помещаются данные в виде шестнадцатеричных цифр, а при Paste текст интерпретируется буквально, как бинарные данные. Поэтому копирование/вставка данных с внешними программами не работает (что, в общем-то и изображено на вашем рисунке).

Ненормальность поведения GrdUtil в данном случае достаточно субъективное представление.
Как и было продемонстрировано на скриншотах, интерфейс поля ввода редактора делится на две области, в одну из которых (правую) производится ввод текстовых данных и не зависимо от варианта ввода таких данных GrdUtil воспринимает их как текст и переводит в нужный ему формат.
Именно поэтому при вставке текста из внешнего буфера наблюдается подобное поведение.

Re: Копирование/вставка определителя в GrdUtil

Антон Тихиенко пишет:

интерфейс поля ввода редактора делится на две области, в одну из которых (правую) производится ввод текстовых данных и не зависимо от варианта ввода таких данных GrdUtil воспринимает их как текст и переводит в нужный ему формат.

Да, ввод из клипборда (операция Paste) производится в правую часть редактора и воспринимается буквально, как поток байтов.
А вот вывод в клипборд (операция Copy) почему-то производится из левой части редактора, в виде шестнадцатеричного текста.

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

Re: Копирование/вставка определителя в GrdUtil

Если необходимо сохранить определитель с возможностью его "возврата", могу предложить еще такой вариант:
Сохранять во внешний файл при помощи кнопки "Сохранить".
Оттуда копировать в буфер при помощи текстового редактора и спокойно вставлять из буфера.

А что касается copy из левой части, а paste в правую -- мне, к примеру, удобнее копировать последовательность HEX-ов. Конечно, субъективно все.

Re: Копирование/вставка определителя в GrdUtil

worm пишет:

Если необходимо сохранить определитель с возможностью его "возврата", могу предложить еще такой вариант:
Сохранять во внешний файл при помощи кнопки "Сохранить".
Оттуда копировать в буфер при помощи текстового редактора и спокойно вставлять из буфера..

Да. Еще можно пользоваться HEX-редакторами, которые поддерживают copy/paste как в виде Hex-строк, так и в бинарном виде. В общем, способы есть.

worm пишет:

А что касается copy из левой части, а paste в правую -- мне, к примеру, удобнее копировать последовательность HEX-ов.

Согласен, во многих (наверное, в большинстве) случаях Hex-строка удобнее. Ее важнейшее достоинство - она может представлять любые байты (0-255).

worm пишет:

Конечно, субъективно все.

Субъективно предпочтение того или иного формата. Но то, что и ввод и вывод должны производиться в едином формате - это объективно.