The most practice way would be to decompose the string.
For example, Use the function POS which will return return the first ";" it finds
this will give you an index.
Use the "LeftStr" function or Copy to another string, this will be the first one in the list..
you then add it to your other list.
Delete this string from the current composite string including the ";" and repeat the cycle
if it comes to a point where POS does not find a ";" then test the final results of this string and use that one
for the final.
it could be that you only enter one and POS will not find the ";" so at this point it is the final string.
----
Another way is to list a loop and control a string from the master until you hit the end of the master string or
a ";"
WorkString := '';
For I := 1 to Length(MasterString) do
Begin
If MasterString[ I ] <> ';' Then Workstring := Workstring+MasterString[ I ] else
If WorkString <> '' Then
begin
Mail.AddToMYList(WorkString);
WorkString := '';
End;
if WorkString <> '' Then Mail.AddToMyList(WorkString);
I think you get the idea.
P.S.
You can also use a TstringList and set the Linebreak character which would be ";" and if I understand that
correctly it should beak the line up when you assign the test..
Stringlist.LineBreal := ';';
StringList.Assign(MasterString);
now the Items should be separated, maybe