|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Проблема с кодировкой при записи файла
Добрый день!
Возникла проблема с кодировкой файла, записанного с помошью консольного приложения. Есть массив записей, который заполняется в консольном приложении и записывается в файл .txt соответственно после закрытия он открывается для чтения, и в консольное приложение выводится содержимое файла, проблема в том, что кирилица в файле отображается некорректно, что происходит из за несовпадения кодировок и соответственно в приложении тоже выдаёт некоректные символы. как решить эту проблему ? |
#2
|
|||
|
|||
AnsiToOEM и OEMToAnsi спасут отца русской демократии?
|
#3
|
|||
|
|||
А можно пример использования этих функций или обьяснить последовательность считывания/записи с их помощью. А то отец русской демократии пока с малым успехом бьётся над этой проблемой
делаю так: Код:
program Project1; {$APPTYPE CONSOLE} uses SysUtils,windows; type Igrushka=record Name:string[10]; Cena:byte; Ogran:string[10]; end; var F:file of Igrushka; assort:array [1..10] of Igrushka; i:integer; T_N,x:string; g:text; function rus(const s: string): string; begin result:=s; ansitooem(pchar(s), pchar(result)); end; function rus_2(const s: string): string; begin result:=s; oemtoansi(pchar(s), pchar(result)); end; begin assign(f,'c:\assort777.txt'); rewrite(f); for i:=1 to 1 do begin write(rus('Имя игрушки :')); readln(rus_2(assort[i].Name)); write(rus('Цена игрушки :')); readln(assort[i].Cena); write(rus('Возрастные ограничения на использование игрушки :')); readln(assort[i].Ogran); write(f,assort[i]); writeln('----------------'); end; // writeln('Привет, ФриМен!'); try { TODO -oUser -cConsole Main : Insert code here } except on E:Exception do Writeln(E.Classname, ': ', E.Message); end; readln; end. в строке Код:
readln(rus_2(assort[i].Name)); возникает ошибка [DCC Error] Project1.dpr(57): E2064 Left side cannot be assigned to Что делаю не так ? Последний раз редактировалось kaizer131, 10.07.2009 в 09:01. |
#4
|
|||
|
|||
Цитата:
readln ожидает переменную, а rus_2 - функция Точнее было бы что-то вроде этого : Код:
Var Sx : string; ... ... readln(Sx); assort[i].Name:=rus_2(Sx); |
#5
|
|||
|
|||
Спасибо за помощь ! теперь всё нормально
|