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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.01.2015, 23:38   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

"смешались в кучу кони, люди.."

gabach, есть такая штука, как кодирование символов. И, если с английскими буквами всё более менее ясно, то с русскими возникает полная чехарда.

Вот подумайте, для чего Вам в программе понадобилась функция rus()?!

а для того, чтобы кириллица, написанная в тексте программы (который в кодировке ANSI - она же Windows-1251) выводилась в консоли, где для кириллицы используется совсем другая кодировка (там кодировка OEM, она же DOS, она же 866)...

поэтому, нужно и русские гласные буквы записать в этой же кодировке.

например, так:
Код:
//Функция для подсчёта гласных букв
Function KolGlas(const Slovo:ShortString):byte;
const sGlas : shortstring = 'АЕЁИОУЫЭЮЯаеёиоуыэюя';
var
  i:byte;
begin
  result:=0;
  for i:=1 to Length(Slovo) do
    if Pos(Slovo[i], rus(sGlas))>0 
      then result:=result+1;
end;
ну, или, если Вам угодно использовать кодировку DOS в виде кодов, как это Вы делаете в функции rus(), то извольте:
Код:
//Функция для подсчёта гласных букв
Function KolGlas(const Slovo:ShortString):byte;
var
  i:byte;
begin
  result:=0;
  for i:=1 to Length(Slovo) do
  if Slovo[i] in [#128,#133,#240,#136,#142,#147,#155,#157,#158,#159,
                    #160,#165,#241,#168,#174,#227,#235,#237,#238,#239]
  then result:=result+1;
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.01.2015, 02:22   #12
gabach
Пользователь
 
Регистрация: 23.12.2014
Сообщений: 14
По умолчанию

Serge_Bliznykov, спасибо большое, просто программированием занимаюсь четвёртый месяц и нам ничего не объясняли про кодировку, да и функцию rus() давали готовую из учебника, не объясняя что и зачем
gabach вне форума Ответить с цитированием
Старый 03.01.2015, 12:37   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

gabach, всегда пожалуйста!

Если остались какие-то вопросы - можете задавать...

p.s. а если это из учебника код, то Вы с этим учебником поаккуратней, его писал человек, для которого Delphi - "не родной"

p.p.s. И если уж заморачиваться с консолью (и кодировками), то нужно не играться с кодами символов, нужно поручить Windows функцию перекодировки из Oem в ANSI (и наоборот).
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Формула для подсчёта суммы относительно даты KApSuL Microsoft Office Excel 1 18.07.2014 15:45
Функция отбор гласных букв Petersons Общие вопросы C/C++ 8 04.03.2013 20:06
Запрос для подсчёта произвдения поля Asblue БД в Delphi 5 18.12.2010 21:07
Функция подсчёта кол-ва слогов в слове Xeon332 Общие вопросы Delphi 8 26.03.2009 08:57
Формула в Экселе для подсчёта стоимости Oxidous Microsoft Office Excel 13 31.08.2007 13:13