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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2012, 23:35   #1
bigbang22222
Новичок
Джуниор
 
Регистрация: 11.06.2012
Сообщений: 1
По умолчанию Поиск с независимым регистром

имеется код программы с регистровым независимым поиском. как сделать так, чтобы программа искала строки с кириллицей?
begin
clrscr;
writeln ('Vvedite psevdonim personazha: ');
readln (poisk1);
der:= length (poisk1);
assign (p, 'C:\FPC\2.6.0\bin\i386-win32\spisok.txt');
reset (p);
while not eof (p) do
begin
read (p, heros);
poisk2:= copy(heros.psevdonim,1,der);
if (upcase(poisk1)=upcase(poisk2)) then
begin
writeln ('Psevdonim: ', heros.psevdonim);
writeln ('God poyavleniya: ', heros.god_p);
writeln ('Nastoyaschee imya: ', heros.n_imya);
writeln ('Poziciya: ', heros.poziciya);
writeln ('Rost: ', heros.rost);
writeln ('Ves: ', heros.ves);
writeln ('Cvet glaz: ', heros.glaza);
writeln ('Cvet volos: ', heros.volosi);
writeln ('Grazhdanstvo: ', heros.grazhdanstvo);
writeln ('Rod zanyatiy: ', heros.rod_zan);
writeln ('Snaryazhenie: ', heros.snaryazhenie);
writeln ('Sposobnosti: ', heros.sposobnosti);
end;
end;
close (p);
readln;
end;
end;
bigbang22222 вне форума Ответить с цитированием
Старый 12.06.2012, 03:19   #2
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от bigbang22222 Посмотреть сообщение
как сделать так, чтобы программа искала строки с кириллицей?
Проще всего - подменить функцию UpCase из модуля System своей. Но вопрос - какую из кириллических кодировок тебе нужно? DOS 866? Win 1251? или может KOI8-R?

Короче, напиши свою функцию вот такого типа..
Код:
function UpCase(s: string): string;
var
  i: integer;
begin
  s:= System.UpCase(s);  // this will take care of English letters
  for i:=1 to Length(s) do
    // here, add Russian code-page-specific char s[i] transfer
end;
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 12.06.2012, 08:04   #3
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
По умолчанию

Цитата:
Сообщение от TinMan Посмотреть сообщение
Проще всего - подменить функцию UpCase из модуля System своей. Но вопрос - какую из кириллических кодировок тебе нужно? DOS 866? Win 1251? или может KOI8-R?

Короче, напиши свою функцию вот такого типа..
Код:
function UpCase(s: string): string;
var
  i: integer;
begin
  s:= System.UpCase(s);  // this will take care of English letters
  for i:=1 to Length(s) do
    // here, add Russian code-page-specific char s[i] transfer
end;

Код:
function UpCaseRUS(s: string): string;
var
  grus,geng,i: integer;
begin
grus:=ord('А')-ord('а');
geng:=ord('A')-ord('a');

  for i:=1 to Length(s) do begin

  if s[i] in ['а'..'я'] then
   s[i]:=chr(ord(s[i])+grus);
  if s[i] in ['a'..'z'] then
   s[i]:=chr(ord(s[i])+geng);
  end;
    // here, add Russian code-page-specific char s[i] transfer
  result:=s;
end;

begin
  Writeln(UpCaseRUS('now ghb пример   '));
end.
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype
denisbrain вне форума Ответить с цитированием
Старый 12.06.2012, 10:05   #4
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от TinMan Посмотреть сообщение
Но вопрос - какую из кириллических кодировок тебе нужно? DOS 866? Win 1251? или может KOI8-R?
utf-8.
-----
s-andriano вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с регистром kyrychenko.mitya PHP 46 22.08.2011 10:24
Функции для работы с регистром FatalLight Общие вопросы C/C++ 0 20.01.2011 21:19
Как работать с регистром 1С через OLE Toreno_87 Помощь студентам 0 22.07.2010 00:27
Найти слово с любым регистром Shouldercannon Общие вопросы Delphi 3 28.06.2009 17:01
проблема с регистром в запросе SQL Abbatik Помощь студентам 2 28.01.2008 00:48