Вопрос № 49827: Доброго времени суток уважаемые эксперты!
Подскажите, как можно извлечь все ссылки из интернет страницы (пусть она будет сохранена на винте). Т.е. есть html-код и как из него "повыдергивать" все ссылки и сохранить их в текстовый файл (и...Вопрос № 49834: Здравствуйте, уважаемые эксперты!
Я недавно спрашивал, как дописать пару строк в файл.
Теперь опять вопрос, а как выполнить проверку - есть ли уже такие строки в этом файле, чтоб постоянно не дописывалось одно и то же.
Спасибо!...Вопрос № 49867: A = 3C + 2(B+D);
D, B, C квадратные матрицы n*n
Нужно вычислить.
Составила программу, но выдаётся ошибка. Как исправить не знаю.
Помогите, пожалуйста....
Вопрос № 49.827
Доброго времени суток уважаемые эксперты!
Подскажите, как можно извлечь все ссылки из интернет страницы (пусть она будет сохранена на винте). Т.е. есть html-код и как из него "повыдергивать" все ссылки и сохранить их в текстовый файл (или Memo - все равно).
Отправлен: 21.07.2006, 17:24
Вопрос задал: Koven (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: kopfschwarz
Здравствуйте, Koven!
Имея локальный файл такого, в принципе, теоретически невозможно... Пусть у вас встретился тег
<a href=msglist?583373189&f=2 title="Входящие"> (взял прямо сейчас с mail.ru)
А имя сайта какое? Вы ведь не знаете заранее, что это мыло.ру. Оно ведь в html-коде не обязано быть прописаным.
Ответ отправил: kopfschwarz (статус: 4-ый класс)
Ответ отправлен: 21.07.2006, 17:49
Отвечает: Physicist
Здравствуйте, Koven!
Для этого нужно скачать всю страницу в буфер, перевести весь текст в нижний регистр и искать в буфере фрагменты текста, начинающиеся на '<a ' и заканчивающиеся на '>' (никаких других '<' и '>' эти фрагменты не должны содержать). Затем в этих фрагментах ищем строки 'href=', за которыми идет адрес ссылки. Этот адрес закончится или пробелом, или '>'. Вот и все. Пример - в Приложении.
Приложение:
Ответ отправил: Physicist (статус: 8-ой класс)
Ответ отправлен: 21.07.2006, 18:19
Отвечает: Ерёмин Андрей
Здравствуйте, Koven!
К предыдущим ответам хочу немного добавить... В приложении функция, которая из html-кода извлекает все ссылки на e-mail адреса. Может быть, она вам чем-то поможет. Удачи!
Приложение:
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Koven!
С помощью TWebBrowser.Navigate(URL) можно открывать и локальные html-странички. На мой взгляд, это проще всего.
А насчет относительных и полных путей (о чем говорил KopfSchwarz), при сохранении страницы с сайта, относительные пути обычно преобразовываются в полные.
Здравствуйте, уважаемые эксперты!
Я недавно спрашивал, как дописать пару строк в файл.
Теперь опять вопрос, а как выполнить проверку - есть ли уже такие строки в этом файле, чтоб постоянно не дописывалось одно и то же.
Спасибо!
Отправлен: 21.07.2006, 19:35
Вопрос задал: Vic (статус: 4-ый класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Physicist
Здравствуйте, Vic!
Сначала строка за строкой проверьте, есть ли такая строка в файле и, если ее там нет, тогда добавляйте. Все гениальное - просто!
Приложение:
Ответ отправил: Physicist (статус: 8-ой класс)
Ответ отправлен: 21.07.2006, 19:50
Вопрос № 49.867
A = 3C + 2(B+D);
D, B, C квадратные матрицы n*n
Нужно вычислить.
Составила программу, но выдаётся ошибка. Как исправить не знаю.
Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, MariaErohina!
У вас в коде инициализируются только перенные b, c и d (SetLentgh(m, n, n) в вызовах inputmatrix) а в процедуре TForm1.Button1Click используются также a, f, g и e. Если у вас еще какие-то баги - пишите хотя бы текст ошибки, а то так сходу непонятно, что происходит.
Также я бы рекомендовал как-то объединить некоторые нажатия кнопок в одни - сам же самой будет проще разбираться. А так по алгоритму все, вроде, верно.
Отвечает: kopfschwarz
Здравствуйте, MariaErohina!
В процедуру Button3.Click нужно засунуть еще четыре строчки (см. приложение). Потом не должным образом заданы в разделе var объекты StringGrid1 (по сути их там вообще не должно быть). И третье... Зачем четыре раза вызывать процедуры, если в одной сразу можно написать: a[i,j]:=3*c[i,j]+2*(b[i,j]+d[i,j]) ?!
В общем, в приложении рабочая программа...
Приложение:
Ответ отправил: kopfschwarz (статус: 4-ый класс)
Ответ отправлен: 22.07.2006, 10:31 Оценка за ответ: 5 Комментарий оценки: Спасибо огромное. Отлично теперь работает.