Что нового

[Автоматизация] как правильно прописать условие и какой поставить разделитель

maes_tro

Новичок
Сообщения
38
Репутация
0
Добрый день!
Не могу понять , как правильно прописать условие и какой поставить разделитель между значениями , чтобы только при этих значения открывался заданный шаблон(2)?? (см. вложение). У меня срабатывает только по умолчанию, первое (1).
 

Вложения

A

Alofa

Гость
Наверно вы хотели так:
Код:
If $line[4]=146 Or $line[4]=145 Or $line[4]=696 Or $line[4]=596 Then $sPZ = "C:\MACHINE1\a1\mp4\FASADiPortes\MARSEL\_Marsel_I_.mpr"


Или, что тоже самое:
Код:
Switch $line[4]
    Case 146, 145, 696, 596
        $sPZ = "C:\MACHINE1\a1\mp4\FASADiPortes\MARSEL\_Marsel_I_.mpr"
EndSwitch
 
Автор
M

maes_tro

Новичок
Сообщения
38
Репутация
0
спасибо! все срослось). Воспользовался вторым вариантом,(см.вложение) но появился еще вопросик, как быть если появилось второе условие, при котором срабатывает другой шаблон?
 

Вложения

A

Alofa

Гость
maes_tro
Картинки это конечно все красиво, но давайте ка прикрепите к ним аналогичный код в живую (воспользуйтесь тегом
Код:
) с вашими комментариями, так как я просил [url=http://autoit-script.ru/index.php?topic=21372.msg125846#msg125846][b]Здесь[/b][/url].
 
Автор
M

maes_tro

Новичок
Сообщения
38
Репутация
0
вот пожалуйста, как быть если появилось второе условие для этого рисунка т.е куда его правильно добавить, при котором срабатывает другой шаблон этого рисунка?
Код:
Case "Марсель"
									$sPZ="C:\MACHINE1\a1\mp4\FASADiPortes\MARSEL\_Marsel_2_.mpr"
									Switch $line[4]
										Case 146, 145, 147, 195, 196, 197, 245, 246, 247, 295, 296, 297, 345, 346, 347, 395, 396, 397, 445, 446 
												$sPZ = "C:\MACHINE1\a1\mp4\FASADiPortes\MARSEL\_Marsel_1_.mpr"
									EndSwitch
									Switch $line[4]   ; --куда вставить условие  if $line[6]="Да" ?? чтоб сконвертировался другой шаблон этого рисунка..при таких же размерах.
										Case 146, 145, 147, 195, 196, 197, 245, 246, 247, 295, 296, 297, 345, 346, 347, 395, 396, 397, 445, 446
												$sPZ = "C:\MACHINE1\a1\mp4\FASADiPortes\MARSEL\_Marsel_1_V_.mpr"
									EndSwitch
									if $line[6]="Да" Then $sPZ="C:\MACHINE1\a1\mp4\FASADiPortes\MARSEL\_Marsel_2_V_.mpr"
 
A

Alofa

Гость
Код:
Case "Марсель"
	$sPZ = "C:\MACHINE1\a1\mp4\FASADiPortes\MARSEL\_Marsel_2_.mpr" ; Назначаем переменной "$sPZ" такое значение
	
	Switch $line[4] ; Если "$line[4]" соответствует одному из значений нижеследующего "Case", тогда меняем значение переменной "$sPZ"
		Case 146, 145, 147, 195, 196, 197, 245, 246, 247, 295, 296, 297, 345, 346, 347, 395, 396, 397, 445, 446
			$sPZ = "C:\MACHINE1\a1\mp4\FASADiPortes\MARSEL\_Marsel_1_.mpr"
	EndSwitch
	
	Switch $line[4] ; Вам не кажется, что этот условный оператор "Switch" делает такое же сравнение что и первый,...
		Case 146, 145, 147, 195, 196, 197, 245, 246, 247, 295, 296, 297, 345, 346, 347, 395, 396, 397, 445, 446
			$sPZ = "C:\MACHINE1\a1\mp4\FASADiPortes\MARSEL\_Marsel_1_V_.mpr" ; ... только на этот раз присваиваем переменной "$sPZ" другое значение
	EndSwitch
; То есть, если "$line[4]" у нас, к примеру, равняется одному из значений "Case", то мы сначала присваиваем "$sPZ" Значение из первого "Switch", а затем сразу же его изменяем на другое.
	
	If $line[6] = "Да" Then $sPZ = "C:\MACHINE1\a1\mp4\FASADiPortes\MARSEL\_Marsel_2_V_.mpr" ; Независимо от результатов предыдущих условий, если "$line[6] = "Да"", то изменяем значение "$sPZ"
	
	If $line[3] < 100 Or $line[4] < 100 Then $sPZ = "C:\MACHINE1\a1\mp4\FASADiPortes\GLADKIY\_ZG_\_ZG_.mpr" ; Независимо от результатов предыдущих условий, если значение "$line[3]" меньше 100 ИЛИ значение "$line[4]" меньше 100, то опять изменяем значение "$sPZ"
	
	If $t = 16 Then $sPZ = "Милан на МДФ 16 мм не выполняется!" ; Ну и в конце также независимо от результатов предыдущих условий, если значение "$t" = 16, то опять изменяем значение "$sPZ"

Посмотрите коментарии - вы этого хотите?
Если нет, то подробно опишите условия.
 
Автор
M

maes_tro

Новичок
Сообщения
38
Репутация
0
То есть, если "$line[4]" у нас, к примеру, равняется одному из значений "Case", то мы сначала присваиваем "$sPZ" Значение из первого "Switch", а затем сразу же его изменяем на другое.

Вот вот, я не знаю как правильно разделить эти два действия.. это скрипт представляет собой конвертер. Действие выполняется для одного и того же рисунка, но из за того что рисунок имеет разные параметры, создано два шаблона.
Код:
Switch $line[4]   ; --куда вставить условие  if $line[6]="Да" ?? чтоб сконвертировался другой шаблон этого рисунка..при таких же размерах.
                                        Case 146, 145, 147, 195, 196, 197, 245, 246, 247, 295, 296, 297, 345, 346, 347, 395, 396, 397, 445, 446
                                                $sPZ = "C:\MACHINE1\a1\mp4\FASADiPortes\MARSEL\_Marsel_1_V_.mpr"
                                    EndSwitch


В принципе вот этот вариант подойдет, но думал есть что то получше . через Case написал размеры и порядок, а так надо расписывать через If $line[4]=146 Or $line[4]=145 Or........................
Код:
Case "Марсель"
$sPZ="C:\MACHINE1\a1\mp4\FASADiPortes\MARSEL\_Marsel_2_.mpr"
	Switch $line[4]
		Сase 146, 145, 147, 195, 196, 197, 245, 246, 247, 295, 296, 297, 345, 346, 347, 395, 396, 397, 445, 446 
			$sPZ = "C:\MACHINE1\a1\mp4\FASADiPortes\MARSEL\_Marsel_1_.mpr"
	EndSwitch
If  $line[6]="Да" Then $sPZ = "C:\MACHINE1\a1\mp4\FASADiPortes\MARSEL\_Marsel_2_V_.mpr"									
If $line[4]=146 Or $line[4]=145 Or $line[4]=696 Or $line[4]=596 AND $line[6]="Да" Then $sPZ = "C:\MACHINE1\a1\mp4\FASADiPortes\MARSEL\_Marsel_1_V_.mpr"
 
A

Alofa

Гость
Что-то я запутался, вы при размерах 146, 145, 147 и нажатой кнопке "Да" какой .mpr хотите получить?
Так, стоп. Давайте пока без всякого рода скриптов. Разберемся сначала так сказать на салфетках.

Заполните шаблон:
Код:
Такие-то размеры ==> Кнопка "Да" Не нажата ==> хочу получить такой-то .mpr
Такие-то размеры ==> Кнопка "Да" Нажата	   ==> хочу получить такой-то .mpr

Такие-то размеры ==> Кнопка "Да" Не нажата ==> хочу получить такой-то .mpr
Такие-то размеры ==> Кнопка "Да" Нажата    ==> хочу получить такой-то .mpr
 
Автор
M

maes_tro

Новичок
Сообщения
38
Репутация
0
все очень просто)

