Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> чтение из буфера 
V
    Опции темы
JS2
Дата 4.2.2010, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Доброго времени суток. Не могу разобраться как проити по буферу, который формируется из стрима и на каждом офсете считать по 4 байта. Т.е. условно содержимое:

1 2 3 4 5 6 7 8 9

в цикле выводим:

1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7
5 6 7 8
6 7 8 9

Вот начало:

Код

procedure TForm8.Button2Click(Sender: TObject);
var
  S: TStream;
  Buf: PChar;
  I: Integer;
begin
  S := TFileStream.Create('Test', fmOpenRead or fmShareDenyNone);
  try
    GetMem(Buf, S.Size);
    try
      S.Read(Buf^, S.Size);
      for I := 0 to S.Size - 3 do
      begin
        //
      end;
    finally
      FreeMem(Buf);
    end;
  finally
    S.Free;
  end;
end;


PM MAIL   Вверх
Mikel
Дата 4.2.2010, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

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



Что-н типа этого

Код

PDWord=LongWord^;
...
D:LongWord;
..

D:=PDWord(LongWord(@Buf)+i)^;


Добавлено через 2 минуты и 12 секунд
Да, и S.Size - 4


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
JS2
Дата 4.2.2010, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Mikel @  4.2.2010,  11:07 Найти цитируемый пост)
Что-н типа этогокод Pascal/Delphi1:2:3:4:5:6:PDWord=LongWord^;...D:LongWord;..D:=PDWord(LongWord(@Buf)+i)^;highlightSyntax('delphi_A2NTQx','delphi');highlightSyntax('delphi_A2NTQx','delphi');Добавлено через 2 минуты и 12 секундДа, и S.Size - 4


блин, что то не то:

выводится так:

7FF40010
907FF400
50907FF4
C750907F

а надо вроде как так:

7FF40010
F4001090
00109050
109050C7

Или я что-то не понимаю?

PM MAIL   Вверх
Mikel
Дата 4.2.2010, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

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



Все верно, просто поменяй байты местами. Информация к размышлению http://ru.wikipedia.org/wiki/%D0%9F%D0%BE%...%82%D0%BE%D0%B2


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




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


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

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