Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите переписать код программы из Delphi на Borland C++

65K
08 апреля 2011 года
Leorr
11 / / 08.04.2011
Вот код самой программы:

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;
}
277
08 апреля 2011 года
arrjj
1.7K / / 26.01.2011
Код:
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;
}

//Вроде так должно работать.
65K
08 апреля 2011 года
Leorr
11 / / 08.04.2011
Спасибо большое arrjj....Ты мне очень помог.
65K
08 апреля 2011 года
Leorr
11 / / 08.04.2011
Можешь посмотреть полный код, выдает ошибку в это части ReplaceStr[COLOR="#ff0000"](res[/COLOR],char('А'+i),morze);
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.
277
08 апреля 2011 года
arrjj
1.7K / / 26.01.2011
Ой да ошибся бывает :)
вместо ReplaceStr(res,char('А'+i),morze); нужно:
 
Код:
res=StringReplace(res,char('А'+i),morze,TReplaceFlags() << rfReplaceAll);
65K
08 апреля 2011 года
Leorr
11 / / 08.04.2011
Спасибо большое теперь все работает...
Но это только начало..:)следующее что хотелось бы добавить звуковое воспроизведение....
Хотел прикрепить программу но она превышает лимит....
277
08 апреля 2011 года
arrjj
1.7K / / 26.01.2011
Может и заработает, билдера под рукой нет проверить.
Код:
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;
}
65K
08 апреля 2011 года
Leorr
11 / / 08.04.2011
Выдает ошибку Length is not a member of "AnsiString "

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;
}
277
08 апреля 2011 года
arrjj
1.7K / / 26.01.2011
Да, её надо с большой буквы Text.Length()
(мог бы и сам в справку заглянуть)
65K
08 апреля 2011 года
Leorr
11 / / 08.04.2011
Спасибо. Извини сглупил.

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;
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог