Пусть текст находится в Memo1.
Разделители слов - пробелы. Все слова без переноса (-), т.е. одно слово всегда находится на строке. И еще одно усливие - нет двойных/тройных/и т.д. пробелов. Тогда самый простой способ такой:
1. StringReplace заменяет пробел на комбинацию запятая-пробел.
2. Проходим по все строкам и добавялем в конце еще по запятой.
Код:
procedure TForm1.btnCommaClick(Sender : TObject);
var
I : Integer;
begin
Memo1.Lines.Text := StringReplace(Memo1.Lines.Text,' ',', ',[rfReplaceAll]);
For I := 0 to Memo1.Lines.Count-1 Do
Memo1.Lines[i] := Memo1.Lines[i]+',';
end;
Случай вырожденный, конечно, но для лабы/контрольной сойдет.