Hello all,
I needed to use an a 8-bit ascii (as in with diacritics, accents and the like) file with bassic4ppc so I had to figure out how to use the page code options in the binaryfile object. Don't know if this is the best way to do this but it works. There is not much of an explanation in the help files so thought this might be helpful to someone else.
tbin1 is the binfile object
To import a file:
To export a file:
use page code 1200 if you need to convert to/from utf16
Enjoy!
I needed to use an a 8-bit ascii (as in with diacritics, accents and the like) file with bassic4ppc so I had to figure out how to use the page code options in the binaryfile object. Don't know if this is the best way to do this but it works. There is not much of an explanation in the help files so thought this might be helpful to someone else.
tbin1 is the binfile object
To import a file:
B4X:
'convert extended ascii to native utf-8
FileOpen(c1,"ascii file.txt",cRandom)
FileOpen(c2,"utf8 file.txt",cWrite)
'use 1252 or 28591 for the ascii page code
tbin1.New2(c1,1252)
'read bytes
length=FileSize("ascii file.txt")
Dim temp_array(length) As byte
tbin1.ReadBytes(temp_array(),length)
'convert to string
string=tbin1.BytesToString(temp_array(),0,length-1)
'write string to a utf8 file
FileWrite(c2,string)
FileClose(c1)
FileClose(c2)
To export a file:
B4X:
'convert from native utf-8 to extended ascii
FileOpen(c1,"ascii file.txt",cRandom)
FileOpen(c2,"utf8 file.txt",cRead)
'set page code to 1252 or 28591
tbin1.New2(c1,1252)
'get string from utf8 file
string=FileReadToEnd(c2)
'convert string to bytes
length=StrLength(string)
Dim temp_array(length) As byte
temp_array()=tbin1.StringToBytes(string)
'write bytes to ascii file
tbin1.WriteBytes(temp_array())
FileClose(c1)
FileClose(c2)
use page code 1200 if you need to convert to/from utf16
Enjoy!