A frequently used Delphi class is TStringList. The translation of the defining code in System.Classes needs little manual post-processing. The example from
dbsc_TStringList
compiles and works without manual post-processing. (Again, the original code has been slightly modified for the testing purpose.)
#include "dbsc_tstringlist.h" #include "d2c_convert.h"
using namespace std; using namespace System; using namespace System::Classes;
namespace dbsc_tstringlist { bool TStringListTest1() { bool result = false; TStringList* animals = nullptr; // Define our string list variable int i = 0; result = true; // Define a string list object, and point our variable at it animals = new TStringList();
// Now add some names to our list animals->Add(L"Cat"); animals->Add(L"Mouse"); animals->Add(L"Giraffe");
// Now display these animals // for i := 0 to animals.Count-1 do // ShowMessage(animals[i]); // animals[i] equates to animals.Strings[i] result = result && (animals->ReadPropertyStrings(0) == L"Cat"); result = result && (animals->ReadPropertyStrings(1) == L"Mouse"); result = result && (animals->ReadPropertyStrings(2) == L"Giraffe");
// Free up the list object delete animals; return result; }
bool TStringListTest2() { bool result = false; TStringList* Names = nullptr; // Define our string list variable String ageStr; int i = 0; int stop = 0; result = true; // Define a string list object, and point our variable at it Names = new TStringList();
// Now add some names to our list Names->WritePropertyCommaText(L"Neil=45, Brian=63, Jim=22");
// And now find Brian's age ageStr = Names->ReadPropertyValues(L"Brian");
// Display this value // ShowMessage('Brians age = '+ageStr); result = result && (ageStr == L"63");
// Now display all name and age pair values for(stop = Names->ReadPropertyCount() - 1, i = 0; i <= stop; i++) { //ShowMessage(names.Names[i]+' is '+names.ValueFromIndex[i]); if(i == 0) result = result && (String(ustr2pwchar(Names->ReadPropertyNames(i))) == L"Neil") && (String(ustr2pwchar(Names->ReadPropertyValueFromIndex(i))) == L"45"); if(i == 1) result = result && (String(ustr2pwchar(Names->ReadPropertyNames(i))) == L"Brian") && (String(ustr2pwchar(Names->ReadPropertyValueFromIndex(i))) == L"63"); if(i == 2) result = result && (String(ustr2pwchar(Names->ReadPropertyNames(i))) == L"Jim") && (String(ustr2pwchar(Names->ReadPropertyValueFromIndex(i))) == L"22"); }
// Free up the list object delete Names; return result; }
bool TStringListTest3() { bool result = false; TStringList* cars = nullptr; // Define our string list variable int i = 0; result = true; // Define a string list object, and point our variable at it cars = new TStringList();
// Now add some cars to our list - using the DelimitedText property // with overriden control variables cars->WritePropertyDelimiter(L' '); // Each list item will be blank separated cars->WritePropertyQuoteChar(L'|'); // And each item will be quoted with |'s cars->WritePropertyDelimitedText(L"|Honda Jazz| |Ford Mondeo| |Jaguar \"E-type\"|");
// Now display these cars // for i := 0 to cars.Count-1 do // ShowMessage(cars[i]); // cars[i] equates to cars.Strings[i] result = result && (cars->ReadPropertyStrings(0) == L"Honda Jazz"); result = result && (cars->ReadPropertyStrings(1) == L"Ford Mondeo"); result = result && (cars->ReadPropertyStrings(2) == L"Jaguar \"E-type\"");
// Free up the list object delete cars; return result; }
bool TStringListTest() { bool result = false; result = true; result = result && TStringListTest1(); result = result && TStringListTest2(); result = result && TStringListTest3(); return result; } } // namespace dbsc_tstringlist
Deutsch
Latest News |
10/28/24
Delphi2Cpp 2.5: Symbol names matching declaration case [more...] |
08/26/24
Delphi2Cpp 2.4: Updated to RAD Studio 12.1 Athens [more...] |
"Thanks for your great work, really appreciate the work you have done on zlib and compiling ... test case." Mattewada, Udayabhaskar
Nokia India
02/01/2021
|
[from case study...] "A masterpiece -- Delphi2Cpp has exceeded all my expectations by far." Tony Hürlimann
virtual-optima
08/20/2011
|
"First off, I have to say WOW! Delphi2Cpp is doing a *fantastic* job!" Daniel Flower
linkrealms
01/15/2011
|
This website is generated from plain text with [Minimal Website ]
|
Minimal Website
is made with TextTransformer
|
TextTransformer is made with Borland
CBuilder
|