Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
 Аватар для yevrowl
307 / 78 / 6
Регистрация: 27.04.2022
Сообщений: 243

Замена байта (HEX) в файле

11.10.2022, 19:27. Показов 3677. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всех приветствую!
Задача примерно соответствует этой — Заменить несколько байт в середине файла
Есть файл, в котором требуется заменять по адресам несколько байт.
Например, как для правки run-time error 200:
Code
1
2
3
4
5
6
7
8
9
4D45:008A F7
4D45:008B D0
4D45:008C D2
4D45:008D D2
4D45:008E B9
4D45:008F 37
4D45:0090 00
4D45:0091 F7
4D45:0092 F1
Прошу подсказать, как это можно осуществить средствами Quick Basic или Turbo Basic.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.10.2022, 19:27
Ответы с готовыми решениями:

Замена в файле нужного байта. Ассемблер, tasm
Как поменять в файле 10 байт? Программа выводит 10 байт, но не заменяет его .model small org 100h .data fname db...

Замена hex данных в бинарном файле
Здравствуйте. Не особо этим интересовался. По факту хочу автоматизировать одну задачу. Но не знаю как в delphi работать с бинарными...

Hex редактирование - замена строк в файле
Есть файл (вернее 3d модель) в котором нужно сменить имя текстуры, при помощи Free Hex Editor Neo это можно спокойной делать: грузите...

31
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
02.11.2022, 15:53
Студворк — интернет-сервис помощи студентам
То есть я могу сделать typedef void *WebServer — и в языке Си появится тип данных WebServer?
0
Эксперт по электронике
7216 / 3395 / 347
Регистрация: 28.10.2011
Сообщений: 13,346
Записей в блоге: 7
02.11.2022, 17:00
Замабувараев, вы же утверждаете что в Си нет типа 1 байт. Как тогда по вашему реализован int8_t? Он требует больше байта?
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
02.11.2022, 19:07
locm, Я так утверждаю, потому что приведённые вами типы для байтов не компилируются, вон даже ошибки компиляции привёл. Всякие int long double компилируются, потому что они есть в языке. А других типов данных в языке нет.
Покажите мне как объявить тип данных «байт» на си.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7818 / 4637 / 2837
Регистрация: 22.11.2013
Сообщений: 13,159
Записей в блоге: 1
02.11.2022, 19:15
Цитата Сообщение от Замабувараев Посмотреть сообщение
почему вы символьный тип данных занесли в категорию целочисленных
а он, сюрприз-сюрприз, не символьный, он минимального размера в языке, sizeof(char) == 1; правда быть однобайтовым он от этого не обязан, тут да, есть такие платформы, где char больше одного байта
C
1
2
3
unsigned char t=5;
t+=5;  // теперь t равно 10
printf("%d\n",t);  // 10
1
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
02.11.2022, 19:22
bormant, ну если символьный тип данных можно использовать как целочисленный, то и тип String можно использовать как байтовый, потому что строка состоит из символов = из байтов = в языке QBasic есть тип данных байт.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7818 / 4637 / 2837
Регистрация: 22.11.2013
Сообщений: 13,159
Записей в блоге: 1
02.11.2022, 19:30
Цитата Сообщение от Замабувараев Посмотреть сообщение
символьный тип данных
Тип, с которым можно выполнять арифметические операции, упорно называете символьным, с чего бы вдруг?
1
Эксперт по электронике
7216 / 3395 / 347
Регистрация: 28.10.2011
Сообщений: 13,346
Записей в блоге: 7
02.11.2022, 19:53
Цитата Сообщение от Замабувараев Посмотреть сообщение
Покажите мне как объявить тип данных «байт» на си.
char хранит байт.
Можете отрицать это, но это ничего не изменит.

Цитата Сообщение от Замабувараев Посмотреть сообщение
ну если символьный тип данных можно использовать как целочисленный, то и тип String можно использовать как байтовый
Нативная строка это не байт.
Не забывайте что в Си нет типа строка.
1
 Аватар для markiza-inc
930 / 257 / 100
Регистрация: 21.10.2012
Сообщений: 621
03.11.2022, 00:55
locm и bormant, Полагаю, что Замабувараев имел ввиду именно байтовый тип, а не размер типа в один байт.

Зависит от того, как сама система этот тип воспринимает, например:
при определении Data as byte команда Print выдаст число, а при Data as char или как в qb Data as string*1, команда Print выведет символ.

Когда-то давно тоже столкнулся с нехваткой типа byte, при использовании прерываний и функций DOS.

Пример:

Определим тип запись

A as String*12
B as Integer
С as Byte
D as String*32

Тогда При получении С и его передаче в качестве нового параметра пишем просто С = С + 1.

A as String*12
B as Integer
С as String*1
D as String*32

