<?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=7347&amp;type=atom" />
	<updated>2012-07-15T02:34:54Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=7347</id>
		<entry>
			<title type="html"><![CDATA[Re: VBS. Как считать определенную строку в текстовом файле?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=61571#p61571" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>SNR93 пишет:</cite><blockquote><p>у меня все так и стоит</p></blockquote></div><p>Откройте Ваш файл «commands.txt», включите отображение концов строк (\Вид\Отображение символов\Отображать все символы) и убедитесь, что в нём используется Unix-формат.</p><p><strong>2max7</strong>:</p><p>1. Работа с текстовым файлом на порядок проще.<br />2. Ничто не мешает работать с текстовым файлом, как с базой данных. Для этого есть несколько способов, причём, некоторые, как ADO — непосредственно «из коробки».</p><p><span style="color: Green">Если есть желание пообсуждать — заводите тему в <a href="http://forum.script-coding.com/viewforum.php?id=8">Script-Coding.com community</a>.</span></p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2012-07-15T02:34:54Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=61571#p61571</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS. Как считать определенную строку в текстовом файле?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=61569#p61569" />
			<content type="html"><![CDATA[<p>Я пожалуй побурчу немного не в тему.</p><p>Ну, начните жеж уже наконец использовать sqlite. Он же для того и сделан, как замена &quot;текстовым файликам&quot;. Да, вначале буден сложно и непривычно. Возможно придётся написать некоторые свой &quot;обёртки&quot;. Зато будет некоторый опыт работы с базами данных. И целая туева хуча вопросов отпадёт сама собой.</p>]]></content>
			<author>
				<name><![CDATA[max7]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=10498</uri>
			</author>
			<updated>2012-07-14T23:45:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=61569#p61569</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS. Как считать определенную строку в текстовом файле?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=61564#p61564" />
			<content type="html"><![CDATA[<p>у меня все так и стоит</p>]]></content>
			<author>
				<name><![CDATA[SNR93]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26666</uri>
			</author>
			<updated>2012-07-14T14:52:06Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=61564#p61564</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS. Как считать определенную строку в текстовом файле?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=61563#p61563" />
			<content type="html"><![CDATA[<p>Убедитесь, что для новых файлов установлен «родной» для Windows формат:</p><p><span class="postimg"><img src="http://img705.imageshack.us/img705/4221/image00020120714174528.png" alt="http://img705.imageshack.us/img705/4221/image00020120714174528.png" /></span></p><p>Изменить формат текущего документа можно через меню «\Правка\Формат Конца Строк…».</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2012-07-14T13:46:45Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=61563#p61563</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS. Как считать определенную строку в текстовом файле?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=61562#p61562" />
			<content type="html"><![CDATA[<p>В Notepad++</p>]]></content>
			<author>
				<name><![CDATA[SNR93]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26666</uri>
			</author>
			<updated>2012-07-14T13:41:44Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=61562#p61562</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS. Как считать определенную строку в текстовом файле?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=61561#p61561" />
			<content type="html"><![CDATA[<p><strong>SNR93</strong>, как я и предполагал, Ваш «commands.txt» содержит в качестве разделителей строк только символы LineFeed («LF»/«0x0A»), используемые преимущественно в Unix/Linux: <a href="http://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8">Перевод строки — Википедия</a>.</p><p>Что делать? Либо поменять в строке:<br /></p><div class="codebox"><pre><code>arrContent = Split(.ReadAll(), vbCrLf)     &#039; Читаем всё содержимое и помещаем в массив</code></pre></div><p>«vbCrLf» на «vbLf», либо использовать редактор, сохраняющий файлы с разделителями строк, используемыми в Microsoft Windows.</p><p>Кстати, в каком редакторе был создан файл «commands.txt»?</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2012-07-14T12:13:32Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=61561#p61561</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS. Как считать определенную строку в текстовом файле?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=61560#p61560" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p><strong>SNR93</strong>:<br /></p><div class="quotebox"><blockquote><div class="codebox"><pre><code>Алексей Иван Никита Артем</code></pre></div></blockquote></div><p>Упакуйте Ваш «commands.txt» в архив (обязательное условие), выложите на <a href="http://rghost.ru/">RGhost</a>. Ссылку — сюда.</p></blockquote></div><p><a href="http://rghost.ru/39207144">http://rghost.ru/39207144</a> вот мой commands.txt</p>]]></content>
			<author>
				<name><![CDATA[SNR93]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26666</uri>
			</author>
			<updated>2012-07-14T11:58:33Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=61560#p61560</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS. Как считать определенную строку в текстовом файле?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=61559#p61559" />
			<content type="html"><![CDATA[<p><strong>SNR93</strong>:<br /></p><div class="quotebox"><blockquote><div class="codebox"><pre><code>Алексей Иван Никита Артем</code></pre></div></blockquote></div><p>Упакуйте Ваш «commands.txt» в архив (обязательное условие), выложите на <a href="http://rghost.ru/">RGhost</a>. Ссылку — сюда.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2012-07-14T11:07:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=61559#p61559</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS. Как считать определенную строку в текстовом файле?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=61558#p61558" />
			<content type="html"><![CDATA[<p>Хм, выдает<br /></p><div class="quotebox"><blockquote><p>Not enough lines [1] in [commands.txt]</p></blockquote></div><p>Содержимое commands.txt на данный момент такое:<br /></p><div class="quotebox"><blockquote><p>Алексей<br />Федор<br />Иван<br />Никита<br />Женя<br />Святослав<br />Анатолий<br />Артем<br />Александр<br />Сергей</p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[SNR93]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26666</uri>
			</author>
			<updated>2012-07-14T09:57:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=61558#p61558</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS. Как считать определенную строку в текстовом файле?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=61557#p61557" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>SNR93 пишет:</cite><blockquote><p>Есть txt файл с допустим 10 строками. Нужно считать только 1,3,4,8 строки и каждую строку занести в 4 разных переменных.</p></blockquote></div><div class="quotebox"><cite>SNR93 пишет:</cite><blockquote><p>В commands.txt 10 строк,…</p></blockquote></div><div class="codebox"><pre><code>Option Explicit

Dim strFileName

Dim arrContent                                         &#039; Массив для содержимого файла
Dim anyValueA, anyValueB, anyValueC, anyValueD         &#039; Четыре переменные

strFileName = &quot;commands.txt&quot;                           &#039; Имя файла

With WScript.CreateObject(&quot;Scripting.FileSystemObject&quot;)
    If .FileExists(strFileName) Then                   &#039; Если файл существует
        With .OpenTextFile(strFileName)                &#039; Открываем его как текст
            arrContent = Split(.ReadAll(), vbCrLf)     &#039; Читаем всё содержимое и помещаем в массив
            
            .Close                                     &#039; Закрываем файл
        End With
        
        If UBound(arrContent) &gt;=7 Then                 &#039; Если длина сформированного массива не меньше восьми элементов
            anyValueA = arrContent(0)                  &#039; Присваиваем переменной 1-й элемент массива
            anyValueB = arrContent(2)                  &#039; Присваиваем переменной 3-й элемент массива
            anyValueC = arrContent(3)                  &#039; Присваиваем переменной 4-й элемент массива
            anyValueD = arrContent(7)                  &#039; Присваиваем переменной 8-й элемент массива
            
            WScript.Echo anyValueA, anyValueB, anyValueC, anyValueD
        Else
            WScript.Echo &quot;Not enough lines [&quot; &amp; CStr(UBound(arrContent) + 1) &amp; &quot;] in [&quot; &amp; strFileName &amp; &quot;]&quot;
        End If
    Else
        WScript.Echo &quot;Can&#039;t find file [&quot; &amp; strFileName &amp; &quot;]&quot;
    End If
End With

WScript.Quit</code></pre></div>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2012-07-13T21:23:30Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=61557#p61557</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS. Как считать определенную строку в текстовом файле?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=61548#p61548" />
			<content type="html"><![CDATA[<p>Что-то у меня ничего не получается, сделал так<br /></p><div class="codebox"><pre><code>Set FSO = CreateObject(&quot;Scripting.FileSystemObject&quot;) 
Set t_file = FSO.OpenTextFile(&quot;commands.txt&quot;, 1) 
source = t_file.ReadAll 
t_file.Close
Massiv = Split(source, vbNewLine)
a = Massiv(1-1)
b = Massiv(3-1)
c = Massiv(4-1)
d = Massiv(8-1)
Set f = FSO.OpenTextFile(&quot;test.txt&quot;, 2, True) 
f.WriteLine &quot;&quot; &amp;a
f.WriteLine &quot;&quot; &amp;d
f.Close</code></pre></div><p>Выдает ошибку<br /></p><div class="quotebox"><blockquote><p>индекс выходит за пределы допустимого диапазона:&#039;[number: 2]&#039;</p></blockquote></div><p>Помогите, что не так? В commands.txt 10 строк, в строках идут 01-02-03-04 и т.д. до 10</p>]]></content>
			<author>
				<name><![CDATA[SNR93]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26666</uri>
			</author>
			<updated>2012-07-13T15:03:01Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=61548#p61548</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS. Как считать определенную строку в текстовом файле?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=61547#p61547" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>а затем брать потребные элементы массива</p></blockquote></div><p>Чтобы упростить задачу SNR93: потребным элементом массива будет выступать номер строки за вычетом единицы, т.к. массив начинается с нулевого индекса. Т.е:<br /></p><div class="codebox"><pre><code>Massiv = Split(source, vbNewLine)
a = Massiv(1-1)
b = Massiv(3-1)
c = Massiv(4-1)
d = Massiv(8-1)</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Flasher]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27593</uri>
			</author>
			<updated>2012-07-13T14:42:55Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=61547#p61547</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS. Как считать определенную строку в текстовом файле?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=61533#p61533" />
			<content type="html"><![CDATA[<p><strong>SNR93</strong>, вариантов может быть несколько. Выбор конкретного зависит от заданных условий.</p><p>Прочитать строку №NN сразу не представляется возможным: сначала должны быть прочтены предыдущие строки. Можно несколько ускорить процесс, не читая (.ReadLine()), а пропуская (.SkipLine()) строки.</p><p>Если файл невелик, то, действительно, можно прочитать его целиком (.ReadAll()) в память, разбить построчно в массив (Split(…, vbCrLf)), а затем брать потребные элементы массива.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2012-07-13T10:33:58Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=61533#p61533</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBS. Как считать определенную строку в текстовом файле?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=61529#p61529" />
			<content type="html"><![CDATA[<p>Есть txt файл с допустим 10 строками. Нужно считать только 1,3,4,8 строки и каждую строку занести в 4 разных переменных. Как это можно сделать?<br />Пример для считывания всего текста и занесения его в переменную</p><div class="codebox"><pre><code>Set t_file = FSO.OpenTextFile(&quot;commands.txt&quot;, 1) 
source = t_file.ReadAll 
t_file.Close</code></pre></div><p>Тут через t_file.ReadAll&nbsp; я считываю весь файл, но я не нашел информации как считать определенных строки.</p>]]></content>
			<author>
				<name><![CDATA[SNR93]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26666</uri>
			</author>
			<updated>2012-07-13T08:11:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=61529#p61529</id>
		</entry>
</feed>
