Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Перевод в байты delphi

-

Общение разработчиков

- Программирование для Perfect World, общение и обсуждене разработок

Ответ
 
Опции темы
Старый 15.12.2013, 22:49   #1
 Разведчик
Аватар для vladegorov7
 
vladegorov7 никому не известный тип
Регистрация: 11.07.2013
Сообщений: 5
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Перевод в байты delphi

Подключился к серверу через сокеты. Получил кракозябры.
Как перевести их в массив байт?
________________
Skype: darkwellroad
Сайт: [Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 16.12.2013, 09:04   #2
-= Мастер Света =-
 Рыцарь-лейтенант
Аватар для Smertig
 
Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(
Регистрация: 31.01.2011
Сообщений: 413
Популярность: 14489
Золото Zhyk.Ru: 300
Сказал(а) спасибо: 77
Поблагодарили 361 раз(а) в 145 сообщениях
Отправить сообщение для Smertig с помощью ICQ Отправить сообщение для Smertig с помощью Skype™
 
По умолчанию Re: Перевод в байты delphi

Каждая кракозябра имеет свой код символа. По одной переводи из символа в код, записывая в hex'е.
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.
  Ответить с цитированием
Старый 16.12.2013, 09:10   #3
 Пехотинец
Аватар для ToRcH2565
 
ToRcH2565 скоро будет известенToRcH2565 скоро будет известенToRcH2565 скоро будет известенToRcH2565 скоро будет известенToRcH2565 скоро будет известен
Регистрация: 02.08.2009
Сообщений: 57
Популярность: 417
Сказал(а) спасибо: 12
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Перевод в байты delphi

Цитата:
Сообщение от vladegorov7Посмотреть сообщение
Подключился к серверу через сокеты. Получил кракозябры.
Как перевести их в массив байт?

хм... а куда вы получили кракозябры? в строку(String)? очень не рекомендую читать в строку, лучше сразу в массив байт
  Ответить с цитированием
Старый 16.12.2013, 12:56   #4
 Разведчик
Аватар для vladegorov7
 
vladegorov7 никому не известный тип
Регистрация: 11.07.2013
Сообщений: 5
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Перевод в байты delphi

Цитата:
Сообщение от ToRcH2565Посмотреть сообщение
хм... а куда вы получили кракозябры? в строку(String)? очень не рекомендую читать в строку, лучше сразу в массив байт

Выводил в листбокс через AnsiString. Попробую вашим способом. Спасибо)

Добавлено через 2 минуты
Цитата:
Сообщение от SmertigПосмотреть сообщение
Каждая кракозябра имеет свой код символа. По одной переводи из символа в код, записывая в hex'е.

Попробую. И еще вопрос. При подключении к разным серверам эти кракозябры немного изменяются. А конкретнее последняя. С чем это связано?
________________
Skype: darkwellroad
Сайт: [Ссылки могут видеть только зарегистрированные пользователи. ]

Последний раз редактировалось vladegorov7; 16.12.2013 в 12:58. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 16.12.2013, 19:38   #5
-= Мастер Света =-
 Рыцарь-лейтенант
Аватар для Smertig
 
Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(
Регистрация: 31.01.2011
Сообщений: 413
Популярность: 14489
Золото Zhyk.Ru: 300
Сказал(а) спасибо: 77
Поблагодарили 361 раз(а) в 145 сообщениях
Отправить сообщение для Smertig с помощью ICQ Отправить сообщение для Smertig с помощью Skype™
 
По умолчанию Re: Перевод в байты delphi

Цитата:
Сообщение от vladegorov7Посмотреть сообщение
Попробую. И еще вопрос. При подключении к разным серверам эти кракозябры немного изменяются. А конкретнее последняя. С чем это связано?

Пакет имеет определенную структуру, значения элементов которой могут быть разными для разных серверов. Почитайте темки в разделе разработчиков "ООГ Авторизация" от FreePvP
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.
  Ответить с цитированием
Старый 16.12.2013, 21:34   #6
 Разведчик
Аватар для vladegorov7
 
vladegorov7 никому не известный тип
Регистрация: 11.07.2013
Сообщений: 5
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Перевод в байты delphi

Smertig, Спасибо. Почитаю
________________
Skype: darkwellroad
Сайт: [Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 18.12.2013, 21:18   #7
 Разведчик
Аватар для vladegorov7
 
vladegorov7 никому не известный тип
Регистрация: 11.07.2013
Сообщений: 5
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Перевод в байты delphi

Кому интересно, вот функция:
Код:
function StrToHex(source: String): String;
var
  i: Integer;
  c: Char;
  s: String;
begin
  s := '';
  for i := 1 to Length(source) do
  begin
    c := source[i];
    s := s + IntToHex(Integer(c), 2) + ' ';
  end;
  result := s;
end;
Спасибо всем за помощь.
________________
Skype: darkwellroad
Сайт: [Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 18.12.2013, 22:12   #8
-= Мастер Света =-
 Рыцарь-капитан
Аватар для Ginrey
 
Ginrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака Норриса
Регистрация: 14.06.2012
Сообщений: 511
Популярность: 7566
Сказал(а) спасибо: 4
Поблагодарили 181 раз(а) в 88 сообщениях
 
По умолчанию Re: Перевод в байты delphi

а зачем сначало переводить в AnsiString , а потом в String?
если можно сразу читать прямиком с пойманного пакета
Код:
function ByteArrayToStr(Byte_: TByteArray): string;
var
  i: Integer;
begin
  if Length(Byte_)>0 then
    begin
      for i:=0 to Length(Byte_)-1 do
        if i<>Length(Byte_)-1 then
          Result:=Result+IntToHex(Byte_[i],2)+' '
        else
          Result:=Result+IntToHex(Byte_[i],2)
    end;
end;
________________
Хотите как то отблагодарить за помощь?
Не стесняйтесь нажимайте "Спасибо"

Делаю программы на заказ, по всем вопросам в скайп: Ginrey2

Последний раз редактировалось Ginrey; 18.12.2013 в 22:20.
  Ответить с цитированием
Старый 18.12.2013, 22:54   #9
 Разведчик
Аватар для vladegorov7
 
vladegorov7 никому не известный тип
Регистрация: 11.07.2013
Сообщений: 5
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Перевод в байты delphi

Ginrey, В натуре. Спасибо за подсказку
________________
Skype: darkwellroad
Сайт: [Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 22.12.2013, 22:22   #10
 Пехотинец
Аватар для ToRcH2565
 
ToRcH2565 скоро будет известенToRcH2565 скоро будет известенToRcH2565 скоро будет известенToRcH2565 скоро будет известенToRcH2565 скоро будет известен
Регистрация: 02.08.2009
Сообщений: 57
Популярность: 417
Сказал(а) спасибо: 12
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Перевод в байты delphi

Цитата:
Сообщение от GinreyПосмотреть сообщение
function ByteArrayToStr(Byte_: TByteArray): string;

я наверное единственный кто так не любит массивы и делает все на потоках Оо
  Ответить с цитированием
Старый 23.12.2013, 19:13   #11
-= Мастер Света =-
 Рыцарь-капитан
Аватар для Ginrey
 
Ginrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака Норриса
Регистрация: 14.06.2012
Сообщений: 511
Популярность: 7566
Сказал(а) спасибо: 4
Поблагодарили 181 раз(а) в 88 сообщениях
 
По умолчанию Re: Перевод в байты delphi

ToRcH2565, а чем столь простой пример не устраивает, только пакет приходит и сразу переводим его куда нам нужно
________________
Хотите как то отблагодарить за помощь?
Не стесняйтесь нажимайте "Спасибо"

Делаю программы на заказ, по всем вопросам в скайп: Ginrey2
  Ответить с цитированием
Старый 23.12.2013, 22:27   #12
 Пехотинец
Аватар для ToRcH2565
 
ToRcH2565 скоро будет известенToRcH2565 скоро будет известенToRcH2565 скоро будет известенToRcH2565 скоро будет известенToRcH2565 скоро будет известен
Регистрация: 02.08.2009
Сообщений: 57
Популярность: 417
Сказал(а) спасибо: 12
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Перевод в байты delphi

Хм, щас у себя кусоче выдеру.... чтоб голословным не быть...

Код:
  while Sock.Connected do
  Begin
    buf:=Sock.IOHandler.ReadByte;
    BufferStream.Position:=BufferStream.Size;
    if Crypted then
    Begin
      buf:=S2C_RC4.RC4Code(buf);
      Unpacker.UnPack(buf,BufferStream);
    End else
      BufferStream.Write(buf,1);
    calculate;

    if PositionRead=BufferStream.Size then
    Begin
      PositionRead:=0;
      BufferStream.Clear;
    End;
  End;
Код:
  msg.Chat:=cmClan;
  pck.ReadByte;
  pck.ReadByte;
  msg.SenderUid:=pck.ReadUint;
  msg.Sender     :='';//m_GetNickByWID(msg.uid);
  msg.msg  :=pck.ReadCStr();
  if p_World.Notify.ContainsKey('onRecesiveMessage') then
    p_World.Notify['onRecesiveMessage'](@msg)
  else
    p_Logger.Add('Clan chat:-> '+msg.Sender+' : '+msg.msg,lgWarn);
Код:
Function TPWPacket.ReadCStr;
begin
  if size=0 then
    size:=ReadCui32;
  SetLength(Result,size div 2 );
  ReadBuffer(Result[1],size);
end;

Последний раз редактировалось ToRcH2565; 23.12.2013 в 22:31.
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Руководство] Настраиваем Delphi 2010/XE, чтобы она выглядела как Delphi 7 RifmoGlas Pascal/Delphi 2 09.02.2013 13:09
[Статья] Перевод текста с помощью переводчика Google в скрипте на PHP dwa83 Web-программирование и технологии 1 24.09.2012 10:38
[Информация] Помощь в Delphi 7 и в других версиях Delphi Babls77 Pascal/Delphi 4 03.11.2011 21:27

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 23:01.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net