Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit Unit1;
- interface
- uses
- Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
- Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Menus;
- type
- TStatkevich_Angelina_Lab3_1 = class(TForm)
- Label1: TLabel;
- Edit1: TEdit;
- Button1: TButton;
- Label2: TLabel;
- Edit2: TEdit;
- PopupMenu1: TPopupMenu;
- MainMenu1: TMainMenu;
- OpenFile: TOpenDialog;
- SaveFile: TSaveDialog;
- N1: TMenuItem;
- N2: TMenuItem;
- N3: TMenuItem;
- N4: TMenuItem;
- N5: TMenuItem;
- N6: TMenuItem;
- N7: TMenuItem;
- N8: TMenuItem;
- procedure Button1Click(Sender: TObject);
- procedure FormClose(Sender: TObject; var Action: TCloseAction);
- procedure N5Click(Sender: TObject);
- function CheckFileName(MyFile: string): string;
- procedure N7Click(Sender: TObject);
- procedure N8Click(Sender: TObject);
- procedure Edit1Change(Sender: TObject);
- procedure N2Click(Sender: TObject);
- procedure N3Click(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- var
- Statkevich_Angelina_Lab3_1: TStatkevich_Angelina_Lab3_1;
- implementation
- {$R *.dfm}
- procedure TStatkevich_Angelina_Lab3_1.Button1Click(Sender: TObject);
- var
- s,s1:string;
- c:char;
- i,j,k:byte;
- begin
- s1:=Edit1.Text;{сделаем копию строки, если строка не нужна, то можно и не делать}
- i:=1;
- while i<length(s1) do
- begin
- c:=s1[i];{запомним символ}
- k:=0;
- for j:=length(s1) downto i+1 do{с конца строки ищем такие же}
- if s1[j]=c then{если есть}
- begin
- k:=1;{фиксируем}
- delete(s1,j,1);{удаляем}
- end;
- if k=1 then
- delete(s1,i,1){если не один, удаляем}
- else i:=i+1;{иначе проверяем следующий}
- end;
- if s1='' then
- Edit2.Text := 'Таких символов нет'
- else
- Edit2.Text := s1;
- N3.Enabled := True;
- Label2.Visible := True;
- Edit2.Visible := True;
- end;
- procedure TStatkevich_Angelina_Lab3_1.FormClose(Sender: TObject; var Action: TCloseAction);
- var
- Choice: Integer;
- begin
- Choice := MessageDlg('Вы уверены, что хотите выйти?', mtConfirmation, [mbYes, mbNo], 0);
- case Choice of
- mrYes: ;
- mrNo: Action := caNone;
- end;
- end;
- procedure TStatkevich_Angelina_Lab3_1.N2Click(Sender: TObject);
- var
- inputFile: TextFile;
- temp: string;
- begin
- if OpenFile.Execute then
- begin
- try
- AssignFile(inputFile, OpenFile.FileName);
- Reset(inputFile);
- if SeekEof(inputFile) then
- begin
- MessageDlg('Похоже, файл пустой. Повторите попытку', mtError, [mbRetry], 0);
- Edit1.Clear;
- end
- else
- begin
- ReadLn(inputFile,temp);
- Edit1.Text := temp;
- CloseFile(inputFile);
- end;
- except
- MessageDlg('Ошибка ввода данных. Повторите попытку.', mtError, [mbRetry], 0);
- Edit1.Clear;
- end;
- end;
- end;
- procedure TStatkevich_Angelina_Lab3_1.N3Click(Sender: TObject);
- var
- outputFile: TextFile;
- MyFile: string;
- ButtonSelected: byte;
- begin
- if SaveFile.Execute then
- begin
- MyFile := SaveFile.FileName;
- MyFile := CheckFileName(MyFile);
- if FileExists(MyFile) then
- begin
- ButtonSelected := MessageDlg('Сохранить результаты в файл?', mtConfirmation, [mbYes, mbNo], 0);
- if ButtonSelected = mrYes then
- begin
- AssignFile(outputFile, MyFile);
- Rewrite(outputFile);
- writeln(outputFile, 'Символы, встречающиеся 1 раз: ', Edit2.Text);
- CloseFile(outputFile);
- end
- else
- N3Click(Sender);
- end
- else
- begin
- AssignFile(outputFile, MyFile);
- Rewrite(outputFile);
- writeln(outputFile, 'Символы, встречающиеся 1 раз: ', Edit2.Text);
- CloseFile(outputFile);
- end;
- end;
- end;
- procedure TStatkevich_Angelina_Lab3_1.N5Click(Sender: TObject);
- begin
- Close;
- end;
- procedure TStatkevich_Angelina_Lab3_1.N7Click(Sender: TObject);
- const
- sms = 'Программа определяет, какие символы встречаются 1 раз.';
- begin
- MessageDlg(sms, mtInformation, [mbOk], 0);
- end;
- procedure TStatkevich_Angelina_Lab3_1.N8Click(Sender: TObject);
- begin
- MessageDlg('Программа разработана Статкевич Ангелиной,' + #13 +
- 'студенткой группы 851001, ФКСиС, ПОИТ' , mtInformation, [mbOk], 0);
- end;
- function TStatkevich_Angelina_Lab3_1.CheckFileName(MyFile: string): string;
- var
- i: byte;
- isCorrect: boolean;
- begin
- isCorrect := false;
- i := 1;
- while not isCorrect and (i <= length(MyFile)) do
- begin
- if MyFile[i] = '.' then
- isCorrect := true;
- inc(i);
- end;
- if (not isCorrect) then
- MyFile := MyFile + '.txt';
- CheckFileName := MyFile;
- end;
- procedure TStatkevich_Angelina_Lab3_1.Edit1Change(Sender: TObject);
- begin
- if Edit1.Text <> '' then
- Button1.Enabled := True
- else
- Button1.Enabled := False;
- N3.Enabled := False;
- Edit2.Text := '';
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement