Ошибка списка приложений в формате файла - PullRequest
0 голосов
/ 08 мая 2018

Может кто-нибудь объяснить мне техническую структуру СПИСКА AppleScript, сохраненного в текстовом файле? Где-то внутри должна быть длина (счетчик записей).

У меня произошел небольшой сбой, и сохраненный файл теперь выглядит как поврежденный. Он всегда показывает 1800 записей вместо 2600 раньше. И там наверняка более 1800 записей. Я также думаю, что это не может быть как EOF. Если я сделаю файл короче 1800, я получу ошибку EOF. Если я позволю это дольше, я получу только 1800 записей.

Как я могу исправить эту проблему? Где я могу сказать внутри файла: эй, в этом списке 2600 записей.

# Read List
set fileName to choose file name with prompt "Please choose log file:"
set myPeople to read fileName as list
set listCount to length of myPeople
log "Count Start: "
log listCount
...
# Save List
set f to open for access fileName with write permission
write myPeople to f
close access f

1 Ответ

0 голосов
/ 09 мая 2018

Технически AppleScript list, записанный в файл на диске , в том виде, в котором вы его используете, не создает текст файл , даже если вы можете открыть его, например, в TextEdit или в Редакторе скриптов !Это двоичный файл , и при открытии в TextEdit или Script Editor вы не увидите все содержимое файла.

Вы должны посмотреть на это в Hex Editor , например, 0xED , и первые 4 байтов являются6C697374 или list и вторые 4 байта - это число элементов в списке , например, 00000A28 равно 2600 и 00000708 равно 1800.

Тем не менее, я бы восстановил файл из резервной копии и не беспокоился о том, как AppleScript записывает list в файл на диске так, как у вас есть.Также я бы позаботился о регулярном резервном копировании!


Вы можете попробовать изменить значение вторых 4 байтов , но это не гарантируется.восстановит отсутствующие элементы списка , так как файл также может быть поврежден или усечен.Сделайте резервную копию файла перед редактированием в Hex Editor !

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...