ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

чтение int бинарно из файла
  #1  
Старый 26.03.2009, 16:10
Аватар для cupper
cupper
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
Провел на форуме:
1180737

Репутация: 180


По умолчанию чтение int бинарно из файла

Нужно бинарно считать файл, структуру файла знаю.
Первым значением идет unsugned int.
Вот началные байты 0x00, 0x00, 0x08, 0x01 это число 2049. А в переменно после считывания храниться число 17301504 это как раз если в байтах 01 08 00 00, в точности наоборот.
Есть ряд функци меняющий порядок байт в числе, из низх по иписанию подходит
ntohl - осуществляет перевод целого длинного числа из сетевого порядка байт в порядок байт, принятый на компьютере
но она кажеться только дя MVS.
как можно считать int из файл в бинарном режиме чтобы получить число которое там записано
 
Ответить с цитированием

  #2  
Старый 26.03.2009, 16:58
Аватар для SmanxX1
SmanxX1
Новичок
Регистрация: 04.08.2008
Сообщений: 29
Провел на форуме:
167800

Репутация: 15
По умолчанию

PHP код:
FILEfp;
unsigned int var;

fp=fopen(szFileName,"rb");
fseek(fp,0,SEEK_SET);
fread(&var, sizeof(unsigned int),1,fp);
fclose(fp); 
Прочитает uint32.

И не стоит путать способы хранения переменных в файлах и в памяти!

Для проверки можно сделать так:
PHP код:
printf("var=%#2.2x",var); 

Последний раз редактировалось SmanxX1; 26.03.2009 в 17:01..
 
Ответить с цитированием

  #3  
Старый 26.03.2009, 21:54
Аватар для FoX's
FoX's
Участник форума
Регистрация: 26.12.2004
Сообщений: 188
Провел на форуме:
1495357

Репутация: 107
Отправить сообщение для FoX's с помощью ICQ
По умолчанию

Цитата:
ntohl - осуществляет перевод целого длинного числа из сетевого порядка байт в порядок байт, принятый на компьютере
но она кажеться только дя MVS.
Import Library: Link with ws2_32.lib
можно как замену использовать:
Цитата:
long _ntohl(long toswap)
{
__asm
{
mov eax,toswap
bswap eax

}
}
 
Ответить с цитированием

  #4  
Старый 26.03.2009, 22:55
Аватар для cupper
cupper
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
Провел на форуме:
1180737

Репутация: 180


По умолчанию

Цитата:
Import Library: Link with ws2_32.lib
в DEV-C++ незнаю как присоединить, в MVS непомогло.
 
Ответить с цитированием

  #5  
Старый 27.03.2009, 00:24
Аватар для St0nX
St0nX
Участник форума
Регистрация: 19.05.2007
Сообщений: 281
Провел на форуме:
2823587

Репутация: 106
Отправить сообщение для St0nX с помощью ICQ
По умолчанию

#pragma comment(lib,"ws2_32.lib")
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
(!!!) Выкладываю исходники чата august TANZWUT Чаты 53 17.04.2010 13:10
Разбираем матрицу: QR-код и чем его «едят» (C#). c0n Difesa С/С++, C#, Delphi, .NET, Asm 17 18.11.2009 19:53
Процесс создания программного обеспечения для распределенных вычислений (С++). c0n Difesa Авторские статьи 9 09.06.2009 16:33
WhiteCat LogCleaner 1.0 by ShadOS ShadOS Избранное 41 14.05.2009 17:44
Как скрыть модуль ядра в линуксе? rent0n *nix 11 22.01.2006 03:19



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