Массив - это просто список в applescript, поэтому вы хотите получить 2d-массив или список списков в applescript-talk. Если вы понимаете разделители текстовых элементов applescript, то ваша задача - просто манипулировать преобразованием строк в списки и наоборот. Поэтому я написал вам пару обработчиков, чтобы сделать задачу легкой для вас; textToTwoDArray() и twoDArrayToText(). В этом первом примере показано, как преобразовать вашу строку в список списков с помощью textToTwoDArray().
ПРИМЕЧАНИЕ. Вы должны быть осторожны с концами строк в текстовом файле, потому что они могут быть либо возвратом каретки (символьный код 13), либо линией (символьный идентификатор 10). Вы можете видеть, что я использовал символ id 10 в своем коде, но если вы не получаете правильные результаты, попробуйте «13».
set fileText to "family | type
Doctor | Pediatrics
Engineer | Chemical"
textToTwoDArray(fileText, character id 10, " | ")
on textToTwoDArray(theText, mainDelimiter, secondaryDelimiter)
set {tids, text item delimiters} to {text item delimiters, mainDelimiter}
set firstArray to text items of theText
set text item delimiters to secondaryDelimiter
set twoDArray to {}
repeat with anItem in firstArray
set end of twoDArray to text items of anItem
end repeat
set text item delimiters to tids
return twoDArray
end textToTwoDArray
А вот как преобразовать список-оф-списков обратно в строку, используя twoDArrayToText().
set twoDArray to {{"family", "type"}, {"Doctor", "Pediatrics"}, {"Engineer", "Chemical"}}
twoDArrayToText(twoDArray, character id 10, " | ")
on twoDArrayToText(theArray, mainDelimiter, secondaryDelimiter)
set {tids, text item delimiters} to {text item delimiters, secondaryDelimiter}
set t to ""
repeat with anItem in theArray
set t to t & (anItem as text) & mainDelimiter
end repeat
set text item delimiters to tids
return (text 1 thru -2 of t)
end twoDArrayToText
Итак, теперь вам нужно выяснить, как читать и писать в текстовый файл с помощью applescript. Удачи;)
Спасибо! Я бы сказал вам, но мне не хватает репутации, чтобы это сделать. Но знайте, что вы были очень полезны. – user1385816