Что нового

аналог условия в языке С для Autoit

fixik

Новичок
Сообщения
29
Репутация
0
можно ли в Autoit использовать подобное уловие:
Код:
if((a == 1) && (b == 5) && (c == 10) && (d = 0x20))
{
...
}
else
{
...
}
как это будет выглядеть в Autoit (если такое вообще возможно)?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Код:
If (($a == 1) And ($b == 5) And ($c == 10) And ($d = 0x20)) Then
	
Else
	
EndIf
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
greshnik77
Справка -> Language Reference -> Operators.
 
Автор
F

fixik

Новичок
Сообщения
29
Репутация
0
CreatoR
сделал по твоему образцу (хотя наверняка где то ошибся :smile: ):
Код:
If (FileExists(@HomeDrive & '\файл.au3') And FileExists(@HomePath & '\файл.au3') And FileExists(@DesktopDir & '\файл.au3') And FileExists(@HomeShare & '\файл.au3')) Then

    MsgBox(4096, "Ура", "Файл найден!", 1)
	
Else
    MsgBox(4096,"Внимание!", "А файла нет...", 10)
	Exit
EndIf
всегда выдает сообщение из секции Else, хотя файл находится на рабочем столе.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
fixik [?]
хотя файл находится на рабочем столе.
В Вашем случае (условия в Вашем коде) файлы должны находится в корне каждой папки, которую Вы указываете. Если Вам надо проверить наличия файла в любом из этих мест, то поменяйте And на Or.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
fixik [?]
всегда выдает сообщение из секции Else? хотя файл находится на рабочем столе.
Ну так это же And (логическое «И»), если хоть одно условие не совпадает (False), то проверка прекращается и переходит к Else.

Нужно делать через Or (логическое «Или»):

Код:
If (FileExists(@HomeDrive & '\файл.au3') Or FileExists(@HomePath & '\файл.au3') Or FileExists(@DesktopDir & '\файл.au3') Or FileExists(@HomeShare & '\файл.au3')) Then

    MsgBox(4096, "Ура", "Файл найден!", 1)
    
Else
    MsgBox(4096,"Внимание!", "А файла нет...", 10)
    Exit
EndIf
 
Автор
F

fixik

Новичок
Сообщения
29
Репутация
0
теперь другая крайность - всегда "Файл найден", но я его перенес на флешку и запускаю с флешки :scratch:
в условии уже оставил только
Код:
@HomeDrive и (@DesktopDir
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
fixik,
Попробуйте так:
Код:
$sFileSearch = 'file.au3'
$sSearch = ''
Dim $aDir[4] = [3, @HomeDrive, @DesktopDir, @AppDataDir]
For $i = 1 To $aDir[0]
	If FileExists($aDir[$i] & '\' & $sFileSearch) Then
		$sSearch &= $aDir[$i] & '\' & $sFileSearch & @CRLF
	EndIf
Next
If $sSearch Then
	MsgBox(64, 'Info', StringTrimRight($sSearch, 2))
Else
	MsgBox(16, 'Error', 'No')
EndIf
 
Автор
F

fixik

Новичок
Сообщения
29
Репутация
0
madmasles, CreatoR,
огромное спасибо! Ваши варианты работают.
но работает так же и мой вариант с Вашим исправлением AND на Or
это я чукча не русская забыл удалить файл с рабочего стола и естественно мне его находит полюбому :rofl:

так что оба варианта прекрасно работают! :beer:
 
Верх