ПредишенСледващото

Отпечатване на файл в DOS набор от символи

Файлът източник в ДОС cp866 това кодиране за мен да бъде отпечатан на лазерен принтер. Арго се направи - от глупости. Ще бъда много благодарен, ако в отговор на процедурата, за да стане готов, а не позоваване на платното.

Perekodirovyvay текст, издаден от отпечатването на кодовата страница, OEM на ANSI. А лазерен принтер не е необходимо да се разбере cp866.

Каква трябва да бъде prekodirovat аз вече знаех! Въпрос - как. И после как да отпечатате (никога не е написал програма, с помощта на принтера) - опитах Canvas "не ри харесва (въпреки че може да не polzovalsya).

OemToChar
и просто изход към файл PRN imenenm на

или използвате променлива Printer

Издадена при съставянето на програмата OEMtoChar Delphi хвърля грешка:
[Грешка] obr.dpr (52): Недекларираният идентификатор: "OEMtoChar"
Мисля, че нещо трябва да се регистрирате в употреба, но за да помогне Delphi нищо за това не се казва.

Добави Windows модул
или напишете windows.OemToChar (.)
Като цяло, тази функция API

При извършване на такава конструкция:
OEMtoChar (PChar (Edit1.Text), PChar (Edit2.Text));

Windows катастрофи в грешка:
нарушение на достъпа на адрес 77D5ED16 в модул "user32.dll". Напишете на адрес 00403D11.

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

може би са си направили труда да проверите Често задавани въпроси като OEMtoChar

Много богат и смислен информация за Delphi 5 OEMtoChar ;-)

Е, поне се каже кои променливи, които да се използват (което Var в писмена форма), не да лети в грешка.

> А много богат и смислен помощ
достатъчно, за да се разбере, че буферът трябва да бъде разпределена
lpszSrc - сочи към нула-прекратено низ от знаци, от OEM дефиниран набор от символи.
lpszDst - точки на буфера за преведените низ.

Проблем променящите кодировки решиха, както следва:

функционира Dos2Win (р: низ): низ;
Var tmpa, tmpb: PChar;
започвам
tmpa: = PChar (р); tmpb: = PChar (р);
OemToChar (tmpa, tmpb);
Dos2Win: = String (tmpb);
приключи;

Тогава обработва линия на файла по ред и печат чрез Printer.Canvas.TextOut.

Благодаря на всички ви. Програмата е написана. Заключен.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!