 |
Регулярки - Вопросы и ответы, обсуждения - Ваши вопросы по Pascal/Delphi только в данном разделе |
27.06.2012, 09:34
|
#16
|
|
|
|
|
|
Рыцарь-защитник
|
 Регистрация: 14.06.2010
 Сообщений: 584
 Популярность: 6626
 Сказал(а) спасибо: 86
Поблагодарили 847 раз(а) в 266 сообщениях
|
Re: Регулярки
в модуль регулярок лазал руками?
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
|
|
|
27.06.2012, 10:08
|
#17
|
|
|
|
|
|
Лейтенант-командор
|
 Регистрация: 12.08.2010
 Сообщений: 727
 Популярность: 30569
 Золото Zhyk.Ru: 1
 Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
|
Re: Регулярки
Ramsteins, давай перепишу тебе твои регулярки на Copy Pos Delete?
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Кошельки: 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.
|
|
|
|
27.06.2012, 13:26
|
#18
|
|
|
|
|
|
Сержант
|
 Регистрация: 19.01.2011
 Сообщений: 168
 Популярность: 485
 Сказал(а) спасибо: 123
Поблагодарили 67 раз(а) в 48 сообщениях
|
Re: Регулярки
Mebius, нет.
VeTaL_UA, если сможешь,то ок)
|
|
|
|
27.06.2012, 17:50
|
#19
|
|
|
|
|
|
Лейтенант-командор
|
 Регистрация: 12.08.2010
 Сообщений: 727
 Популярность: 30569
 Золото Zhyk.Ru: 1
 Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
|
Re: Регулярки
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
|
|
VeTaL_UA, если сможешь
|
|
 |
|
 |
|
Чё ж не смогу  В аське тебя нету, так что лови здесь.
Функция, что определяет количество повторов строки в строке (самописная, используется для следующей функции):
Код
Вариант №1
Код:
function PosX(s2,x:string):integer;
var
k,p,l:integer;
s3:string;
begin
l:=Length(x);
p:=Trunc(Length(s2)/l);
result:=0;
for k:=0 to p-1 do
begin
s3:=Copy(s2,k*l,l+l-1);
if Pos(x,s3)<>0 then
begin
inc(result);
end;
end;
end;
Вариант №2 (шустрее)
Код:
function PosY(s4,y:string):integer;
var
k,l:integer;
begin
result:=0;
l:=Length(y);
while k<>0 do
begin
k:=Pos(y,s4);
if k<>0 then
begin
inc(result);
Delete(s4,1,k+l);
end;
end;
end;
Сама функция парса:
Код
Код:
function Pars(s:string):string;
var
s1,s2:string;
i,j,n,m,o:integer;
begin
i:=5;
j:=5;
n:=0;
o:=Pos('u0040',s);
result:='';
if o<>0 then
begin
repeat
s1:=Copy(s,Pos('u0040',s)-i,j);
m:=PosX(s1,'","'); //PosY(s1,'","');
if m=0 then
begin
inc(n);
end;
if odd(n) then
begin
if m=1 then
begin
j:=j+10;
end
else
begin
i:=i+5;
end;
end
else
begin
if m=1 then
begin
i:=i+5;
end
else
begin
j:=j+10;
end;
end;
until m=2;
s2:=Copy(s1,0,10);
s1:=Copy(s1,Pos('","',s1)+3,Length(s1)-Pos('","',s1)+3);
s1:=Copy(s1,0,Pos('","',s1)-1);
result:=s1;
end;
end;
Пример использования:
Код
Код:
Edit1.Text:=Pars(Memo1.Lines.Text);
P.S. Да, это было сложно написать
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Кошельки: 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; 27.06.2012 в 23:51.
Причина: добавил ещё одну функцию
|
|
|
|
|
2 пользователя(ей) сказали cпасибо:
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 20:49.
|
 |