ruseng - Функция определяет каких символов в строке больше русских или английских (Delphi)

На главную

Назад



//Функция определяет каких символов в строке больше русских или английских
function ruseng(s:string): string;
const
   EngChar = ['A'..'Z', 'a'..'z'];
   RusChar = 'абвгдеёжзиклмнопрстуфхцчшщъьыэюяАБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЮЪЬЫЭЮЯ';
var
  i, e, r: Integer;
begin
  e := 0;
  r := 0;
  // Не забывайте, что, в отличии от других массивов, нумерация в строках начинается с 1
  for i := 1 to Length (s) do begin
    if s[i] in EngChar then Inc (e);
    if Pos(s[i],Ruschar)>0 then Inc (r);
  end;
  if e>r then ruseng:='eng';
  if r>e then ruseng:='rus';
  if r=e then ruseng:='ruseng';
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
if ruseng(Edit1.Text)='rus' then label1.Caption:='Строка русская';
if ruseng(Edit1.Text)='eng' then label1.Caption:='Строка английская';
if ruseng(Edit1.Text)='ruseng' then label1.Caption:='Строка на половину руссая, на половину английская';
end;

Hosted by uCoz