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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.09.2008, 11:04   #1
jone
Форумчанин
 
Аватар для jone
 
Регистрация: 27.09.2008
Сообщений: 152
Сообщение Поиск в тексте

Доброго время суток уважаемые програмисты!
Как можно выдернуть из страницы сылки?
с первой задачей я справился сохранил документ а вот сылки найти методом pos немагу . К примеру 1 из сылок

<a href="http://sait.ru/index.php?k=*****" target="_blank">Я люблю тебя ЮЛЯ!!!!!!!</a>

всё что после звёздочик меняется в каждой сыдке, количество сылок может быть разным. Каждую сылку скинуть в мемо1.

Помогите. буду очень благодарен.
jone вне форума Ответить с цитированием
Старый 27.09.2008, 13:08   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
всё что после звёздочик меняется в каждой сыдке
Ну и что? Между прочим, к адресу ссылки вся эта байда "после звездочек" не имеет отношения. Адрес ссылки - это строковая переменная, заключаемая, как ей и положено, в кавычки.
Есть, кстати, еще одна функция - PosEx.
Как раз с ее помощью определите первые кавычки (или апостроф) после полученной позиции "http://" (надеюсь, вы именно ее определяете при помощи Pos?).
После этого останется скопировать кусок строки между этими позициями и "скинуть в мемо1".

Последний раз редактировалось mihali4; 27.09.2008 в 17:28.
mihali4 вне форума Ответить с цитированием
Старый 27.09.2008, 17:24   #3
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

А я не понял вопрос. Вообще, если вопрос не понятен, лучше и не отвечать, но я попробую.
Вам надо из
<a href="http://sait.ru/index.php?k=*****" target="_blank">Я люблю тебя ЮЛЯ!!!!!!!</a>
получить
http://sait.ru/index.php?k=*****" target="_blank
?
Допустим в Memo1 хранятся эти самые ссылки. В Memo2 записываем результат:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  i, b, e: Integer;
  s: String;
begin
  Memo2.Lines.Clear;
  for i := 0 to Memo1.Lines.Count - 1 do begin
    s := Memo1.Lines[i];
    b := Pos ('http', s);
    e := Pos ('">', s);
    Memo2.Lines.Add (Copy (s, b, e-b));
  end;
end;
З.Ы.: На будущее, пишите вопрос так, чтобы над ним не пришлось ломать голову. Ну что, вам лень немного постучать но клаве. Ведь вы же не хотите, чтобы те, кто вам отвечал, ленились писать.
Sibedir вне форума Ответить с цитированием
Старый 27.09.2008, 22:08   #4
jone
Форумчанин
 
Аватар для jone
 
Регистрация: 27.09.2008
Сообщений: 152
По умолчанию

Лан попытаюсь по другому обяснить

мне дана страница, там много чего но где-то по середине её есть столбик с сылками и каждая сылканачилается на http://sait.ru/index.php?k= а после етого идёт изменение например http://sait.ru/index.php?k=1 потом http://sait.ru/index.php?k=2 итд... как еты сылки дастать
jone вне форума Ответить с цитированием
Старый 27.09.2008, 22:33   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
как еты сылки дастать
Перечитав пост N2.
Или вы хотите получить здесь готовый код для такой ерунды?
Ну ждите, найдется кто-нибудь, желающий "блеснуть знаниями".
А мы - ПОМОГАЕМ, а не решаем за вас (хотя это совсем не трудно).
mihali4 вне форума Ответить с цитированием
Старый 27.09.2008, 23:39   #6
jone
Форумчанин
 
Аватар для jone
 
Регистрация: 27.09.2008
Сообщений: 152
По умолчанию

Вот надумал только нечего невыходит

procedure TForm1.Button6Click(Sender: TObject);
begin
LMem1:=1100;
for Ip:= 0 to LMem1 do
begin
s1:= Memo1.Lines[Ip];
trim(s1);
ps:= pos(hd,s1);
if ps <> 0 then
begin
Delete(s1,1,ps);
ps:= pos('"',s1);
if ps <> 0 then
begin
Delete(s1,1,ps);
ps:= pos('"',s1);
if ps <> 0 then
begin
Delete(s1,ps,ps+7);
end;
end;
memo2.Lines.Add(s1);

end;
end;
end;
end.
jone вне форума Ответить с цитированием
Старый 27.09.2008, 23:59   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Почему LMem1:=1100; ???
Выше, чем Memo1.Lines.Count-1 не прыгнуть...
ps:= pos(hd,s1);
Где вообще объявления всех переменных? Какое значение присвоено HD?
Delete(s1,1,ps);
Это-то вообще зачем? Нам нужно определить всего 2 цифири (начала и конца урла) и скопировать функцией COPY то, что находится в этих пределах...
ps:= pos('"',s1);
Написал ведь - есть такая функция PosEx, которая позволяет делать то же, что и Pos, но не с начала строки, а с любого места...
Кошмар... Сил моиих нет больше...
Код:
var tmp: string;
    i,cnt1,cnt2: integer;
begin
Memo2.Clear;
for i:=0 to Memo1.Lines.Count-1 do
begin
tmp:='http://';
cnt1:=Pos(tmp,Memo1.Lines[i]);
if cnt1>0 then
begin
tmp:='"';
cnt2:=PosEx(tmp,Memo1.Lines[i],cnt1);
if cnt2>0 then
Memo2.Lines.Add(Copy(Edit1.Text,cnt1,cnt2-cnt1));
end;
end;
end;

Последний раз редактировалось mihali4; 28.09.2008 в 00:13.
mihali4 вне форума Ответить с цитированием
Старый 28.09.2008, 00:34   #8
jone
Форумчанин
 
Аватар для jone
 
Регистрация: 27.09.2008
Сообщений: 152
По умолчанию

делфи 7
[Error] int.pas(328): Undeclared identifier: 'PosEx' выдёт
jone вне форума Ответить с цитированием
Старый 28.09.2008, 00:39   #9
jone
Форумчанин
 
Аватар для jone
 
Регистрация: 27.09.2008
Сообщений: 152
По умолчанию

я сам отвечу на свой вопрос uses StrUtils
jone вне форума Ответить с цитированием
Старый 28.09.2008, 00:49   #10
jone
Форумчанин
 
Аватар для jone
 
Регистрация: 27.09.2008
Сообщений: 152
По умолчанию

хи так но несовсем

вот страничка там сылки:

Я люблю тебя ЮЛЯ!
Лучшие загрузки инетa собраны здесь!!..........
Бесплатно: Лучшей хиты ява-игр только на .......




_________________________
Блин расцеловал бы вас =)
Вложения
Тип файла: txt test.txt (14.6 Кб, 18 просмотров)
jone вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск в тексте Rigard Общие вопросы Delphi 8 15.10.2008 00:06
картинка в тексте Prisian Общие вопросы Delphi 2 05.10.2007 14:01
Поиск слов в тексте pleer Общие вопросы Delphi 5 23.09.2007 08:19
Смена кодировок в тексте r-sol Общие вопросы Delphi 3 06.04.2007 11:55