Поле ввода и случаи, отмена или закрытие окна

Если вы уверены, что строка появляется только в конце, то самым простым способом было бы использовать «replace»:

url = 'abcdc.com'
print url.replace('.com','')
0
задан Marine Galantin 13 July 2018 в 18:57
поделиться

2 ответа

с несколькими тройными операциями, вы можете видеть, что кнопка отмены устанавливает флаг ошибки, и она делает = 1 или == 1 или = True (потому что True оценивает 1)

$input = InputBox("game : +/-", "Write a number:")
$result = (@error == 1) ? 'cancel was pressed' : $input
msgbox(0, '' , $result = '' ? 'empty string' : $input)
0
ответ дан iamtheky 17 August 2018 в 12:14
поделиться

Когда вы вызываете функцию InputBox, возвращаемые значения, чтобы указать результат процесса, это:

Успех: строка, которая была введена.

Ошибка : "" (пустая строка) и устанавливает флаг @error в ненулевое значение.

@error: 1 = кнопка Отмена нажата. 2 = Достигнуто время ожидания. 3 = Не удалось открыть InputBox. Это обычно вызвано плохими аргументами. 4 = InputBox не может быть отображен на любом мониторе. 5 = Недопустимая ширина параметров без высоты или слева от вершины.

Таким образом, по сути, это означает, что если он возвращает непустую строку, дело «успех», вам не нужно беспокоиться о @error. Если возвращается любое ненулевое значение, значение @error будет указывать на то, что произошло. Поэтому, если в случае ошибки, которую вы просто хотите вернуть, вы должны использовать этот оператор if:

If (@error <> 0) Then
     $End = True

Это работает, потому что мы знаем, что @error == 0, тогда поле ввода было успешным и значение был возвращен, иначе мы знаем, что он выбрал одну из ошибок, перечисленных выше. Я ожидал, что закрытие окна будет иметь тот же эффект, что и нажатие на отмену, т. Е. @error == 1, но я еще не проверил.

В дальнейшем, если вы захотите, вы можете включить значение @error и используйте это, чтобы дать пользователю сообщение об ошибке в строке «пожалуйста, введите значение» или «команда вышла из строя», но в этом случае это кажется более чем обязательным.


соответствующая документация: https://www.autoitscript.com/autoit3/docs/functions/InputBox.htm

Удачи!

0
ответ дан Persistence 17 August 2018 в 12:14
поделиться
  • 1
    На самом деле, я читал это (конечно, я сделал); почему вы говорите, что он может вернуть true (только под желтым квадратом?) Я не вижу ситуации, когда он дает «правду» ... И более того, я не думаю, что закрытие окон дает ошибку = = 1, потому что он не работает для меня :( – Marine Galantin 13 July 2018 в 19:06
  • 2
    @MarineGalantin извините, я устал, когда написал этот ответ. Если он возвращает непустую строку, то вы знаете, что это было успешным. Вы всегда можете использовать окно вывода, чтобы показать значение @error при закрытии окна и посмотреть, что произойдет. Извините, если вы почувствовали, что у меня есть копание для цитирования документов, но вы будете поражены тем, сколько людей даже не задают вопрос Google, прежде чем спрашивать ... – Persistence 14 July 2018 в 20:11