Тогда все проще некуда. Используйте клас TStringList, он содержит методы которые легко позволяют решить эту задачу:
Код:
Var
SL: TStringList;
i: Integer;
begin
SL := TStringList.Create;
SL.StrictDelimiter := True;
SL.Delimiter := ',';
SL.DelimitedText := 'Это текст, в котором есть запятая, точка, вопросительный знак и прочее?';
SL.SaveToFile('CommaFile.txt');
for i := 0 to SL.Count - 1
do SL.Strings[i] := SL.Strings[i] + ' - ' + IntToStr(Length(SL.Strings[i]));
ShowMessage(SL.Text);
end;