шаблон:
Код:
Такие-то размеры ==> Кнопка "Да" Не нажата ==>_M_2_.mpr   --условие для всех марсель, но если 
146, 145, 147...и т.д тогда  _Marsel_1_.mpr... К этому условию идеально подходит :
 Switch $line[4]
        Сase 146, 145, 496....
            $sPZ = "C:\MACHINE1\a1\mp4\FASADiPortes\MARSEL\_M_1_.mpr"
    EndSwitch

Такие-то размеры ==> Кнопка "Да" Нажата	   ==> хочу получить _M_2_VVV_.mpr  ---условие для всех марсель V, но если 146, 145, 496...и т.д тогда  _M_1_VVV.mpr...

Вот для примера кусочек текстового файла , который конвертируется  :
4;1;2076;147;1;;марсель;;;;                              -----_M_1_.mpr
4;2;1036;430;3;;марсель;;;;                              -----_M_2_.mpr
4;3;1036;496;2;Да;марсель;;;;                          -----_M_1_VVV.mpr...
4;4;230;570;4;Да;марсель;;;;                            ----- _M_2_VVV_.mpr
[/quote]
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 711
Alofa, вы бы лучше попросили нарисовать блок-схему, а то это затянется на вечно.
 
A

Alofa

Гость
Если написать тоже самое, но без лишней воды, то все становится ясно и просто:
Код:
Все размеры ==> Кнопка "Да" Нажата ==> хочу получить "_M_2_VVV_.mpr"
Размеры: 146, 145, 496....=> Кнопка "Да" Нажата ==> хочу получить "_M_1_VVV_.mpr"

Все размеры ==> Кнопка "Да" Не нажата ==> хочу получить "_M_2_.mpr"
Размеры: 146, 145, 496.... ==> Кнопка "Да" Не нажата ==> хочу получить "_M_1_.mpr"
Правильно сформулированная мысль - это 80% успеха.

Код:
If $line[6]="Да" Then ; Если нажата кнопка "Да"
     $sPZ = "_M_2_VVV_.mpr"
     Switch $line[4]
        Case 146, 145, 496....
            $sPZ = "_M_1_VVV.mpr"
     EndSwitch
Else ; Иначе (Если НЕ нажата кнопка "Да")
     $sPZ = "_M_2_.mpr"
     Switch $line[4]
        Case 146, 145, 496....
            $sPZ = "_M_1_.mpr"
     EndSwitch
Endif
$sPZ = "C:\MACHINE1\a1\mp4\FASADiPortes\MARSEL\" & $sPZ
 
Верх