Архив исходников программ, модулей и компонентов на Delphi


Начальная страница

Поиск по базе



Операционная система
Настройка приложения
Взаимодействия приложений
Файлы и директории
Строки и символы
Математика
Базы данных
Интернет и сеть
Мультимедиа
Аппаратная часть
VCL
Другие разделы [0]
 

Количество записей в базе - 537
Сегодня добавлено – 0

Другое (Строки и символы)



Вернуться к списку функций
 Выделение IP из строки

 Прислал: Torbins ( 16 декабря 2007 г. )
©  Собственное написание (Torbins)
 Описание:
Функция преобразовывает любую введенную строку в корректный IP. Для пустой строки будет возвращен 127.0.0.1.

 Зависимости:
SysUtils, Math

 Ограничения:
Проверено в D7, должно работать под D3-D2007

 Исходный текст:
{ **** UBPFD *********** by http://kladovka.net.ru/delphibase/ ****
>> Выделение IP из строки

Функция преобразовывает любую введенную строку в корректный IP. Для пустой строки будет возвращен 127.0.0.1.

Зависимости: SysUtils, Math
Автор:       Torbins, mikolabrody@ukr.net
Copyright:   Собственное написание (Torbins)
Дата:        16 декабря 2007 г.
***************************************************************** }

function CheckIP(sinp: string): string;
var s:string;
begin
if Pos('.',sinp)=0 then
  sinp:=sinp+'.';
//Если текст не содержит точек, то добавляем ее в конец.
s:=Copy(sinp,1,Pos('.',sinp)-1);
//Будем преобразовывать весь текст до первой точки.
Delete(sinp,1,Pos('.',sinp));
//Вырезаем преобразованый текст из введенного
s:=IntToStr(Min(255,Max(0,StrToIntDef(s,127))));
//Ограничиваем преобразованый текст рамками 0-255, а если преобразование
//не возможно - подставляем 127.
Result:=s+'.';
//Формируем результат

if Pos('.',sinp)=0 then
  sinp:=sinp+'.';
s:=Copy(sinp,1,Pos('.',sinp)-1);
Delete(sinp,1,Pos('.',sinp));
s:=IntToStr(Min(255,Max(0,StrToIntDef(s,0))));
Result:=Result+s+'.';
//Все аналогично, но если преобразование не возможно подставляем 0, а не 127

if Pos('.',sinp)=0 then
  sinp:=sinp+'.';
s:=Copy(sinp,1,Pos('.',sinp)-1);
Delete(sinp,1,Pos('.',sinp));
s:=IntToStr(Min(255,Max(0,StrToIntDef(s,0))));
Result:=Result+s+'.';

s:=sinp;
//Преобразовывать будем все, что осталось
s:=IntToStr(Min(255,Max(0,StrToIntDef(s,1))));
//Если преобразование не возможно подставляем 1
Result:=Result+s;
//Результирующая строка будет гарантировано содержать правильный IP
end;

 Пример использования:
Обработчик TEdit.OnExit:

procedure TForm1.Edit1Exit(Sender: TObject);
begin
  Edit1.Text:=CheckIP(Edit1.Text);
end;


Вернуться к списку функций

Наверх ▲    

За небольшую оплату купить духи в петербурге для всех и каждого.
Самая подробная информация проектирование газопроводов у нас.
online casino Malaysia