Kode sumber ke string dalam variabel


1

Di AppleScript Editor saya dapat melihat bahwa source_code memiliki konten skrip tetapi baris 2 gagal karena beberapa alasan.

set source_code to load script (POSIX file "/path/to/script.scpt")
word 2 of source_code

Ini tidak berhasil. Saya mencoba membaca file AppleScript ke variabel.

Saya tidak mencoba menjalankan kode ini tetapi saya harus mendapatkannya sebagai string


Tampaknya gagal karena source_code «script» bukan string. Bagaimana ini bisa diperbaiki? Terima kasih

set source_code to load script (POSIX file "/path/to/script.scpt")
word 2 of (source_code as string) -->error "Can’t make «script» into type string." number -1700 from «script» to string
word 2 of source_code -->error "Can’t get word 2." number -1728 from word 2

Jadi baris pertama berfungsi ( set source_code ... ) tapi yang kedua tidak? Apa yang Anda harapkan dari baris kedua?
nohillside

Saya berharap melihat kata kedua dalam kode sumber. Terima kasih
ps22

Jawaban:


2

Itu load script perintah memuat skrip sebagai objek yang akan dijalankan, bukan sebagai teks untuk dibaca atau dimanipulasi.

Jika Anda ingin mengakses teks aktual skrip Anda, Anda dapat menggunakan osadecompile:

do shell script "osadecompile ~/Library/Scripts/test.scpt"
word 2 of result

Script yang dikompilasi disimpan dengan AppleScript Editor biasanya memiliki akhir baris LF di string tetapi akhir baris CR di tempat lain. osadecompile mengubah semua akhir baris menjadi LF. do shell script mengkonversi akhir baris menjadi CR kecuali Anda menambahkan a without altering line endings specifier.


Keren, ini berhasil! Terima kasih Lauri Ranta. Apakah ada cara untuk mendapatkan teks yang ada di Deskripsi di bagian bawah jendela Editor AppleScript?

1
Anda bisa mengajukan pertanyaan lain tentang itu. Deskripsi disimpan dalam garpu sumber daya ( cat Untitled.scpt/..namedfork/rsrc / xattr -p com.apple.ResourceFork Untitled.scpt | xxd -r -p ) dan itu sebenarnya kaya teks, tapi saya tidak tahu bagaimana mengubahnya menjadi rtf atau teks biasa
Lri
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.