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

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

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

Восстановить пароль

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 15.03.2010, 16:33   #1
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию Странно записанные переменные

Код:
function TForm1.LookupName: TInAddr;
var
  HostEnt: PHostEnt;
  InAddr: TInAddr;
begin
  if Pos('.', AddressEdit.Text) > 0 then
    InAddr.s_addr := inet_addr(PChar(AddressEdit.Text))
  else
  begin
    HostEnt := gethostbyname(PChar(AddressEdit.Text));
    FillChar(InAddr, SizeOf(InAddr), 0);
    if HostEnt <> nil then
    begin
      with InAddr, HostEnt^ do
      begin
        S_un_b.s_b1 := Byte(h_addr^[0]);
        S_un_b.s_b2 := Byte(h_addr^[1]);
        S_un_b.s_b3 := Byte(h_addr^[2]);
        S_un_b.s_b4 := Byte(h_addr^[3]);
      end;
    end
  end;
  Result := InAddr;
end;
Вот функция, объянсите пожалуйста, почему как-то странно записаны переменные S_un_b.s_b1 до S_un_b.s_b4?Почему бы их просто незаписать как б1 б2 б3 б4?и h_addr^[0] - что за запись такая? if HostEnt <> nil then, что такое nil?
if Pos('.', AddressEdit.Text), и что такое здесь Pos?
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума
Старый 15.03.2010, 16:42   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от ImmortalAlexSan Посмотреть сообщение
Вот функция, объянсите пожалуйста, почему как-то странно записаны переменные S_un_b.s_b1 до S_un_b.s_b4? Почему бы их просто незаписать как б1 б2 б3 б4?
Существуют различные стандарты на запись переменных , возможно автор придерживался одного из них. Например, можно прочитать здесь - http://ru.wikipedia.org/wiki/Венгерская_нотация

Цитата:
и h_addr^[0] - что за запись такая?
Это работа с указателями.

Цитата:
if HostEnt <> nil then, что такое nil?
nil - это специальное значение означает нуль или ничего, отсутствие чего-либо. То есть, если HostEnt не инициализирована или принудительно освобождена, то будет выполнено присвоение переменных.

Цитата:
if Pos('.', AddressEdit.Text), и что такое здесь Pos?
Pos это стандартная функция поиска подстроки (в данном случае ищется точка) в строке AddressEdit.Text. Она возвращает позицию (номер символа) или значение меньше единицы в случае, если такой символ в строке отсутствует. То есть, в данном случае, если в адресе присутствует точка, то прога пытается получить какой-то адрес.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума
Старый 15.03.2010, 16:43   #3
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...видимо тот, кто создавал (переводил) winsock, показалось удобнее переделайте как вам больше нравиться
...<>nil проверка на возвращаемый указатель, точнее его отсутствие
...pos ищет точку, своего рода проверка на вшивость ip адреса: xxx.xxx.xxx.xxx

увы-увы-увы, клацал долго...
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума
Старый 15.03.2010, 16:56   #4
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

Спасибо, всё стало понятно. С меня весы!
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума
Старый 15.03.2010, 16:58   #5
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от ImmortalAlexSan Посмотреть сообщение
Спасибо, всё стало понятно. С меня весы!
Лучше бы ты Делфи учил, а не на весы клацал, ну да подрастешь поймешь .
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума
Старый 15.03.2010, 17:54   #6
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

Utkin, я обращаюсь сюда только тогда, когда сам ничего найти не могу по вопросу, или не могу дойти до истины. =)
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
I/O error 183, очень странно... Flame_of_Death Общие вопросы Delphi 7 23.09.2009 08:20
Странно ..... HellMercenariess О форуме и сайтах клуба 1 07.08.2009 12:55
Сортирует цифры по строкам, а надо чтобы сортировала цифры , записанные через пробелы Алексей_xXx Помощь студентам 14 06.05.2009 17:42
Странно Viteef Свободное общение 10 03.07.2007 03:28
Помогите, очень странно... nonono Общие вопросы Delphi 3 23.05.2007 23:39