<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; WSH: Обсуждение модуля и утилиты работы с INI файлами (JScript)]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=6838</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=6838&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «WSH: Обсуждение модуля и утилиты работы с INI файлами (JScript)».]]></description>
		<lastBuildDate>Wed, 22 Feb 2012 10:34:57 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: WSH: Обсуждение модуля и утилиты работы с INI файлами (JScript)]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=57146#p57146</link>
			<description><![CDATA[<p>на мсдн-е была тема о алгоритмах работы с ини, ссылку не дам ибо не помню</p>]]></description>
			<author><![CDATA[null@example.com (smaharbA)]]></author>
			<pubDate>Wed, 22 Feb 2012 10:34:57 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=57146#p57146</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH: Обсуждение модуля и утилиты работы с INI файлами (JScript)]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=57145#p57145</link>
			<description><![CDATA[<p>Ссылки по теме разговора<br /><a href="http://search.cpan.org/~shlomif/Config-IniFiles-2.68/lib/Config/IniFiles.pm">pl : Config::IniFiles</a><br /><a href="http://www.voidspace.org.uk/python/configobj.html">py : ConfigObj</a><br /><a href="https://github.com/isaacs/ini">js : NodeJS-ориентированный аналог</a></p>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Wed, 22 Feb 2012 09:06:26 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=57145#p57145</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH: Обсуждение модуля и утилиты работы с INI файлами (JScript)]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=57131#p57131</link>
			<description><![CDATA[<p>Думается мне, что лучше конечно сделать модуль с настройками. Ибо всем не угодить.</p>]]></description>
			<author><![CDATA[null@example.com (DnsIs)]]></author>
			<pubDate>Tue, 21 Feb 2012 06:54:33 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=57131#p57131</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH: Обсуждение модуля и утилиты работы с INI файлами (JScript)]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=57122#p57122</link>
			<description><![CDATA[<p>Я в своей жизни встречал такие файлы</p><p>1. на текущей работе, самый простой случай<br /></p><div class="codebox"><pre><code>имя1=значение</code></pre></div><p>2. а также параметры, допускающие множественные значения<br /></p><div class="codebox"><pre><code>имя2=значение
имя2=значение</code></pre></div><p>3. так выглядит <strong>php.ini</strong><br /></p><div class="codebox"><pre><code>имя3=значение ; комментарий</code></pre></div><p>4. встречал всего один раз, это было как-то связано с Perl<br /></p><div class="codebox"><pre><code>имя4=значение\
значение</code></pre></div><p>5. примерно так выглядят простые параметры файла реестра в текстовом представлении<br /></p><div class="codebox"><pre><code>&quot;имя5&quot;=&quot;значение&quot;</code></pre></div><p>6. примерно так выглядят &quot;сложные&quot; параметры файла реестра в текстовом представлении<br /></p><div class="codebox"><pre><code>&quot;имя6&quot;=значение
    значение</code></pre></div><p>Мой модуль полностью &quot;понимает&quot; варианты 1 и 2 (простая строка и массив строк, соответственно). В варианте 3 считается, что вся строка после знака равенства - значение. Можно было бы искать до первого символа комментария. Однако для <strong>php.ini</strong> это будет верно, а другом случае это может оказаться неверным. Частично - вариант 5, но кавычки попадают и в имя, и в значение. </p><p>Количество пробелов в имени значения не имеет, то есть может быть и такая ситуация<br /></p><div class="codebox"><pre><code>сложное имя=значение</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Mon, 20 Feb 2012 19:00:12 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=57122#p57122</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH: Обсуждение модуля и утилиты работы с INI файлами (JScript)]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=57115#p57115</link>
			<description><![CDATA[<p>Посмотрел кучу INI файлов у себя на винте. В подавляющем большинстве пробелов нет.<br /></p><div class="codebox"><pre><code>&quot;NAME=xxx&quot;</code></pre></div><p>Иногда в таких файлах встречаются строки:<br /></p><div class="codebox"><pre><code>&quot;NAME= xxx&quot;</code></pre></div><p>И мне кажется, что тут не косяк, а пробел как раз таки играет какую то роль.<br />Так же встретились строки в которых идет эстетическое выравнивание:<br /></p><div class="codebox"><pre><code>&quot;NAME             = xxx&quot;
&quot;PARAMETER    = xxx&quot;</code></pre></div><p>причем не только пробелами, а так же ТАБами.<br />Так же встретил значения с комментариями в конце<br /></p><div class="codebox"><pre><code>&quot;PARAMETER    = xxx&quot; ; Параметр</code></pre></div><p>встретил с параметром содержащим пробел<br /></p><div class="codebox"><pre><code>&quot;NAME PARAMETER    = xxx&quot;</code></pre></div><p>и прочел в википедии, что бывают многострочные&nbsp; значения и для объявления следующей строки используется &quot;\&quot;<br /></p><div class="codebox"><pre><code>&quot;NAME=xxx\
yyy&quot;</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (DnsIs)]]></author>
			<pubDate>Mon, 20 Feb 2012 16:22:22 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=57115#p57115</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH: Обсуждение модуля и утилиты работы с INI файлами (JScript)]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=57113#p57113</link>
			<description><![CDATA[<div class="quotebox"><cite>Serge Yolkin пишет:</cite><blockquote><p>Пробел(ы) в начале значения лучше, наверное, сохранить</p></blockquote></div><div class="quotebox"><cite>Flasher пишет:</cite><blockquote><p>Для эстетики лучше, конечно, убирать пробелы, а для сравнения - оставлят</p></blockquote></div><p>Я тоже ради эстетики первоначально удалял. Но, &quot;истина дороже&quot; - любые пробелы в строке могут быть значащими. 2000 лет назад ради эстетики из биографии одного плотника вычеркнули полжизни. </p><div class="quotebox"><cite>Flasher пишет:</cite><blockquote><p>Можно параметр (опцию) добавить</p></blockquote></div><p>или функцию-коллбек. Что гораздо гибче - мы не ограничиваемся отрезанием концевых пробелов, но даем возможность пользователю модуля саму решать, что и как ему обрабатывать. Надо только продумать это.</p>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Mon, 20 Feb 2012 15:43:14 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=57113#p57113</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH: Обсуждение модуля и утилиты работы с INI файлами (JScript)]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=57095#p57095</link>
			<description><![CDATA[<p>Для эстетики лучше, конечно, убирать пробелы, а для сравнения - оставлять. Можно параметр (опцию) добавить.</p><div class="quotebox"><cite>Rumata пишет:</cite><blockquote><p>В сети существует бинарный аналог INITOOL (http://www.optimumx.com/downloads.html#iniTool), который не смог обработать конфигурационный файл размером более 2МБ</p></blockquote></div><p>Я <a href="http://www.horstmuc.de/wbat32.htm#inifile">вот этим</a> пользуюсь. Ещё есть <a href="http://kitvision.ru/kitup">многофункциональный аналог</a> (развивается). Попробуйте.</p>]]></description>
			<author><![CDATA[null@example.com (Flasher)]]></author>
			<pubDate>Sun, 19 Feb 2012 21:56:37 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=57095#p57095</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH: Обсуждение модуля и утилиты работы с INI файлами (JScript)]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=57070#p57070</link>
			<description><![CDATA[<p>Пробел(ы) в начале значения лучше, наверное, сохранить: пару раз сталкивался с локализациями в формате ini, где без одного-двух пробелов в начале текст &quot;прилипал&quot; к контролу или рамке. В конце - не знаю. Теоретически, возможны такие же косяки при выравнивании вправо, но лично не встречал.</p>]]></description>
			<author><![CDATA[null@example.com (Serge Yolkin)]]></author>
			<pubDate>Sun, 19 Feb 2012 13:24:49 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=57070#p57070</guid>
		</item>
		<item>
			<title><![CDATA[WSH: Обсуждение модуля и утилиты работы с INI файлами (JScript)]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=57061#p57061</link>
			<description><![CDATA[<p><em>Недавно я создал достаточно многословную тему <a href="http://script-coding.com/forum/viewtopic.php?id=6831">JScript: модуль обработки INI файлов и утилита работы с INI файлами</a>. Сейчас в работе с ней я столкнулся с небольшой проблемой, которую хотел бы обсудить и получить советы, как поступить лучше. Я намеренно перенес язык в конец названия темы дабы акцентировать внимание не на языке, а на алгоритме. Также приветствуется любая критика и конструктивные предложения по улучшению как программы так и самого модуля. </em></p><p>Для поиска ключей-параметров используется регулярное выражение, которое ищет все строки, вида <strong>название = значение</strong>. При этом, строки начинающиеся с символов <strong>;</strong> (точка с запятой) и <strong>#</strong> (решетка) отфильтровываются, так как рассматриваются как комментарии. Допустимы любые пробельные символы в начале строки и вокруг символа = (знак равенства). Мне часто попадается конфигурация, которая содержит один ведущий символ пробела в значении параметра. </p><p>То есть, при разборе входного файла все ведущие пробелы в поле <strong>&quot;значение&quot;</strong> &quot;съедаются&quot;, и в результате исходный и конечный файлы отличаются. </p><p>Вопрос следующий. Сейчас используется такое регулярное выражение. <br /></p><div class="codebox"><pre><code>
/^\s*([^;#\s][^=]*?)\s*=\s*([^\r\n]*?)\s*$/</code></pre></div><p>Имеет ли смысл это выражение &quot;смягчить&quot;, так чтобы оно сохраняло все символы после знака равенства?<br /></p><div class="codebox"><pre><code>
/^\s*([^;#\s][^=]*?)\s*=([^\r\n]*?)$/</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Sun, 19 Feb 2012 11:06:36 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=57061#p57061</guid>
		</item>
	</channel>
</rss>
