Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Прочитать Long Double значения из бинарного файла 
V
    Опции темы
DsAEkb
Дата 25.9.2009, 07:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 27.6.2009

Репутация: нет
Всего: нет



Имеется бинарный файл, в котором хранятся структуры имеющие в составе значения long double. Файл этот создается программой написаной на билдере, соответственно размер long double равен 10 байт, в .net double имеет размер 8 байт, соответственно при чтении получаем бред.

Код

Dim fs = New FileStream(fullPath, FileMode.Open, FileAccess.Read)
Dim br As New BinaryReader(fs)          
Dim X as Double = br.ReadDouble

            
PM MAIL   Вверх
Bogdan1024
Дата 25.9.2009, 10:47 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: 5
Всего: 13



хм
если формат такой, какой я думаю, то можно попытаться добавить к 10 байтам ещё 6 нулевых байтов справа, и тогда прочитать как дабл.


--------------------
user posted image
PM MAIL   Вверх
DsAEkb
Дата 25.9.2009, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 27.6.2009

Репутация: нет
Всего: нет



Double же всего имеет размер 8 байт, а не 16
PM MAIL   Вверх
DsAEkb
Дата 28.9.2009, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 27.6.2009

Репутация: нет
Всего: нет



Спасение утопающих - дело рук самих утопающих http://www.codeproject.com/KB/cs
PM MAIL   Вверх
mr.DUDA
Дата 28.9.2009, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Как говорится, дело техники  smile 

в делфях
Цитата
Single    число с плавающей запятой 32 бита  float
Double    число с плавающей запятой 64 бита  double
Extended    число с плавающей запятой 80 бит    long double


в шарпе аналога нету, но правила по форматам чисел с плавающей запятой везде одни и те же (знак, экспонента, мантисса) поэтому методом тыка можно найти правильный вариант конверсии...


--------------------
user posted image
PM MAIL WWW   Вверх
Crypton
Дата 28.9.2009, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 9.10.2006
Где: США, Санкт-Петерб ург

Репутация: нет
Всего: 2



Может попробовать decimal хотя оно и 128и битное число?
--------------------
«Все, что вы знаете — ложь» Теория мироздания 
PM MAIL WWW ICQ Skype   Вверх
mr.DUDA
Дата 28.9.2009, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(Crypton @  28.9.2009,  17:07 Найти цитируемый пост)
Может попробовать decimal хотя оно и 128и битное число?

Ну как бы ты сам понял что не то сказал... smile 


--------------------
user posted image
PM MAIL WWW   Вверх
Crypton
Дата 28.9.2009, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 9.10.2006
Где: США, Санкт-Петерб ург

Репутация: нет
Всего: 2



Цитата(mr.DUDA @ 28.9.2009,  10:13)
Цитата(Crypton @  28.9.2009,  17:07 Найти цитируемый пост)
Может попробовать decimal хотя оно и 128и битное число?

Ну как бы ты сам понял что не то сказал... smile

Понедельник; мозги до Среды еще не проснутся.  smile 

*  *  *


Может это поможет?

Это сообщение отредактировал(а) Crypton - 28.9.2009, 17:18
--------------------
«Все, что вы знаете — ложь» Теория мироздания 
PM MAIL WWW ICQ Skype   Вверх
mr.DUDA
Дата 28.9.2009, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(Crypton @  28.9.2009,  17:15 Найти цитируемый пост)
Может это поможет?

Ну вообще-то топикстартер сам сказал что проблема решена и дал ссылку на этот ресурс  )


--------------------
user posted image
PM MAIL WWW   Вверх
DsAEkb
Дата 29.9.2009, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 27.6.2009

Репутация: нет
Всего: нет



Когда проблема не была решена - тишина, как тока проблему решил сразу такое оживление  smile Но все равно всем спасибо smile   
 
Цитата

в шарпе аналога нету, но правила по форматам чисел с плавающей запятой везде одни и те же (знак, экспонента, мантисса) поэтому методом тыка можно найти правильный вариант конверсии...

А вот это не совсем правда, если интересно можно пройти по моей ссылке и поподробней посмотреть алгоритм преобразования, простое изменение количества байт здесь не покатит.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0515 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.