Постараюсь помочь, чем могу.
К сожалению, на Delphi я не пишу (когда-то занимался этим, да всё забыл), поэтому обойдёмся Паскалем. Чтобы не возиться с дельфийскими формами, ввод/вывод я сделал файловым. Входной файл Sl.txt содержит исходный текст. Текст может содержать множественные пробелы, знаки препинания, переводы строки и т.п. — всё обработается. НО! ВНИМАНИЕ — ВАЖНО! Никакой кириллицы: программа обрабатывает ТОЛЬКО латиницу. Впрочем, расширить код для работы с кириллицей, в принципе, несложно.
Результат выводится в файл Smb.txt.
Пути к файлам поставьте свои.
Для Delphi следует также заменить команды Assign и Close на AssignFile и CloseFile, соответственно.
Булева функция L проверяет, является ли символ
буквой.
Код:
type
slovo = array [1..60] of String;
var
f:Text;
C:slovo;
D:Char;
i,N:integer;
function L(Q:Char):boolean;
begin
L:=((Ord(Q)>64) and (Ord(Q)<91)) or ((Ord(Q)>96) and (Ord(Q)<123));
end;
Begin
Assign(f,'D:\Sl.txt');
ReSet(f);
N:=0;
Repeat
if Not(EoF(f)) then
begin
Inc(N);
if N>1 then C[N]:=D else C[N]:='';
repeat
if Not(EoF(f)) then
begin
read(f,D);
if L(D) then C[N]:=C[N]+D;
end;
until Not(L(D)) or (EoF(f));
repeat
read(f,D);
until (L(D)) or (EoF(f));
end;
Until EoF(f);
Close(f);
Assign(f,'D:\Smb.txt');
Rewrite(f);
for i:=1 to N do
write(f, C[i][Length(C[i])]+' ');
Close(f);
End.