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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 01.05.2012, 12:18   #1
NEoMASTERR
Форумчанин
 
Аватар для NEoMASTERR
 
Регистрация: 22.12.2010
Сообщений: 175
По умолчанию объеденить 2 байта

Здравствуйте, програмка получает пакет со списком ип адресов и портов
Пример
C1 C0 3A A5 6F 21 C1 C0 3A A5 6F 69 5C
и так далее

первые 4 байта - адрес, еще 2 байта - порт, 5С - разделитель
адрес вынимаю циклом, а вот с портом проблема, никак не могу понять как взять оба байта и перевести их в стринг (добавляю в мемо всю строку с адресом и портом)
Получается что то типа 193.192.58.165:11133 (должно быть 193.192.58.165:28449)

PHP код:
var
  
s:string;
  
b:array of byte;
  
i,j:integer;
  
port:Word;
begin
  SetLength
(b,AData.size);
  
AData.Read(b[1],AData.Size);
  
i:=25;                                //брать байты будем начиная с 25-ого
  
j:=1;
  while 
i<>AData.Size do
  
begin

    
if b[i]=$5C then
    begin
      mmo1
.Lines.Add(s);
      
s:='';
      
Inc(i);
      Continue;
    
end;

    if 
j=5 then
    begin
      port
:=b[i]*100+b[i+1];         //байт 6F*100+21 = 6F00+21 = 6F21
      
s:=s+':'+inttostr(port);
      
j:=1;
      
inc(i);
    
end
    
else
    
begin
      s
:=s+inttostr(b[i]);
      if 
j<>4 then s:=s+'.';
      
inc(j);
    
end;

    
inc(i);
  
end;
end
оч надеюсь на вашу помощь, часа 4 мучаюсь никак не получается)
Здравствуйте
NEoMASTERR вне форума
Старый 01.05.2012, 12:33   #2
NEoMASTERR
Форумчанин
 
Аватар для NEoMASTERR
 
Регистрация: 22.12.2010
Сообщений: 175
По умолчанию

port:=b[i]*256+b[i+1];

Нашел на форуме))
Всем спасибо, отбой
Здравствуйте
NEoMASTERR вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объеденить поля Alexnoir Microsoft Office Access 5 15.02.2011 15:30
Нужно Объеденить запросы MSD БД в Delphi 4 12.05.2010 11:07
Фреймы как объеденить в один??? p1nk HTML и CSS 3 05.03.2010 16:19
Объеденить скрипт и код html makashaika JavaScript, Ajax 8 19.11.2009 19:36
Selection - как объеденить??? Sensygirl Microsoft Office Excel 8 05.10.2009 18:03