IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

 
 Ответить  Открыть новую тему 
> За пределами ASCII
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 168
Пол: Мужской

Репутация: -  3  +


Привет. Как я понял тип char работает с символами из ASCII, но там нету русских букв, китайский и.т
А вот мне надо составить програму:
Например есть текст. документ из русских букв и надо транслировать его в англ. Это вообще возможно?
например : русский - russkii
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






В char есть русские буквы.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 168
Пол: Мужской

Репутация: -  3  +


Цитата(-TarasBer- @ 18.03.2011 18:07) *

В char есть русские буквы.

когда их читаю из документов то их показывают какими то непонятными символами.
Мне надо читать из файла всё как есть и транслировать в другой язык, в моем случае в румынском, где так же есть символы типа 'ă', 'î' 'ş', и.т Можно как нибудь сделал что-бы паскаль их распозновал?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Паскаль работает в ДОС-кодировке, документ сохранён в виндовой кодировке.
Поэтому такая фигня.
Могу посоветовать набить код в программе, поддерживающей виндовую кодировку.
код такого плана:

case c[i] of
'А' : res := res + 'A';
'Б' : res := res + 'B';
'В' : res := res + 'V';
end;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Бывалый
***

Группа: Пользователи
Сообщений: 168
Пол: Мужской

Репутация: -  3  +


Цитата(-TarasBer- @ 18.03.2011 20:28) *

Паскаль работает в ДОС-кодировке, документ сохранён в виндовой кодировке.
Поэтому такая фигня.
Могу посоветовать набить код в программе, поддерживающей виндовую кодировку.
код такого плана:

case c[i] of
'А' : res := res + 'A';
'Б' : res := res + 'B';
'В' : res := res + 'V';
end;


я пока тока язык Паскаль, так что...
А Паскаль АBC или FPC поддерживают виндовую кодировку?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






> А Паскаль АBC

Да

> или FPC

Не знаю. У него среда же с закосом под Турбо, так что хз, какая там кодировка. Да проверь, тупо в блокноте вбей русский текст, в ФПЦ открой и посмотри, что будет.

> поддерживают виндовую кодировку?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Бывалый
***

Группа: Пользователи
Сообщений: 168
Пол: Мужской

Репутация: -  3  +


Цитата(-TarasBer- @ 18.03.2011 21:43) *

> А Паскаль АBC

Да

> или FPC

Не знаю. У него среда же с закосом под Турбо, так что хз, какая там кодировка. Да проверь, тупо в блокноте вбей русский текст, в ФПЦ открой и посмотри, что будет.

> поддерживают виндовую кодировку?


спасибо за помощь. АВС уже видит русский текст а вот символы типа 'ă' 'ş' 'ţ' видет как '?'.
Если он поддерживает виндовую кодировку, значит должен быть способ это исправить?

Сообщение отредактировано: DarkWishmaster -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Вообще-то стандартный ASCII - семибитная телеграфная кодировка и действительно не содержит кириллицы.
Но т.к. принято, что в байте 8 битов, а не 7, широкое распространение получила т.н. расширенная ASCII, в которой кроме 128 стандартных символов ASCII присутствует еще 128. Но т.к. для разных языков потребный набор символов различается, существует масса различных вариантов расширенной таблицы ASCII, называемых кодировками.
В этом случае прочитать текст, не зная, в какой кодовой странице он закодирован, невозможно. Отсюда и "кракозябры".
Собственно, даже вариантов кодировки кириллицы существует не менее 6 (1251-Windows, 866-DOS, ГОСТ, КОИ-8, 8859-5 и MAC).
Решением проблемы разнообразных кодировок является Юникод, имеющий две разновидности:
UTF-16 - двухбайтовая кодировка,
UTF-8 - кодировка с переменным количеством байт на символ. В частности, символы первой половины ASCII - однобайтовые, а символы кириллицы - двухбайтовые.

Никаких препятствий для обработки любой кодировки (включая Юникод) в Паскале - нет. Единственное, достаточно трудоемко их адекватная отображение. Кроме того, можно воспользоваться средствами, скажем, WinAPI.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 8.05.2024 15:06
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name