powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не могу прочитать файл htm как текст средствами VBA + прошу проверить пару моих функций.
6 сообщений из 6, страница 1 из 1
Не могу прочитать файл htm как текст средствами VBA + прошу проверить пару моих функций.
    #39574080
Andrey A. Markine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Немного предистории – я врач, делаю макрос для парсинга данных УЗИ и вставки измерений в протокол, т.к. переписывать вручную долго и не правильно.
Предидущая версия работала на Apache OpenOffice 4 (сам писал на OOBasic), сейчас работаю в другом месте – есть лицензионный MS Office, поэтому решил переделать и улучшить старую версию (тем более что сканер другой и все равно старый не работает).
К чему написал – я не занимаюсь программированием профессионально, но в доступе в моем городе спецов кто поможет найти не могу, поэтому часть вопросов будет для здешних старожилов смешная.

Собственно сабж – сканер выдает данные в формате htm, я с помощью подключенной библиотеки MS HTML Object Library выдергиваю текст, и собственно передаю строку в парсер. Но почему-то прочитать сам файл htm в строку я не могу.
Даже если открыть блокнотом и сохранить как txt. А вот если создать пустой txt, открыть блокнотом htm выделить и скопировать все в txt и сохранить, читает отлично.

Читаю строку следующей функцией:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Function GetText(sFile As String) As String
   Dim nSourceFile As Integer
   Dim sText As String
   Close    
   nSourceFile = FreeFile
   Open sFile For Input As #nSourceFile
   sText = Input$(LOF(1), 1)
   Close
   GetText = sText
End Function



Во вложении оба тестовых файла htm и txt полученный методом копирования в блокноте.
...
Рейтинг: 0 / 0
Не могу прочитать файл htm как текст средствами VBA + прошу проверить пару моих функций.
    #39574083
Andrey A. Markine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Оригинальный файл - два сразу приложить не смог.
...
Рейтинг: 0 / 0
Не могу прочитать файл htm как текст средствами VBA + прошу проверить пару моих функций.
    #39574106
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HTM - Unicode
TXT - ANSI
...
Рейтинг: 0 / 0
Не могу прочитать файл htm как текст средствами VBA + прошу проверить пару моих функций.
    #39574114
UTF-16,
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andrey A. Markine,

надеюсь у тебя 32б офис

берёшь отсюда весь код, сохраняешь его в общем модуле.
И функция такая
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Function GetText(sFile As String) As String
    Dim TristateState as Boolean
    Dim oFSO as object, oTXT as object

    TristateState  = IsUTF16TXT(sFile)

    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oTXT = oFSO.OpenTextFile(sFile, 1, , TristateState)
    GetText = oTXT.ReadLine
    oTXT.Close
    set oTXT = nothing
    set oFSO = nothing
     
End Function
...
Рейтинг: 0 / 0
Не могу прочитать файл htm как текст средствами VBA + прошу проверить пару моих функций.
    #39574115
UTF-16,
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fix

UTF-16,Andrey A. Markine,

надеюсь у тебя 32б офис

берёшь отсюда весь код, сохраняешь его в общем модуле.
И функция такая
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Function GetText(sFile As String) As String
    Dim TristateState as Boolean
    Dim oFSO as object, oTXT as object

    TristateState  = IsUTF16TXT(sFile)

    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oTXT = oFSO.OpenTextFile(sFile, 1, , TristateState)
    GetText = oTXT.ReadAll
    oTXT.Close
    set oTXT = nothing
    set oFSO = nothing
     
End Function
...
Рейтинг: 0 / 0
Не могу прочитать файл htm как текст средствами VBA + прошу проверить пару моих функций.
    #39574194
Andrey A. Markine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
Спасибо - подсказали что проблема с кодировками.
Теперь все работает, просто кодировку передаю в форме:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Function GetText(sFile As String, sCharset As String) As String
    Dim oADODBStream As ADODB.Stream
    Set oADODBStream = New ADODB.Stream
    oADODBStream.Charset = sCharset
    oADODBStream.Type = adTypeText
    oADODBStream.Open
    oADODBStream.LoadFromFile (sFile)
    GetText = oADODBStream.ReadText
    oADODBStream.Close
    Set oADODBStream = Nothing
End Function
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не могу прочитать файл htm как текст средствами VBA + прошу проверить пару моих функций.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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