Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Stop цикл при обнаружении нужного значения из файла (http://forum.oszone.net/showthread.php?t=129901)

Afon 26-01-2009 12:23 1019768

Stop цикл при обнаружении нужного значения из файла
 
Доброе время суток.


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 1019797

Цитата:

Цитата Afon
Мне нужно, чтобы при обнаружении значения "three" цикл остановился и присвоил бы найденное значение какой-нибудь строковой переменной

Присвоил бы найденное значение "three" какой-нибудь строковой переменной?
Поясните.

Afon 26-01-2009 14:11 1019901

Цитата:

Цитата Petya V4sechkin
Присвоил бы найденное значение "three" какой-нибудь строковой переменной?
Поясните. »


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

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


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

Petya V4sechkin 26-01-2009 14:51 1019939

Код:

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 1019966

Цитата:

Цитата Petya V4sechkin
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 »



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


Время: 01:38.

Время: 01:38.
© OSzone.net 2001-