Я немного опаздываю. Тед Ригли смотрит на мяч, совершенно справедливо замечая, что самым лучшим и эффективным решением является способ text item delimiters
.Я откладываю ему заслугу за то, что он предоставил, на мой взгляд, наиболее подходящий из предложенных ответов, к которому это, по сути, всего лишь продолжение, чтобы проиллюстрировать, что можно достичь идентичных результатов с помощью гораздо более компактного двухстрочного обработчика:
to removeAllWhitespace from input as text
set text item delimiters to {pi, space, tab, linefeed, return}
return the input's text items as text
end removeAllWhitespace
Я также позволил себе убрать все (традиционные) пробельные символы, кроме space
, то есть tab
, а также символы новой строки.Вероятно, вы можете сделать вывод, как удалить эти опции, если хотите.
Для вызова обработчика:
removeAllWhitespace from " spa . nish . txt "
, который выдает: "spa.nish.txt"
А?Pi ...?
Короче: Выберите что-нибудь случайное, что не является текстом и вряд ли появится в имени файла.Если сомневаетесь: используйте pi ^ pi
.
Подробно: Не слишком увлекайтесь тем, что pi
: использование pi
в приведенном выше списке разделителей не имеет значения как само по себе количество, и единственная функция, которую он выполняет, - это нестроковый объект, который разрешает все разделители всписок, который будет удален из имени файла, который будет включать в себя любые вхождения себя в строковой форме, т.е. "3.14159265359"
.При условии, что эта последовательность символов не появляется в имени файла, pi
, вероятно, является хорошим выбором, чтобы служить этим «фиктивным разделителем».В противном случае ключ должен поменять pi
на любое другое нестроковое значение.Скажи ... pi + 1
?Я часто использую null
, missing value
или случайное число.Но, если вы когда-нибудь обнаружите, что не можете сами создать номер или придумать его самостоятельно, просто используйте pi ^ pi
.