[DUG] D2009 Unicode Strings
John Bird
johnkbird at paradise.net.nz
Wed Apr 22 23:11:59 NZST 2009
(sent again as Vista Mail messed up the formatting after I sent it - hope
this is better and sorry for the duplicate)
Unless I missed it I still didn't hear if anyone recorded the David I
Codegear seminar in Ak in March on D2009.
Any recordings out there anywhere?
Failing that, a couple of questions that I am wondering about in terms of
converting string code for D2009:
I understand that code such as
q1 - if (string[i] > ' ') and (string[i] < '~') then
should work no problem
q2 - how about code such as
if (ord(string[i]) in [32..126]
ie finding if the ascii code is in a range.from what I have read that
should produce a compiler warning, and it does jiggery pokery behind the
scenes conversions to make it work as set elements have to be < 256,
recommended is to use new functions to specify what you want - i am
guessing something like:
if CharInSet(string[i], [' '..'~']) then
q3 - if string[i] = #13 then
//testing for CR carriage return - string[i] and #13 will both be WideChar,
but is #13 the wrong value now?
or eol := #13#10
//where eol is a string - is this now wrong for end of line characters?
q4 - using TFilestream to read a file and putting the result into a string
buffer
eg
fs.seek(byteoffset, soFromBeginning);
sizeread := fs.read(chbuff, lreclen2);
buffer := chbuff;
setlength(buffer, lreclen2);
buffer is string, chBuff is an array of Char, and I suspect I may need to
change the declaration of chBuff to be an array of AnsiChar for a start (if
I am reading ASCII files) and converting the array of AnsiChar to String or
AnsiString will need some explicit code
q5 - are the .pas and .dfm files still stored as ascii or unicode text? Or
more to the point, can they be opened with Notepad or my favourite
programmers editor. I have a Delphi program to search .pas and .dfm
files - will the same program be able to search D2007 (ascii) files and
D2009 files (it does a readln and then a AnsiPos to find matches)....
q6 - I read that as Win9x are NOT unicode, D2009 cannot produce applications
for them. If a program is written using AnsiString instead of string, will
it run on Win9x? or is it the VCL itself that is the problem??
I found some good references which I have been reading:
http://edn.embarcadero.com/article/38693
http://www.drbob42.com/examines/examinA7.htm
John
More information about the Delphi
mailing list