<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBS:Обработка нескольких строк в файле в нижний регистр]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=7222</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7222&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBS:Обработка нескольких строк в файле в нижний регистр».]]></description>
		<lastBuildDate>Thu, 17 May 2012 11:02:21 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[VBS:Обработка нескольких строк в файле в нижний регистр]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=60407#p60407</link>
			<description><![CDATA[<p>В файлах есть несколько строк, содержащие &quot;style=&quot;background-image:url(далее разные адреса&quot;, их все надо перевести в нижний регистр. Для обработки файлов с одной строкой я сделал скрипт<br /></p><div class="codebox"><pre><code>&#039;рекрусивно проходим каталог
 &#039;ищет в файле строку с заданным словом word и перевод ее в нижний регистр 


word = &quot;style=&quot;&quot;background-image:url(&quot;                 &#039;искомое слово
papka = &quot;C:\Мои документы\&quot;            &#039;папка поиска
otchet = &quot;otchet.txt&quot;        &#039;файл отчета
i=0

Dim boolFound



Set objFSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)
Set objRegExp = CreateObject(&quot;VBScript.RegExp&quot;)
objRegExp.IgnoreCase = True
Set file2 = objFSO.OpenTextFile(otchet, 2, True)  &#039;2 - Открыть файл для записи. Если файл уже существовал, его содержимое теряется. 8 - Открыть файл для добавления. Если файл уже существовал, информация будет дописываться в конец файла.Создавать файл, если он не существует (True), или нет (False). 


RecursiveFolderScan papka
file2.close

Msgbox &quot;ВСЕ! Обработано &quot;&amp; i &amp;&quot; файлов&quot;

&#039;InStr([start,] str1, str2[, compare]) - Возвращает индекс символа, с которого начинается первое вхождение подстроки str2 в строку str1. 
&#039;- start задаёт номер символа, с которого следует начинать поиск (если не задан, то с начала строки). Поиск производится слева направо. 
&#039;- compare задаёт режим сравнения при обработке строк (0 - двоичное сравнение, 1 - текстовое сравнение).


Sub RecursiveFolderScan(FolderPath)
    &#039;Получаем объектную модель текущего каталога
    Set Folder = objFSO.GetFolder(FolderPath)
 
    &#039;Перебираем все файлы в текущем каталоге
    For Each File in Folder.Files
&#039;+++++++++++++++++++++++++++++++++++++++++

Set file1 = objFSO.OpenTextFile(File, 1, False)
boolFound = False

Do Until file1.AtEndOfStream
sw = file1.ReadLine()

If InStr(1, sw, word) &lt;&gt; 0 Then
                boolFound = True
file2.WriteLine(file.Name)          
file2.WriteLine(sw)     
                Exit Do
            End If
        Loop
file1.close
 

&#039;записать уникальный номер в конец исходной страницы
    If boolFound Then
Set file1 = objFSO.OpenTextFile(File, 1, False)
strText = file1.ReadAll
file1.close
strNewText = Replace(strText, sw, LCase(sw))          
                                      
Set file1 = objFSO.OpenTextFile(File, 2, False)
file1.WriteLine strNewText
file1.close

    End If


i=i+1        &#039;счетчик файлов
&#039;++++++++++++++++++++++++++++++++++++++



    Next
 
    &#039;Перебираем все подкаталоги в каталоге
    For Each SubFolder in Folder.SubFolders
        RecursiveFolderScan(SubFolder.Path)
    Next
End Sub</code></pre></div><p>а вот чтобы обрабатывал все строки в файлах, содержащие данный кусок не получается.</p>]]></description>
			<author><![CDATA[null@example.com (griha09)]]></author>
			<pubDate>Thu, 17 May 2012 11:02:21 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=60407#p60407</guid>
		</item>
	</channel>
</rss>
