Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Ответ
 
Опции темы
Старый 29.01.2012, 01:47   #1
 Разведчик
Аватар для HAHo_tech
 
HAHo_tech неизвестен в этих краяхHAHo_tech неизвестен в этих краяхHAHo_tech неизвестен в этих краях
Регистрация: 16.01.2012
Сообщений: 11
Популярность: -210
Сказал(а) спасибо: 12
Поблагодарили 11 раз(а) в 9 сообщениях
 
Post Примеры на Delphi: Copy Pos

Этот урок будет полезен начинающим программистам, которые хотят знать как пользоваться функцией Copy и Pos. Для этого я решил привести несколько примеров на Delphi

К примеру вам нужно вытащить из email только логин, для этого:

PHP код:
procedure TForm1.Button1Click(SenderTObject);
var
  
str1str2str3string;
  
PInteger;
begin
      str1 
:= '[Ссылки могут видеть только зарегистрированные пользователи. ]'// Наш пример email адреса
      
str2 := '@'// До этого символа мы будем потом вырезать логин
      
:= Pos(str2str1) - 1// Узнали длину строки от начала до символа '@'. В нашем примере это будет 11
      
str3 := Copy(str10P); // Теперь в переменной str3 хранится наш логин без '@mail.ru'
      
Label1.Caption := str3// Выводим результат
end
Пример выше служит только для разъяснения, его можно написать чуть короче:
PHP код:
procedure TForm1.Button1Click(SenderTObject);
var
  
str1str2string;
begin
      str1 
:= '[Ссылки могут видеть только зарегистрированные пользователи. ]';
      
str2 := '@';
      
Label1.Caption := Copy(str10Pos(str2str1) - 1);
end
Но что если нам нужно узнать не логин а домен? Для этого нам понадобится функция Length:
PHP код:
procedure TForm1.Button1Click(SenderTObject);
var
  
str1str2str3str4String;
  
PInteger;
begin
      str1 
:= '[Ссылки могут видеть только зарегистрированные пользователи. ]';
      
str2 := '@';
      
:= Pos(str2str1); // Узнали длину строки от начала до символа '@'
      
str3 := IntToStr(Length(str1)); // В переменной str3 хранится длина строки нашего email
      
str4 := Copy(str11StrToInt(str3)); // Здесь мы при помощи Copy делаем вот что:
      // str1 - в этой переменной будет происходить действия
      // P + 1 - в P хранилась длина строки от начала до символа '@' и + 1 - значит исключаем этот символ
      // StrToInt(str3) - длина всей строки
      // В итоге функция Copy в переменной str1 вычисляет от переменной P+1 и до конца всей строки, то есть до StrToInt(str3) и запишет в переменную str4 уже готовый наш домен
      
Label1.Caption := str4// Выводим результат
end
Этот пример так же был для описания действий, вот наиболее короткий пример:
PHP код:
procedure TForm1.Button1Click(SenderTObject);
var
  
str1str2String;
begin
      str1 
:= '[Ссылки могут видеть только зарегистрированные пользователи. ]';
      
str2 := '@';
      
Label1.Caption := Copy(str1Pos(str2str1) + 1Length(str1));
end
________________
Сделай красиво - поставь спасибо
  Ответить с цитированием
Пользователь сказал cпасибо:
dred777 (21.05.2014)
Старый 29.01.2012, 07:21   #2
 Разведчик
Аватар для angryJC
 
angryJC на правильном пути
Регистрация: 24.01.2012
Сообщений: 1
Популярность: 49
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Примеры на Delphi: Copy Pos

Код:
str3 := IntToStr(Length(str1)); // В переменной str3 хранится длина строки нашего email
str4 := Copy(str1, P + 1, StrToInt(str3)); // Здесь мы при помощи Copy делаем вот что:
ваша родина - Индия?
зачем число (длину) переводить в строку и совать в str3, чтоб потом следующим действием переводить ту же строку обратно в число чтоб подставить в функцию?
почему вместо str3 не использовать целочисленную переменную?
  Ответить с цитированием
Старый 29.01.2012, 09:27   #3
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: Примеры на Delphi: Copy Pos

Цитата:
Сообщение от angryJCПосмотреть сообщение
ваша родина - Индия?

В Индии так популярен вырвиглаз цвет и наличие *****кода?

Добавлено через 8 минут
Вся статья без лишнего кода:
Код:
var
s,res:string;
begin
s:='[Ссылки могут видеть только зарегистрированные пользователи. ]';
res:=Copy(s,Pos('-',s)+1,Pos('@',s)-Pos('-',s)-1);
ShowMessage(res);
end;
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.



Последний раз редактировалось VeTaL_UA; 29.01.2012 в 09:35. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 29.01.2012, 14:27   #4
 Разведчик
Аватар для HAHo_tech
 
HAHo_tech неизвестен в этих краяхHAHo_tech неизвестен в этих краяхHAHo_tech неизвестен в этих краях
Регистрация: 16.01.2012
Сообщений: 11
Популярность: -210
Сказал(а) спасибо: 12
Поблагодарили 11 раз(а) в 9 сообщениях
 
По умолчанию Re: Примеры на Delphi: Copy Pos

Цитата:
Сообщение от angryJCПосмотреть сообщение
Код:
str3 := IntToStr(Length(str1)); // В переменной str3 хранится длина строки нашего email
str4 := Copy(str1, P + 1, StrToInt(str3)); // Здесь мы при помощи Copy делаем вот что:
ваша родина - Индия?
зачем число (длину) переводить в строку и совать в str3, чтоб потом следующим действием переводить ту же строку обратно в число чтоб подставить в функцию?
почему вместо str3 не использовать целочисленную переменную?

1) function Length ( const SourceString : string ) : Integer;
функция возращает переменную типа integer, а у переменной str3 тип string
2) function Copy ( Source : string; StartChar, Count : Integer ) : string;
т.к функция copy принимает параметр count (str3) в виде переменной типа integer, а у нас тип string, то его нужно преобразовать.
Вроде так
________________
Сделай красиво - поставь спасибо
  Ответить с цитированием
Старый 02.04.2012, 17:37   #5
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: Примеры на Delphi: Copy Pos

Ololoev..., советую вам посмотреть мой комментарий в этой теме. Там всё расписано более чем подробно.
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.


  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Статья] Изучаем SMTP протокол для отправки писем (примеры программ на WinSock API и INDY) Тигрь Школа Читера 7 08.12.2012 14:50
[Помогите!] Не получаеться нормально спарсить через COPY POS DEL Nugno Вопросы и ответы, обсуждения 6 09.12.2011 15:10
[Подсказка] Сайт с отличными смайлами, примеры в теме -) Legend_DIE Треп 4 24.11.2011 10:06
[Информация] Помощь в Delphi 7 и в других версиях Delphi Babls77 Pascal/Delphi 4 03.11.2011 21:27

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 21:47.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net