<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBA: Ограничения на работу с регулярными выражениями RegExp]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=8807</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8807&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBA: Ограничения на работу с регулярными выражениями RegExp».]]></description>
		<lastBuildDate>Mon, 25 Nov 2013 14:10:57 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBA: Ограничения на работу с регулярными выражениями RegExp]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=77540#p77540</link>
			<description><![CDATA[<p>А ты смотрел сколько в памяти занимает загруженый XML? </p><p>У меня когда-то коллега делал выгрузку из одной ЕРП системы в 1С. Я ужаснулся когда увидел что файл который получается на выходе 30 МБ имеет размер в памяти при обработке 2,5ГБ. Я конечно потом переделал процедуру и полечил распухание но тем не менее осадочек остался..</p>]]></description>
			<author><![CDATA[null@example.com (regsiteimoney)]]></author>
			<pubDate>Mon, 25 Nov 2013 14:10:57 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=77540#p77540</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: Ограничения на работу с регулярными выражениями RegExp]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=76473#p76473</link>
			<description><![CDATA[<div class="quotebox"><cite>shiz пишет:</cite><blockquote><p>Совершенно верно, у любого конкретного компьютера память ограничена, так что ничего удивительного, что раньше или позже возникает ограничение на размер обрабатываемых данных.</p></blockquote></div><p>У меня 4 на борту. Дело не в этом, дело в том, что не верно рассчитывать на то, что конечный потребитель будет иметь такие же параметры компьютера.<br />Потому и ищу информацию по ограничениям.</p>]]></description>
			<author><![CDATA[null@example.com (mihmed)]]></author>
			<pubDate>Sat, 26 Oct 2013 07:57:07 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=76473#p76473</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: Ограничения на работу с регулярными выражениями RegExp]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=76472#p76472</link>
			<description><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p><strong>mihmed</strong>, выбор за Вами. Каких неудобств?</p></blockquote></div><p>Ну первое неудобство, стандартный импорт не позволяет мне делать импорт в существующую таблицу (?), кроме того в зависимости от таблицы мне необходимо добавлять ряд стандартных полей которые зависят, в том числе от, содержимого внутри тега.<br />Это конечно можно обойти, но длинно и за существенно большее время.</p><div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Поясните конкретнее. Мне абсолютно непонятна Ваша методика.</p></blockquote></div><p>Условно внутри тега есть некий тег, который имеет в себе признаки отношения к разным организациям, причем представленный в текстовом виде. Мне достаточно просто &quot;вычленить&quot; содержимое тега и, сразу обработав его, занести итоговую таблицу уже идентификатором из связанной таблицы.<br />При этом вся обработка производится за один проход, что не реально при варианте импорт+обработка</p><div class="quotebox"><blockquote><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><p>А потом обрезка придётся в аккурат посредине потребного тэга. То-то будет радости.</p></div></div></blockquote></div><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><p>Ну так обрезка только для понимания максимального размера обрабатываемых данных ))</p></div></div>]]></description>
			<author><![CDATA[null@example.com (mihmed)]]></author>
			<pubDate>Sat, 26 Oct 2013 07:54:02 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=76472#p76472</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: Ограничения на работу с регулярными выражениями RegExp]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=76453#p76453</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>Стандартный импорт мне показался менее эффективным по сравнению с разбором с помощью регулярных выражений, он гораздо более медленный и имеет еще ряд неудобств.</p></blockquote></div><p><strong>mihmed</strong>, выбор за Вами. Каких неудобств?</p><div class="quotebox"><blockquote><p>Кроме того у меня за один раз может последовательно обрабатываться несколько десятков хмл и мне показалось плохим решением раскладывать хмл во временные таблицы и дальнейшим сваливанием всего в одну кучу, при этом надо еще маркировать принятые данные что бы в общей массе понимать какие данные из какой хмл прилетели.</p></blockquote></div><p>Поясните конкретнее. Мне абсолютно непонятна Ваша методика.</p><div class="quotebox"><blockquote><p>сначала обрезать хмл до 60 мегабайт, не проглотит урезать до 30 и т.д.,</p></blockquote></div><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><p>А потом обрезка придётся в аккурат посредине потребного тэга. То-то будет радости.</p></div></div>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Fri, 25 Oct 2013 20:28:07 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=76453#p76453</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: Ограничения на работу с регулярными выражениями RegExp]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=76422#p76422</link>
			<description><![CDATA[<div class="quotebox"><cite>mihmed пишет:</cite><blockquote><p>Выдает ошибку &quot;Out of memory&quot;.</p></blockquote></div><div class="quotebox"><cite>mihmed пишет:</cite><blockquote><p>поскольку возможно влияние характеристик конкретного компьютера</p></blockquote></div><p>Совершенно верно, у любого конкретного компьютера память ограничена, так что ничего удивительного, что раньше или позже возникает ограничение на размер обрабатываемых данных.</p>]]></description>
			<author><![CDATA[null@example.com (shiz)]]></author>
			<pubDate>Fri, 25 Oct 2013 09:27:31 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=76422#p76422</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: Ограничения на работу с регулярными выражениями RegExp]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=76410#p76410</link>
			<description><![CDATA[<p>Например? Стандартный импорт? Стандартный импорт мне показался менее эффективным по сравнению с разбором с помощью регулярных выражений, он гораздо более медленный и имеет еще ряд неудобств.<br />Кроме того у меня за один раз может последовательно обрабатываться несколько десятков хмл и мне показалось плохим решением раскладывать хмл во временные таблицы и дальнейшим сваливанием всего в одну кучу, при этом надо еще маркировать принятые данные что бы в общей массе понимать какие данные из какой хмл прилетели.</p><p>Впрочем это дело вкуса. Мне же хочется прочитать про ограничения на работу с регулярными выражениями в VBA, например для того, чтобы будущие задачи сразу ограничивать в механизме реализации.<br />Можно конечно провести ряд экспериментов, сначала обрезать хмл до 60 мегабайт, не проглотит урезать до 30 и т.д., но этот эксперимент нельзя будет считать полностью точным, поскольку возможно влияние характеристик конкретного компьютера и нельзя будет опираться на такой эксперимент при передаче готовой программы заказчику или коллегам/друзьям</p>]]></description>
			<author><![CDATA[null@example.com (mihmed)]]></author>
			<pubDate>Fri, 25 Oct 2013 03:30:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=76410#p76410</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: Ограничения на работу с регулярными выражениями RegExp]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=76403#p76403</link>
			<description><![CDATA[<p><strong>mihmed</strong>, что мешает сделать правильный выбор в сторону использования банального разбора xml?</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Thu, 24 Oct 2013 14:27:51 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=76403#p76403</guid>
		</item>
		<item>
			<title><![CDATA[VBA: Ограничения на работу с регулярными выражениями RegExp]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=76389#p76389</link>
			<description><![CDATA[<p>Столкнулся с проблемой, оказывается объект RegExp (точнее его методы) имеют ограничения на размер обрабатываемых данных, не замечал до тех пор, пока на обработку не попал ХМЛ файл размером 120 мегабайт.</p><p>Не нашел в сети параметров ограничения и обращаюсь к сообществу за подсказкой. Важно то, что не желательно разбивать обрабатываемый файл на куски меньшего размера. </p><p>Для примера немного кода и выдаваемых ошибок здесь в переменной strzap живет 120 млн букв и цифр ))<br /></p><div class="codebox"><pre><code>
Dim myRegExp As New RegExp 
Dim aMatch As Match 
Dim colMatches As MatchCollection 
myRegExp.Multiline = True 
myRegExp.Global = True 
myRegExp.IgnoreCase = True 

myRegExp.Pattern = &quot;\r\n&quot; 
strt = myRegExp.Replace(strzap, &quot;&quot;)
strzap = strt
</code></pre></div><p>Выдает ошибку &quot;Out of memory&quot;.</p><div class="codebox"><pre><code>
myRegExp.Pattern = &quot;&lt;ZAP&gt;(.*?)&lt;/ZAP&gt;&quot;
Set colMatches = myRegExp.Execute(strzap) 
For Each aMatch In colMatches 
    strNZap = aMatch.SubMatches(0)
    ...
Next aMatch
</code></pre></div><p>Цикл не выполняется, поскольку коллекция получается пустой. хотя реально такие теги есть причем их несколько десятков тысяч.</p>]]></description>
			<author><![CDATA[null@example.com (mihmed)]]></author>
			<pubDate>Thu, 24 Oct 2013 06:18:55 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=76389#p76389</guid>
		</item>
	</channel>
</rss>
