Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как прочитать данные из .Htm ? / 11 сообщений из 11, страница 1 из 1
24.02.2005, 09:01
    #32930374
nataSid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как прочитать данные из .Htm ?
Я получаю данные формата .htm довольно большого объема, так что перевод в Excel занимает много времени. Мне нужна только одна колонка из этого отчета.
Как я могу получить одну колонку автоматически с помощью VFP из файла .htm ?
...
Рейтинг: 0 / 0
24.02.2005, 09:28
    #32930421
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как прочитать данные из .Htm ?
Не смотря на то, что HTM в Excel грузиться долго, думаю это самый оптимальный вариант. А иначе ручной разбор страницы и выуживание нужной информации.
...
Рейтинг: 0 / 0
24.02.2005, 10:11
    #32930509
Urri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как прочитать данные из .Htm ?
По тегам, например, так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
* 1 . Получить из HTML файла строку любым способом.
* 2 . Искать нужные вхождения, например, начало:
*<TD WIDTH=* CLASS="msgbody">
*, а конец - первый после этого
*</TD>
*и выкусывать по одному (например, с помощью at() в цикле).
*Строку при этом можно урезать с начала.
* 3 .Каждое вхождение сохранять в ячейке EXCEL
Может, будет быстрее, а может и нет.
...
Рейтинг: 0 / 0
24.02.2005, 10:28
    #32930552
anKr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как прочитать данные из .Htm ?
UrriПо тегам, например, так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
* 1 . Получить из HTML файла строку любым способом.
* 2 . Искать нужные вхождения, например, начало:
*<TD WIDTH=* CLASS="msgbody">
*, а конец - первый после этого
*</TD>
*и выкусывать по одному (например, с помощью at() в цикле).
*Строку при этом можно урезать с начала.
* 3 .Каждое вхождение сохранять в ячейке EXCEL
Может, будет быстрее, а может и нет.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
  lcHtml = GETFILE( "HTML" )
  lcStr = FILETOSTR( lcHtml )
  lcData = ""
  IF ATC( [CLASS="msgbody"], lcStr ) #  0  
     lcData = STREXTRACT( lcStr, [CLASS="msgbody"], [</TD>] ) 
  ENDIF
  ? lcData 
...
Рейтинг: 0 / 0
24.02.2005, 10:38
    #32930583
nataSid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как прочитать данные из .Htm ?
CLASS="msgbody"
msgbody я должна точно знать? Я только знаю, что мне нужны данные в определенной колонке. А какие они будут я не знаю. Что мне писать на месте "msgbody" ?
...
Рейтинг: 0 / 0
24.02.2005, 10:40
    #32930591
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как прочитать данные из .Htm ?
Ну положим тэги можно отсеч сразу
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
LOCAL loInetApp as Object 

loInetApp = CreateObject('InternetExplorer.Application')  
loInetApp.Navigate(<HTMfileName>)  
PUBLIC lcDocumentText as memo

lcDocumentText = ""
* Только текст из тела документа
lcDocumentText=loInetApp.Document.activeElement.outertext

А дальше ручной разбор инфы.
...
Рейтинг: 0 / 0
24.02.2005, 12:19
    #32930908
Urri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как прочитать данные из .Htm ?
nataSidCLASS="msgbody"
msgbody я должна точно знать? Я только знаю, что мне нужны данные в определенной колонке. А какие они будут я не знаю. Что мне писать на месте "msgbody" ?
Ната, это просто пример: я открыл текущую страницу в notepad'е и придумал, что хочу сохранить только тексты всех сообщений с нее. Без заголовков и данных об авторе. И 'CLASS="msgbody"' - это не более чем строковая константа, по которой я ищу начало каждого сообщения.
...
Рейтинг: 0 / 0
24.02.2005, 12:35
    #32930960
nataSid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как прочитать данные из .Htm ?
К сожелению файл мой большой на 154 страницы
Команда

lcDocumentText=loInetApp.Document.activeElement.outertext

охватывает только 20 страниц, видимо ширина memo маленькая, но больше ее нет смысла делать.

Как мне сделать цикл, пока файл .htm не кончится ?
...
Рейтинг: 0 / 0
24.02.2005, 13:01
    #32931043
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как прочитать данные из .Htm ?
Придется немного изменить код.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
LOCAL loInetApp as Object 

loInetApp = CreateObject('InternetExplorer.Application')  
loInetApp.Navigate(<HTMfileName>) 
 
* Ждем пока документ загрузится
Do While loInetApp.ReadyState #  [b]4 
   DoEvents  
Enddo[/b]

PUBLIC lcDocumentText as memo

lcDocumentText = ""
* Только текст из тела документа
lcDocumentText=loInetApp.Document.activeElement.outertext

P.S. Детализированный отчет МТС по компании тоже не маленький
...
Рейтинг: 0 / 0
24.02.2005, 13:15
    #32931072
nataSid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как прочитать данные из .Htm ?
Спасибо всем!

никогда бы не додумалось, что дело в короткой загрузке!
...
Рейтинг: 0 / 0
25.02.2005, 01:14
    #32932352
Как прочитать данные из .Htm ?
Как вариант - ставим Perl или Php пишем простейший парсер, благо там регулярные выражения и шаблоны ОЙОЙОЙ крутые :) и используем сначало скрипт или в инете находим конвертер Perl->exe и делаем экзешник!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как прочитать данные из .Htm ? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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