Imprimarea unui fișier în codificare dos

Imprimarea unui fișier în codare DOS

Fișierul sursă din codarea cp866 DOS, trebuie să-l tipăresc pe o imprimantă laser. Nu pot să o fac singur - este o prostie. Voi fi foarte recunoscător dacă primesc o procedură pregătită ca răspuns, și nu o legătură cu Canvas.







Reconectați textul care este imprimat de la codarea OEM la ANSI. O imprimantă laser nu este obligată să înțeleagă cp866.

Am înțeles deja ce precocode am nevoie! Întrebarea este cum. Și apoi cum să imprimați (niciodată nu a scris un program folosind o imprimantă) - Am încercat Canvas "Nu mi-a plăcut (deși nu poate fi atât de polzovalis).

OemToChar
și pur și simplu ieșiți într-un fișier cu numele PRN

sau utilizați imprimanta variabilă

Încercarea de a compila un program cu OEMtoChar Delphi aruncă o eroare:
[Error] obr.dpr (52): Identificator nedeclarat: "OEMtoChar"
Cred că ceva trebuie înregistrat în Utilizări, dar în ajutorul lui Delphi nu este scris nimic despre acest lucru.







Adăugați modulul Windows
sau scrie ferestre.OemToChar (.)
În general, aceasta este o funcție API

La realizarea acestei construcții:
OEMtoChar (PChar (Edit1.Text), PChar (Edit2.Text));

Windows se blochează în eroare:
Infracțiunea de acces la adresa 77D5ED16 din modulul "user32.dll". Scrieți adresa 00403D11.

Dacă nu este dificil să scrieți o construcție pentru a transfera un fișier de la OEM la ANSI cu opțiunea de prelucrare a liniei (puteți persona după caracter).

puteți, veți găsi timp pentru a citi ancheta despre OEMtoChar

Referință foarte bogată și informativă în Delphi 5 pe OEMtoChar ;-)

Ei bine, cel puțin spune-mi ce variabile de utilizat (ce să scrie în var), astfel încât eroarea să nu se prăbușească.

> Referință foarte bogată și informativă
suficient pentru a înțelege că tamponul ar trebui alocat
lpszSrc - Indică un șir de caractere terminat cu null din setul de caractere definit de OEM.
lpszDst - Puncte la tampon pentru șirul tradus.

Problema schimbării codificărilor a fost următoarea:

funcția Dos2Win (p: șir): șir;
var tmpa, tmpb: PChar;
începe
tmpa: = PChar (p); tmpb: = PChar (p);
OemToChar (tmpa, tmpb);
Dos2Win: = String (tmpb);
se încheie;

Apoi a procesat linia de fișier după linie și a imprimat-o prin Printer.Canvas.TextOut.

Vă mulțumesc foarte mult. Programul este scris. Subiectul este închis.







Articole similare

Trimiteți-le prietenilor: