Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Pascal, преобразование ANSI->Unicode


Автор: GeraldIstar 21.11.2012, 15:33
Задача такая: есть входной текстовый файл, нужно изменить кодировку на unicode и записать в выходной. Не могу сообразить, как записывать в unicode. Младший и старший байт получаю делением на цело и остатком от деления кода символа в юникоде, но если записывать как char(старший_байт) а затем char(младший_байт) получается не то, что надо. Может я где-то чего-то упустил, не могу сообразить.
Ни каких сторонних готовых библиотек, надо реализовать самому.

Автор: bems 21.11.2012, 15:44
версия дельфи какая? что такое в твоём понимании юникод?

Автор: GeraldIstar 21.11.2012, 16:53
Версия дельфи - турбо паскаль. Верися 7.1 кажеться, если это важно smile Юникод конечно понятие широкое, но так как точно ничего не указано, то скорее всего USC-2. Хотя я бы и в UTF-8 бы попробовал. 

Автор: bems 21.11.2012, 17:54
ну если в старом досовском паскакале, то не вижу другого способа, как хранить в программе массив array [char] of word где индекс это анси-символ а элемент - код в UCS2. это для одной конкретной кодовой страницы ansi

Автор: GeraldIstar 21.11.2012, 18:49
А писать в файл как? read(file,var) только же для char-var. Мне же самая главная проблема в текстовый файл вывести.

Автор: bems 21.11.2012, 18:54
пиши в другой файл, объявленный как file of word. если надо, потом перезаписывай старый новым
сразу читать и писать не получится, потому что UCS2 занимает в два раза больше и запись будет обгонять чтение

Автор: northener 22.11.2012, 00:55
Цитата(GeraldIstar @  21.11.2012,  15:33 Найти цитируемый пост)
Задача такая: есть входной текстовый файл, нужно изменить кодировку на unicode и записать в выходной.

И эту задачу нужно решить непременно на турбо-паскале?
Автору. Где вы учитесь?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)