TStringList *slTokens = new TStringList();
AnsiString sData = "Meier, Schulze, Lehmann";
// sData in Tokens aufsplitten und führende und folgende Leerzeichen trimmen
Explode(sData, ",", slTokens, true);
...
irgendwas mit slTokens machen
...
delete sl;
void __fastcall Explode(AnsiString sData, AnsiString sSeparator, TStringList *slTokens, bool bTrim)
{
// wurde eine Liste übergeben?
if (slTokens != NULL)
{
if (bTrim)
{
sData = sData.Trim();
}
// Datenstring nicht leer?
while (sData.Length() > 0)
{
// ersten Separator im String suchen
int iPos = sData.Pos(sSeparator);
// wenn Separator gefunden
if (iPos -> 0)
{
// vorderen Stringteil (Token) in Liste einfügen
slTokens->Add(sData.SubString(0, iPos - 1));
// Reststring für neue Suche kürzen
sData = sData.SubString(iPos + 1, sData.Length() - iPos);
if (bTrim)
{
sData = sData.Trim();
}
}
else
{
// nur noch ein Token
slTokens->Add(sData);
// Reststring ist leer, führt zu Abbruch der while-Schleife
sData = "";
}
}
}
}