Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2014, 16:40   #1
Volt
Форумчанин
 
Аватар для Volt
 
Регистрация: 07.12.2008
Сообщений: 244
По умолчанию Запись числа в TMemoryStream

Народ кто знает почему когда я делаю запись в TMemoryStream:
Код:
var f1 : TMemoryStream;  
StartAdres : Integer;
begin
f1 := TMemoryStream.Create;  
...
StartAdres := 12;

   f1.Position := 0;
   f1.Write(StartAdres, 3); 

...
end;
то число StartAdres записывается слева направо а не наоборот? как исправить?
|̲̅̅●̲̅̅|̲̅̅=̲̅̅|̲̅̅●̲̅̅]
Volt вне форума Ответить с цитированием
Старый 05.02.2014, 16:54   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Так процессор работает. Не надо исправлять. Если будете считывать в Integer все нормально считается, с учетом обратной записи. И стоит 4 байта записывать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.02.2014, 17:00   #3
Volt
Форумчанин
 
Аватар для Volt
 
Регистрация: 07.12.2008
Сообщений: 244
По умолчанию

в смысле так процессор работает? вроде число считается с право налево. (дело в том что файл в дальнейшем будет обрабатывать микроконтроллер а он считывает с право налево)
|̲̅̅●̲̅̅|̲̅̅=̲̅̅|̲̅̅●̲̅̅]

Последний раз редактировалось Volt; 05.02.2014 в 17:04.
Volt вне форума Ответить с цитированием
Старый 05.02.2014, 17:19   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Вот как микроконтроллер будет считывать не знаю. Если он по другому, то нужно по-байтно записывать. Если 3 байта, то сначала байт i div $10000, потом (i mod $10000) div $100 и в конце i mod $100
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.02.2014, 17:30   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от Volt Посмотреть сообщение
в смысле так процессор работает? вроде число считается с право налево. (дело в том что файл в дальнейшем будет обрабатывать микроконтроллер а он считывает с право налево)
архитектура микрухи? littleendian или bigendian?
если отлична от интела то меняйте порядок байт числа перед записью.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.02.2014, 17:48   #6
Volt
Форумчанин
 
Аватар для Volt
 
Регистрация: 07.12.2008
Сообщений: 244
По умолчанию

все спасибо. не знал что у интела так.
|̲̅̅●̲̅̅|̲̅̅=̲̅̅|̲̅̅●̲̅̅]
Volt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись большого числа в переменную pavelitel Общие вопросы C/C++ 16 27.11.2012 21:55
Запись вещественного числа в dbgrid kwint3r БД в Delphi 10 04.05.2012 08:04
Запись числа в файл tolmik Паскаль, Turbo Pascal, PascalABC.NET 0 11.12.2011 03:44
запись любого целого числа n (n<3999) арабскими цифрами перевести в запись римскими цифрами (на языке C) qazse Помощь студентам 1 24.11.2011 12:05