Вы знаете, что вы можете сделать это в одном диалоговом окне вместо 4 ...
set theValues to text returned of (display dialog "Enter X1 Y1 X2 Y2 separated by a space." default answer "")
set {tids, text item delimiters} to {text item delimiters, space}
set {x1, y1, x2, y2} to text items of theValues
set text item delimiters to tids
display dialog "Distance = " & ((x2 - x1) ^ 2 + (y2 - y1) ^ 2) ^ (1 / 2)
Таким образом, вы просто вводите все значения одновременно с пробелом между каждым значением.Затем в коде вы разделяете его на ваши переменные.Если ваши значения всегда будут положительными, тогда вы можете просто получить «слова» значений, чтобы сделать его еще проще.Но я бы придерживался использования разделителей текстовых элементов на тот случай, если вы также захотите использовать отрицательные значения.Использование "words" удаляет символ "-" из чисел.
Если вы хотите по-настоящему поразить воображение, пользователь может поместить каждое значение в отдельную строку, как эта ...
set theValues to text returned of (display dialog "Enter X1 Y1 X2 Y2 on separate lines." default answer (return & return & return))
set {x1, y1, x2, y2} to paragraphs of theValues
display dialog "Distance = " & ((x2 - x1) ^ 2 + (y2 - y1) ^ 2) ^ (1 / 2)
ОБЪЯСНЕНИЕ РАЗДЕЛИТЕЛЕЙ ТЕКСТА : Вы можете преобразовать строку в список, получив «текстовые элементы» строки.Существует значение, называемое «разделители текстовых элементов» (tids), которое определяет, как эта строка разбивается на список.По умолчанию приливы "" (например, ничего).Например, посмотрите на этот скрипт ...
set theString to "some text words"
set theList to text items of theString
--> {"s", "o", "m", "e", " ", "t", "e", "x", "t", " ", "w", "o", "r", "d", "s"}
Список, который вы получаете, представляет собой каждый символ строки как отдельный элемент.Это потому, что tids является значением по умолчанию "".Теперь давайте посмотрим, что произойдет, если мы изменим приливы на что-то другое.Давайте вместо этого сделаем символ пробела и снова запустим скрипт ...
set theString to "some text words"
set text item delimiters to space
set theList to text items of theString
--> {"some", "text", "words"}
Делая это пробелом, строка разбивается на элементы, между которыми есть пробел.Итак, вы видите, что мы можем контролировать, как строка превращается в список, контролируя приливы.Стоит отметить одну вещь: когда мы изменяем приливы на значения, отличные от значения по умолчанию, после его использования мы должны изменить приливы обратно.Это безопасное программирование, потому что какая-то другая часть скрипта может зависеть от значения tids.Так что приобретайте привычку сбрасывать приливы после того, как закончите.Это основы того, что делает код tids.Он хранит начальное значение приливов (так что мы можем изменить его позже), изменяет приливы на пробелы, использует приливы, чтобы превратить строку в список, а затем сбрасывает приливы к первоначальному значению.
Я надеюсьэто помогает.