powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Чтение HTML документа средствами VB.NET
11 сообщений из 11, страница 1 из 1
Чтение HTML документа средствами VB.NET
    #32619779
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема состоит в том, что то, как считывать инфу из .txt, .xml, .xls я уже знаю, а вот как считать инфу из файла HTML...???
Прикладываю файл, который мне нужно прочитать средствами VB.NET, в надежде, что кто-то раньше уже решал подобную проблему и, теперь, может поделиться решением...
P.S. Для модераторов: Вопрос не по ASP.NET (этот файл-отчёт генерирует прога работающая на локальном компе и к WEB она не имеет никакого отношения, просто такой формат...)
Для желающих ответить: конечно, файл можно принудительно проэкспортировать в Excel и читать оттуда, но это - ...не то что бы не прикольно, а просто доолго и нудно (и, как мне кажется, не очень профессионально )
...
Рейтинг: 0 / 0
Чтение HTML документа средствами VB.NET
    #32619781
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что ты понимаешь под "считывать инфу" ??? (открыть файл на чтение, показать на форме, получить welformed xml, ...)
...
Рейтинг: 0 / 0
Чтение HTML документа средствами VB.NET
    #32619822
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь, что не объяснил сразу...
Там существуют тэги, вот из них мне и нужно считать инфу, занося её в переменные, в данном случае, меня интересует следующее:
Код: plaintext
1.
2.
3.
User@Time  Vladimir@ 2004 - 07 - 24   00 : 31 : 58  
Action  Run 
Application Name  test - Microsoft Internet Explorer 
Должно выглядеть примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Цикл для чтения
каким то образом считываем инфу из тэгов и переменным присваиваем значение прочитанного...
Dim m as string="Vladimir@2004-07-24 00:31:58 
"
Dim mm as string="Run"
Dim mmm as string="test - Microsoft Internet Explorer"
...
Конец цикла
Ну, и конечно всё это должно происходить в цикле...
...
Рейтинг: 0 / 0
Чтение HTML документа средствами VB.NET
    #32620002
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
импортиру в проект Microsoft HTML Object Library (добавь в References)


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
using mshtml;
...
string txt;
using(StreamReader tr=new StreamReader(@"c:\temp\test1.htm"))
{ txt=tr.ReadToEnd();
  tr.Close();
}

object[] psa={txt};
mshtml.HTMLDocumentClass doc=new mshtml.HTMLDocumentClass();
doc.IHTMLDocument2_write(psa);

и далее выбирай нужные тебе node по интерфейсу IHTMLDocument2 [очень похоже на XML :-) ]
...
Рейтинг: 0 / 0
Чтение HTML документа средствами VB.NET
    #32620004
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oops, извини. написал на C#. В обшем то на VB будет очень похоже.
...
Рейтинг: 0 / 0
Чтение HTML документа средствами VB.NET
    #32620010
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Истина где то рядом...
Переведите кто-нибудь первую и последнюю строку на VB.NET..
PLEASE...
Код: plaintext
1.
2.
3.
object[] psa={txt};
mshtml.HTMLDocumentClass doc=new mshtml.HTMLDocumentClass();
doc.IHTMLDocument2_write(psa);
...
Рейтинг: 0 / 0
Чтение HTML документа средствами VB.NET
    #32620020
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
   Dim psa() As Object = {txt}
   Dim doc As mshtml.HTMLDocumentClass = New mshtml.HTMLDocumentClass
   doc.IHTMLDocument2_write(psa)

С этим сам справился, а вот
автори далее выбирай нужные тебе node по интерфейсу IHTMLDocument2
Нельзя ли поподробнее (с фрагментом кода, можно и C#), а то у меня пока получилось только title прочитать
...
Рейтинг: 0 / 0
Чтение HTML документа средствами VB.NET
    #32620022
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
приблизительно, так
Код: plaintext
1.
2.
3.
Dim psa( 1 ) As Object

  psa( 0 ) = txt
  doc.IHTMLDocument2_write(psa)
...
Рейтинг: 0 / 0
Чтение HTML документа средствами VB.NET
    #32620045
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кузя, извини, я неочень силён в логике, но...
Код: plaintext
1.
2.
3.
   Dim psa() As Object = {txt}
   Dim doc As mshtml.HTMLDocumentClass = New mshtml.HTMLDocumentClass
   doc.IHTMLDocument2_write(psa)
Мы уже загнали в doc всё содержимое файла, и я так понимаю, можно каким то образом обрасчаться к его тэгам (вот например Debug.WriteLine(doc.IHTMLDocument2_title()) выдаст значение названия документа)
А, сейчас ты предлагаешь, снова объявить psa присвоить ему значение txt и вписать его в doc...
Код: plaintext
1.
2.
3.
  Dim psa( 1 ) As Object
  psa( 0 ) = txt
  doc.IHTMLDocument2_write(psa)
Исходный файл по строкам перечитывать, или я чего то не догоняю...
Спасибо за помощь, и извини за глупость, но объясни, пожалуйста, КАК???
1. пройтись по всем тэгам файла?
2. выбрать интересующую меня инфу из нужного тэга?
...
Рейтинг: 0 / 0
Чтение HTML документа средствами VB.NET
    #32620061
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пройтись по всем тегам таблиц(ы) (C#):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
mshtml.IHTMLElementCollection dd=doc.getElementsByTagName("table");

for(int i= 0 ; i<dd.length; i++)
{ 
  mshtml.HTMLTableClass tb=(mshtml.HTMLTableClass)dd.item(null, i);

  foreach(mshtml.HTMLTableRowClass row in tb.rows)
  { 
    foreach(mshtml.HTMLTableCellClass col in row.cells)
    {
      string sl=col.innerHTML;
    }
  }
}
...
Рейтинг: 0 / 0
Чтение HTML документа средствами VB.NET
    #32620117
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, вот, говорила мне мама: "...не желай чего-то очень сильно. Что будешь делать, если желание исполнится???".
Так и произошло...
Как теперь отплатить за помощь??? НЕЗНАЮ...
Наверное, просто положу код, переведённый на VB.NET...
Код: 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.
        Dim tr As New StreamReader("c:\test1.htm")
        Dim txt As String = tr.ReadToEnd()
        tr.Close()

        Dim psa() As Object = {txt}
        Dim doc As mshtml.HTMLDocumentClass = New mshtml.HTMLDocumentClass
        doc.IHTMLDocument2_write(psa)

        Dim dd As mshtml.IHTMLElementCollection = doc.getElementsByTagName("table")

        For i As Integer =  0  To dd.length -  1 
            Dim tb As mshtml.HTMLTableClass = dd.item(i)

            For Each row As mshtml.HTMLTableRowClass In tb.rows

                Dim col As mshtml.HTMLTableCellClass = row.cells.item( 0 )
                Dim sl As String = col.innerText
               
                If Not (sl Is Nothing) Then
                    Dim col1 As mshtml.HTMLTableCellClass = row.cells.item( 1 )
                    Dim sl1 As String = col1.innerHTML
                    Debug.WriteLine(sl & sl1)
                End If
            Next
        Next
Дёшево и сердито...
P.S. Кузя, моя благодарность просто НИЧТО, по сравнению с благодарностью парня, который в ручную выбирал нужные поля из этого logfile...
ОГРОМНОЕ СПАСИБО!!!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Чтение HTML документа средствами VB.NET
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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