Что нового

Создание условия для отдельного блока

maes_tro

Новичок
Сообщения
38
Репутация
0
Добрый день!
Суть вопроса вот в чем, есть два блока и 2 условиями (см. вложение), как сделать так чтобы условие №1 срабатывало для блока №1 и условие №2 срабатывало для блока №2. В математике понимаю, что нужны скобки , а в этом случае скорее всего переменные?))
Код:
Case "Бос"
                                                                        if $line[3]<200 AND $line[3]>=140 Then $sPZ="C:\MACHINE"
									if $line[3]<200 AND $line[3]>=140 And $line[9]="S" Then $sPZ="C:\MACHINE1"
									if $line[3]<200 AND $line[3]>=140 And $line[9]="45" Then $sPZ="C:\MACHINE1"
									if $line[3]<200 AND $line[3]>=140 And $line[9]="R2" Then $sPZ="C:\MACHINE1"				
									if $line[3]<200 AND $line[3]>=140 And $line[9]="R3" Then $sPZ="C:\MACHINE1"
									if $line[3]<200 AND $line[3]>=140 And $line[9]="D" Then $sPZ="C:\MACHINE1"
									if $line[3]<200 AND $line[3]>=140 And $line[9]="B" Then $sPZ="C:\MACHINE1"
									if $line[3]<200 AND $line[3]>=140 And $line[9]="G" Then $sPZ="C:\MACHINE1"
									
									if $line[3]<140 AND $line[3]>=100 Then $sPZ="C:\MACHINE1"
									if $line[3]<140 AND $line[3]>=100 And $line[9]="S" Then $sPZ="C:\MACHINE1\"
									if $line[3]<140 AND $line[3]>=100 And $line[9]="45" Then $sPZ="C:\MACHINE1\"
									if $line[3]<140 AND $line[3]>=100 And $line[9]="R2" Then $sPZ="C:\MACHINE1\"				
									if $line[3]<140 AND $line[3]>=100 And $line[9]="R3" Then $sPZ="C:\MACHINE1\"
									if $line[3]<140 AND $line[3]>=100 And $line[9]="D" Then $sPZ="C:\MACHINE1\"
									if $line[3]<140 AND $line[3]>=100 And $line[9]="B" Then $sPZ="C:\MACHINE1\"
									if $line[3]<140 AND $line[3]>=100 And $line[9]="G" Then $sPZ="C:\MACHINE1\"
									
									
									
									if $line[3]<140 OR $line[4]<140 Then $sPZ="C:\MACHINE1\"
									
									if $line[4]<176 AND $line[4]>=140 Then
										$tmp=$line[3]
										$line[3]=$line[4]
										$line[4]=$tmp
									EndIf
 

Вложения

  • Снимок.PNG
    Снимок.PNG
    76.4 КБ · Просмотры: 10

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Не совсем ясно, нужно что-бы при условии №1 выполнялись условия блока 1 и при условии №2 выполнялись условия блока 2 ?
 
Автор
M

maes_tro

Новичок
Сообщения
38
Репутация
0
ra4o сказал(а):
Не совсем ясно, нужно что-бы при условии №1 выполнялись условия блока 1 и при условии №2 выполнялись условия блока 2 ?

Да , чуть чуть добавлю, что есть определенный Case, в котором работают эти условия и последнее условие№2 когда срабатывает оно цепляет два блока с уловиями которые над ним, а мне надо, чтоб только №2
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Приведите весь кусок кода, а то стало ещё непонятней :stars:
Из того, что есть чуть сократил, может так ?:
Код:
If $line[3] < 140 Or $line[4] < 140 Then
	$sPZ = "C:\MACHINE1\"
	If $line[3] < 200 And $line[3] >= 140 Then
		Switch $line[9]
			Case "S", "45", "R2", "R3", "D", "B", "G"
				$sPZ = "C:\MACHINE1"
			Case Else
				$sPZ = "C:\MACHINE"
		EndSwitch
	EndIf
EndIf

If $line[4] < 176 And $line[4] >= 140 Then
	$tmp = $line[3]
	$line[3] = $line[4]
	$line[4] = $tmp

	If $line[3] < 140 And $line[3] >= 100 Then
		Switch $line[9]
			Case "S", "45", "R2", "R3", "D", "B", "G"
				$sPZ = "C:\MACHINE1"
			Case Else
				$sPZ = "C:\MACHINE1"
		EndSwitch
	EndIf

EndIf
 
Автор
M

maes_tro

Новичок
Сообщения
38
Репутация
0
Это и есть весь кусок ). Попробую упростить вопрос и код. В коде несколько условий для определенного действия и условия срабатывают по порядку, последнее условие влияет на действие третьего условия своими действиями, а мне надо чтоб не влияло :smile: , можно ли как то его утихомирить?
Код:
Case "Бос"
                                   
                                   if $line[3]<200 AND $line[4]>=140 Then $sPZ="C:\MACHINE1"  ;~первое условие
                                                                       
                                   if $line[3]<200 AND $line[3]>=140 Then $sPZ="C:\MACHINE1"   ;~второе условие
                                                                   
;~третье условие которое по идее должно по менять местами первое условие                                                               
                                    if $line[3]<176 AND $line[3]>=140 Then 
                                        $tmp=$line[3]
                                        $line[3]=$line[4]
                                        $line[4]=$tmp
                                    EndIf

;~четвертое условие которое по идее должно поменять местами только то что во втором условии, но получается что если третье условие меняет местами , то срабатывает четвертое и меняет обратно))                                  
                                   if $line[4]<176 AND $line[4]>=140 Then ;
                                        $tmp=$line[3]
                                        $line[3]=$line[4]
                                        $line[4]=$tmp
                                    EndIf

[/autoit]
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Посмотрите внимательно , в Вашем примере выше все "$line[3]" и "$line[4]" правильно расставлены по своим местам ? Нужно понять именно логику и возможно подойти к сравнению несколько иначе. Или опишите просто при каких значениях переменных что Вы хотите получить в результате.
 
Верх