Форум программистов, компьютерный форум CyberForum.ru

Чтение файла с данными типа real. Тип real в билдере или как его "обойти"? - C++

Восстановить пароль Регистрация
 
 
Jaydens_Blues
0 / 0 / 0
Регистрация: 15.10.2014
Сообщений: 30
26.10.2015, 09:28     Чтение файла с данными типа real. Тип real в билдере или как его "обойти"? #1
Читаю файл в структуру,

C++
1
2
3
4
5
6
7
8
9
double Fdat;
 
struct STR
       {
        ...
 
       } rec
 
read( Fdat,(char *)&rec,sizeof(rec));
но данные на выходе получаются, вежливо говоря, не совсем те, которые должны. Описание струкруты самого файла у меня есть. Подозреваю, что проблема в том, что в структуре читаемого файла присутствует тип Real, 6 байт, а в билдере, как я понял, нет этого типа, есть float или double по 4 и 8 байт соответственно. Помимо этого, ещё в файле есть IUNT и UDINT, я их объявляю как unsigned int и unsigned long int, и это верно, если не ошибаюсь.
Читаю другие файлы другой структуры, где нет вещественного типа (и Fdat как int идёт), и всё как надо читается.
Верно ли я понял причину (real) и что можно сделать, какой тип объявить вместо real? Если все же double, то как читать 6 байт? Пробовал сделать так

C++
1
read( Fdat,(char *)&rec,sizeof(rec)-(sizeof(float))/2); // типа отнимаем 2 лишних байта
, но результата положительного это не дало. Помогите, пожалуйста. Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2015, 09:28     Чтение файла с данными типа real. Тип real в билдере или как его "обойти"?
Посмотрите здесь:

Дано: a:array[1…n] of real;p:real;k:integer;(a[1]<=a[2]<=⋯<=a[n],0<k≤n). C++
C++ Массив шаблонов или как обратиться к элементам разного типа, хранящиеся в одном "списке" по индексу
C++ Error: значение типа "const char" нельзя присвоить сущности типа "double"
C++ Given real numbers a, b, c. Find if a quadratic inequality ах2 + bx + с = 0 has real roots. If it does, output them
Составить процедуру Change Vector для умножения всех элементов вектора на число типа real C++
При компиляции ошибка: C2228: left of ".real",".imag" must have struct/class/union C++
"Чудеса типа float" или "Куда девалась информация?" C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jaydens_Blues
0 / 0 / 0
Регистрация: 15.10.2014
Сообщений: 30
28.10.2015, 08:26  [ТС]     Чтение файла с данными типа real. Тип real в билдере или как его "обойти"? #41
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Ну если есть заголовок то что есть это "сам не знаешь что" выяснить гораздо проще
Только вот с заголовком-то что делать? Как его прочитать, чтобы хоть что-то понять из него?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2015, 17:45     Чтение файла с данными типа real. Тип real в билдере или как его "обойти"?
Еще ссылки по теме:

Значение типа "void" нельзя использовать для инициализации сущности типа "int" C++
Ошибка аргумент типа "char" несовместим с параметром типа "LPCSTR" C++
C++ Класс "одномерный массив" и методы для работы с его данными
C++ Error C2679: бинарный "<<": не найден оператор, принимающий правый операнд типа "std::string" (или приемлемое

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

Или воспользуйтесь поиском по форуму:
nmcf
4441 / 3779 / 1278
Регистрация: 14.04.2014
Сообщений: 14,872
28.10.2015, 17:45     Чтение файла с данными типа real. Тип real в билдере или как его "обойти"? #42
Загрузи сюда весь файл, если он не секретный.
Yandex
Объявления
28.10.2015, 17:45     Чтение файла с данными типа real. Тип real в билдере или как его "обойти"?
Ответ Создать тему
Опции темы

Текущее время: 20:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru