** 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;
Может криво что написал, я только учусь, строго не судить. |
|