Что нового

[Данные, строки] Как узнать какя переменная в конструкции If...ElseIf верна

general66

Пришел увидел наследил
Сообщения
211
Репутация
3
В маем скрипте есть функция выхода которая делает выход из скрипта. В скрипте есть много переменных которые перебираются вот так
Код:
...
ElseIf FileFindFirstFile ($pathMarker83) = 1 Then
	...
ElseIf FileFindFirstFile ($pathMarker84) = 1 Then
	...
ElseIf FileFindFirstFile ($pathMarker85) = 1 Then
	...
ElseIf FileFindFirstFile ($pathMarker86) = 1 Then
...

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

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
1. Использовать Switch вместо ElseIf.
2. Для выхода вызывать свою функцию, в которую передовать $pathMarker86.
3. В своей функции выхода сначала писать лог-файл, после вызывать функцию Exit.
 
Автор
G

general66

Пришел увидел наследил
Сообщения
211
Репутация
3
`p r o x y
2. Для выхода вызывать свою функцию, в которую передовать $pathMarker86.
выше указанная часть кода ищет файл $pathMarker-- в каталоге и в зависимости от того который найдет выполняет определенное действие , действий ровно столько сколько и файлов. файл на момент запуска скрипта в папке присутствует только один это может быть и $pathMarker83 и $pathMarker3 все зависит от хода выполнения предыдущего скрипта. и в завершении конструкции он удаляется, а на месте его создается другой файл с другим названием вот таким образом. пишу сокращенный код только основное по вопросу
Код:
...
ElseIf FileFindFirstFile ($pathMarker33) = 1 Then
	...
	FileOpen ($pathMarker34,2)
	FileClose($pathMarker34)
	FileDelete($pathMarker33)
ElseIf FileFindFirstFile ($pathMarker34) = 1 Then
...

3. В своей функции выхода сначала писать лог-файл, после вызывать функцию Exit.
именно в лог и хочу записать тот файл который на момент выполнения скрипта нашелся, чтоб после экстренного выходе восстановить и продолжить скрипт с места выхода из него, выше указанная проверка делается в начале скрипта. Вот я и не знаю каким образом в логе сделать запись что на момент выхода из 120 файлов нашелся только один.
OffTopic:
о первом пункте почему именно так лучше, даже боюсь задавать вопрос чтоб не получить бан ;)
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
general66 [?]
Да, верно. Просмотрел.
Тогда только:
1. Для выхода вызывать свою функцию, в которую передовать адрес файла.
2. В своей функции выхода сначала писать лог-файл, после вызывать функцию Exit.

Например:
Код:
ElseIf FileFindFirstFile($pathMarker83) Then
	; ...
	_ProExit($pathMarker83)
ElseIf FileFindFirstFile($pathMarker84) Then
		; ...
	_ProExit($pathMarker84)
ElseIf FileFindFirstFile($pathMarker85) Then
		; ...
	_ProExit($pathMarker85)
ElseIf FileFindFirstFile($pathMarker86) Then
		; ...
	_ProExit($pathMarker86)

Func _ProExit($sToLog='')
	If $sToLog <> '' Then
		FileWriteLine(StringRegExpReplace(@ScriptName, '(.*)\..*', '\1') & '.log', StringFormat('[%.2d.%.2d.%.2d %.2d:%.2d:%.2d] ', @MDAY, @MON, @YEAR, @HOUR, @MIN, @SEC) & $sToLog &@CRLF)
	EndIf
	
	Exit
EndFunc


из 120 файлов нашелся только один
У Вас ElseIf, в любом случае будет найден только один файл.
 
Автор
G

general66

Пришел увидел наследил
Сообщения
211
Репутация
3
OffTopic:

Итог
`p r o x y Наконец осилил лог файл для своего скрипта. Нижайший Тебе поклон мил человек от всего сердца *безгранично счастлив* от того, что, в очередной раз узнал от Вас. С функцией логирования действий скрипта все стало намного веселей и понятней.
Для новичков видите логи ! Логи это наше все. ИМХО
 
Верх