[DUG] Upgrading to XE - Unicode strings questions
Alister Christie
alister at salespartner.co.nz
Tue Nov 23 14:15:34 NZDT 2010
You should get a copy of Marco Cantu's Delphi 2009 Handbook - it has
about 90 pages on Unicode in Delphi. I think Bob Swart has a similar
(less detailed) book. There is also some videos from one of the
CodeRage events (probably CodeRage 3 or 4).
Alister Christie
Computers for People
Ph: 04 471 1849 Fax: 04 471 1266
http://www.salespartner.co.nz
PO Box 13085
Johnsonville
Wellington
On 18/11/2010 5:48 p.m., John Bird wrote:
> Planning upgrading from D2007 to XE, but want to read up on issues I will
> need to consider first to do with strings becoming Unicode by default. I
> recall the release of D2009 came with good white papers explaining
> ramifications, however I haven’t seen these as I haven’t upgraded. Asked
> for such also at the XE event but have not been sent anything yet.
>
> I have a lot of code which I want to plan to be able to recompile easily,
> and would like to plan this migration. I would prefer to put anything
> contentious or varying into a library unit, a ‘wrapper’ so that I don’t have
> to deal with these version differences in the main code...
>
> Anyone can answer any of these quick questions please post here or email
> me – thanks!
>
> Q1 - Anyone got some good references to read up on ansistring to unicode
> issues ? Comprehensive please!
>
> Q2 – With XE do the .pas and .dfm files become unicode text and hence cannot
> be read by earlier Delphi, eg D2007 any more?
>
> Q3 – I do a lot of reading ascii data files, and writing back. Using
> mainly TFilestream and stringlists. Does this in general mean I will need
> to use file variables declared as Ansichar and AnsiString instead of Char
> and String?
> (I would prefer to use the standard VCL where possible)
>
> If I have variables
> as1:Ansistring;
> s2:string;
>
> Q4 – if I do s2:=as1 does this convert ansistrings to unicode?
>
> Q5 – if I do as1:=s2 does this convert a unicode string to ansstring?
>
> (otherwise how do I do this?)
>
> Q6 – I understand any code like
>
> char1:=string1[i];
> if char1 in [‘a’..’z’] then
> begin
> message:=string[i]+’ - character is lowercase’;
> end
>
> will break, as ansi characters are ordinal (less than 256 or 512)
> and set comparisons ['a'..'z'] or ['a','b','c'] can be used, this set
> code cannot be used for unicode characters. What is the replacement?
>
>
> Q7 – do literals like #13#10 still mean carriage return and linefeed? #9
> means tab?
> if I have code like (logline string1 string2 are string)
>
> logline:=FormatDateTime(‘dd-mmm-yyyy hh:nn:ss’,now) + string1 +
> #13#10+#9 + string2;
> ShowMessage(logline);
> Button1.hint:=logline;
> writeln(f,logline);
>
> these work D5-D2007 - ie a 2 line messagebox text, 2 line hint,
> and 2 lines written to a log file.
> is this still going to work?
>
> do carriage returns/tabs/other control characters have to be defined
> differently, eg as constants?
>
> Q8 – stringlist1.loadfromfile(‘Test1.txt’);
> what happens if this file is ascii text being read into a stringlist
> which is unicode strings.
>
> Q9 - stringlist1.savetofile(‘Test1.txt’)
> presumably this is no longer ascii text. How do I save and read a
> stringlist to/from a file if it is to be Ansi text?
>
> Q10 – If there are complexities in Q8 and Q9 is there a TAnsiStringlist
> type (for ansistrings) as well as a unicode TStringlist type?
> (I use stringlists a lot)
>
> Q11 – do inifiles become unicode too?
>
> Q12 – does Windows Notepad open unicode text files correctly? or can it
> only be used on Ansi text files?
>
> Q13 - It looks like most programmers editors read and write ascii and
> unicode encoding.....the one I use seems to distinguish between UTF-8 and
> unicode as well – what is the difference?
>
> John
>
> _______________________________________________
> NZ Borland Developers Group - Delphi mailing list
> Post: delphi at delphi.org.nz
> Admin: http://delphi.org.nz/mailman/listinfo/delphi
> Unsubscribe: send an email to delphi-request at delphi.org.nz with Subject: unsubscribe
More information about the Delphi
mailing list