09.07.2013, 23:46
|
Прохожий
|
|
Регистрация: 02.07.2013
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
|
|
Перевод Delphi на C++ Builder
Помогите перевести с Delphi на C++ Builder
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
lbl1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
type
TChar = class (TObject)
private
FChar : Char;
protected
procedure SetCharData(const aChar : Char);
function GetCharData : Char;
public
//Слово overload задействует механизм перегрузки методов.
//Благодаря этому, метод Create() будет существовать совместно с другими
//методами с именем Creаte().
constructor Create(const aChar : Char); overload;
//Переопределение метода предка с таким же именем и такой же сигнатурой.
constructor Create; overload;
function IsDigit : Boolean;
function IsAb : Boolean;
function IsUpper : Boolean;
property CharData : Char read GetCharData write SetCharData;
end;
{ TChar }
constructor TChar.Create(const aChar: Char);
begin
inherited Create; //Вызов конструктора предка.
FChar := aChar;
end;
constructor TChar.Create;
begin
Create(#0);
end;
//Записать символ
procedure TChar.SetCharData(const aChar: Char);
begin
FChar := aChar;
end;
//Прочитать символ
function TChar.GetCharData: Char;
begin
Result := FChar;
end;
//Является ли символ цифрой
function TChar.IsDigit: Boolean;
const
Dig = ['0'..'9']; //множества цифр
begin
Result := FChar in Dig;
end;
//Является ли символ буквой
function TChar.IsAb: Boolean;
const
//Множество букв русского и английского алфавитов.
//Способ задания совместим с кодовыми страницами CP1251 (windows-1251) и CP866.
Ab = ['A'..'Z', 'a'..'z'];
begin
Result := FChar in Ab;
end;
//Является ли символ заглавной буквой
function TChar.IsUpper: Boolean;
const
//Множество заглавных букв
AbUp = ['A'..'Z'];
begin
Result := FChar in AbUp;
end;
{ TForm1 }
//Применение класса TChar для решения следующей задачи:
//Подсчитать в заданном тексте количество цифр, букв, заглавных букв, строчных букв.
procedure TForm1.Button1Click(Sender: TObject);
var
Ch : TChar;
S : String;
i, Len, CntDig, CntAb, CntAbu : Integer;
begin
//Создание объекта
Ch := TChar.Create;
//Решение поставленных задачь.
S := Memo1.Text;
Len := Length(S);
CntDig := 0;
CntAb := 0;
CntAbu := 0;
for i := 1 to Len do begin
Ch.CharData := S[i];
if Ch.IsDigit then
Inc(CntDig)
else if Ch.IsAb then begin
Inc(CntAb);
if Ch.IsUpper then Inc(CntAbu);
end;
end;
//Вызов деструктора и обнуления переменной Ch.
FreeAndNil(Ch);
ShowMessage('Всего символов: ' + IntToStr(Len)
+ #13#10'Колличество цифр: ' + IntToStr(CntDig)
+ #13#10'Колличество букв: ' + IntToStr(CntAb)
+ #13#10'Колличество заглавных букв: ' + IntToStr(CntAbu)
+ #13#10'Колличество строчных букв: ' + IntToStr(CntAb - CntAbu));
end;
end.
|