Что нового

Возвращаемое значение Функции

assch

Новичок
Сообщения
166
Репутация
4
В описании функции - FileCopy ( "source", "dest" [,flag] ) написано
Возвращаемое значение
Значение 1 означает успешное выполнение, иначе 0.

Как определить это возвращаемое значение чтобы при (не удачи) вывести сообщение например что система отказала
в доступе к файлу
 

dwerf

Использует ArchLinux
Сообщения
478
Репутация
218
Код:
$i = FileCopy(...)
If $i = 0 Then
    ;...
ElseIf $i = 1 Then
    ;...
EndIf
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 711
Лучше проверять так, как читается код: "если файл ... скопировался, то OK иначе ERROR".

Код:
If FileCopy(...) Then
    ; OK
Else
    ; ERROR
EndIf
 
Автор
A

assch

Новичок
Сообщения
166
Репутация
4
Я тоже сначала пошёл по варианту предложенному dwerf
Но значение всегда было 0 а пример от Yashied подошёл оптимально
Спасибо форумчанам
:beer:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Не знаю, насколько это правильно, но я так обычно делаю:
Код:
For $i = 1 To 5
	$iCheck = FileCopy(....);обычно здесь какая-то моя функция
	If $iCheck Then ExitLoop
Next
If Not $iCheck Then
	;что-нибудь делаем
EndIf
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 711
madmasles сказал(а):
Не знаю, насколько это правильно...
Это правильно. Большинство функций так можно прочитать:

Код:
If DirCreate() Then ...
If FileChangeDir() Then ...
If FileExists() Then ...
If WinExists() Then ...
If WinWait() Then ...


и т.д.

madmasles сказал(а):
...я так обычно делаю...
А зачем 5 раз?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Yashied [?]
У меня было несколько раз, что FileInstall() и DirRemove() не с 1-го раза отрабатывали, с POST-запросами не всегда сразу получается, ну и другие случаи были, все не помню, а в цикле, да с паузой - отрабатывают нормально. Т.е. это для надежности.:smile:
 
Автор
A

assch

Новичок
Сообщения
166
Репутация
4
Запутался с функцией Run не подскажете как правильно раставить переменные
Вот так она работает
Код:
Run('fdump.exe /V C:\WINDOWS\system32\config\software software_copy', '', @SW_HIDE)

А вот так когда я вместо прямых значений пытаюсь поставить переменные нет
Код:
Run('fdump.exe /V' & $a & $b , '', @SW_HIDE)

Не подскажете как правильно
 
Автор
A

assch

Новичок
Сообщения
166
Репутация
4
Не получается
Код:
Run('fdump.exe /V' & '" "' & $a & '" "' &  $b , '', @SW_HIDE)
 

SyDr

Сидра
Сообщения
651
Репутация
158
А на этот раз кавычки лишнии.
Код:
$a = "C:\WINDOWS\system32\config\software"
$b = "software_copy"
Run('fdump.exe /V ' & $ & " " & $b, '', @SW_HIDE)
 
Автор
A

assch

Новичок
Сообщения
166
Репутация
4
Век живи век учись
Спасибо SyDr

(исправь значение $ на $a а то другие запутаются)
 
Автор
A

assch

Новичок
Сообщения
166
Репутация
4
Вы правы
Извиняюсь
 
Верх