G
Guest
Помогите дорешать задачу по Delphi. Не могу написать то, что подчеркнуто в задании.
Задание: Имеется текст в Memo-компоненте, загружаемый из файла. Данный текст необходимо преобразовать в соответствии с заданным алгоритмом, и результат поместить в другой Memo-компонент. Преобразованный текст нужно сохранить в другой файл.
Алгоритм: Из имеющегося словаря выбрать наиболее длинное слово, в котором все буквы разные и подсчитать их колличество, например: ЛЕЙКОПЛАСТЫРЬ, НЕРЯШЛИВОСТЬ, ЧЕТЫРЕХДЮЙМОВКА.
Вот мой код:
За ранее благодарен за любую помощь.
Задание: Имеется текст в Memo-компоненте, загружаемый из файла. Данный текст необходимо преобразовать в соответствии с заданным алгоритмом, и результат поместить в другой Memo-компонент. Преобразованный текст нужно сохранить в другой файл.
Алгоритм: Из имеющегося словаря выбрать наиболее длинное слово, в котором все буквы разные и подсчитать их колличество, например: ЛЕЙКОПЛАСТЫРЬ, НЕРЯШЛИВОСТЬ, ЧЕТЫРЕХДЮЙМОВКА.
Вот мой код:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var FName: string;
begin
if OpenDialog1.Execute then
begin
FName := OpenDialog1.FileName;
Memo1.Lines.LoadFromFile(FName);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var mystr,alltext,maxstr,a:string;
i,n,max,fl:integer;
flag:boolean;
begin
alltext:=form1.Memo1.Text;
fl:=0;
max:=0;
mystr:='';
n:=length(alltext);
flag:=true;
{количество слов в тексте}
for i:=1 to n do
begin
if (alltext[i]<>' ')and(flag) then fl:=fl+1;
flag:=alltext[i]=' ';
end;
{самое длинное слово}
for i:=1 to n do
begin
if (alltext[i]<>' ') then mystr:=mystr+alltext[i]
else mystr:='';
if length(mystr)>max then
begin max:=length(mystr); maxstr:=mystr; end;
end;
str(fl,a);
form1.Label2.Caption:=a; // количество слов
form1.memo2.text:=maxstr; // вывод слово
end;
procedure TForm1.Button3Click(Sender: TObject);
var FName:string;
begin
SaveDialog1.FileName:=FName;
if SaveDialog1.Execute then
begin
FName := SaveDialog1.FileName;
Memo2.Lines.SaveToFile(FName);
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
memo2.Clear;
memo1.Clear;
end;
end.