Что нового

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

fixik

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

CreatoR

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

greshnik77

Чайник
Сообщения
27
Репутация
0
А в чем различие одного = от двойного == ?
 

madmasles

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

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 159
Репутация
2 329
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 319
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:
 
Верх