Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.119.130.218] |
|
Сообщ.
#1
,
|
|
|
Если у Вас возникла такая проблема: Вы не можете включить русский язык в Паскале, то Вам нужно сюда %)
Всё зависит от того, какой у Вас Паскаль, и какой Windows. Borland (Turbo) Pascal Стандартными комбинациями переключения раскладки в оболочке этих компиляторов являются: LeftCTRL+LeftShift - английская раскладка RightCTRL+RightShift - русская раскладка Если они не работают, то у вас скорее всего Windows (XP/2000/NT) Для этих разновидностей операционных систем есть такой способ: 1) средствами Windows 2000 Цитата Откройте ключ реестра: HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout\DosKeybCodes Измените значение строковой переменной 00000409 с "us" на "ru" В файле С:\WINNT\System32\autoexec.nt пpописываете следующую стpоку: lh %SystemRoot%\System32\kb16 ru,866 После перезагрузки системы переключение раскладки клавиатуры в DOS-приложениях будет производиться комбинациями Ctrl+Left Shift (английская) и Ctrl+Right Shift (русская). 2) поставьте внешний русификатор, например, проверенный временем RKM v.3.0 Цитата http://www.3dnews.ru/reviews/software/win-xp-faq/index05.htm#1Удобнее всего прописать его в файле c:\windows\sytem32\autoexec.nt (аналогично kb16). Можно взять здесь: http://adsh.ukrweb.net/win2k/soft/rkm.php После того, как вы его выкачаете, распакуйте его куда-нибудь. А после в файле autoexec.nt впишите строчку <путь_к_rkm>\rkm.com Например c:\utils\rkm\rkm.com Раскладка должна переключаться по клавише RightCTRL Если это дело не работает как следует, или вы хотите переключать привычными клавишами, то можно попробовать и другие русификаторы. Например, keyrus (прикреплён к сообщению). С ним действовать аналогично, а переключается - как описано чуть выше TMT Pascal 3.5(9) lite Если у вас TMT Pascal 3.5(9) lite, и в Паскале можно писать русскими, но при выводе на экран появляются каракули. Знайте, так у всех, у кого стоит этот паскаль. Это один из самых известных глюков этого компилятора. Видимо разработчики не думали, что компилятор будет пользоваться успехом у русскоязычных пользователей. Все русские буквы обычно есть в том или ином месте таблицы ASCII. Их место в этой таблице скорее всего зависит от операционной системы. Для всех ОС семейства Windows русские буквы в таблице ASCII (OEM) имеют следующие порядковые номера: Цитата 128-159 - А-Я 160-175 - а-п 224-239 - р-я 240 - Ё 241 - ё Для украинского языка: 242 - Є 243 - є 244 - Ї 245 - ї А в ТМТ при написании программы используется кодировка Windows (ANSI), в которой русские буквы, которые вы вводите имеют другие порядковые номера. Если очень нужно писать на русском в ТМТ паскале есть два способа - универсальный, и одноразовый (если вам нужно сделать только сейчас, и потом уже не нужно будет). Универсальный способ заключается в том, чтобы написать функцию - конвертер, которая конвертирует русские буквы из Windows таблицы в DOS таблицу. Вот она (Украинские буквы тоже конвертируются): function ANSI_to_OEM(s: string): string; var p: byte; begin for p := 1 to length(s) do case s[p] of 'А'..'п': dec (s[p], 64); 'р'..'я': dec (s[p], 16); 'Ё','Є': inc (s[p], 72); 'ё','є': inc (s[p], 57); 'Ї': inc (s[p], 69); 'ї': inc (s[p], 54); end; ANSI_to_OEM := s; end; И пользоваться ей к примеру так: write(ANSI_to_OEM('Привет ВСЕМ. Это ДЕМО прогрАММА: ЁёЄєЇї')); Одноразовый способ - вам нужно разик отконвертировать, и забыть: В ТМТ паскале русский текст будет отображён загогулинами. Но при запуске на экран всё будет выводиться нормально. Прикреплённый файлkeyrus.zip (12.68 Кбайт, скачиваний: 1321) |
Сообщ.
#2
,
|
|
|
"А что сделать, чтобы помощь была русская"(про tp7)
Заменить файл turbo.tph на этот ps Вначале закачивал файл вручную не посмотрев на размер. Вывелось сообщение "Вы не можите закачать такой файл". Писали бы, что размер сильно большой (364 кб), а то до меня только после 2ого раза дошло. |
Сообщ.
#3
,
|
|
|
Есть фенька попроще. Скачиваем програмку http://pascal.sources.ru/incoming/windowsxp.zip., запускаем ее, ищем кнопочку "Русификация DOS". Все должно работать.
|
Сообщ.
#4
,
|
|
|
Перевод из одной кодировки в другую
Иногда мы сталкиваемся с необходимостью перевода из одной кодировки в другую. Например, когда надо сгенерировать программой отчёт, который можно было бы читать в Notepad'e и других приложениях Windows (DOS -> WIN). Или, наоборот, прочитать файл, сохранённый в Notepad'e. Тогда нужно перевести из WIN -> DOS. Примечание: DOS = OEM = CP866 WIN = ANSI = Windows-1251 Перевод осуществляется такими функциями: Function OemToAnsi(S:String):String; { DOS -> WIN } Function AnsiToOem(S:String):String; { WIN -> DOS } Function OemToKoi(S:String):String; { DOS -> KOI8r } Function KoiToOem(S:String):String; В приведённом примере в файл output.txt записываются 2 строки: одна в кодировке DOS (никаких функций не нужно), другая - WIN (функция OemToAnsi) (* Автор программы неизвестен *) uses Objects; const XlatTable: array[0..2] of String[66] = ( {DOS}'ЂЃ‚ѓ„…†‡?‰Љ‹ЊЌЋЏђ‘’“”•–—˜™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬®Їабвгдежзийклмнопрс', {WIN}'АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяЁё', {KOI}'бвчздецъйклмнопртуфхжигюыэшщшьасБВЧЗДЕЦЪЙКЛМНОПРТУФХЖИГЮЫЭЯЩШЬАСеЕ' ); { ID`s of conversion tables } xTblDos=0; xTblWin=1; xTblKoi=2; {--------------------------------------------} function XltStr(S: String; SourTable,DestTable: Integer): String; var I, Idx: Integer; SourceChars, DestChars: PString; begin if not(SourTable in [0..2]) or not(DestTable in [0..2]) then begin XltStr:=S; exit; end; SourceChars:= @XlatTable[SourTable]; DestChars := @XlatTable[DestTable]; for I:= 1 to Length(S) do begin Idx:= Pos(S[I],SourceChars^); if Idx <> 0 then S[I]:= DestChars^[Idx]; end; XltStr:= S; end; {--------------------------------------------} Function OemToAnsi(S:String):String; begin OemToAnsi:=XltStr(S,xTblDos,xTblWin); end; {--------------------------------------------} Function AnsiToOem(S:String):String; begin AnsiToOem:=XltStr(S,xTblWin,xTblDos); end; {--------------------------------------------} Function OemToKoi(S:String):String; begin OemToKoi:=XltStr(S,xTblDos,xTblKoi); end; {--------------------------------------------} Function KoiToOem(S:String):String; begin KoiToOem:=XltStr(S,xTblKoi,xTblDos); end; begin Assign (Output, 'output.txt'); Rewrite (Output); { DOS (OEM) } writeln ('Test ’Ґбв'); { Win (ANSI) } writeln (OemToAnsi('Test ’Ґбв')); Close (Output); end. Прикреплённый файлcyrillic.rar (0.87 Кбайт, скачиваний: 1033) |