Помогите переписать код программы из Delphi на Borland C++
void __fastcall TForm1::Memo1Change(TObject *Sender)
{
const morse: array [ord('А')..ord('Я')] of string [5] =
('.- ','-... ','.-- ','--. ',
'-.. ','. ','...- ','--.. ',
'.. ','.--- ','-.- ','.-.. ',
'-- ','-. ','--- ','.--. ',
'.-. ','... ','- ','..- ',
'..-. ','.... ','-.-. ','---. ',
'---- ','--.- ','-..- ','-.-- ',
'..-..','..-- ','.-.- ','.....');
var
i:word;
begin
Memo2.Clear;
for i:=1 to length(Memo1.Lines.Text) do
begin
if Memo1.Lines.Text in ['А'..'Я'] then
Memo2.Lines.Text := Memo2.Lines.Text + morse[ord(Memo1.Lines.Text)]+' '
else Memo2.Lines.Text := Memo2.Lines.Text + Memo1.Lines.Text;
end;
}
Код:
void __fastcall TForm1::Memo1Change(TObject *Sender)
{
String morze[32]={".- ","-... ",".-- ","--. ",
"-.. ",". ","...- ","--.. ",
".. ",".--- ","-.- ",".-.. ",
"-- ","-. ","--- ",".--. ",
".-. ","... ","- ","..- ",
"..-. ",".... ","-.-. ","---. ",
"---- ","--.- ","-..- ","-.-- ",
"..-..","..-- ",".-.- ","....."};
String res=Memo1->Lines->Text;
for(int i=0;i<32;i+=1)
//ReplaceStr(res,char('А'+i),morze);
res=StringReplace(res,char('А'+i),morze,TReplaceFlags() << rfReplaceAll);
Memo2->Lines->Text=res;
}
{
String morze[32]={".- ","-... ",".-- ","--. ",
"-.. ",". ","...- ","--.. ",
".. ",".--- ","-.- ",".-.. ",
"-- ","-. ","--- ",".--. ",
".-. ","... ","- ","..- ",
"..-. ",".... ","-.-. ","---. ",
"---- ","--.- ","-..- ","-.-- ",
"..-..","..-- ",".-.- ","....."};
String res=Memo1->Lines->Text;
for(int i=0;i<32;i+=1)
//ReplaceStr(res,char('А'+i),morze);
res=StringReplace(res,char('А'+i),morze,TReplaceFlags() << rfReplaceAll);
Memo2->Lines->Text=res;
}
//Вроде так должно работать.
Спасибо большое arrjj....Ты мне очень помог.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
procedure Memo1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Memo1Change(Sender: TObject);
const morse: array [ord('А')..ord('Я')] of string [5] = (
'.- ','-... ','.-- ','--. ',
'-.. ','. ','...- ','--.. ',
'.. ','.--- ','-.- ','.-.. ',
'-- ','-. ','--- ','.--. ',
'.-. ','... ','- ','..- ',
'..-. ','.... ','-.-. ','---. ',
'---- ','--.- ','-..- ','-.-- ',
'..-..','..-- ','.-.- ','.....');
var
i:word;
begin
Memo2.Clear;
for i:=1 to length(Memo1.Lines.Text) do
begin
if Memo1.Lines.Text in ['А'..'Я'] then
Memo2.Lines.Text := Memo2.Lines.Text + morse[ord(Memo1.Lines.Text)]+' '
else Memo2.Lines.Text := Memo2.Lines.Text + Memo1.Lines.Text;
end;
end;
end.
вместо ReplaceStr(res,char('А'+i),morze); нужно:
Код:
res=StringReplace(res,char('А'+i),morze,TReplaceFlags() << rfReplaceAll);
Но это только начало..:)следующее что хотелось бы добавить звуковое воспроизведение....
Хотел прикрепить программу но она превышает лимит....
Код:
for(int x=0;x<Memo2->Lines->Text.length();x+=1)
switch(Memo2->Lines->Text.c_str()[x]){
case '.':
Beep(440,100)
Sleep(50);
break;
case '-':
Beep(440,300);
Sleep(50);
break;
case ' ':
Sleep(100);
break;
}
switch(Memo2->Lines->Text.c_str()[x]){
case '.':
Beep(440,100)
Sleep(50);
break;
case '-':
Beep(440,300);
Sleep(50);
break;
case ' ':
Sleep(100);
break;
}
for(int x=0;x<Memo2->Lines->Text.[COLOR="#ff0000"]length()[/COLOR];x+=1)
switch(Memo2->Lines->Text.c_str()[x]){
case '.':
Beep(440,100)
Sleep(50);
break;
case '-':
Beep(440,300);
Sleep(50);
break;
case ' ':
Sleep(100);
break;
}
(мог бы и сам в справку заглянуть)
for(int x=0;x<Memo2->Lines->Text.length();x+=1)
switch(Memo2->Lines->Text.c_str()[x]){
case '.':
Beep(440,100)[COLOR="#ff0000"];[/COLOR]
Sleep(50);
break;
case '-':
Beep(440,300);
Sleep(50);
break;
case ' ':
Sleep(100);
break;
}