Воскресенье, 05.05.2024
Королевство Delphi
Главное меню
Статьи
Наш опрос
Нашли свой исходник?
Всего ответов: 94
Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Главная » Статьи » Разные » Функции и процедуры

Работа со строками [Функции]

Предисловие:
Довайте с вами рассмотрим основные функции для работы со строками, вообще в свободное время мне
нравиться помудиться со строками- пропарсить какойлибо сайт и тд: наша цель, пропарсить сайт
_http://myip.ru и добыть наш ип в удобной форме x) Хотя легче конечно залезть на сам сайт и посмотреть
НО представим что ип нам нужно вывести в своей проге или отправить на мыло- конечно узнать ип можно
поразному, но мы выберем именно этот способ

Наконец-то расшифрована звукозапись первого полета в космос Ю.Гагарина:
Эй... Куда вы меня тащите...Эээ... Вы что?... Что это за хреновина? У вас что у всех крыши ПОЕХАЛИ...
Вот и мы...

Поехали

Наши строковые функции:

Length(Str: String) 
SetLength(Str: String; NewLength: Integer) 
Pos(SubStr, Str: String) 
PosEx(SubStr, Str: String; Offset: Integer) 
Delete(Str: String; Start, Length: Integer) 
Copy(Str: String; Start, Length: Integer) 
LowerCase(Str: String) 
UpperCase(Str: String) 
AnsiReplaceStr(Str, FromText, ToText: String) 
AnsiReplaceText(Str, FromText, ToText: String) 
ReverseString(Str: String) 
AnsiReverseString(Str: AnsiString) 
DupeString(Str: String; Count: Integer)

Для выполнения поставленной задачи "Добыть IP" нам потребуються не все из них- но всё же рассмотрим
их все. Так- начнём попорядку:

//////LENGTH////// 
Length(Str: String) 

Дання функция возврощает колличество символов в строке.
Пример:

len:=length('hallо world') 

дання строка возвратит нам число 11, как видим значение которое вернула функция поместиться в
переменную len, для примера- чтобы посмотреть результат напишем showmessage(len);

len:=length('hellо world'); 
showmessage(len); 

---
Результат "11"
---

//////SetLength////// 
SetLength(Str: String; NewLength: Integer) 

Данная функция "Обрезает" строку, тут как мы видим два входных параметра- 1 аргумент должен содержать строку над которой работать а второй это насколько символов сделать ограничение.
Пример:

len:='строка для примера'; 
len:=setlength(len,6); 
showmessage(str); 

---
Результат "строка"
---

//////Pos////// 
Pos(SubStr, Str: String) 

Данная функция ищет вхождение подстроки
Пример:

len:='login@mail.ru'; 
num:=pos('@', len);
showmessage(inttostr(num)); 

---
Результат "6"
---

//////PosEx////// 
PosEx[/b](SubStr, Str: String; Offset: Integer) 

Для того чтобы работать с этой функцией подключети в uses "StrUtils".
Данная фукнция аналогична функции Pos с той лишь разницей что можно указать отступ, тобиш с какого
символа будет начат поиск подстроки
Пример:

len1:='Что за тупая функция'; 
len2:='тупая';
num1:=PosEx(len2, len1, 2); 
num1:=PosEx(len2, len1, 3);
showmessage(inttostr(P1)); 
showmessage(inttostr(P2)); 

---
Результат "3" и "4"
---

//////Delete////// 
Delete(Str: String; Start, Length: Integer) 

Функция удаляет часть строки...
Пример:

len:='Дарова Ping0, опять нажрался?'; 
Delete(len, 13, 17); 
showmessage(len);

---
Результат "Дарова Ping0"
---

//////Copy////// Copy(Str: String; Start, Length: Integer) 

Данная функция копирует часть строки
Пример:

len:='Дарова Ping0, опять нажрался?'; 
len:=copy(len, 15, 15); 
showmessage(len); 

---
Результат "опять нажрался?"
---

//////LowerCase////// 
LowerCase(Str: String) 

Данная функция преобразует строку в нижний регистор
Пример:

len:=lowercase'I HeKeR pOetOmU nEpishU ZaborChiKoM'; 
showmessage(len); 

---
Результат "i heker poetomu nepishu zaborchikom"
---

жаль что данная функци я никак нереагирует на русские буквы =(

//////UpperCase////// 
UpperCase(Str: String) 

Данная функция аналогично функции LowerCase с той лиш разницей что преобразует текст в верхний
регистор, думаю приводить пример ненадо )

//////AnsiReplaceStr////// 
AnsiReplaceStr(Str, FromText, ToText: String) 

Опять же чтобы работала данная функция нцжно подключить в uses "StrUtils".
Пример:

len:='Всем Привет'; 
len2:=AnsiReplaceStr(Str1, 'Привет', 'пока'); 
showmessage(str2) 

---
Результат "Всем пока"
---

//////AnsiReplaceText////// 
AnsiReplaceText(Str, FromText, ToText: String) 

Опять же незабываем подключить в uses "StrUtils".
Функция аналогична предыдущий функции "AnsiReplaceStr" с той лишь разницей что она независима от регистра.
Пример:

len:='Всем Привет'; 
len2:=AnsiReplaceStr(Str1, 'ПриВеТ', 'пока'); 
showmessage(str2) 

---
Результат "Всем пока"
---

//////ReverseString////// 
ReverseString(Str: String) 

Незабываем подключить в uses "StrUtils".
Функция моя самая любимая ) Она позволяет перевернуть строку
Пример:

len:='Всем привет'; 
len:=reversestring(len); 
showmessage(len) 

---
Результат "акоп месВ"
---

//////AnsiReverseString////// 
AnsiReverseString(Str: AnsiString) 

Аналогична функции ReverseString

//////DupeString////// 
DupeString(Str: String; Count: Integer) 

Интересная функция однако, копирует строку столько раз сколько указанно в аргументе Count
Пример:

len:='Всем привет'; 
len:=dupestring(len,5); 
showmessage(len) 

---
Результат "Всем приветВсем приветВсем приветВсем приветВсем привет"
---

С функциями всё- теперь довайте для приличия всёже получим этот ИП "млять, только теперь я понимаю-
что этот долбанный ип нестоил столько моего времени, которое я потратил на написание статьи )"
Кидаем на форму IdHTTP, Memo и Button
и в обработчие собития OnClick у кнопки, пишем:
Код:

var len:string; num:integer; 
begin memo1.text:=idhttp1.get('http://www.myi p.ru/get_ip.php');
len:=memo1.text; 
num:=pos('<TD bgcolor=white align=center v align=middle>',len) +45; 
delete(len,1,num); 
len:=copy(memo1.text, num, pos('<',len)) ; 
memo1.Text:=len; 

Жмёте кнопку и получаете ип..
Ну вот впринципе и всё!
Всем спасибо за внимание- надеюсь кому пригодиться

Получить ссылку на материал

Категория: Функции и процедуры | Добавил: Барон (20.12.2011)
Просмотров: 1817 | Теги: строка | Рейтинг: 0.0/0
[ Пожертвования для сайта ] [ Пожаловаться на материал ]

Если вам помог материал сайта кликните по оплаченной рекламе размещенной в центре

Поиск
Категории раздела
Delphi.NET [3]
Kylix Delphi for Linux [9]
Советы Дельферу [6]
Хитрости в Delphi [2]
Обзор Delphi [45]
Инсталлятор [11]
Пользовательский интерфейс [18]
Примеры Delphi [93]
Функции и процедуры [15]
Разные [31]
Королевство Delphi © 2010-2024
Яндекс цитирования