С так же является числом, но тогда При получении С и его передаче в качестве нового параметра придется писать С = CHR$(ASC(C) + 1)

Полагаю, именно это имелось ввиду, когда Замабувараев писал про отсутствие типа byte.
1
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7818 / 4637 / 2837
Регистрация: 22.11.2013
Сообщений: 13,159
Записей в блоге: 1
03.11.2022, 08:45
markiza-inc,
Не понял вас. В Си типы signed char и unsigned char (да и char тоже) - числовые, поддерживают целочисленную арифметика полностью. В языке Си это минимальная адресуемая единица памяти. На большинстве современных платформ это 8-битный байт. int тоже символьный?
C
1
2
3
int i='0';
char c=i;
printf("int: %d %c,  char: %d %c\n",i,i,c,c);  // int: 48 0,  char: 48 0
1
 Аватар для markiza-inc
930 / 257 / 100
Регистрация: 21.10.2012
Сообщений: 621
03.11.2022, 10:48
bormant, я привел примеры нехватки типа byte именно для qb. То, о чем пишет Locm в посте №12.

Замабувараев дает ответ в посте №14 именно на этот вопрос, и затем уже проводит аналогию с языком С, где говорит именно о базовых типах данных. Их немного, остальные типы производные.
Цитата Сообщение от bormant Посмотреть сообщение
На большинстве современных платформ это 8-битный байт
именно современных, а не базовых от 80-х годов.

пост №20:
Цитата Сообщение от locm Посмотреть сообщение
int8_t это typedef char но могут быть другие варианты и зависит от платформы и компилятора.
Именно зависимость от ...

Цитата Сообщение от locm Посмотреть сообщение
Так что вы не правы, в Си есть тип 1 байт.
Замабувараев, полагаю, имеет ввиду не длину типа в 1 байт, а именно тип byte.

Строковые переменные тоже содержат в себе именно коды, т.е. числа от 0 до 255, но воспринимаются системой именно как символы. Присвоение символьной переменной данных идет как = 'a', а не числом.

Как в Паскале тип Char. Правильное (родное по смыслу) присвоение значения символьной переменной через := 'A', а присвоение := #65 - это уже функция, преобразующая число в символ.
0
03.11.2022, 11:00

Не по теме:

Цитата Сообщение от markiza-inc Посмотреть сообщение
именно современных, а не базовых от 80-х годов.
Си появился давно и тип char в нем был изначально.

Цитата Сообщение от markiza-inc Посмотреть сообщение
Именно зависимость от
Количество платформ поддерживаемых Си гораздо больше чем у QB.

Цитата Сообщение от markiza-inc Посмотреть сообщение
Замабувараев, полагаю, имеет ввиду не длину типа в 1 байт, а именно тип byte.
В Си тип char аналогичен byte.

Цитата Сообщение от markiza-inc Посмотреть сообщение
Присвоение символьной переменной данных идет как = 'a', а не числом.
PureBasic
1
2
x.c = 'a'
Debug x
Тип char. Результат 97. Это символ или число?

0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7818 / 4637 / 2837
Регистрация: 22.11.2013
Сообщений: 13,159
Записей в блоге: 1
03.11.2022, 11:37
Цитата Сообщение от locm Посмотреть сообщение
В Си тип char аналогичен byte.
unsigned char, извините.
char может быть аналогичен (0..255 когда беззнаковый) или не аналогичен (-128..127 когда знаковый), а какой он -- зависит от параметров компилятора. Угу, char, signed char, unsigned char -- в Си это по стандарту языка три отдельных типа но первый обязан вести себя так же как один из двух оставшихся .

Цитата Сообщение от markiza-inc Посмотреть сообщение
именно тип byte
Есть такой, unsigned char.
Он char не потому, что он символьный, а потому что его тогда было "достаточно для представления кода символа". Какой-то семантики как для операций над символами в языке Си у него нет. Так что тут Замабувараев выдает за действительное желамое.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.11.2022, 11:37

Поиск и замена hex значения в dll файле
Как мне найти и заменить несколько hex значений в dll файле?

Поиск и замена hex значения в dll файле
Как мне найти и заменить несколько hex значений в dll файле?

Замена определённого HEX значения в bin файле
Здравствуйте! Есть допустим файл hello.exe Нужно, средствами PHP перевести его в HEX и записать в файл hex.txt Далее из этого...

Изменение нужного байта, hex редактор
Запустил *.exe, нашел через читЕнджи нужный адрес 4d215c, кликнул на него и показало *.exe+d215c - я так понял это смещение. Открыл Hex...

Вычисление байта по цифрам hex(bin) из поля ввода и отправка его по bluetooth в MIT App Inventor
Можно ли (вместо кодов цифр) преобразовать в байт данные, введенные по цифрам по цифрам hex(bin) из поля ввода и отправить его по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru