Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.144.127.232] |
|
Сообщ.
#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; как сделать, чтобы программа искала названия с кириллицей? |
Сообщ.
#2
,
|
|
|
AnsiUpperCase вместо UpCase
|
Сообщ.
#3
,
|
|
|
паскаль ругается... нет такого индетификатора
|
Сообщ.
#4
,
|
|
|
Паскаль может и ругается, а если используется FPC (да еще и подключить SysUtils в Uses) - то ругаться не будет.
|
Сообщ.
#5
,
|
|
|
подключил... не работает... ошибок не дает, но в поиск ввожу название на русском, не ищет
Добавлено может я не правильно подключаю... в начале своей программы есть модуль crt, рядом с ним я прописал SysUtils... я правильно сделал??? если нет, то как правильно |
Сообщ.
#6
,
|
|
|
Можешь заархивировать и присоединить сюда файл spisok.txt? Важно, в какой кодировке он сохранён.
|
Сообщ.
#7
,
|
|
|
ВОТ ФАЙЛ
Прикреплённый файлspisok.txt (5,5 Кбайт, скачиваний: 629) |
Сообщ.
#8
,
|
|
|
Ну вот, видишь. У тебя файл - в DOS-овской кодировке, CP866, это не ANSI, а OEM-кодировка. ANSI - это виндовая 1251. Тебе надо либо сначала переводить из 866 в, скажем, UTF8, и только потом - в верхний регистр, либо вообще самому писать функцию перевода текста в кодировке 866 в верхний регистр (посмотри в поиске по разделу Паскаль, наверняка такое выкладывалось уже). При использовании Лазаруса можно воспользоваться функцией LConvEncoding.CP866ToUTF8 + LCLProc.UTF8UpperCase
|