powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Большой файл XML. Ошибка - out of string space vba.
22 сообщений из 22, страница 1 из 1
Большой файл XML. Ошибка - out of string space vba.
    #39807795
Привет всем. Пытаюсь получить данные из XML. Файл порядка 200Мб. Получаю данную ошибку: out of string space vba
Как её обойти? Что нужно исправить в моем коде?

Код: vbnet
1.
2.
3.
4.
5.
Dim i, sPat
i = FreeFile
Open FilePath For Input As i
sPat = Input(LOF(i), i)    '   <= ТУТ ОШИБКА
Close i
...
Рейтинг: 0 / 0
Большой файл XML. Ошибка - out of string space vba.
    #39807803
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зависит от "вам зачем его читать"?
...
Рейтинг: 0 / 0
Большой файл XML. Ошибка - out of string space vba.
    #39807814
aleks222,
Нужно удалить первые пару строк для дальнейшей работы.
Кроме того, хотел еще кое что подсчитать, но видимо сделаю это по другому.
...
Рейтинг: 0 / 0
Большой файл XML. Ошибка - out of string space vba.
    #39807824
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
такая есть функция построчного чтения
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
 
Private Function readtxt(path1$) As String
On Error GoTo err1
Dim filenum, strTemp$, str$
 filenum = FreeFile
Open path1 For Input As #filenum
   Do While Not EOF(filenum)
        Line Input #filenum, strTemp
        str = str & strTemp
    Loop
Close #filenum
readtxt = str
exit_herhe:
Exit Function
err1:
readtxt = vbNullString
Resume exit_herhe
End Function


текущие задачи выполняет на больших объемах не тестил.
...
Рейтинг: 0 / 0
Большой файл XML. Ошибка - out of string space vba.
    #39807856
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alecko,

авторLine Input #filenum, strTemp

эта строка может не сработать
--у XML очень часто одно длиннющая строка(в те же 200мб)
--и обычно UTF-8 кодировка
...
Рейтинг: 0 / 0
Большой файл XML. Ошибка - out of string space vba.
    #39807865
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АрхимедоффПытаюсь получить данные из XMLМожет работать средствами для работы с XML?
...
Рейтинг: 0 / 0
Большой файл XML. Ошибка - out of string space vba.
    #39807961
Панург,
Ну я так и делаю по большому счету. А читать я хотел, для того чтобы построить прогресс бар. Для этого, хотел из файла получить количество определенных последовательных символов (kolzapiseivsego). Судя по всему от этого откажусь.


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
' подсчитаем количество импортируемых записей
Open FilePath For Input As #i: sPat = Input(LOF(i), #i): Close #i
sPat = Split(sPat, "class=""RTVPD""")
kolzapiseivsego = CLng(UBound(sPat))
Debug.Print "Количество class RTVPD="; kolzapiseivsego
'--------------------------------------------------------------


m = m + 1
Result = SysCmd(acSysCmdInitMeter, "Обработано:  " & Int((m / kolzapiseivsego) * 100) & "%", kolzapiseivsego)
Result = SysCmd(acSysCmdUpdateMeter, m)
...
Рейтинг: 0 / 0
Большой файл XML. Ошибка - out of string space vba.
    #39808165
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АрхимедоффПанург,
Ну я так и делаю по большому счету. А читать я хотел, для того чтобы построить прогресс бар. Для этого, хотел из файла получить количество определенных последовательных символов (kolzapiseivsego). Судя по всему от этого откажусь.Так и получай это количество из DOMDocument-а выбрав все ноды с таким атрибутом и взяв их кол-во

Код: vbnet
1.
kolzapiseivsego = objXML.selectNodes("//*[@class=""RTVPD""]").length
...
Рейтинг: 0 / 0
Большой файл XML. Ошибка - out of string space vba.
    #39808571
