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:
RJay Hansen <[log in to unmask]>
Reply To:
Macintosh Scripting Systems <[log in to unmask]>
Date:
Fri, 3 Oct 2008 18:32:34 -0500
Content-Type:
text/plain
Parts/Attachments:
text/plain (119 lines)
Be happy to. I'll do so directly.

RJay


On Oct 3, 2008, at 4:56 PM, Paul Skinner wrote:

> 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