Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
1 / 1 / 0
Регистрация: 11.07.2015
Сообщений: 40

Как записать в файл данные в hex формате?

18.07.2015, 06:51. Показов 5204. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Не могу решить одну задачу...(
С СОМ порта идут данные в hex формате, т.е. число вместо "7272" приходит 4848...
Эти данные я записал в текстовый файл. Теперь это 7272 отображается в файле как HH...
Направьте на путь истинный - каким образом принять то, что передаётся...
Либо мне нужно записывать данные в hex файл, либо как-то преобразовать HH в 7272 ?...
Честное слово, не могу понять, что делать...
Вот одна строка из записанного текстового файла:
Вложения
Тип файла: txt test.txt (59 байт, 12 просмотров)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.07.2015, 06:51
Ответы с готовыми решениями:

Записать данные из буфера в типизированный файл , переведённые из string в Hex формат
Здравствуйте уважаемые форумчане ! Возникла необходимость , при написании программы которая, переводит данные из string в hex и...

Записать в файл данные двух массивов в заданном формате
Уважаемые программисты нужно создать 2 массива, которые вмещали в себе в первом - имя студента, во втором - его фамилия, и заполнить их...

Как записать MAC адрес в HEX файл?
Не знаю в каком разделе задать этот вопрос, поэтому спрошу здесь. Есть файл прошивки в котором уже внесен МАК адрес, но он закодирован. Как...

6
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
18.07.2015, 07:51
Капитан Очевидность говорит, что записывать в файл нужно в том формате, какой Вам нужен для дальнейшего использования.

Вам нужно потом читать это файл? В текстовом виде? Значит, попробуйте писать, преобразуя каждый байт в строку.
Например, через IntToStr. Или через printf/fprintf/sprintf
1
1 / 1 / 0
Регистрация: 11.07.2015
Сообщений: 40
18.07.2015, 08:20  [ТС]
Спасибо, что откликнулись!
Тут понимаете какая "беда" - приходится подстраиваться под то, что есть, т.е. доделывать ранее начатое другими людьми.
На данный момент я записываю данные, которые идут с СОМ порта в текстовый файл.
Данные идут в hex формате, поэтому в текстовом файле записаны всякие кракозябры... )
Так вот не могу понять как мне всё это преобразовать в нормальный вид?...
Чтобы HH выглядело как 7272...
0
3178 / 1937 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
18.07.2015, 08:58
Цитата Сообщение от INA007 Посмотреть сообщение
Чтобы HH выглядело как 7272
Читаете один байт ('HH') и выводите его же как десятичное целое ('72').

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int main(int argc,char** argv)
{
   FILE*    pIn = fopen("test.txt","rb"); 
 
   int   iChr = 0;
   int   iCnt = 0;
 
   while ((iChr = fgetc(pIn)) != EOF)
   {
      printf("%03d ",iChr);
 
      if (!(++iCnt % 16))
      {
         printf("\n");
      }
   }
 
   fclose(pIn);
 
   return 0;
}
Миниатюры
Как записать в файл данные в hex формате?  
1
1 / 1 / 0
Регистрация: 11.07.2015
Сообщений: 40
18.07.2015, 09:29  [ТС]
Спасибо и Вам!

Вы знаете, наверное я так запутался уже, что не понимаю простого...)
Я работаю в RDA Studio XE8 C++ Builder...
Записал всё это в таком виде:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void __fastcall TForm1::btnConvClick(TObject *Sender)
{
 
     FILE*    pIn = fopen("test.txt","rb");
 
   int   iChr = 0;
   int   iCnt = 0;
    if(!pIn) ShowMessage("Файл не открыт!");
   while ((iChr = fgetc(pIn)) != EOF)
   {
      printf("%03d ",iChr);
 
      if (!(++iCnt % 16))
      {
         printf("\n");
      }
   }
 
   fclose(pIn);
 
}
Но я не вижу результата...(
Вообще-то, мне хотелось бы записать преобразованные данные в другой файл, скажем test2.txt - это возможно?
0
3178 / 1937 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
18.07.2015, 09:43
Лучший ответ Сообщение было отмечено INA007 как решение

Решение

Цитата Сообщение от INA007 Посмотреть сообщение
не вижу результата
Плохо представляю, что такое Builder, но результат printf нужно смотреть в консоли. Либо поменяйте на fprintf и выводите в файл.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int main(int argc,char** argv)
{
   FILE*    pIn  = fopen("test.txt","rb"); 
   FILE*    pOut = fopen("result.txt","wt"); 
 
   int   iChr = 0;
   int   iCnt = 0;
 
   while ((iChr = fgetc(pIn)) != EOF)
   {
      fprintf(pOut,"%03d ",iChr);
 
      if (!(++iCnt % 16))
      {
         fprintf(pOut,"\n");
      }
   }
 
   fclose(pIn);
   fclose(pOut);
 
   return 0;
}
Вложения
Тип файла: 7z result.txt.7z (203 байт, 4 просмотров)
1
1 / 1 / 0
Регистрация: 11.07.2015
Сообщений: 40
18.07.2015, 10:21  [ТС]
Вот спасибо, Вам огромное!
Вы уж извините за глупые вопросы, но, честное слово, запутался совсем с этой задачей... )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.07.2015, 10:21
Помогаю со студенческими работами здесь

Как правильно записать файл в текстовом формате?
Как правильно записать файл в текстовом формате в языке Си? помогите пожалуйста исправить? #include <stdio.h> #include...

Записать число в hex файл
Дано число вида 0x08000000, как мне объяснили если записывать его в бинарь то получится запись 4 байта. как мне его разбить на байты?

Файл: Как с помощью Python записать (а не перезаписать) данные из базы SQLite в файл lex.txt.
Помогите с разработкой части проекта, пожалуйста! Есть файл db.sqlite в котором таджикские слова: words А Абад Адиб Асрор ...

Записать в файл все числа от нуля до 2^16 в hex-виде
Здравствуйте, как записать все комбинации 2^16 (в hex-виде) в блокнот ?

Файл. Как записать данные?
Доброго времени суток... просьба помочь с программой. Програма вычисляет корень квадратный в нормальных и комплексных числах. Чего надо: ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru