In this third "beta blog" I'll just provide a (partial) list of new RTL classes and functions. I've picked just half a dozen of new things in the RTL I find very useful, but the complete list accounts for several dozens of significant changes.
In case you don't know, "Delphi beta blogs" are authorized blog posts by independent bloggers covering features of a beta version of Delphi. This means I was given a specific permission to post about this topic and I'm discussing a feature of a pre-release version. Notice also that the official RAD Studio XE Preview page is at http://www.embarcadero.com/rad-studio-xe-preview . Since this is a pre-release, there is no guarantee it will work the same in the final version (or will actually be in the product).
Here is a partial list of new classes in Delphi XE RTL (compared to Delphi 2010):
- TBinaryReader and TBinaryWriter somewhat counterparts of the TTextReader and TTextWriter introduced in Delphi 2009
- TTimeZone is a little helper for managing time zone and computing time differences
- TInterlocked, TSpinWait, TSpinLock and many other new core synchronization classes help you push your multi-threaded code further and make it more cross-platform (as these classes have a native implementation, based on only core OS support). The TThread class has been also extended with direct execution of anonymous methods inside a temporary thread and several other features.
- TRegEx is the core record implementing native regular expressions support. This is a big step forward, despite many developers already used third party libraries for regular expressions.
Other notable changes, beside new classes, include:
- The addition of a DefaultEncoding to TStrings, which lets you pick for Unicode format when a list of strings to a text file. There is also support for converting string lists to and from arrays of strings.
- The TPath record in IOUtils has a new GetHomePath class method, which on Windows returns the applications data folder, “AppData\Roaming”). The method calls a corresponding new function in SysUtils. There are actually a lot of improvements in file management, for example with the inclusion on TSymLink, and abstraction... all due to the coming cross platform support.
- Finally, I'd like to mention one of the new functions, SplitStrings. This is quite fast, compared with other techniques I used in the past for splitting strings. Another small nice addition.
Again, this is a very partial and limited list of features, nothing revolutionary but many welcome additions.