Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Запись html-кода страницы в AnsiString

25K
30 июля 2007 года
Данил
16 / / 29.07.2007
Доброго времени суток!
Вопрос такой: знает ли кто-нибудь, как можно записать в строку AnsiString код html-страницы, открытой в CppWebBrowser?
241
30 июля 2007 года
Sanila_san
1.6K / / 07.06.2005
Цитата: Данил
Доброго времени суток!
Вопрос такой: знает ли кто-нибудь, как можно записать в строку AnsiString код html-страницы, открытой в CppWebBrowser?

А из потока или файла нельзя прочитать в строку? Ведь проще же.

92
30 июля 2007 года
Тень Пса
2.2K / / 19.10.2006
если открыт URL, то не проще =)

http://www.programmersheaven.com/mb/bcbuilder/309892/309892/ReadMessage.aspx?S=B20000&ReadPostMode=0
246
30 июля 2007 года
GIZMO
1.8K / / 30.07.2004
Цитата: Данил
Доброго времени суток!
Вопрос такой: знает ли кто-нибудь, как можно записать в строку AnsiString код html-страницы, открытой в CppWebBrowser?


Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  CppWebBrowser1->Navigate(WideString("http://192.168.1.3/index.htm"));
AnsiString Source = "";

  IHTMLDocument2 *htm = NULL;     // #include <mshtml.h>


if(CppWebBrowser1->Document&&SUCCEEDED(CppWebBrowser1->Document->QueryInterf
ace(IID_IHTMLDocument2,
(LPVOID*)&htm)))
    {
    IPersistStreamInit *spPsi = NULL;    // ocidl.h


if(SUCCEEDED(htm->QueryInterface(IID_IPersistStreamInit,(LPVOID*)&spPsi)) &&
spPsi)
       {
        IStream *spStream = NULL;            // objidl.h
            OleCheck(CreateStreamOnHGlobal(NULL, true, &spStream));
            if(spStream)
            {
                __int64 nSize = 0;
                STATSTG ss;
                LARGE_INTEGER nMove;
                nMove.QuadPart = 0;
                OleCheck(spPsi->Save(spStream, true));
                OleCheck(spStream->Seek(nMove,
STREAM_SEEK_SET,(ULARGE_INTEGER *)&nSize));
                OleCheck(spStream->Stat(&ss, STATFLAG_NONAME));
                nSize = ss.cbSize.QuadPart;

                Source.SetLength(nSize);
                OleCheck(spStream->Read((void *)Source.data(), nSize,(ULONG
*)&nSize));
                OleCheck(spStream->Release());
            }

         spPsi->Release();
        }
    htm->Release();
    }
    Memo1->Lines->Text = Source;

}
25K
30 июля 2007 года
Данил
16 / / 29.07.2007
Тень Пса, GIZMO - спасибо, я так понял что код примерно тот же.
Sanila_san - если напишите, как из ВЕСЬ файл прочитать в строку AnsiString - буду благодарен :)
Вообще задача в том, что бы проверить, есть ли на открытой странице определённая строка.
25K
30 июля 2007 года
Данил
16 / / 29.07.2007
Хм, а если в CppWebBrowser открыта страница, состоящая из фреймов, как указать, html-код какого именно файла мне нужен?
25K
30 июля 2007 года
Данил
16 / / 29.07.2007
Или проще - как указать что надо в переменную Source прочитать файл с определённым URL`ом?
246
30 июля 2007 года
GIZMO
1.8K / / 30.07.2004
Цитата: Данил
Или проще - как указать что надо в переменную Source прочитать файл с определённым URL`ом?


пройтись по фреймам и выбрать с нужным URL

246
30 июля 2007 года
GIZMO
1.8K / / 30.07.2004
Цитата: Данил
Тень Пса, GIZMO - спасибо, я так понял что код примерно тот же.


это ты догадливый однака:)

25K
31 июля 2007 года
Данил
16 / / 29.07.2007
Подскажите, плз, как код
Код:
IHTMLDocument2 *htm = NULL;     // #include <mshtml.h>


if(CppWebBrowser1->Document&&SUCCEEDED(CppWebBrowser1->Document->QueryInterf
ace(IID_IHTMLDocument2,
(LPVOID*)&htm)))
    {
    IPersistStreamInit *spPsi = NULL;    // ocidl.h


if(SUCCEEDED(htm->QueryInterface(IID_IPersistStreamInit,(LPVOID*)&spPsi)) &&
spPsi)
       {
        IStream *spStream = NULL;            // objidl.h
            OleCheck(CreateStreamOnHGlobal(NULL, true, &spStream));
            if(spStream)
            {
                __int64 nSize = 0;
                STATSTG ss;
                LARGE_INTEGER nMove;
                nMove.QuadPart = 0;
                OleCheck(spPsi->Save(spStream, true));
                OleCheck(spStream->Seek(nMove,
STREAM_SEEK_SET,(ULARGE_INTEGER *)&nSize));
                OleCheck(spStream->Stat(&ss, STATFLAG_NONAME));
                nSize = ss.cbSize.QuadPart;

                Source.SetLength(nSize);
                OleCheck(spStream->Read((void *)Source.data(), nSize,(ULONG
*)&nSize));
                OleCheck(spStream->Release());
            }

         spPsi->Release();
        }
    htm->Release();
    }
    Memo1->Lines->Text = Source;

}

изменить так, что бы он записывал в Source html-код страницы по указанному URL, а не открытой в CppWebBrowser...
92
31 июля 2007 года
Тень Пса
2.2K / / 19.10.2006
можно дёргать HTML каким-нибудь компонентом... хм... типа TNMHTTP и будет он тебе записывать HTML куда угодно, хоть в файл, хоть в свойство Body
25K
31 июля 2007 года
Данил
16 / / 29.07.2007
А как сказать ему что бы он записал его не в файл, а в AnsiString?)
92
31 июля 2007 года
Тень Пса
2.2K / / 19.10.2006
он запишет его в Body, ну а это и есть AnsiString. я думаю оператор = знаешь... надеюсь ;)
25K
31 июля 2007 года
Данил
16 / / 29.07.2007
слышал) Спасибо, работает на ура!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог