<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBS:Обработка нескольких строк в файле в нижний регистр]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7222&amp;type=atom" />
	<updated>2012-05-17T11:02:21Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=7222</id>
		<entry>
			<title type="html"><![CDATA[VBS:Обработка нескольких строк в файле в нижний регистр]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=60407#p60407" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[griha09]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27540</uri>
			</author>
			<updated>2012-05-17T11:02:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=60407#p60407</id>
		</entry>
</feed>