court,
Спасибо.
Еще подскажите, почему один и тот же файл большого объема то загружается, то нет.
Заметил, что программа как бы подвисает. Таймер показал, что приблизительно чуть более 180 секунд проходит и "Документ не загружен!". Закрыл программу, открыл и запустил. Выполнилось. Пока объяснений не вижу. :(
Код: vbnet
1.
2.
3.
4.
If Not xmlDoc.Load(FilePath) Then   
    MsgBox "Документ не загружен!"
    Exit Sub
End If
...
Рейтинг: 0 / 0
Большой файл XML. Ошибка - out of string space vba.
    #39808724
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Архимедоффcourt,
Спасибо.
Еще подскажите, почему один и тот же файл большого объема то загружается, то нет.
Заметил, что программа как бы подвисает. Таймер показал, что приблизительно чуть более 180 секунд проходит и "Документ не загружен!". Закрыл программу, открыл и запустил. Выполнилось. Пока объяснений не вижу. :(
Код: vbnet
1.
2.
3.
4.
If Not xmlDoc.Load(FilePath) Then   
    MsgBox "Документ не загружен!"
    Exit Sub
End If


Нуу выведи ошибку, - почитаем :)
Код: vbnet
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.
Dim xDoc As MSXML.DOMDocument    
Dim strErrText As String    
Dim xPE As MSXML.IXMLDOMParseError    

Set xDoc = New MSXML.DOMDocument 
If xDoc.Load("C:\My Documents\cds.xml") Then    
' The document loaded successfully.    
' Now do something intersting. 
Else    
' The document failed to load.    
' Obtain the ParseError object    
  Set xPE = xDoc.parseError    
  With xPE
    strErrText = "Your XML Document failed to load" & _
        "due the following error." & vbCrLf & _
        "Error #: " & .errorCode & ": " & xPE.reason & _
        "Line #: " & .Line & vbCrLf & _
        "Line Position: " & .linepos & vbCrLf & _
        "Position In File: " & .filepos & vbCrLf & _
        "Source Text: " & .srcText & vbCrLf & _
        "Document URL: " & .url
  End With

  MsgBox strErrText, vbExclamation 
End If

Set xPE = Nothing


имхую, что файл просто "заблокирован" твоими "приседаниями" с Open FilePath For Input
и система просто не даёт к нему доступ
...
Рейтинг: 0 / 0
Большой файл XML. Ошибка - out of string space vba.
    #39808836
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Архимедоффaleks222,
Нужно удалить первые пару строк для дальнейшей работы.
Кроме того, хотел еще кое что подсчитать, но видимо сделаю это по другому.
Так читай "кусочками".
...
Рейтинг: 0 / 0
Большой файл XML. Ошибка - out of string space vba.
    #39808970
court,
Операции Open FilePath For Input я отключил.
...
Рейтинг: 0 / 0
Большой файл XML. Ошибка - out of string space vba.
    #39808972
aleks222,
Хорошо, можно пример кода? Как удалить в файле первые две строки?
...
Рейтинг: 0 / 0
Большой файл XML. Ошибка - out of string space vba.
    #39808976
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222Так читай "кусочками".
как читать кусочками, если в файле часто 1 строка, все 200мб( а то и 50гб)
--одной строкой
--разделитель подстрок имеет код=10 и line input не работает
--и в придачу кодировка ГЕА-8
...
Рейтинг: 0 / 0
Большой файл XML. Ошибка - out of string space vba.
    #39808978
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
опечатка

и в придачу кодировка utf-8
...
Рейтинг: 0 / 0
Большой файл XML. Ошибка - out of string space vba.
    #39809009
Вот на скрине начало файла. Пока не удалишь первые две строчки - санки на поедут. Приходится удалять вручную.
...
Рейтинг: 0 / 0
Большой файл XML. Ошибка - out of string space vba.
    #39809106
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЕНСИОНЕРКАaleks222Так читай "кусочками".
как читать кусочками, если в файле часто 1 строка, все 200мб( а то и 50гб)
--одной строкой
--разделитель подстрок имеет код=10 и line input не работает
--и в придачу кодировка ГЕА-8

Вы меня пугаете своей дремучестью.

1. Открой как Binary
2. Читай по одному байту (можно и не по одному, но квалификация ТС не дозволяет).
3. Нема проблем.

ЗЫ. Не говоря уже о том, что ADODB.Stream
https://docs.microsoft.com/en-us/sql/ado/reference/ado-api/stream-object-ado?view=sql-server-2017
умеет и utf-8 читать/писать.
...
Рейтинг: 0 / 0
Большой файл XML. Ошибка - out of string space vba.
    #39809110
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Архимедоффaleks222,
Хорошо, можно пример кода? Как удалить в файле первые две строки?
Не, дарагуля, учись сам.
...
Рейтинг: 0 / 0
Большой файл XML. Ошибка - out of string space vba.
    #39809122
aleks222,
Я Вам не дарагуля. Если бы знал, не обращался. Я и так достаточно много тут подчерпнул для себя, но благодаря не пустым словам, типа ваших, а конкретным примерам. И да, я не программист, просто пытаюсь по работе себе жизнь облегчить и всё.
...
Рейтинг: 0 / 0
Большой файл XML. Ошибка - out of string space vba.
    #39809129
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Архимедоффcourt,
Операции Open FilePath For Input я отключил.


ок

Тогда можно разбирать файл "построчно", не загружая полностью в память.
В той же библиотеке MSXML2, есть объект SAXXMLReader (или SAXXMLReader60) который читает и парсит XML построчно.

тут есть хороший пример.
Тебе нужно будет переделать метод IVBSAXContentHandler_startElement - в нём нужно будет обрабатывать нужную тебе ноду.
...
Рейтинг: 0 / 0
Большой файл XML. Ошибка - out of string space vba.
    #39809136
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АрхимедоффВот на скрине начало файла. Пока не удалишь первые две строчки - санки на поедут. Приходится удалять вручную.

По поводу 2-й строки, я понимаю почему ты её удаляешь (типа, нет этого файла "под рукой").
Но не обязательно удалять !
Можно "сказать" парсёру, что бы на это DTD "не обращал внимание", да и всё :)
Для Reader-а так:
Код: vbnet
1.
2.
Dim saxReader As MSXML2.SAXXMLReader60
saxReader.putFeature "prohibit-dtd", False


... и для DOMDocument тоже, имхо, есть что-то подобное

А первую строку зачем удаляешь ?
Кодировка файла не UTF-8 ?
...
Рейтинг: 0 / 0
Большой файл XML. Ошибка - out of string space vba.
    #39809326
court,
Спасибо большое, но для меня это уже темный лес :(
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Большой файл XML. Ошибка - out of string space vba.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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