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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2008, 16:47   #1
Ветас
Пользователь
 
Регистрация: 09.11.2007
Сообщений: 45
По умолчанию Подсчет русских и английских букв в текстовом файле.

Скажите, пожалуйста, каким образом можно подсчитать количество русских и английских букв в текстовом файле?
Ветас вне форума Ответить с цитированием
Старый 22.02.2008, 16:50   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Для начала нужно четко определить, что такое русская буква, а что такое английская, например а,с,Н,о и т.д.
puporev вне форума Ответить с цитированием
Старый 22.02.2008, 17:03   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Ветас
Ну загрузи файл в массив символов и в цикле пройди по каждому проверяя к какой части раскладки он относится, русской или латинской
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.02.2008, 17:26   #4
SNUPY
Форумчанин
 
Регистрация: 15.02.2008
Сообщений: 621
По умолчанию

Вот держи:
Код:
Const
   Eng='ABCDEFG....{ну и т.д.  весь алфавит короче}';
   Rus='АБВГДЕ...{таже самая мысль :D}';
...
Var F:TextFile;
     Adr:string;
     S:string;
     EngCount, RusCount:cardinal;
...
Function LanguageLetterCount(S,  LanguageAlphabet:string):Cardinal;
var
   I:cardinal;
begin
   Result:=0
   S:=Uppercase(S);
   For I:=1 to Length(S) do
   Begin 
      if Pos(S[i],LanguageAlphabet)>0 then Inc(result);
   End;
end;
....
Begin
   EngCount:=0; 
   RusCount:=0;

   Writeln('Адрес?');
   Readln(Adr); 

   AssingFile(f, Adr);
   Reset(f);

   While not EOF(f) do
   begin
      Readln(f,s);
      RusCount:=RusCount+LanguageLetterCount(Rus);
      EngCount:=EngCount+LanguageLetterCount(Eng);
   end;

   CloseFile(f);

   Writeln(RusCount);
   Writeln(EngCount);
end.
Помог? Ну так нажми на весы!

Последний раз редактировалось SNUPY; 22.02.2008 в 17:30.
SNUPY вне форума Ответить с цитированием
Старый 23.02.2008, 17:13   #5
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
Восклицание

Вот ещё проще, с помощью множеств. SNUPY нелень ведь писать весь алфавит .
Код работает и на Паскаль, написано в Delphi. Надо только Диалог убрать, и вывод консольный сделать, и запрос пути чрез Read или ReadLN.
Вложения
Тип файла: rar Колличество русских, английских букв.rar (7.3 Кб, 17 просмотров)
Alter вне форума Ответить с цитированием
Старый 23.02.2008, 22:11   #6
SNUPY
Форумчанин
 
Регистрация: 15.02.2008
Сообщений: 621
По умолчанию

Ну если на то пошло, то можно вообще взять код символа и сделать здвиг на N))))
Помог? Ну так нажми на весы!
SNUPY вне форума Ответить с цитированием
Старый 15.01.2009, 22:08   #7
Askar_g
под кайфом
Пользователь
 
Аватар для Askar_g
 
Регистрация: 21.12.2008
Сообщений: 41
Лампочка

Код:
Const
   Eng='A..Z';
   Rus='А..Я';
Так тоже можно.
  • Как-то одного программиста спросили, а потом горько пожалели об этом.
Askar_g вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод русских букв в Delphi Аццкий Нуп Помощь студентам 3 25.06.2008 23:27
Сортировка в текстовом файле Isthmus Паскаль, Turbo Pascal, PascalABC.NET 18 01.05.2008 20:46
Регистр для русских букв Kulibim Общие вопросы Delphi 2 28.10.2007 17:36
Подсчёт русских букв в строках файла гера Помощь студентам 1 25.04.2007 01:19