Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как изъять символ через Pointer указатель?


Автор: WDeveloper 31.1.2007, 20:14
Имеется такой код приёма бинарных данных на ClientSocket:

Код

var
  FStream : TFileStream;

procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
var
  iLen: Integer;
  Bfr: Pointer;

begin

  iLen := Socket.ReceiveLength;
  GetMem( Bfr, iLen );
  try
    Socket.ReceiveBuf( Bfr^, iLen );
    FStream.Seek( 0, soFromEnd );
    FStream.Write( Bfr^, iLen );
  finally
    FreeMem( Bfr );
  end;

end;

Там мы через ReceiveBuf получаем указатель Bfr на данные и тут же помещаем их в конец текущего файлового потока.
Подскажите пожалуйста, каким образом можно посмотреть какие в этом массиве 2ой и 3ий символ?
Другими словами как можно сделать возможное что-то типа:
Код
ShowMessage ( Bfr^[1] + Bfr^[2] );


Спасибо!

Автор: W4FhLF 31.1.2007, 20:40
Код

ShowMessage(IntToStr(  byte(pointer(dword(Bfr)+2)^)  ));

Автор: WDeveloper 31.1.2007, 22:31
Вот ещё решение нашёл:
Код
ShowMessage ( Char ( ( PChar( Bfr ) + I )^ ) );




Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)