<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBScript: Как отформатировать текстовый файл в нужный формат]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=6156&amp;type=atom" />
	<updated>2011-09-04T10:42:22Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=6156</id>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Как отформатировать текстовый файл в нужный формат]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51159#p51159" />
			<content type="html"><![CDATA[<p><strong>kdesys</strong>, спасибо, ясно. Попробуем.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2011-09-04T10:42:22Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51159#p51159</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Как отформатировать текстовый файл в нужный формат]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51157#p51157" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><div class="quotebox"><cite>kdesys пишет:</cite><blockquote><p>Как оказалось, в некоторых случаях, да.</p></blockquote></div><p>1. То есть, вместо именно «Руководителю» только «Иванову Ивану Ивановичу», так?<br />2. Но всё равно, это будет одна строка?</p></blockquote></div><p>1 и 2 да, именно так.</p>]]></content>
			<author>
				<name><![CDATA[kdesys]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27165</uri>
			</author>
			<updated>2011-09-04T10:09:13Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51157#p51157</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Как отформатировать текстовый файл в нужный формат]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51132#p51132" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>kdesys пишет:</cite><blockquote><p>Как оказалось, в некоторых случаях, да.</p></blockquote></div><p>1. То есть, вместо именно «Руководителю» только «Иванову Ивану Ивановичу», так?<br />2. Но всё равно, это будет одна строка?</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2011-09-03T12:32:26Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51132#p51132</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Как отформатировать текстовый файл в нужный формат]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51131#p51131" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>...пожертвование на содержание сайта и форума может и примет...</p></blockquote></div><p>отписался.<br /></p><div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Там может быть реальное имя?</p></blockquote></div><p>Как оказалось, в некоторых случаях, да.</p>]]></content>
			<author>
				<name><![CDATA[kdesys]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27165</uri>
			</author>
			<updated>2011-09-03T12:10:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51131#p51131</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Как отформатировать текстовый файл в нужный формат]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=50936#p50936" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>kdesys пишет:</cite><blockquote><p>Напиши, куда выслать электронных денег на пиво. Можно в личку, я настаиваю. :-)</p></blockquote></div><p>Напишите, пожалуйста, в личку <strong><a href="http://forum.script-coding.com/profile.php?id=18421">atomix</a></strong>&#039;у, насчёт пива не уверен, а пожертвование на содержание сайта и форума может и примет.<br /></p><div class="quotebox"><cite>kdesys пишет:</cite><blockquote><p>P.S. А можно не привязываться к строке Руководитель?</p></blockquote></div><p>Там может быть реальное имя?</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2011-08-29T16:25:32Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=50936#p50936</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Как отформатировать текстовый файл в нужный формат]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=50934#p50934" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Попробуйте так:<br />Примерный вид вызова скрипта:<br /><strong>cscript.exe &quot;E:\Песочница\0067\Script.vbs&quot; &quot;E:\Песочница\0067\In.txt&quot; &gt;&quot;E:\Песочница\0067\Out.txt&quot;</strong><br />P.S. Может быть, можно было и проще, скажем — одними регулярными выражениями обойтись.</p></blockquote></div><p>Ух ты, супер. Спасибо!!!<br />Напиши, куда выслать электронных денег на пиво.<br />Можно в личку, я настаиваю. :-)</p><p>P.S. А можно не привязываться к строке Руководитель?</p>]]></content>
			<author>
				<name><![CDATA[kdesys]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27165</uri>
			</author>
			<updated>2011-08-29T06:08:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=50934#p50934</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Как отформатировать текстовый файл в нужный формат]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=50926#p50926" />
			<content type="html"><![CDATA[<p>Попробуйте так:<br /></p><div class="codebox"><pre><code>Option Explicit

Const ForReading   = 1

Dim objFSO
Dim objRegExp

Dim strValue
Dim strOrganization
Dim strAddress


Set objFSO = WScript.CreateObject(&quot;Scripting.FileSystemObject&quot;)

If objFSO.FileExists(WScript.Arguments.Item(0)) Then
    Set objRegExp = WScript.CreateObject(&quot;VBScript.RegExp&quot;)
    
    objRegExp.IgnoreCase = True
    
    With objFSO.OpenTextFile(WScript.Arguments.Item(0), ForReading)
        Do Until .AtEndOfStream
            strValue = .ReadLine()
            
            If Len(strValue) &lt;&gt; 0 Then
                strOrganization   = strValue
                objRegExp.Pattern = &quot;\d{6}.*&quot;
                
                Do
                    strValue = .ReadLine()
                    
                    If objRegExp.Test(strValue) Then
                        Exit Do
                    Else
                        strOrganization = strOrganization &amp; &quot; &quot; &amp; strValue
                    End If
                Loop
                
                strAddress        = strValue
                objRegExp.Pattern = &quot;Руководителю&quot;
                
                Do
                    strValue = .ReadLine()
                    
                    If objRegExp.Test(strValue) Then
                        Exit Do
                    Else
                        strAddress = strAddress &amp; &quot; &quot; &amp; strValue
                    End If
                Loop
                
                WScript.Echo _
                    strOrganization &amp; vbCrLf &amp; _
                    strAddress &amp; vbCrLf &amp; _
                    strValue
            Else
                WScript.Echo
            End If
        Loop
    End With
    
    Set objRegExp = Nothing
Else
    WScript.Echo &quot;File [&quot; &amp; WScript.Arguments.Item(0) &amp; &quot;] not found&quot;
End If

Set objFSO = Nothing

WScript.Quit 0</code></pre></div><p>Примерный вид вызова скрипта:<br /></p><div class="codebox"><pre><code>cscript.exe &quot;E:\Песочница\0067\Script.vbs&quot; &quot;E:\Песочница\0067\In.txt&quot; &gt;&quot;E:\Песочница\0067\Out.txt&quot;</code></pre></div><p>P.S. Может быть, можно было и проще, скажем — одними регулярными выражениями обойтись.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2011-08-28T23:09:05Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=50926#p50926</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Как отформатировать текстовый файл в нужный формат]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=50922#p50922" />
			<content type="html"><![CDATA[<p>Кодировка win1251, но это значения не имеет. Могу сделать любую.</p><p>Вот пример:<br /></p><div class="codebox"><pre><code>АГРАРИЙ ООО
347401, Россия, Ростовская обл., Дубовский р-н, хут. Гуреев
Руководителю

АГРАРНИК ООО
306455, Россия, Курская обл., Черемисиновский
р-н, п/о Новосавинское, д. Садовка
Руководителю

АГРАРИЙ, СЕЛЬСКОХОЗЯЙСТВЕННАЯ 
АРТЕЛЬ ООО
396753, Россия, Воронежская обл., Богучарский р-н, с.Твердохлебовка
Руководителю

АГРАРИЙ СЕЛЬСКОХОЗЯЙСТВЕННАЯ 
АРТЕЛЬ
396753, Россия, Воронежская обл.,Богучарский
р-н, хут. Белый Колодезь, ул. Советская, 5
Руководителю</code></pre></div><p><strong>Первый вариант правильный, остальные не правильные.</strong></p><p>Логически я бы описал работу скрипта следующим образом (не вдаваясь в кодинг):<br />1. Найти пустую строку A, найти строку содержащую шесть цифр подряд B, если между строкой A и B больше одной строки, совместить их в одну строку.<br />2. Найти строку содержащую шесть цифр подряд C, найти пустую строку D, если между строкой C и D больше двух строк, совместить их в одну, не трогая последнюю.</p>]]></content>
			<author>
				<name><![CDATA[kdesys]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27165</uri>
			</author>
			<updated>2011-08-28T18:34:48Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=50922#p50922</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Как отформатировать текстовый файл в нужный формат]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=50921#p50921" />
			<content type="html"><![CDATA[<p><strong>kdesys</strong>, выложите сюда, пожалуйста, небольшой образец, включающий в себя все три «неправильных» вида и хотя бы один «правильный», оформив его текст <a href="http://forum.script-coding.com/help.php#bbcode">тэгом «code»</a>. Да, и какая кодировка текстового файла?</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2011-08-28T12:19:06Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=50921#p50921</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBScript: Как отформатировать текстовый файл в нужный формат]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=50920#p50920" />
			<content type="html"><![CDATA[<p>Здравствуйте.</p><p>Имеется огромный список адресов в текстовом виде, большинство адресов соответствует виду:</p><p>НАИМЕНОВАНИЕ ОРГАНИЗАЦИИ<br />ИНДЕКС, АДРЕС<br />Руководитель</p><p>но, около 30% адресов имеют вид:</p><p>ДЛИННОЕ<br />НАИМЕНОВАНИЕ<br />ОРГАНИЗАЦИИ<br />ИНДЕКС, АДРЕС<br />Руководитель</p><p>или:<br />НАИМЕНОВАНИЕ ОРГАНИЗАЦИИ<br />ИНДЕКС, ДЛИННЫЙ<br />АДРЕС<br />Руководитель</p><p>или:<br />ДЛИННОЕ<br />НАИМЕНОВАНИЕ<br />ОРГАНИЗАЦИИ<br />ИНДЕКС, ДЛИННЫЙ<br />АДРЕС<br />Руководитель</p><p>Необходимо всё привести к виду:</p><p>НАИМЕНОВАНИЕ ОРГАНИЗАЦИИ<br />ИНДЕКС, АДРЕС<br />Руководитель</p><p>К чему можно привязаться:<br />1. Каждый контрагент разделён пустой строкой<br />2. Индекс начинается только с цифр 1,2,3,4 и 6<br />3. Руководитель - это текст &quot;Руководитель&quot;</p>]]></content>
			<author>
				<name><![CDATA[kdesys]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27165</uri>
			</author>
			<updated>2011-08-28T09:59:33Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=50920#p50920</id>
		</entry>
</feed>
