{$R *.dfm}
Type
massiv = array [1..30] of string;
var
A : massiv; // массив строк
N : integer; // Размер массива
// функция подсчета количества символов "!?"
Function KolS(stroka:string): integer;
var i : integer;
begin
Result:=0;
for i:=1 to Length(stroka)-1 do
if (stroka[i]='!')and(stroka[i+1]='?') then
Result:=Result+1;
end;
// процедура удаления из строки символов "/"
Procedure Udal(var stroka:string);
var i : integer;
begin
i:=1;
while i<=Length(stroka) do
if stroka[i] = '/' then
begin
delete(stroka,i,1);
end
else
i:=i+1;
end;
// процедура формирования заголовков таблиц
procedure TForm1.FormCreate(Sender: TObject);
var i : integer;
begin
// устанавливаем ширину столбцов таблиц
StringGrid1.ColWidths[0]:=30;
StringGrid2.ColWidths[0]:=30;
StringGrid1.ColWidths[1]:=120;
StringGrid2.ColWidths[1]:=120;
for i:=1 to 10 do
begin
StringGrid1.Cells[0,i-1]:= IntToStr(i);
StringGrid2.Cells[0,i-1]:= IntToStr(i);
end;
end;
// процедура закрытие приложения
procedure TForm1.Button4Click(Sender: TObject);
begin
Close
end;
// процедура обработки кнопки "О программе"
procedure TForm1.Button3Click(Sender: TObject);
begin
Application.MessageBox('Программу выполнил студент '+
'группы С-12 Суриков Н.Е.','О программе')
end;
// процедура обработки кнопки "Решение"
procedure TForm1.Button1Click(Sender: TObject);
var i : integer;
Kol : integer; // количество
begin
for i:=1 to N do
A[i]:=StringGrid1.Cells[1,i-1];
Kol:=0;
for i:=1 to N do
begin
Kol:=Kol+KolS(A[i]);
Udal(A[i]);
StringGrid2.Cells[1,i-1]:=A[i];
end;
Edit2.Text:=IntToStr(Kol);
end;
// процедура установки размера массива строк
procedure TForm1.Button2Click(Sender: TObject);
begin
n:=StrToInt(Edit1.Text);
StringGrid1.RowCount:=n;
StringGrid2.RowCount:=n;
end;
end.
Рис. 2.10. Простейшие приемы работы со строками
2.12. Простейшие приемы работы с многострочным текстом
Разработать приложение, позволяющее выделять слова, имеющих размер пять букв, в многострочном тексте. В главной форме должны находиться многострочный редактор Memo, кнопка «Решение», кнопка «О программе», кнопка «Выход».
При нажатии кнопки «Решение» программа должна обработать набранный текст, найти необходимые слова и поместить результат в аналогичный многострочный редактор.
Вставляем в пустую форму компонент Memo1 для ввода текста, три кнопки Button1-Button3 для запуска соответствующих процедур, компонент Memo2 для вывода результирующего текста.
Форма приложения с исходными данными и результатами расчета показана на рис. 2.11.
Рис. 2.11. Простейшие приемы работы с многострочным текстом
Формируем процедуры обработки нажатия кнопок и компилируем программу. Текст модуля приводим ниже:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, Grids, StdCtrls, ExtCtrls, TeeProcs, TeEngine;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Label2: TLabel;
Label3: TLabel;
Memo1: TMemo;
Memo2: TMemo;
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var N : integer;
// процедура закрытие приложения
procedure TForm1.Button3Click(Sender: TObject);
begin
Close
end;
// процедура обработки кнопки "О программе"
procedure TForm1.Button2Click(Sender: TObject);
begin
Application.MessageBox('Программу выполнил студент '+
'группы Д-11 Ульянов Н.С.','О программе')
end;
// процедура обработки кнопки "Решение"
procedure TForm1.Button1Click(Sender: TObject);
var i,j,k,kk : integer;
Stroka1, Stroka2 : string;
begin
N:=Memo1.Lines.Count; // число строк в исходном тексте
for i:=1 to N do
begin
Stroka1:=Memo1.Lines[i-1]+' '; // считываем текущую строку
k:=0;
Stroka2:=''; // очищаем строку переноса слов
kk:=Length(Stroka1);
for j:=1 to kk do
if Stroka1[j]<>' ' then k:=k+1
else
begin
if (k=5) and (Stroka1[j]=' ') then
Stroka2:=Stroka2+Stroka1[j-5]+Stroka1[j-4]+
Stroka1[j-3]+Stroka1[j-2]+Stroka1[j-1]+' ';
k:=0;
end;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.