<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBS WSH. Чтение txt строк. Выполнение условия по значению в строке.]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7775&amp;type=atom" />
	<updated>2012-11-16T14:40:33Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=7775</id>
		<entry>
			<title type="html"><![CDATA[Re: VBS WSH. Чтение txt строк. Выполнение условия по значению в строке.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=65686#p65686" />
			<content type="html"><![CDATA[<p>Вроде все))) Не должно а работает)))<br /></p><div class="codebox"><pre><code>
Dim FSO, Folder, FilesCollection, sFullFileName, DirIZV

Dim TodayDate : TodayDate = Now()
TodayDate = Left( TodayDate, 10)

Dim sResult : sResult = &quot;&quot;

Const ForReading = 1, ForWriting = 2, TristateUseDefault = -2, ReadLine = 2

DirIZV = &quot;C:\777&quot; &#039; Папка которую смотрим

Set FSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)
Set Folder = FSO.GetFolder( DirIZV )
Set FilesCollection = Folder.Files

For Each File in FilesCollection
    sDateOnly = Left(File.DateLastModified, 10)
    
if sDateOnly=TodayDate then
   sResult = sResult &amp; File.Name &amp; vbTab
  
	if Len(sResult)&gt;0 Then
		sFullFileName = DirIZV &amp; &quot;\&quot; &amp; File.Name
			set F=FSO.GetFile( sFullFileName )
			set TextStream=F.OpenAsTextStream(ForReading, TristateUseDefault)
			p=TextStream.SkipLine
			t=TextStream.Read(2)
			TextStream.Close
		
		if t&gt;01 then
			WScript.Echo &quot;Файл: &quot; &amp; sFullFileName &amp; vbCrLf &amp; vbCrLf &amp; &quot;Код ошибки: &quot; &amp; t
		end if
	end if
