Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];

Вниз

Печать файла в 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 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.037 c
2-1146918105
Квэнди
2006-05-06 16:21
2006.06.04
Ошибка при работе с Mysql 5


2-1147703831
pav74
2006-05-15 18:37
2006.06.04
как работать с битами отдельно из одного байта?


2-1147807881
Mr tray
2006-05-16 23:31
2006.06.04
позиция каретки имея только хендл поля ввода


2-1147843993
roman_ln
2006-05-17 09:33
2006.06.04
Turbo Pascal 7.0 редактор


10-1120207226
Руслан
2005-07-01 12:40
2006.06.04
Открытие нового окна IE при использовании TWebBrowser.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский