![]() |
|
#1
|
|||
|
|||
![]() Доброй ночи. Имеется следующее задание:" 1) Создать программу, которая считывает текст из файла, выводит его на экран, переводит его согласно азбуке морзе, выводит на экран результат перевода, сохраняет его в файл. 2) Добавить возможность перевода символов в реальном времени при вводе с клавиатуры." Первую часть сделал, а вот вторую всё никак не осилю. Исходник программы без перевода в реальном времени:
Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Memo2: TMemo; Button3: TButton; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; Memo1: TMemo; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin with OpenDialog1, Memo1 do if Execute then Lines.LoadFromFile(FileName); end; procedure TForm1.Button2Click(Sender: TObject); begin with SaveDialog1, Memo2 do if Execute then Lines.SaveToFile(FileName); end; procedure TForm1.Button3Click(Sender: TObject); var s,t:string;i,j:integer; begin s:=memo1.Text; for i:=1 to length(s) do begin case s[i] of 'а','А': t:='.-'; 'б','Б': t:='-...'; 'в','В': t:='.--'; 'г','Г': t:='--.'; 'д','Д': t:='-..'; 'е','Е': t:='.'; 'ж','Ж': t:='...-'; 'з','З': t:='--..'; 'и','И': t:='..'; 'й','Й': t:='.---'; 'к','К': t:='-.-'; 'л','Л': t:='.-..'; 'м','М': t:='--'; 'н','Н': t:='-.'; 'о','О': t:='---'; 'п','П': t:='.--.'; 'р','Р': t:='.-.'; 'с','С': t:='...'; 'т','Т': t:='-'; 'у','У': t:='..-'; 'ф','Ф': t:='..-.'; 'х','Х': t:='....'; 'ц','Ц': t:='-.-.'; 'ч','Ч': t:='---.'; 'ш','Ш': t:='----'; 'щ','Щ': t:='--.-'; 'ъ','Ъ': t:='--.--'; 'ы','Ы': t:='-.--'; 'ь','Ь': t:='-..-'; 'э','Э': t:='..-..'; 'ю','Ю': t:='..--'; 'я','Я': t:='.-.-'; 'a','A': t:='.-'; 'b','B': t:='-...'; 'c','C': t:='-.-.'; 'd','D': t:='-..'; 'e','E': t:='.'; 'f','F': t:='..-.'; 'g','G': t:='--.'; 'h','H': t:='....'; 'i','I': t:='..'; 'j','J': t:='.---'; 'k','K': t:='-.-'; 'l','L': t:='.-..'; 'm','M': t:='--'; 'n','N': t:='-.'; 'o','O': t:='---'; 'p','P': t:='.--.'; 'q','Q': t:='--.-'; 'r','R': t:='.-.'; 's','S': t:='...'; 't','T': t:='-'; 'u','U': t:='..-'; 'v','V': t:='...-'; 'w','W': t:='.--'; 'x','X': t:='-..-'; 'y','Y': t:='-.--'; 'z','Z': t:='--..'; '1': t:='.----'; '2': t:='..---'; '3': t:='...--'; '4': t:='....-'; '5': t:='.....'; '6': t:='-....'; '7': t:='--...'; '8': t:='---..'; '9': t:='----.'; '0': t:='-----'; end; memo2.Text:=memo2.Text+' '+t; memo2.Refresh; for j:=1 to length (t) do if t[j]='.' then begin windows.Beep(1000,200); sleep(200); end else if t[j]='-' then begin windows.Beep(1000,600); sleep(200); end; sleep(400); end; end; |