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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2015, 19:53   #1
reco1123
Пользователь
 
Регистрация: 13.02.2015
Сообщений: 28
По умолчанию Разбить ссылку

Имеется ссылка:

Как получить то что идет после id= и text= т.е. 51888 и text132
reco1123 вне форума Ответить с цитированием
Старый 13.02.2015, 20:14   #2
Dmitry33RU
Пользователь
 
Регистрация: 09.10.2014
Сообщений: 62
По умолчанию

C помощью регулярок можно

Цитата:
id=(.*?)&text=(.*?)
id:=RegExpr.Match[1];
text:=RegExpr.Match[2];
Dmitry33RU вне форума Ответить с цитированием
Старый 13.02.2015, 20:33   #3
reco1123
Пользователь
 
Регистрация: 13.02.2015
Сообщений: 28
По умолчанию

Цитата:
Сообщение от Dmitry33RU Посмотреть сообщение
C помощью регулярок можно



id:=RegExpr.Match[1];
text:=RegExpr.Match[2];
id получает а text нет
reco1123 вне форума Ответить с цитированием
Старый 13.02.2015, 20:52   #4
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
По умолчанию

Функции Delete, Copy, Pos.
WinCoder вне форума Ответить с цитированием
Старый 13.02.2015, 21:39   #5
reco1123
Пользователь
 
Регистрация: 13.02.2015
Сообщений: 28
По умолчанию

Цитата:
Сообщение от WinCoder Посмотреть сообщение
Функции Delete, Copy, Pos.
я не разобрался как сделать((
reco1123 вне форума Ответить с цитированием
Старый 13.02.2015, 21:48   #6
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
По умолчанию

Разбирайся. Если я готовое решение дам, ты ни чему не научишься.
WinCoder вне форума Ответить с цитированием
Старый 13.02.2015, 23:36   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Как получить то что идет после id
Думаю самое простое скомбинировать StringList и Copy
Что-то вроде:
Код:
 i:=pos('#',url);
 if i<>0 then With TStringList.Create do begin
  Delimiter:='&';
  DelimitedText:=copy(url,i+1,Length(url));
  ... Тут работать с Values[] как с ассоциативным массивом, передавая ему именя параметров
  free;
 end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.02.2015, 09:28   #8
reco1123
Пользователь
 
Регистрация: 13.02.2015
Сообщений: 28
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Думаю самое простое скомбинировать StringList и Copy
Что-то вроде:
Код:
 i:=pos('#',url);
 if i<>0 then With TStringList.Create do begin
  Delimiter:='&';
  DelimitedText:=copy(url,i+1,Length(url));
  ... Тут работать с Values[] как с ассоциативным массивом, передавая ему именя параметров
  free;
 end;
Можно полный код , я вообще не понимаю как работать с этими pos copy
reco1123 вне форума Ответить с цитированием
Старый 14.02.2015, 10:11   #9
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

Код:
var
s: string;
begin
     s:= 'http://sait.ru/index.html#id=51888&text=text132';
     Delete(s, 1, Pos('#id=',s)+3);
     s:= StringReplace(s, '&text=', #13#10,[rfReplaceAll]);
     ShowMessage(s);
end;
{************************}
Код:
var
s: TStringList;
begin
     s:= TStringList.Create;
     s.Add('http://sait.ru/index.html#id=51888&text=text132');
     s.Text:= StringReplace(Copy(s.Text, Pos('#id=',s.Text)+4, Pos('&text=',s.Text)), '&text=', #13#10,[rfReplaceAll]);
     ShowMessage('id= '+s[0]+ '  ' + 'text= ' +s[1]);
     s.Free;
end;

Последний раз редактировалось Iron Monk; 14.02.2015 в 10:26.
Iron Monk вне форума Ответить с цитированием
Старый 14.02.2015, 22:22   #10
NIKOLAYY2
Форумчанин
 
Регистрация: 23.12.2014
Сообщений: 220
По умолчанию

Через RegExpr уже спарсил и id и text. Работает хорошо.

Но решение давать небуду. Потому что люди незнают даже как RegExpr- шаблоном воспользоваться, судя по теме дня -4 назад была тут. Дети заблудились в трех шаблонах...

По этому ты должен сделать сам, но ты уже знаеш как. Пили регулярку.
NIKOLAYY2 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разбить на диапазоны! Seregakz Общие вопросы Delphi 3 21.09.2014 16:49
помогите чайнику-как вставить ссылку ссылку на партнерскую программу nony Помощь студентам 1 19.03.2014 20:48
Разбить на пары buro Общие вопросы .NET 7 02.05.2013 13:37
разбить строку Ceprey Общие вопросы C/C++ 10 24.12.2009 20:47
Как разбить число на цифрыКак разбить число на цифры: 3241 => 3,2,4,1 (Pascal) Banderas123 Помощь студентам 3 07.12.2009 18:26