Anyone speak Japanese excel?

S

shy1162

This imports binary code and converts to hex numbers. It has worked
flawlessly for years. Now in a excel 2003 Japanese language version,
not so flawlessly. It gets confused occasionally (5% error) and reads
two bits instead of one. Is there a way to turn off the Double-Byte
capability of Japanese language versions of excel? Can I add something
to the macro to force a single byte read?

02 0E 89 20 21 2F 02 01 Should look like
02 0E 8445 21 2F 02 01 I get this error
_________________________________________________________

Const ForReading = 1, ForWriting = 2, ForAppending = 3
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
Dim fs, f, ts, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(FileNameWithPath)
Set ts = f.OpenAsTextStream(ForReading, TristateUseDefault)
ColumnCount = 3
RowCount = Sheets("Sheet2").Range("N5").Value + 1 'Offset
RowCount = Val("&h" & RowCount & "&")
Do While ts.atendofstream = False 'Loop to fill column with HEX
numbers
DecimalByte = Asc(ts.Read(1))
HexByte = Hex(DecimalByte)
Cells(RowCount, ColumnCount) = HexByte
RowCount = RowCount + 1
Loop
ts.Close
 
M

Martin Brown

This imports binary code and converts to hex numbers. It has worked
flawlessly for years. Now in a excel 2003 Japanese language version,
not so flawlessly. It gets confused occasionally (5% error) and reads
two bits instead of one. Is there a way to turn off the Double-Byte
capability of Japanese language versions of excel?

That is a bad idea and will make you very unpopular with Japanese users.
DBCS is essential for the display of the Japanese language.
Can I add something
to the macro to force a single byte read?

02 0E 89 20 21 2F 02 01 Should look like
02 0E 8445 21 2F 02 01 I get this error
_________________________________________________________

Const ForReading = 1, ForWriting = 2, ForAppending = 3
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
Dim fs, f, ts, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(FileNameWithPath)
Set ts = f.OpenAsTextStream(ForReading, TristateUseDefault)

I think this is your problem. In Japanese topbit set characters are
automatically interpretted as DBCS escapes. TristateUseFalse will force
ASCII single byte interpretation I think - though I haven't tried it.

The local default of Excel in Japan is obviously to support the local
language and interpret DBCS characters accordingly.

Regards,
Martin Brown
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top