Что нового

[Данные, строки] Считывание числа из файла

KostetskyRoma

Новичок
Сообщения
5
Репутация
0
Здраствуйте.
Мне нужна помощь.
Есть три .ехе файла 1.ехе, 2.ехе и 3.ехе. Они написаны на языке С ++. Каждый из них пишет в текстовый файл одно свое число - номер следующего.А программа на АвтоИте читает и каждый раз вызывает следующий ехешник.
Код:
$i=1
Do
$Number = FileReadLine('Number.ini', $i)
If $Number=1 Then
	$run_program1= Run("1.exe")
Else
If $Number=2 Then
	$run_program1= Run("2.exe")
Else
If $Number=3 Then $run_program3= Run("3.exe")
	EndIf
EndIf
Until $Number=3


Вот код что я делал. Но она почему-то открывает много раз 1.exe, потом много раз 2.ехе, и один раз 3.ехе.
Подскажите как сделать, чтобы все програмы по одному разу открывало?
 

classick

Новичок
Сообщения
16
Репутация
1
Внимательно читайте условие для цикла, которое Вы задали.
Ваше условие звучит так: выполнять то, иное, другое до тех пор, пока мы не встретим цифру "3".

Вот он и запускает все подряд по много раз, пока не получит $i=3
 
Автор
K

KostetskyRoma

Новичок
Сообщения
5
Репутация
0
classick сказал(а):
Внимательно читайте условие для цикла, которое Вы задали.
Ваше условие звучит так: выполнять то, иное, другое до тех пор, пока мы не встретим цифру "3".

Вот он и запускает все подряд по много раз, пока не получит $i=3

Можете пожайлуста написать как именно поменять?
 

classick

Новичок
Сообщения
16
Репутация
1
KostetskyRoma сказал(а):
Можете пожайлуста написать как именно поменять?

А как должно работать?
Потому что пока я понял следующее: считываем файл, запускаем программу в зависимости от содержимого файла, снова считываем файл, снова запускаем ту же самую программу и так до тех пор пока пока данные файл не измениться.

Я предполагаю, что Вам необходимо прочитать файл, запустить одну программу, дождаться ее завершения, снова прочитать файл, снова запустить программу и т.д.

Опишите, пожалуйста, что должно быть в итоге.
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Мой вариант.
Код:
For $i = 1 To 3
	$Number = FileReadLine('Number.ini', $i)
	If $Number=1 Then
		$run_program1= RunWait("1.exe")
	ElseIf $Number=2 Then
		$run_program2= RunWait("2.exe")
	ElseIf $Number=3 Then
		$run_program3= RunWait("3.exe")
	EndIf
Next
 
Автор
K

KostetskyRoma

Новичок
Сообщения
5
Репутация
0
alex33 сказал(а):
Мой вариант.
Код:
For $i = 1 To 3
	$Number = FileReadLine('Number.ini', $i)
	If $Number=1 Then
		$run_program1= RunWait("1.exe")
	ElseIf $Number=2 Then
		$run_program2= RunWait("2.exe")
	ElseIf $Number=3 Then
		$run_program3= RunWait("3.exe")
	EndIf
Next

Она только открывает первую и потом завершается программа. И нужно дальше снова запускать вручную, и открывается уже вторая. А нужно чтобы я не запускал вручную, чтобы автоматически.
А надо так: Первая программа записывает число 2 у файл. Дальше АутоИт автоматически читает какое там число и если там 2 - открывает вторую, а если 3 - третюю.
 

classick

Новичок
Сообщения
16
Репутация
1
alex33 сказал(а):
Мой вариант.
Код:
For $i = 1 To 3
	$Number = FileReadLine('Number.ini', $i)
	If $Number=1 Then
		$run_program1= RunWait("1.exe")
	ElseIf $Number=2 Then
		$run_program2= RunWait("2.exe")
	ElseIf $Number=3 Then
		$run_program3= RunWait("3.exe")
	EndIf
Next

В коде, который написал Алекс замените строку
Код:
$Number = FileReadLine('Number.ini', $i)
на
Код:
$Number = FileReadLine('Number.ini')


И будет Вам счастье (вроде как) :smile:
 
Автор
K

KostetskyRoma

Новичок
Сообщения
5
Репутация
0
classick сказал(а):
alex33 сказал(а):
Мой вариант.
Код:
For $i = 1 To 3
	$Number = FileReadLine('Number.ini', $i)
	If $Number=1 Then
		$run_program1= RunWait("1.exe")
	ElseIf $Number=2 Then
		$run_program2= RunWait("2.exe")
	ElseIf $Number=3 Then
		$run_program3= RunWait("3.exe")
	EndIf
Next

В коде, который написал Алекс замените строку
Код:
$Number = FileReadLine('Number.ini', $i)
на
Код:
$Number = FileReadLine('Number.ini')


И будет Вам счастье (вроде как) :smile:


Спасибо большое всем, все работает:smile:)))
 
Верх