end if
next</code></pre></div>]]></content>
			<author>
				<name><![CDATA[xsanekk]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27386</uri>
			</author>
			<updated>2012-11-16T14:40:33Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=65686#p65686</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS WSH. Чтение txt строк. Выполнение условия по значению в строке.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=65685#p65685" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p><span style="color: #008800"><strong>xsanekk</strong>, обрати внимание на <a href="http://forum.script-coding.com/help.php#smilies">оформление кода</a> и отредактируй свои посты.</span></p></blockquote></div><p>Сделал))</p>]]></content>
			<author>
				<name><![CDATA[xsanekk]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27386</uri>
			</author>
			<updated>2012-11-16T13:02:42Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=65685#p65685</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS WSH. Чтение txt строк. Выполнение условия по значению в строке.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=65663#p65663" />
			<content type="html"><![CDATA[<p><span style="color: #008800"><strong>xsanekk</strong>, обрати внимание на <a href="http://forum.script-coding.com/help.php#smilies">оформление кода</a> и отредактируй свои посты.</span></p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2012-11-15T14:24:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=65663#p65663</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS WSH. Чтение txt строк. Выполнение условия по значению в строке.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=65662#p65662" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>xsanekk пишет:</cite><blockquote><p>Теперь как сделать так что бы был перебор файлов... то есть искал бы цифру в нескльких файлах пришедших сегодня... понимаю нужен цикл и перебор файлов... но что то не соображу как...</p></blockquote></div><p>В предыдущем Вашем скрипте ведь и был цикл по файлам директории. В теле цикла формируете полное имя файла и используете для его открытия, например, так:<br /></p><div class="codebox"><pre><code>
&#039; [....... то, что до цикла]
For Each File in FilesCollection
    sDateOnly = Left(File.DateLastModified, 10)
    if sDateOnly=TodayDate then
        sResult = sResult &amp; File.Name &amp; vbTab
        sResult = sResult &amp; File.DateLastModified &amp; vbCrLf
        &#039;--- готовимся к чтению файла
        sFullFileName = &quot;c:\777&quot; &amp; &quot;\&quot; &amp; File.Name &#039; путь к каталогу &quot;c:\777&quot; лучше обозначить один раз в некую переменную, чем повторять его явно
        set F=FSO.GetFile( sFullFileName )
        &#039;[.... здесь Ваш код чтения файла]
    end if
Next</code></pre></div><p>И оформляйте плз в постах свой код внутри специального тэга по кнопочке &quot;Code&quot;.</p><p>Перед сравнением<br /></p><div class="codebox"><pre><code>
t=TextStream.Read(2)
&#039; [.....]
if t&gt;01 then</code></pre></div><p>думаю что нужно либо &quot;t&quot; привести к числовому виду, т.к. считанное значение скорее всего строковое, либо сравнивать не с чисолм 01, а со строкой &quot;01&quot;.</p>]]></content>
			<author>
				<name><![CDATA[Rom5]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5724</uri>
			</author>
			<updated>2012-11-15T13:50:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=65662#p65662</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS WSH. Чтение txt строк. Выполнение условия по значению в строке.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=65661#p65661" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>Dim FSO,F,TextStream,s,p &#039;Объявляем переменные
&#039; Инициализируем константы
Const ForReading = 1, ForWriting = 2, TristateUseDefault = -2, ReadLine = 2

&#039; Создаем объект FileSystemObject
Set FSO=WScript.CreateObject(&quot;Scripting.FileSystemObject&quot;)
&#039; Создаем объект File для файла test1.txt
set F=FSO.GetFile(&quot;c:\777\test1.txt&quot;)
&#039; Открываем файл для чтения
Set TextStream=F.OpenAsTextStream(ForReading, TristateUseDefault)
&#039; Пропускаем первую строку и считываем 2 символа во 2й строке
p=TextStream.SkipLine
t=TextStream.Read(2)
&#039; Закрываем файл 
TextStream.Close

if t&gt;01 then
&#039; Отображаем строку на экране
WScript.Echo &quot;Код ошибки:&quot; &amp; vbCrLf &amp; vbCrLf &amp; t
end if</code></pre></div><p>Теперь как сделать так что бы был перебор файлов... то есть искал бы цифру в нескльких файлах пришедших сегодня... понимаю нужен цикл и перебор файлов... но что то не соображу как...</p>]]></content>
			<author>
				<name><![CDATA[xsanekk]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27386</uri>
			</author>
			<updated>2012-11-15T08:07:56Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=65661#p65661</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS WSH. Чтение txt строк. Выполнение условия по значению в строке.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=65660#p65660" />
			<content type="html"><![CDATA[<p>Спасибо&nbsp; ROM5!</p>]]></content>
			<author>
				<name><![CDATA[xsanekk]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27386</uri>
			</author>
			<updated>2012-11-15T08:00:30Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=65660#p65660</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS WSH. Чтение txt строк. Выполнение условия по значению в строке.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=65652#p65652" />
			<content type="html"><![CDATA[<p>Вот, чуть подправленный Ваш скрипт:</p><div class="codebox"><pre><code>
Dim FSO, Folder, FilesCollection
Set FSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)
Set Folder = FSO.GetFolder(&quot;C:\777&quot;)
Set FilesCollection = Folder.Files

Dim TodayDate : TodayDate = Now()

&#039; MsgBox TodayDate &#039;&#039;&#039; раскомментарьте для понимания получаемых значений
TodayDate = Left( TodayDate, 10) &#039; берем из текущей даты-времени &quot;дд.мм.гггг чч:мм:сс&quot; только дату - первые 10 символов
&#039; MsgBox TodayDate

Dim sResult : sResult = &quot;&quot; &#039;Начальное значение накопительной переменной для результата&#039;

For Each File in FilesCollection
	sDateOnly = Left(File.DateLastModified, 10) &#039; берем из даты измения файла &quot;дд.мм.гггг чч:мм:сс&quot; только дату
	if sDateOnly=TodayDate then
		sResult = sResult &amp; File.Name &amp; vbTab
		sResult = sResult &amp; File.DateLastModified &amp; vbCrLf
	end if
Next
&#039; Вывод результата на экран
If Len(sResult)&gt;0 Then
	&#039; MsgBox(sResult)
	MsgBox &quot;Найдены сегодняшние файлы:&quot; &amp; vbCrLf &amp; vbCrLf &amp; sResult, vbInformation, &quot;Поиск в &quot; &amp; Folder
Else
	MsgBox &quot;Сегодняшних файлов не найдено.&quot;, vbExclamation, &quot;Поиск в &quot; &amp; Folder
End IF</code></pre></div><p>1) функция &quot;<em>Now<strong>()</strong></em>&quot; возвращает не только системную дату, но и время, а т.к. нам нужна для сравнения только дата, то берем для себя первые 10 символов слева, т.е. время отбрасываем;<br />2) аттрибут файла &quot;дата создания&quot; (.DateCreated) значение может вернуть скорее всего не то, что Вы ожидаете увидеть, поэтому лучше брать аттрибут &quot;дата модификации&quot; (.DateLastModified), а т.к. в этих аттрибутах также присутствует время, то тоже берем для сравнения только первые 10 символов.<br />3) накопление в результатирующей переменной (sResult) я сделал только по данным &quot;сегодняшних&quot; файлов, а до начала работы с этой переменной желательно определить ее значение как &quot;&quot;, чтобы понимать, что в ней можно ожидать;<br />4) вывод результата произвожу в зависимости от наличия содержимого в накопительной переменной.</p><p>Теперь учитесь открывать текстовый файл на чтение и построчно читать его содержимое.</p>]]></content>
			<author>
				<name><![CDATA[Rom5]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5724</uri>
			</author>
			<updated>2012-11-14T21:44:55Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=65652#p65652</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS WSH. Чтение txt строк. Выполнение условия по значению в строке.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=65635#p65635" />
			<content type="html"><![CDATA[<p>Вот так что ли? Не получается почему то дату получить системную...</p><div class="codebox"><pre><code>Dim FSO, Folder, FilesCollection, sResult, TodayDate

Set FSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)
Set Folder = FSO.GetFolder(&quot;C:\777&quot;)
Set FilesCollection = Folder.Files
Set TodayDate = Now

For Each File in FilesCollection
	sResult = sResult &amp; File.Name &amp; vbTab
    sResult = sResult &amp; File.DateCreated &amp; vbCrLf
Next
		if File.DateCreated=TodayDate then
		&#039; Вывод результата на экран
MsgBox(sResult)
		end if</code></pre></div>]]></content>
			<author>
				<name><![CDATA[xsanekk]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27386</uri>
			</author>
			<updated>2012-11-14T14:22:12Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=65635#p65635</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS WSH. Чтение txt строк. Выполнение условия по значению в строке.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=65590#p65590" />
			<content type="html"><![CDATA[<p>Например, так - ищите примеры получения списка файлов из папки с помощью WSH-объекта FileSystemObject, потом циклом перечитываете аттрибуты каждого файла (примеры получения аттрибутов тоже найти не проблема) и, если расширение файла &quot;txt&quot;, а дата модификации =сегодняшней, то - открываете файл, читаете построчно, на второй строке проверяете свое условие, закрываете, переходите к следующему файлу.</p>]]></content>
			<author>
				<name><![CDATA[Rom5]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5724</uri>
			</author>
			<updated>2012-11-13T16:00:52Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=65590#p65590</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBS WSH. Чтение txt строк. Выполнение условия по значению в строке.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=65586#p65586" />
			<content type="html"><![CDATA[<p>доброго времени суток.</p><p>подскажите пожалуйста как решить такую задачку... есть папка, в ней находятся несколько десятков файлов txt. Необходимо что бы скрипт сканировал все файлы в этой папке и проверял вторую строчку в каждом файле. Мы должны считывать только вторую строчку. Если во второй строчке 01 то ничего не делаем. Если в строчке 02 или больше (03 04 05) то выдаем сообщение на экран. И как сделать что бы сканировались файлы только те которые созданы сегодня(по системной дате)...</p>]]></content>
			<author>
				<name><![CDATA[xsanekk]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27386</uri>
			</author>
			<updated>2012-11-13T14:05:58Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=65586#p65586</id>
		</entry>
</feed>
