1

Konu: Nokta vuruşlu yazıcı da Türkçe karekter

Selamlar;
Aşağıdaki kod ile türkçe karekterlerde sorun yaşıyorum. nasıl çözebilirim.

Sanırım sorun yazıcıya göndermede değil. txt dosyasının windows formatında olmasından kaynaklanıyor.

Oluşan dosyayı winword ile açtığımda MD-DOS mod ile açarsam normal görünüyor.

XFRX ile veya başka bir yöntemle frx dosyamı  türkçe ve msdos formatına nasıl getirebilirim.

Visual Fox Pro
Local loObj, tcExportName,Lctip

If Directory("rfiles")
    tcExportName="Rfiles\"+Sys(3)
    Lctip="
PLAIN"
    If !Empty(tcExportName)
        tcExportName=tcExportName+"
."+m.Lctip
    Endif
    loObj    = Evaluate([XFRX("
XFRX#LISTENER")])
    lnRetVal = loObj.SetParams(m.tcExportName,,.T.,,,,m.Lctip)
    If lnRetVal = 0
        Report Form reports\fatura.frx Object loObj Nopageeject
    Else
        Messagebox("
Hata Kodu:"+Alltrim(Str(lnRetVal)))
    Endif
    loObj.finalize()
    loObj = .Null.
Else
    Wait Window "
Rfiles klasörü açınız."
Endif
Frxtolpt1(m.tcExportName,"
Lpt1")
 
Function Frxtolpt1
Lparameters xfile,xport
If Empty(xfile) Or Empty(xport)
    Return
Endif
*!*     Example usage:
* download id 9957
**xfile="
c:\test.txt"
**xport='MM'
Set Proc To progs\dirprtclass.prg Additive
Set Proc To progs\clsheap.prg Additive
Local xstr
xstr=Filetostr(m.xfile)
*!*    * Note - CLSHeap.PRG needs to be in your SET PROC list, or part of your project
oDirPrt = Createobj('DirectPrintOutput')
With oDirPrt
    .PrinterOpen(m.xport) && Arg can be a Win Printer name, port, or a print queue - works with both MSNetwork
*!*                             && and NetWare queues.  It also works with CAPTUREd or NET USEd printer ports
    If .PrinterIsOpen()
        .DocOpen('KalemSpool')
        .DocWrite(m.xstr)
        .SpoolFile('KalemSpoolFile.TMP', .T.) && Spool file and delete after printed
        .DocClose()
        .PrinterClose()  && close both current job and the printer
        Wait Window 'Yazıcı Yazdırılıyor...' Nowa
    Else
        Wait Window 'Yazıcı Problemi...' Nowa
    Endif
Endwith
Endfunc
Bilmediğin Neyse Yanıldığındır.

2

Re: Nokta vuruşlu yazıcı da Türkçe karekter

çok kolay. bu fonksiyonu kullan:

Visual Fox Pro
LPARAMETERS xfile 

  STRTOFILE(CPCONVERT(CPCURRENT(1) ,CPCURRENT(2),FILETOSTR(m.xfile)),m.xfile)
Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

3

Re: Nokta vuruşlu yazıcı da Türkçe karekter

Selamlar;
Metin abi tabii olarak insan bilince farklı oluyor. Teşekkürler. Son durum aşağıdadır.

Visual Fox Pro
gnerrfile = Fcreate('c:\test2.txt')  && If not create it

If gnerrfile > 0     && Check for error opening file
    =Fwrite(gnerrfile ,'ÜĞİŞÇÖüğişçö')
Endif
=Fclose(gnerrfile )     && Close file
 
xfile='c:\test2.txt'
xfile1='c:\test3.txt'
Strtofile(Cpconvert(857,Cpcurrent(2),Filetostr(m.xfile)),m.xfile1)
Bilmediğin Neyse Yanıldığındır.

4

Re: Nokta vuruşlu yazıcı da Türkçe karekter

bişey değil. orda 857'ye gerek yoktu. dos'ta ki kod sayfası neyse onu yani 857 yi otomatik alıyor zaten. ama windows tercihleri ingilizce ayarlıysa gerekir tabii. o zaman 857,1254 yazarsın.

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com