Символы псевдографики - Assembler
Формулировка задачи:
Здравствуйте!
Не могу заменить символы псевдографики на заглавные кириллицы.
Символы псевдографики находятся в текстовом файле(кодировка unicode, думаю, в этом как раз таки и проблема).
Читаю в строку - "buf", затем преобразовываю в кириллицу.
Для проверки заменял строчные символы кириллицы на заглавные, строчные латиницы на заглавные, все прекрасно заменялось.
А символы псевдографики не выходит
Думаю, что символы псевдографики не могут корректно прочитаться из файла в строку, поэтому и не получается преобразовать в кириллицу.
Буду очень рад любой подсказке.
Код:
http://www.cyberforum.ru/attachment....1&d=1507395768
lea bx,buf ; buf - строка в которой, по идее, хранятся символы псевдограф. из файла mov cx,30 for: mov al,[bx] sub al,30h mov [bx],al inc bx loop for
Решение задачи: «Символы псевдографики»
textual
Листинг программы
program test; var f, g: file of char; i: char; begin Assign(f, 'test.txt'); rewrite(f); for i := #$B0 to #$CF do Write(f, i); Close(f); Assign(f, 'test.txt'); reset(f); Assign(g, 'test_processed.txt'); rewrite(g); while not EOF(f) do begin Read(f, i); Dec(i, $30); Write(g, i); end; Close(g); Close(f); end.
Объяснение кода листинга программы
В этом коде используется язык программирования Assembler.
- Создаются две переменные: файл
f
и символi
. - Файл
f
открывается на чтение и запись в файлtest.txt
. - В цикле от #$B0 до #$CF (это значения от 41 до 95 в десятичной системе счисления) в файл
f
записываются символы псевдографики. - Файл
f
закрывается. - Файл
f
открывается на чтение в файлtest.txt
. - Создаётся переменная
g
, которая будет использоваться для записи обработанных данных в файлtest_processed.txt
. - Файл
g
открывается на запись. - В цикле до тех пор, пока не достигнут конец файла
f
, считывается символ из файлаf
и уменьшается на 30 (вероятно, это необходимо для получения нужного значения символа). - Полученное значение записывается в файл
g
. - Файл
g
закрывается. - Файл
f
закрывается.