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