(* LineNumbers 0.9 Numeroi käyttäjän osoittaman tekstitiedoston kappaleet juoksevalla numeroinnilla. Aja skripti joko skriptieditoristasi tai kaksoisosoittamalla, jos olet tallentanut sen ohjelmaksi. Alkuperäiseen tekstitiedostoon ei tehdä muutoksia. Rivinumeroitu tulostiedosto tallennetaan Työpöydälle. Vaatimukset: AppleScript ladattuna käynnistyksessä, Standard additions. Testattu AppleScript 1.3.4:llä ja toimii hitaasti. Jos alkuperäisessä tiedostossa on yli 32 kt dataa, numerointi saattaa keskeytyä. 2001 Tuomas Rosberg <vanhentunut> Lähdekoodi on ilmaista ja tarkoitettu yleiseen käyttöön (public domain). Sitä lainattessa kirjoittajan nimi on mainittava. Koodilla ei ole mitään takuuta, ja sen sisältävää ohjelmaa käyttävät toimivat omalla vastuullaan. *) property fileSpec : "" -- Tulostiedoston polku. tell application "Finder" set fileSpec to (startup disk as string) & "Desktop Folder:aFile.txt" try alias fileSpec -- Onko tulostiedosto ennestään olemassa? on error -- Tulostiedostoa ei ole olemassa, joten sellainen luodaan, sisällöksi tyhjää. open for access file fileSpec with write permission close access file fileSpec end try end tell choose file of type "TEXT" with prompt "Valitse tekstitiedosto." set originalFile to result if originalFile is not "" then -- Tulostiedoston tyhjennys: open for access file fileSpec with write permission set theFile to result write "" starting at 1 to theFile close access file fileSpec -- open for access originalFile set originalText to result -- Avoin tiedosto. set counter to 0 -- Numerointi rivi kerrallaan: repeat try set aParagraph to read originalText until return if (count of aParagraph) is 1 then -- Kappale sisältää yksinäisen rivinvaihdon, ei numeroida sitä. else -- Kappale sisältää tekstiäkin. set counter to counter + 1 set lineNum to counter as string -- Muotoillaan rivin numerointia: if (count of lineNum) < 2 then set lineNum to "0" & lineNum end if set aParagraph to lineNum & space & aParagraph my writeFile(aParagraph) -- Kirjoitetaan rivi tulostiedostoon. end if on error -- Tultiin tiedoston loppuun tai joku potkaisi tuolin alta. exit repeat end try end repeat -- close access originalFile -- Muistetaan sulkea avoimet tiedostot. tell application "Finder" set fileName to name of originalFile & ".txt" set name of file fileSpec to fileName open file fileName end tell end if -- Tulostiedoston avaus, kirjoitus sen loppuun ja sulku: on writeFile(aContent) open for access file fileSpec with write permission set theFile to result set theEnd to (get eof theFile) + 1 write aContent starting at theEnd to theFile close access file fileSpec end writeFile