![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте уважаемые пользователи.Нужна ваша помощь. Как на делфи это реализовать: Допустим есть сайт(неважно какой), на этом сайте есть информация(Любая, например текст погоды).Смысл в том что эта информация занимает очень малую часть сайта. Вопрос: Как на делфи вывести именно тот кусок сайта, который мне нужен.Не выводя при этом весь сайт
Спасибо |
|
#2
|
|||
|
|||
|
Собственно ап! Извините уж, просто очень нужно решение этой проблемы
|
|
#3
|
||||
|
||||
|
1. Получаем страницу. (GetInetFile мелькала в FAQ)
2. Загружаем в стринглист. 3. Ищем нужную часть по заголовку, строкам или ещё чему. Не забываем, что страница содержит кроме текста ещё и HTML теги. 4. Сохраняем в файл. 5. Через TWebBrowser выкидываем на форму. |
|
#4
|
|||
|
|||
|
DJ PhoeniX Спасибо, вроде алгоритм понятен
![]() PS Разве через GetInetFile можно загрузить страницу? Мне казалось что только файлы. Может можно сделать как нить через indy или Synapse? PPS Чтото не получается получить страницу. Может есть исходник? Последний раз редактировалось 1DarkAngel1, 15.05.2009 в 21:08. |
|
#5
|
||||
|
||||
|
Какой части исходник? Это?
Код:
uses WinInet;
function GetInetFile(const fileURL, FileName: string): boolean;
type
DWORD: LongWord; //Это чтоб лишних тяжеловесов не подключать
const
BufferSize = 1024;
var
hSession, hURL: HInternet;
Buffer: array[1..BufferSize] of Byte;
BufferLen: DWORD;
f: file;
begin
hSession := InternetOpen(PChar('Mozilla'), //Вместо "Mozilla" ставь что хочешь
INTERNET_OPEN_TYPE_PRECONFIG,
nil, nil, 0);
try
hURL := InternetOpenURL(hSession,
PChar(fileURL),
nil,0,0,0);
try
AssignFile(f, FileName);
Rewrite(f,1);
repeat
InternetReadFile(hURL, @Buffer,
SizeOf(Buffer), BufferLen);
BlockWrite(f, Buffer, BufferLen)
until
BufferLen = 0;
CloseFile(f);
Result:=True;
finally
InternetCloseHandle(hURL)
end;
finally
InternetCloseHandle(hSession)
end;
end; |
|
#6
|
|||
|
|||
|
Так с эти более менее разобрался. Но проблема, когда скачиваю страницы у них вместо русских символов каракозябры. Как это исправить?
|
|
#7
|
||||
|
||||
|
Видимо сайт в UTF... Для перекодирования была функция, а вот где - хз... пояндекси
|
|
#8
|
|||
|
|||
|
Все нашел. Теперь еще два вопроса:
Как можно изменять размеры TWebbrowser во время работы приложения? И как убрать ползунки у TWebbrowser? Спасибо |
|
#9
|
||||
|
||||
|
РАЗ:
Код:
WebBrowser1.Width:= ... ; // вместо многоточия ширину... WebBrewser1.Height:= ... ; // ...и высоту Копайся в ДелфиВорлде, была статья про убирание скроллов... |
|
#10
|
|||
|
|||
|
Хех спасибо. Но я немного другое хотел. Типа взял за уголок перетащил и изменил тем самым размеры
|
|
#11
|
||||
|
||||
|
Это уже надо с мышью играть... Как - не ко мне. Хотя, могу попробовать накидать что-либо похожее... Но двумя строчками кода это не обойдётся.
=========== Или, как вариант, поставить Код:
WebBrowser1.Align:=alClient; Последний раз редактировалось PhoeniX, 20.05.2009 в 13:25. |
|
#12
|
|||
|
|||
|
Цитата:
Цитата:
Хмммммм может пока что нибудь из этого сделать попробую. |
|
#13
|
|||
|
|||
|
Редактирование размера окон во время работы приложения я сделал теперь чтото с скролл баром. Сделал 4 кнопки. 2 включения и 2 выключения скроллов. 3 работают прекрасно(Показ Х, скрыть Y, скрыть Х).
А вот Y показываться никак не хочет. Делал через Цитата:
|
|
#14
|
||||
|
||||
|
Во общем берешь компонент IDHTTP
Пишешь: Код:
переменная:=idhttp1.get('http://nanoteam.net');Последний раз редактировалось Casper-Hacker, 28.05.2009 в 00:47. |
|
#15
|
|||
|
|||
|
Casper-Hacker спасибо но я уже немного по другому сделал. Сначало получил страницу, потом выбрал нужную часть, потом сохранил как jpeg.
|