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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 21.08.2009, 00:17   #11
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

Цитата:
Сообщение от Вавел из ГМТУ Посмотреть сообщение
Эта строка выглядит довольно странно:

Код:
if pos('.',s[i])<>0 then....
Спасибо потом сам додумаю, тема закрыта

Последний раз редактировалось zotox; 21.08.2009 в 00:30.
zotox вне форума
Старый 21.08.2009, 00:47   #12
AlexanderKs
Пользователь
 
Регистрация: 26.02.2009
Сообщений: 60
По умолчанию

Хоть тема и закрыта, я добавлю свою простенькую, работающую, но топорную функцию.. на всякий случай

Код:
function TForm1.TestIpAdr(inp: string): boolean;
var
ak:string;
i,z:integer;
begin
Result:=false;
if Length(inp)>15 then exit;
ak:=''; i:=1; inp:=inp+'.';
while i<=Length(inp) do begin
  if (ord(inp[i])>=48) and (ord(inp[i])<=57) then ak:=ak+inp[i]
  else begin
    if ord(inp[i])<>46 then begin Result:=false; exit; end;
  end;
  if (ord(inp[i])=46) then begin // если попалась точка
     try
       z:=StrToInt(ak); // пробуем перевести - try если большое слишком
       ak:='';
       if z>255 then begin
         Result:=false;
         exit;
       end;
       Result:=true;
     except
       result:=false; exit;
     end;
  end;
inc(i);
end;
end;
Косяки в том, что повторяются "result:=false; exit;"... неэстетично.
AlexanderKs вне форума
Старый 21.08.2009, 07:02   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

AlexanderKs, 1) Вы правы, Ваша функция очень "некрасивая" и замороченная
2) кроме того, в ней и дырки есть - проверьте для строки
"1.2.3.4.5.6.7"
Serge_Bliznykov вне форума
Старый 21.08.2009, 08:56   #14
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Мог пройти мимо
Код:
uses WinSock2
............................
 if inet_addr(PChar(Edit1.text)) <> INADDR_NONE then
 ShowMessage('Правильно')
 else ShowMessage('Фигня, однако...');
Баламут вне форума
Старый 21.08.2009, 09:05   #15
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Мог пройти мимо
А вот теперь тему можно действительно закрыть
I'm learning to live...
Stilet вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определение имя компьютера и айпи адресса 0x007f Помощь студентам 5 20.08.2009 21:29
Как определить количество занятых секторов на диске в делфи? buka_14 Помощь студентам 0 16.04.2009 16:42
Голос в текст на С++/Делфи [M]en Помощь студентам 7 26.03.2009 03:22
Помогите определить что с компом не так?? molodoyy Компьютерное железо 15 02.01.2009 22:06
Определить, совпадает ли текст с конечным отрезком ряда 0123456789 stasig Паскаль, Turbo Pascal, PascalABC.NET 2 09.12.2008 22:52