Цитата ya158:
То есть функция будет вызываться не 4 раза, а 5, причём пятый раз с ненужными параметрами. Или я в чём-то не прав? »
|
да. ты прав. я нет
у меня, к сожалению, часто такие ошибки проскакивают с +- 1 на цикле

вот правильный код
Код:

$sPath = 'd:\1.txt';<--- Путь до текстового файла с числами
;$sSep = '@TAB';<--- Разделитель, раскоментировать/дописать нужный, закоментировать остальные
;$sSep = ' '
;$sSep = ';'
$sSep = ','
$sAppPath = 'c:\1.exe';<--- Путь до программы для запуска с ключами
$hFile = FileOpen($sPath, 0);<--- Открываем файл для чтения
$iIND = 1;<--- Индикатор выхода из цикла
While 1;<--- Цикл
$sLine = FileReadLine($hFile);<--- Считываем файл строка за строкой
$iIND = @error;<--- Проверяем не конец ли файла
If $iIND = -1 Then ExitLoop;<--- Если конец, дальще не обратаываем файл
$aLine = StringSplit($sLine, $sSep);<--- Разделяем строку разделителем
If $aLine[0] = 1 Then;<--- Проверка на наличие второго числа (отсутствие)
$iParam1 = $aLine[1];<--- Первый параметр
$iParam2 = 1;<--- Второй параметр
Else;<--- Проверка на наличие второго числа (присутствие)
$iParam1 = $aLine[1];<--- Первый параметр
$iParam2 = $aLine[2];<--- Второй параметр
EndIf
MsgBox ( 0, $iIND, 'iparam1 = ' & $iParam1 & @CRLF & 'iparam = ' & $iParam2)
;RunWait(@ComSpec & ' /c "' & $sAppPath & '" ' & $iParam1 & ' ' & $iParam2);<--- Запуск программы с ключами.
WEnd
Цитата ya158:
Так же было бы неплохо в начале этого текстового файла прописать несколько текстовых строк, которые в скрипте присвоились бы переменным. Например: »
|
Если это нужно делать до того как выполнится скрипт, то нужно открыть вначале файл для чтения, скопировать содержимое в другой файл или б.обмена, закрыть файл, снова открыть для записи с флагом перезаписи, записать нужные строки, добавить пустую строку, открыть другой файл, взять содержимое поместить снова в первый файл, закрыть второй файл, закрыть первый файл, открыть первый файл на чтения и провести вышеописанные манипуляции. если я правильно конечно понял.