Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > C/C++ > C/C++
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.12.2012, 01:52
nicht nicht вне форума
Прохожий
 
Регистрация: 18.05.2011
Сообщения: 17
Репутация: 12
По умолчанию Проблема с трансляцией из С++ в Делфи

Здравствуйте.
Помогите перевести код из С++ в делфи. Привожу часть кода:
Код:
float read_flt_le(istream &f)
{ 
return read_le<float>(f); 
}

// read little-endian number from f and return equivalent in host endianess
template<typename T>
T read_le(istream &f)
{
    T val;
    my_read(f, reinterpret_cast<char*>(&val), sizeof(val));
    le_to_host(&val, sizeof(val));
    return val;
}

void my_read(istream &f, char *buf, int len)
{
    f.read(buf, len);
    cout << buf << endl;
    if (f.gcount() < len) {
        throw FormatError("unexpected eof");
    }
}

void le_to_host(void *, int)
{}
Здесь файл читается в поток, и из него идет считывание нужных данных.
Чтение делаю с помощью
Код:
BlockRead()
с чтением целых чисел и строк все нормально идет, загвоздка только с функцией
Код:
float read_flt_le(istream &f)
. Пробовал читать как Single:
Код:
var
ofi: file;
Real4: Single;
NumRead: integer;
Begin
...
BlockRead(ofi, real4, SizeOf(Real4), NumRead);
...
Но получаю неверные значения. Подозреваю, что дело в
Код:
template<typename T>
Подскажите, как правильно сконвертировать в Делфи

Последний раз редактировалось nicht, 13.12.2012 в 01:54.
Ответить с цитированием
  #2  
Старый 13.12.2012, 01:56
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

В каком формате в файле хранятся данные? Покажи файл и где что в нём?
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #3  
Старый 13.12.2012, 11:27
nicht nicht вне форума
Прохожий
 
Регистрация: 18.05.2011
Сообщения: 17
Репутация: 12
По умолчанию

Вечером закину сам файл, код на С++ и то, как я читал на Delphi
Ответить с цитированием
  #4  
Старый 14.12.2012, 00:14
nicht nicht вне форума
Прохожий
 
Регистрация: 18.05.2011
Сообщения: 17
Репутация: 12
По умолчанию

Извиняюсь, сам разобрался. Оказывается, в плюснутом исходнике ошибка была... Поправил, отписал в баг-трекер проги. Спасибо за сочуствие
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:59.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter