Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2007, 23:26   #1
Wise
Пользователь
 
Регистрация: 02.12.2007
Сообщений: 13
Вопрос Строки в Delphi.

Задача: Дана строка, в которой содержится текст, включающий в себя как русские, так и английские слова. Подсчитать каких букв больше: русских или английских?
Подскажите пож., как именно определить и подсчитать кол-во английских/русских букв. Ну а в идеале помогите написать программу. Буду очень признателен, если поможете...
Wise вне форума Ответить с цитированием
Старый 02.12.2007, 23:31   #2
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Просто тупо применить CASE.
Русские буквы в одну переменную, англ. в другую. Потом сравнить кол-во символов.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 02.12.2007, 23:38   #3
Wise
Пользователь
 
Регистрация: 02.12.2007
Сообщений: 13
По умолчанию

Спасибо. А можешь кинуть код, плиз.
Wise вне форума Ответить с цитированием
Старый 03.12.2007, 00:06   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Коды английских букв <=127, а коды русских >127...
Вот и вся петрушка...
mihali4 вне форума Ответить с цитированием
Старый 03.12.2007, 00:52   #5
Wise
Пользователь
 
Регистрация: 02.12.2007
Сообщений: 13
По умолчанию

Эх.. Признаю своё полное нубство в Дельфи. Но у меня совершенно не получается.. Может кто-нибудь кинет исходник?
Wise вне форума Ответить с цитированием
Старый 03.12.2007, 02:27   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Код буквы - Ord(буква)
Символ в тексте - Text[i]
Перебираем от первой до последней (это Length(текст)) и если ORD больше 127 - плюс 1 к русским, меньше (но больше 48, это код нуля) - плюс к английским...
mihali4 вне форума Ответить с цитированием
Старый 03.12.2007, 08:12   #7
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Код:
...

const
  EngChar = ['A'..'Z', 'a'..'z'];
  RusChar = ['А'..'Я', 'а'..'я'];

...

procedure TForm1.Button1Click(Sender: TObject);
var
  i, e, r: Integer;
begin
  e := 0;
  r := 0;
  // Не забывайте, что, в отличии от других массивов, нумерация в строках начинается с 1
  for i := 1 to Length (Edit1.Text) do begin
    if Edit1.Text [i] in EngChar then Inc (e);
    if Edit1.Text [i] in RusChar then Inc (r);
  end;

  Label1.Caption := 'Английских символов - ' + IntToStr (e);
  Label2.Caption := 'Русских символов - ' + IntToStr (r);
end;

...
Sibedir вне форума Ответить с цитированием
Старый 03.12.2007, 11:26   #8
Павлик
Пользователь
 
Регистрация: 03.12.2007
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Sibedir Посмотреть сообщение
Код:
...

const
  EngChar = ['A'..'Z', 'a'..'z'];
  RusChar = ['А'..'Я', 'а'..'я'];

...

procedure TForm1.Button1Click(Sender: TObject);
var
  i, e, r: Integer;
begin
  e := 0;
  r := 0;
  // Не забывайте, что, в отличии от других массивов, нумерация в строках начинается с 1
  for i := 1 to Length (Edit1.Text) do begin
    if Edit1.Text [i] in EngChar then Inc (e);
    if Edit1.Text [i] in RusChar then Inc (r);
  end;

  Label1.Caption := 'Английских символов - ' + IntToStr (e);
  Label2.Caption := 'Русских символов - ' + IntToStr (r);
end;

...

Уважаемый а как же "ё" и "Ё"?
no comments
Павлик вне форума Ответить с цитированием
Старый 03.12.2007, 11:38   #9
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Ё-маё!!!

Код:
const
  EngChar = ['A'..'Z', 'a'..'z'];
  RusChar = ['Ё', 'ё', 'А'..'Я', 'а'..'я'];
Sibedir вне форума Ответить с цитированием
Старый 03.12.2007, 17:58   #10
Wise
Пользователь
 
Регистрация: 02.12.2007
Сообщений: 13
По умолчанию

Премного благодарен.
Wise вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi. Строки. inmate Помощь студентам 2 19.05.2008 18:14
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27
#Delphi Строки forumu Помощь студентам 3 24.12.2007 23:31
Обработка XML строки при загрузке dbf в Delphi SereJa1020 БД в Delphi 1 18.12.2007 18:28
Выполнение командной строки в Delphi Alar Общие вопросы Delphi 0 29.10.2006 19:44