Вправа 9.2

Завдання
Дано деякий текст. Відредагувати текст таким чином, щоб після кожного розділового знака стояв хоча б один пробіл, а всі перші слова в реченнях починалися з великої літери.


Розв’язання

У розділі Uses додайте модуль StrUtils для роботи з функціями ReplaceText та PosEx


var m:array[1..100] of string;
 
 
procedure TForm1.Button1Click(Sender: TObject);
var L,p,n:integer;
    s:string;
    c:char;
begin
    s:=Memo1.Text;
     //Замінюємо всі комбінації "." на ". "
    s:=ReplaceText(s,'.','. ');
    //Замінюємо всі комбінації "," на ", "
    s:=ReplaceText(s,',',', ');
    //Замінюємо всі парні пробіли на одиночні
    while pos('  ',s)<>0 do begin
      p:= pos('  ',s);
      delete(s,p,1);
    end;
    //Обрізаємо зайві пробіли спочатку та в кінці
    s:=Trim(s);
    L:=length(s);
   //Замінюємо першу літеру в тексті на велику
    c:=s[1];
    if (c>='а') and (c<='я') then begin
         c:=chr(ord(c)-32)
    end;
    s[1]:=c;
     //Шукаємо букви після '. ' та при потребі замінюємо їх на великі
    n:=1;
    while posex('. ',s,n)<>0 do begin
      p:=posex('. ',s,n);
      c:=s[p+2];
      if (c>='а') and (c<='я') then begin
         c:=chr(ord(c)-32)
      end;
      s[p+2]:=c;
      n:=p+1;
    end;
    Memo2.Text:=s;

end;

Немає коментарів:

Дописати коментар