C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Помогите плиз с поиском текста в WebBrowser1..., Как искать?
** Maxim
Отправлено: 06.07.2006, 17:17


Не зарегистрирован







Всем привет.
Есть компонент WebBrowser1.
Есть Memo1.
Вобщем при нажатии на кнопку — переносит на заданную страницу.
На той странице мне нужно скопировать несколько строк, и отобразить их в Memo1. Не всю страницу, а именно несколько строк...
Вот и вопрос: Как их указать и как засунуть в Memo1?
Gedeon
Отправлено: 06.07.2006, 17:56


Ветеран

Группа: Модератор
Сообщений: 1742



1. У строк ведь наверняка какой-то критерий отбора есть?
2. В поиске на форуме можно найти как получить код хтмл
Дальше думаю обьяснять не надо.
** Maxim
Отправлено: 06.07.2006, 20:21


Не зарегистрирован







Нет, ну это не ответ...
Как я поищу? Что можно вписать на этот запрос — не понятно.

Прога будет узнавать статистику сервера...
А именно трафик.
Прога заходит на сайт под логином и паролем пользователя и берёт с него всё нужное, запихивая в memo1.
Вот о том, как мне это сделать — в этом моя проблема...
Может есть другие пути осуществить?
Мне просто нужно скопировать несколько строк из WebBrowser в Memo1...
Gedeon
Отправлено: 07.07.2006, 10:13


Ветеран

Группа: Модератор
Сообщений: 1742



Ууух.

На форму кидаешь кнопку мемо и такой апупительный компонент IdHTTP из набора инди и в обработчике кнопки пишешь такой сложнейший код
CODE

IdHTTP1->Connect();
Memo1->Text = IdHTTP1->Get("http://www.cbuilder.ru/forums/index.php");
   IdHTTP1->Disconnect();


Ну прокси если есть и т.д. думаю в инспекторе обьектов настроить сможешь, пароль юзера и т.д.

В мемо получаешь хтмл код твоей страницы, дальше в тексте найти то что нужно думаю проблемы не составит.
** Maxim
Отправлено: 07.07.2006, 12:26


Не зарегистрирован







Спасибо, но появилась другая проблема...
Borland не хочет распознавать этот компонент!
#include
#include
#include
#include
#include
Не находит этих файлов, хотя они есть.
Если пихать в директорию
#include "IdTCPConnection.hpp"
то найдёт в них кучу ошибок...
Вообще похоже Indy весь не распознаёт.
Что опять не так?
Gedeon
Отправлено: 07.07.2006, 12:38


Ветеран

Группа: Модератор
Сообщений: 1742



В опциях проекта указать пути туда где находится инди. Причем в БДС они есть отдельно для компилера, отдельно для линкера, короче подобавляйте везде не помешает.
** Maxim
Отправлено: 07.07.2006, 12:55


Не зарегистрирован







Gedeon, сам я в этом не разберусь, я учусь только...
При чём вот на таких заумных кодах.)

У меня в Packages установлена галка на Indy 10 — при установке дельфи я вроде поставил 10 — меня предупреждали, типа С++ работает токо с 9... Может из-за этого не работает?
Gedeon
Отправлено: 07.07.2006, 13:18


Ветеран

Группа: Модератор
Сообщений: 1742



Я не знаю как в БДС я там инди не юзал, но 10 поставил на BCB6 и все отлично працюет.
** Maxim
Отправлено: 07.07.2006, 16:42


Не зарегистрирован







Gadeon, спасибо, разобрался.
Indy 9 не хочет работать с С++, когда установлен Delphi...
Gedeon
Отправлено: 07.07.2006, 16:44


Ветеран

Группа: Модератор
Сообщений: 1742



9 или 10?
** Maxim
Отправлено: 07.07.2006, 17:02


Не зарегистрирован







Ну сейчас стоит 10. Работает только потому, что удалил Delphi.
А так — если ставишь одновременно и Дельфи и С++, то на С++ должен быть 9, но у меня установщик ставил всё равно 10 при этом предупреждая, что работать не будет с С++.
Удалил вобщем Дельфи и всё ок.
** Maxim
Отправлено: 07.07.2006, 17:41


Не зарегистрирован







И последний вопрос...
Как можно скопировать текст между двумя словами?
Напрмер:
Слово "Генерирующееся нужное мне слово" Слово.
olegenty
Отправлено: 08.07.2006, 06:53


Ветеран

Группа: Модератор
Сообщений: 2412



1. Вычислить позицию последнего символа первого слова-маркера
2. Вычислить позицию первого символа второго слова-маркера
3. Вырезать то, что между ними.
** Maxim
Отправлено: 08.07.2006, 16:52


Не зарегистрирован







Ну я же нуб полный, так мне не понять это... Можете подробнее объяснить?

Ну вот как бы это я сделал.
Я бы выделил слова, между которых и находится нужная мне информация.


//Узнаю первое слово.
AnsiString buffer = "";
AnsiString 1word = "";
AnsiString 2word = "";
buffer = Memo1->Lines->GetText();
1word = "Первое слово";
2word = "Второе слово";
buffer = ??? //Какая команда поможет вырезать то, что между ними?
Edit3->Text = buffer;

Может криво что написал, я только учусь, строго не судить.

Вернуться в Borland Developer Studio 2006