View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
LenB[_4_] LenB[_4_] is offline
external usenet poster
 
Posts: 3
Default Writing File in VBA with Unix line break

I can only test this on a PC with Excel97, but I expect it is the same
on the Mac. Try a trailing semicolon, like
Print #FileNum, Cell.Text & Chr(10);
On mine, that suppresses the usual CR LF. Looks like you are creating
unicode text with the extra zero bytes. Is that a Mac thing too?

Len



Steven Drenker wrote:
Using Mac, OS X 10.3.9, Excel X for Mac.

I need to write a text file in VBA with a Unix line break (ASCII 10 / x0A).
I'm iterating over a range of cells and writing out lines with:

Print #FileNum, Cell.Text & Chr(10)

Anyway, when I get my file written out, it's not performing as I expected. I
did a hex dump with TextWrangler and found that I'm not getting a linefeed
character written out. Here's a sample hex line:

0050: 00 0D 00 0D 00 64 00 69 00 67 00 20 00 31 00 39 .....d.i.g. .1.9

The first two characters should be a single line feed (x0A), but I'm getting
a double carriage return (x00 x0D).

Two questions:
1. It looks like Excel is putting out double-byte ASCII (all the extra 00 in
front of the actual ASCII characters). Is this correct?

2. Why am I getting ASCII 13 / x0D when I'm explicitly writing out ASCII 10
/ x0A?
-------------------

P.S. I discovered that some common Mac VBA constants are not as expected:
vbCr 13
vbCrLf 13
vbFormFeed 12
vbLf 13
vbNewLine 13
vbNullChar 0
vbObjectError 45
vbTab 9