PDA

Показать полную графическую версию : [решено] Stop цикл при обнаружении нужного значения из файла


Afon
26-01-2009, 12:23
Доброе время суток.


Set fso = CreateObject("Scripting.FileSystemObject")
Set txtStream = fso.OpenTextFile("C:\List.txt") ' Этот файл существует, то есть проверка наличия файла пропускается

Do While Not (txtStream.atEndOfStream)

Text=Text & txtStream.ReadLine & vbCrLf

Loop

Этот код прочитывает строки из файла.
В файле ("C:\List.txt") записаны следующие данные в пять строчек: one, two, three, four, five.

Мне нужно, чтобы при обнаружении значения "three" цикл остановился и присвоил бы найденное значение какой-нибудь строковой переменной, чтобы потом я вывел бы это значение оператором WScript.Echo. Подумал может структура if then поможет, но у меня ничего не вышло. Жду ваших поддержок.


Заранее спасибо.

Petya V4sechkin
26-01-2009, 12:43
Мне нужно, чтобы при обнаружении значения "three" цикл остановился и присвоил бы найденное значение какой-нибудь строковой переменной
Присвоил бы найденное значение "three" какой-нибудь строковой переменной?
Поясните.

Afon
26-01-2009, 14:11
Присвоил бы найденное значение "three" какой-нибудь строковой переменной?
Поясните. »


Цикл получает условие проверки (в данном случае не достигнут ли конец файла).
Далее в теле цикла выполняется оператор, который прочитывает строки файла (содержимое файла включает в себя пять строчек со следующими записями: 1-ая строка - one, 2-ая строка - two, третяя строка -three, четвертая строка - four, пятая строка - five.
Прочитал первую строку, обнаружил запись one, перешел ко второй строке, обнаружил запись two, перешел к третьей строке, обнаружил запись three (опа, то что нам надо). Именно в этом момент надо прекратить выполнение цикла (если явно не завершить выполнение цикла то оно будет продолжаться пока не дойдет конца строки, условие проверки в заголовке цикла говорит об этом.) и присвоить строку "three" строковой переменной.

Надеюсь смог изложить то, что мне нужно. Если что спросите пожалуйста, может я не так излагаюсь.
Одним словом мне нужно проходить по записям файла и найдя нужную мне запись остановится и присвоить это значение строковой переменной.


Заранее спасибо.

Petya V4sechkin
26-01-2009, 14:51
Set fso = CreateObject("Scripting.FileSystemObject")
Set txtStream = fso.OpenTextFile("C:\List.txt") ' Этот файл существует, то есть проверка наличия файла пропускается

V = ""
Do While Not txtStream.atEndOfStream And V <> "three"
V = txtStream.ReadLine
Text = Text & V & vbCrLf
Loop

Afon
26-01-2009, 15:16
Set fso = CreateObject("Scripting.FileSystemObject")
Set txtStream = fso.OpenTextFile("C:\List.txt") ' Этот файл существует, то есть проверка наличия файла пропускается
V = ""
Do While Not txtStream.atEndOfStream And V <> "three"
V = txtStream.ReadLine
Text = Text & V & vbCrLf
Loop »



Спасибо большое. Это именно то, что я хотел.
Спасибо всем.




© OSzone.net 2001-2012