MACSCRPT Archives

October 2008

MACSCRPT@LISTSERV.DARTMOUTH.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Paul Skinner <[log in to unmask]>
Reply To:
Macintosh Scripting Systems <[log in to unmask]>
Date:
Fri, 3 Oct 2008 17:56:15 -0400
Content-Type:
text/plain
Parts/Attachments:
text/plain (110 lines)
Thanks for posting some results. Very Interesting. Would you consider  
dropping the test file in my public folder?


On Oct 3, 2008, at 5:53 PM, RJay Hansen wrote:

> Initially I got:
>
> "Can't get text item delimiters"
>
> When I looked at your endlines handler I noticed you only had "text  
> item delimiters" rather than "AppleScript's text item delimiters".  
> Changing that fixed that issue, and yes, I got a nice new document  
> broken up into paragraphs.
>
> I finally got the one I've been writing finished and got it to run w/ 
> no errors. For comparison, on the same text file (420K) it takes  
> just over a minute to run, versus the don't-blink-or-you'll-miss-it  
> time of Paul's effort. And Paul's script runs about 16K versus my 40K.
>
> Interestingly, Paul's/Mark's script seems to have got lost toward  
> the end of the book, and missed(?) an underscore, so the last two  
> and a half chapters are bass-ackwards as far as plain styled vs.  
> italic styled, while my script didn't do that. :-/
>
> RJay
>
>
> On Oct 3, 2008, at 2:27 PM, Mark Lively wrote:
>
>> try
>> 	set head to "{\\rtf1\\ansi\\ansicpg1252\\cocoartf949\\cocoasubrtf350
>> {\\fonttbl\\f0\\fswiss\\fcharset0 Helvetica;}
>> {\\colortbl;\\red255\\green255\\blue255;}
>> \\margl1440\\margr1440\\vieww12240\\viewh15840\\viewkind1
>> \\pard\\tx720\\tx1440\\tx2160\\tx2880\\tx3600\\tx4320\\tx5040\ 
>> \tx5760\\tx6480\\tx7200\\tx7920\\tx8640\\ql\\qnatural\\pardirnatural
>>
>> \\f0\\fs24 \\cf0 "
>> 	set tail to "}"
>> 	
>> 	tell application "Finder"
>> 		activate
>> 		set inputFile to choose file with prompt "Choose an underscore  
>> delimited plaintext file for input."
>> 		set inputFileName to name of inputFile
>> 		set AppleScript's text item delimiters to "."
>> 		copy text item 1 of inputFileName to inputFileName
>> 		set AppleScript's text item delimiters to ""
>> 		set inputFilePath to ((container of inputFile) as alias) as text
>> 	end tell
>> 	
>> 	set inputFileHandle to open for access inputFile
>> 	set outputFileHandle to open for access file (inputFilePath &  
>> inputFileName & "_Italicized.rtf") with write permission
>> 	write head to outputFileHandle
>> 	
>> 	set evenOddOpenCloseItalicsToggle to 0
>> 	repeat
>> 		try
>> 			set currentChunk to read inputFileHandle until "_"
>> 			if evenOddOpenCloseItalicsToggle is 0 then
>> 				if currentChunk is "_" then
>> 					write ((ASCII character 32) & "\\i " as text) to  
>> outputFileHandle as text
>> 				else
>> 					write (endlines(text 1 thru -2 of currentChunk) & (ASCII  
>> character 32) & "\\i " as text) to outputFileHandle
>> 				end if
>> 				set evenOddOpenCloseItalicsToggle to 1
>> 			else
>> 				if currentChunk is "_" then
>> 					write ((ASCII character 32) & "\\i0" as text) to  
>> outputFileHandle
>> 				else
>> 					write (endlines(text 1 thru -2 of currentChunk) & (ASCII  
>> character 32) & "\\i0" as text) to outputFileHandle
>> 				end if
>> 				set evenOddOpenCloseItalicsToggle to 0
>> 			end if
>> 		on error e number n
>> 			if n is not -39 then display dialog "Error: " & (n as text) &  
>> return & e
>> 			exit repeat
>> 		end try
>> 	end repeat
>> 	write tail to outputFileHandle
>> 	try
>> 		close access inputFileHandle
>> 		close access outputFileHandle
>> 	end try
>> on error e number n
>> 	display dialog "Error: " & (n as text) & return & e
>> end try
>>
>> on endlines(sometext)
>> 	set tid to text item delimiters
>> 	set text item delimiters to ASCII character 10 -- in 10.5 you can  
>> use linefeed instead
>> 	set sometext to text items of sometext
>> 	set text item delimiters to "\\" & (ASCII character 10)
>> 	set sometext to sometext as text
>> 	set text item delimiters to return
>> 	set sometext to text items of sometext
>> 	set text item delimiters to "\\" & return
>> 	set sometext to sometext as text
>> 	set text item delimiters to tid
>> 	return sometext
>> end endlines

ATOM RSS1 RSS2