Re: writing text to MS Word
Re: writing text to MS Word
- Subject: Re: writing text to MS Word
- From: "Mark J. Reed" <email@hidden>
- Date: Wed, 1 Jun 2005 14:40:29 -0400
The difference is not really encoding, but type. There are strings of
class "string", and strings of class "Unicode text", and they're
stored completely differently. Strings of class "string" are not
restricted to ASCII; they're whatever your local encoding is (e.g. Mac
Roman on English systems).
Word 2004 accepts Unicode strings directly, but of course it costs
money to upgrade.
What version of OS X do you have? I can cast Unicode text to string
just fine in both Panther and Tiger:
class of "hello, world" --> string
class of (do shell script "echo 'hello, world'") --> Unicode text
class of ((do shell script "echo 'hello, world'") as string) --> string
On 6/1/05, Hudson Barton <email@hidden> wrote:
> I have no doubt you are correct in saying that the text result of a
> shell script is often a unicode string rather than an ascii string.
> Most text editors don't care what it is, but Word X does care. I am
> satisfied that my problem is solved as soon as I have a way to coerce
> unicode strings to ascii strings efficiently. Unfortunately, "set
> blah to result as string" does not coerce from unicode to ascii. The
> "as string" coercion works for lists, but it's not for unicode.
>
> I do have one way of coercing that's not too bad...if you have a
> sense of humor. I write the result of the shell script to a POSIX
> file and then read back the text. By "washing" it through the POSIX
> file, I get an ascii string.
>
> H.
>
>
> At 10:27 AM -0700 6/1/05, Paul Berkowitz wrote:
> >On 6/1/05 10:14 AM, "Andrew Oliver" <email@hidden> wrote:
> >
> >> On 6/1/05 10:04 AM, "Hudson Barton" <email@hidden> wrote:
> >>
> >>> I have some output from a shell script that is supposed to be regular
> >>> text and if I move it into most text editors, it looks, feels and
> >>> acts just like regular text. But apparently it's not. I need to
> >>> move the text into a window of Microsoft Word (version 10), and it's
> >>> producing errors like "Can't set every text of window 1 to ..."
> >>> What's going on here?
> >>>
> >>> If I convert each character first to an ascii number and then back to
> >>> an ascii character, then it works fine, but that's not practical.
> >>> Is there an easier way to coerce this string to a regular ascii
> >>> string?
> >>>
> >>> My script says:
> >>>
> >>> set str to result ---result of shell script
> >>> tell application "Microsoft Word" to set text of window 1 to str
> >>
> >> Despite what the dictionary says, 'do shell script' will return unicode
> >> text, not 'regular text' (whatever that may be).
> >>
> >> My guess is that you may need to coerce the shell script result to type
> >> 'string' before Word will take it, either:
> >>
> >> set str to (do shell script "blah" as string)
> >> tell application "Microsoft Word" to set text of window 1 to str
> >>
> >> or:
> >>
> >> set str to do shell script "blah"
> >> tell application "Microsoft Word" to set text of window 1 to (str as
> >> string)
> >>
> >
> >>
> >I would not count on being able to script Word X to do anything like this
> >reliably. Although its dictionary may claim to do things like this it
> >usually won't work. Or it will crash. You'd have to do it via 'do Visual
> >Basic', which is much more complicated. Word 2004 is another matter - it
> >will be scriptable, but not like that. Its object hierarchy is more
> >complicated (mirroring the 'do Visual Basic' method, but with the dictionary
> >and an AppleScript Reference available).
> >
> >Here's a reference to getting 'do Visual Basic' working for Word X:
> >
> ><http://www.word.mvps.org/MacWordNew/WordAppleScript.htm>
> >
> >In Safari, you have to refresh the page a few times to get it to show up.
> >You have to use the Visual Basic Editor Help (in Word) to learn the VBA code
> >needed.
> >
> >And in Word X, you do have to use string as Andrew says (although I'd expect
> >the Unicode to coerce to string OK, even implicitly). For Word 2004, Unicode
> >is in fact what's expected (although string works OK too).
> >
> >
> >--
> >Paul Berkowitz
> >
> >
> > _______________________________________________
> >Do not post admin requests to the list. They will be ignored.
> >Applescript-users mailing list (email@hidden)
> >Help/Unsubscribe/Update your Subscription:
> >
> >This email sent to email@hidden
>
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Applescript-users mailing list (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
>
--
Mark J. Reed <email@hidden>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Applescript-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden