powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Импорт из HTML в Datawindow
5 сообщений из 5, страница 1 из 1
Импорт из HTML в Datawindow
    #32341710
Фотография Вовик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день всем !

PB 8.03 , Win98SE,2k SP4, MS Office XP SP2, IE 5.0 SP2

Возникла такая задача, думаю не уникальная.
Нужно регулярно пополнять Базу Данных курсами валют из Интернет.
Я сделал это так:
В datawindow есть кнопка , формирующая http-запрос, в результате чего открывается окно IE со страничкой , в которой есть таблица с нужными курсами валют. Вот примерный код

Код: plaintext
1.
2.
3.
4.
5.
6.
Inet linet_base
GetContextService( "Internet" , linet_base)
string ls_url
ls_url = "http://....." 
linet_base.HyperlinkToURL(ls_url)
If IsValid(linet_base) Then Destroy linet_base


Далее пользователь выделяет мышью данные таблицы и нажимает другую
кнопку, по которой данные из буфера обмена копируются в пустую
Excel-книгу, а из нее снова копируются в буфер обмена и затем
импортируются в datawindow. Вот код

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
OLEObject e
e = CREATE oleObject
integer li_res
li_res=e.ConnectToNewObject('Excel.Application')
IF li_res= 0  THEN
 e.Workbooks.Add
 e.ActiveSheet.Paste
 e.Selection.Copy
 //вставить данные из буфера обмена windows
 this.importclipboard()
 e.ActiveWorkbook.Saved= 1 
 e.Quit
ELSE
 MessageBox('Произошла Ошибка','Excel Не Обнаружен')
END IF	
DESTROY e


Все эти "хитрости" с копированием в Excel связаны с "непониманием" функцией
importclipboard() данных , скопированных напрямую из HTML (видимо, там колонки разделяются через пробел).

Таблица внутри html примерно такая

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
<table border= "0 " cellpadding= "0 " cellspacing= "0 " width= "100 %" bgcolor= "#4B5B65" >
<tr>
<td><table border= "0 " cellpadding= "2 " cellspacing= "1 " width= "100 %">
<tr align= "center" ><td bgcolor= "#ffffff" ><b>Дата</b></td>
<td bgcolor= "#ffffff" ><b>Единиц</b></td><td bgcolor= "#ffffff" ><b>Курс</b></td>
</tr>

</tr>
<tr bgcolor= "#ffffff" >
<td align= "center" > 02 . 12 . 2003 
</td>
<td align= "right" > 1 
</td>
<td align= "right" > 29 , 7038 
</td>
</tr>

</tr>
<tr bgcolor= "#ffffff" >
<td align= "center" > 03 . 12 . 2003 
</td>
<td align= "right" > 1 
</td>
<td align= "right" > 29 , 6995 
</td>
</tr>

</table>


Вопрос : хочется минимизировать ручные действия пользователя. Можно ли как-то извлечь средствами PB данные html-таблицы и напрямую вставить их в datawindow?
...
Рейтинг: 0 / 0
Импорт из HTML в Datawindow
    #32342619
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно - парсай HTML стринг вручную и пихай :-)
...
Рейтинг: 0 / 0
Импорт из HTML в Datawindow
    #32342826
Andyn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А нельзя такой запрос отправлять куда-нибудь на WAP-сайт? Там вроде и странички поменьше и формат попроще, тогда и вручную можно разбирать.
...
Рейтинг: 0 / 0
Импорт из HTML в Datawindow
    #32342925
Фотография Вовик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот я и спрашиваю : кто чем пользуется для этого ?

Народ вроде использует какие-то объекты от Microsoft,
что-то вроде MSHTML.HTMLDocument , Microsoft.XMLHTTP ?

Может еще что есть?
...
Рейтинг: 0 / 0
Импорт из HTML в Datawindow
    #32344142
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну или если б в XMLе было, то в 9-ке можно импортировать XML в Datawindow...
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Импорт из HTML в Datawindow
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]