Advertisement
Vladislav8653

3.2

Mar 4th, 2023 (edited)
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 4.58 KB | None | 0 0
  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  7.   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Menus;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     Label1: TLabel;
  12.     Label2: TLabel;
  13.     Edit1: TEdit;
  14.     Button1: TButton;
  15.     Label3: TLabel;
  16.     MainMenu1: TMainMenu;
  17.     PopupMenu1: TPopupMenu;
  18.     OpenDialog1: TOpenDialog;
  19.     SaveDialog1: TSaveDialog;
  20.     N1: TMenuItem;
  21.     N2: TMenuItem;
  22.     N3: TMenuItem;
  23.     N4: TMenuItem;
  24.     N5: TMenuItem;
  25.     procedure Button1Click(Sender: TObject);
  26.     procedure Edit1Change(Sender: TObject);
  27.     procedure N4Click(Sender: TObject);
  28.     procedure N5Click(Sender: TObject);
  29.     procedure Edit1KeyPress(Sender: TObject; var Key: Char);
  30.     procedure N2Click(Sender: TObject);
  31.     procedure N3Click(Sender: TObject);
  32.     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  33.   private
  34.     { Private declarations }
  35.   public
  36.     { Public declarations }
  37.   end;
  38.  
  39. var
  40.   Form1: TForm1;
  41.   Result, Path : String;
  42.   IsFileOpen : Boolean;
  43.  
  44. implementation
  45.  
  46. {$R *.dfm}
  47.  
  48. procedure TForm1.Button1Click(Sender: TObject);
  49. Var
  50.     SetOfSymbols : Set of Char;
  51.     I : Integer;
  52.     Sequence : AnsiString;
  53. Const
  54.     Symbols = ['/', '*', '-', '+', '%', '0' .. '9'];
  55. begin
  56.     Sequence := Edit1.Text;
  57.     SetOfSymbols := [];
  58.     For I := 0 To Length(Sequence) Do
  59.         If Sequence[I] In Symbols Then
  60.             Include(SetOfSymbols, Sequence[I]);
  61.     If SetOfSymbols = [] Then
  62.         Label3.Caption := 'Цифр и знаков математических операций нет.'
  63.     Else
  64.     Begin
  65.         Label3.Caption := 'Результат: ';
  66.         For I := 0 To 255 Do
  67.             If chr(I) In SetOfSymbols Then
  68.                 Label3.Caption := Label3.Caption + Chr(I) + ' ';
  69.     End;
  70.     Result := Label3.Caption;
  71.     N3.Enabled := True;
  72. end;
  73.  
  74. procedure TForm1.Edit1Change(Sender: TObject);
  75. begin
  76.     If Length(Edit1.Text) <> 0 then
  77.         Button1.Enabled := True
  78.     else
  79.         Button1.Enabled := False;
  80.      N3.Enabled := False;
  81.  
  82. end;
  83.  
  84. procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
  85. begin
  86.     If (Key = #13) and (Button1.Enabled) then
  87.         Button1.Click;
  88. end;
  89.  
  90. procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  91. begin
  92.         CanClose := MessageBox(Form1.Handle, 'Вы уверены, что хотите выйти?', 'Выход', MB_YESNO + MB_ICONQUESTION)=ID_YES;
  93. end;
  94.  
  95. procedure TForm1.N4Click(Sender: TObject);
  96. begin
  97.     Application.MessageBox('Программа ищет в введенной пользователем строке знаки арифметических операций и цифры, а после выводит их.', 'Инструкция', 0);
  98. end;
  99.  
  100. procedure TForm1.N5Click(Sender: TObject);
  101. begin
  102.     Application.MessageBox('Арефин Владислав гр.251004', 'Разрабочик', 0);
  103. end;
  104.  
  105. Function Open (): String;
  106. Begin
  107.     With Form1 Do
  108.     Begin
  109.         If OpenDialog1.Execute Then
  110.         Begin
  111.             Path := OpenDialog1.FileName;
  112.             IsFileOpen := True;
  113.         End
  114.         Else
  115.             IsFileOpen := False;
  116.     End;
  117.     Open := Path;
  118. End;
  119.  
  120. procedure TForm1.N2Click(Sender: TObject);
  121. Var
  122.     FileInput: TextFile;
  123.     Str : String;
  124. begin
  125.     Path := Open;
  126.     AssignFile(FileInput, Path);
  127.     Reset(FileInput);
  128.     If(IsFileOpen) Then
  129.     Begin
  130.         Readln(FileInput, Str);
  131.     End;
  132.     If Str <> '' then
  133.     begin
  134.         Edit1.Text := Str;
  135.     end
  136.     else
  137.     begin
  138.          MessageBox(Form1.Handle, Pchar('Проверьте исходные данные, так в файле ничего нет.'), 'Ошибка', MB_ICONSTOP);
  139.     end;
  140.     CloseFile(FileInput);
  141. end;
  142.  
  143.  
  144.  
  145.  
  146.  
  147. procedure TForm1.N3Click(Sender: TObject);
  148. Var
  149.     FileOutput: TextFile;
  150.     IsCorrect : Boolean;
  151. begin
  152.     IsCorrect := True;
  153.     Path := Open;
  154.     If (IsFileOpen) Then
  155.     Begin
  156.         try
  157.             AssignFile(FileOutput, Path);
  158.             Rewrite(FileOutput);
  159.             Write(FileOutput, Result);
  160.         except
  161.             IsCorrect := False;
  162.             Application.MessageBox('Запись в файл не удалась.', 'Ошибка', MB_ICONSTOP);
  163.         end;
  164.         if IsCorrect then
  165.         Begin
  166.             Application.MessageBox('Запись файла выполнена успешно.', 'Результат', 0);
  167.             Edit1.Text := '';
  168.             Label3.Caption := '';
  169.             CloseFile(FileOutput);
  170.         End;
  171.     End;
  172. end;
  173.  
  174. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement