Вниз
Скачать: CL | DM;

Печать файла в DOS кодировке   Найти похожие ветки 

← →
Steplerr ©   (2006-05-16 15:09) [0]

Исходный файл в досовской cp866 кодировке, мне его нужно распечатать на лазерном принтере. Сам сделать немогу - выходит лажа. Буду премного благодарен, если в ответ получу готовую процедуру, а не ссылку на Canvas.


← →
Amoeba ©   (2006-05-16 15:11) [1]

Перекодировывай текст, выдаваемый на печать из OEM кодировки в ANSI. Лазерный принтер не обязан понимать cp866.


← →
Steplerr ©   (2006-05-16 15:24) [2]

Что прекодировать надо я уже понял! Вопрос - как??? И потом как распечатать (никогда не писал проги использующие принтер) - пробовал Canvas"ом не понравилось (хотя может не так ползовался).


← →
Desdechado ©   (2006-05-16 15:52) [3]

OemToChar
и просто выводить в файл с имененм PRN

или использовать переменную Printer


← →
Steplerr ©   (2006-05-16 16:06) [4]

Припопытке компилировать программу с OEMtoChar Delphi выкидывает ошибку:
[Error] obr.dpr(52): Undeclared identifier: "OEMtoChar"
Думаю что-то нужно прописать в Uses, но в справке Delphi ничего про это не написано.


← →
Elen ©   (2006-05-16 16:09) [5]

Добавь модуль Windows
или напиши windows.OemToChar(...)
А вообще это функция API


← →
Steplerr ©   (2006-05-16 16:35) [6]

При выполнении такой конструкции:
OEMtoChar(PChar(Edit1.Text),PChar(Edit2.Text));

Windows вылетает в ошибку:
Access violation at address 77D5ED16 in module "user32.dll". Write of address 00403D11.

Если не трудно напишите конструкцию для перегона одного файла из OEM в ANSI с возможностю построчной обработки (можно посимвольной).


← →
Desdechado ©   (2006-05-16 16:41) [7]

может, удосужишься почитать справку по OEMtoChar


← →
Steplerr ©   (2006-05-16 16:47) [8]

Очень богата и содержательна справка в Delphi 5 по OEMtoChar;-)

Ну хоть скажите какие переменные использовать (чего в var писать) чтобы не вылетала ошибка.


← →
Desdechado ©   (2006-05-16 16:54) [9]

> Очень богата и содержательна справка
достаточно для того, чтоб понять, что буфер должен быть выделен
lpszSrc - Points to a null-terminated string of characters from the OEM-defined character set.
lpszDst - Points to the buffer for the translated string.


← →
Steplerr ©   (2006-05-16 18:22) [10]

Проблему смены кодировок решил так:

function Dos2Win(p:string):string;
var tmpa,tmpb:PChar;
begin
tmpa:=PChar(p); tmpb:=PChar(p);
OemToChar(tmpa,tmpb);
Dos2Win:=String(tmpb);
end;


Потом построчно обрабатывал файл и выводил на печать через Printer.Canvas.TextOut.

Всем большое спасибо. Программа написана. Тема закрыта.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.026 c
2-1147851226
Ironman83
2006-05-17 11:33
2006.06.04
DBNavigator


15-1146909861
Delphi basic
2006-05-06 14:04
2006.06.04
CASE-средства проектирования БД


1-1146169429
delphi-oracle
2006-04-28 00:23
2006.06.04
Как поворачивать скролл


8-1135323036
thvfrjd
2005-12-23 10:30
2006.06.04
Мерцание Image


9-1130941735
Кирилл_
2005-11-02 17:28
2006.06.04
GLScene




   Наверх