Printing a text file

This forum is for eXpress++ general support.
Message
Author
User avatar
Eugene Lutsenko
Posts: 1649
Joined: Sat Feb 04, 2012 2:23 am
Location: Russia, Southern federal district, city of Krasnodar
Contact:

Printing a text file

#1 Post by Eugene Lutsenko »

I want to print the output in the form of a text file DOS-TXT.
The design of the CLIPPER:

SET PRINTER TO ("Res_naz.txt")
SET DEVICE TO PRINTER

why something does not work

User avatar
PedroAlex
Posts: 235
Joined: Tue Feb 09, 2010 3:06 am

Re: Printing a text file

#2 Post by PedroAlex »

Eugene.

set device to printer
set printer on
set printer to ("Res_naz.txt")
set console off

...Print commands

Set device to screen
Set printer off
Set printer to
Set console on


This works fine for me..

Pedro
Pedro Alexandre

User avatar
Eugene Lutsenko
Posts: 1649
Joined: Sat Feb 04, 2012 2:23 am
Location: Russia, Southern federal district, city of Krasnodar
Contact:

Re: Printing a text file

#3 Post by Eugene Lutsenko »

Thank you, Pedro!

A little out of the way before, but it looks like. Will use.

User avatar
Eugene Lutsenko
Posts: 1649
Joined: Sat Feb 04, 2012 2:23 am
Location: Russia, Southern federal district, city of Krasnodar
Contact:

Re: Printing a text file

#4 Post by Eugene Lutsenko »

Hi, Pedro!
I have it does not work:

Code: Select all

FUNCTION Main()

*** Pedro ***************
set device to printer
set printer on
set printer to ("Res_naz.txt")
set console off

@1, 1 SAY "Hello World!"

Set device to screen
Set printer off
Set printer to
Set console on

RETURN nil
It turns an empty file

User avatar
PedroAlex
Posts: 235
Joined: Tue Feb 09, 2010 3:06 am

Re: Printing a text file

#5 Post by PedroAlex »

Is Very strange ..
What version of windows?
What version of xbase?
Pedro Alexandre

User avatar
Eugene Lutsenko
Posts: 1649
Joined: Sat Feb 04, 2012 2:23 am
Location: Russia, Southern federal district, city of Krasnodar
Contact:

Re: Printing a text file

#6 Post by Eugene Lutsenko »

comercial wrote:Is Very strange ..
What version of windows?
What version of xbase?
W7, 1.9

skiman
Posts: 1199
Joined: Thu Jan 28, 2010 1:22 am
Location: Sijsele, Belgium
Contact:

Re: Printing a text file

#7 Post by skiman »

Hi,

Instead of
@1, 1 SAY "Hello World!"

try with
? "Hello World!"
Best regards,

Chris.
www.aboservice.be

User avatar
Eugene Lutsenko
Posts: 1649
Joined: Sat Feb 04, 2012 2:23 am
Location: Russia, Southern federal district, city of Krasnodar
Contact:

Re: Printing a text file

#8 Post by Eugene Lutsenko »

skiman wrote:Hi,

Instead of
@1, 1 SAY "Hello World!"

try with
? "Hello World!"
It happened. But you want to display on the position in the string. I have tried dcsay, but also get an empty file

skiman
Posts: 1199
Joined: Thu Jan 28, 2010 1:22 am
Location: Sijsele, Belgium
Contact:

Re: Printing a text file

#9 Post by skiman »

HI,

You can't print on a position in a TXT file. It is a stream of characters, it has no 'canvas' or 'space' where you can print and position your text.

You can print characters and spaces. if you want a new line you must add it yourself with a CRLF.
Best regards,

Chris.
www.aboservice.be

User avatar
Eugene Lutsenko
Posts: 1649
Joined: Sat Feb 04, 2012 2:23 am
Location: Russia, Southern federal district, city of Krasnodar
Contact:

Re: Printing a text file

#10 Post by Eugene Lutsenko »

Now I understand what to do to get what you need. Replace "SAY" on "?" аnd all.
But here is an example of the old program on CLIIPPER. Line and formed without position entirely.
Everything worked perfectly:

Code: Select all

N_Klass   = RECCOUNT()
N_Field   = FCOUNT()
PRIVATE Ar_field[N_Field]   // Значения строки: "Сумма по классам:"
AFILL(Ar_field,0)           // Сначала 0, чтобы посчитать сумму, а потом делим на N_Klass

DBGOTOP()
DO WHILE .NOT. EOF()
   SELECT Klas_res
   FOR j=3 TO N_Field
       Ar_field[j] = Ar_field[j] + FIELDGET(j)
   NEXT
   DBSKIP(1)
ENDDO
APPEND BLANK
REPLACE Name WITH "Сумма по классам:"
FOR j=3 TO N_Field
    FIELDPUT(j, Ar_field[j])
NEXT
APPEND BLANK
REPLACE Name WITH "Среднее на класс:"
FOR j=3 TO N_Field
    FIELDPUT(j, Ar_field[j]/N_Klass)
NEXT

SELECT Rasp_naz
SET ORDER TO 1
DBGOTOP()

M_KodKl_Old = -9999

SET PRINTER TO ("Res_naz.txt")
SET DEVICE TO PRINTER

Str = 0
@Str++, 0 SAY "РЕЗУЛЬТАТЫ НАЗНАЧЕНИЙ ОБЪЕКТОВ РАСПОЗНАВАЕМОЙ ВЫБОРКИ НА КЛАССЫ"
@Str  , 0 SAY DATE()
@Str  ,10 SAY TIME()
@Str++,63 SAY "г.Краснодар"
Ln = 74

@Str++, 0 SAY REPLICATE("=",Ln)
@Str  , 0 SAY "|ХАРАКТЕРИСТИКИ ЭФФЕКТИВНОСТИ НАЗНАЧЕНИЯ:";@Str++,Ln-1 SAY "|"
@Str  , 0 SAY "|СУММА ПО ВСЕМ КЛАССАМ:";@Str++,Ln-1 SAY "|"
@Str  , 0 SAY "|Начальный ресурс: "+ALLTRIM(STR(Ar_field[3],17))+;
              ", остаток: "+ALLTRIM(STR(Ar_field[4],17));@Str++,Ln-1 SAY "|"
@Str  , 0 SAY "|Суммарное сходство:................................"+ALLTRIM(STR(Ar_field[6],17,7));@Str++,Ln-1 SAY "|"
@Str  , 0 SAY "|Фактические суммарные затраты:....................."+ALLTRIM(STR(Ar_field[7],17))  ;@Str++,Ln-1 SAY "|"
@Str  , 0 SAY "|Средневзвешенное удельное сходство:................"+ALLTRIM(STR(Ar_field[8],17,7));@Str++,Ln-1 SAY "|"
@Str  , 0 SAY "|Среднее на объект суммарное сходство:.............."+ALLTRIM(STR(Ar_field[9],17,7));@Str++,Ln-1 SAY "|"
@Str  , 0 SAY "|Средние на объект фактические суммарные затраты:..."+ALLTRIM(STR(Ar_field[10],17)) ;@Str++,Ln-1 SAY "|"
@Str  , 0 SAY "|Всего назначено:..................................."+ALLTRIM(STR(Ar_field[5],17))+" объекта(ов)";@Str++,Ln-1 SAY "|"
@Str++, 0 SAY REPLICATE("~",Ln)
@Str  , 0 SAY "|СРЕДНЕЕ НА КЛАСС:";@Str++,Ln-1 SAY "|"
@Str  , 0 SAY "|Начальный ресурс: "+ALLTRIM(STR(Ar_field[3]/N_Klass,17,3))+;
              ", остаток: "+ALLTRIM(STR(Ar_field[4]/N_Klass,17,3));@Str++,Ln-1 SAY "|"
@Str  , 0 SAY "|Суммарное сходство:................................"+ALLTRIM(STR(Ar_field[6] /N_Klass,17,7));@Str++,Ln-1 SAY "|"
@Str  , 0 SAY "|Фактические суммарные затраты:....................."+ALLTRIM(STR(Ar_field[7] /N_Klass,17,3));@Str++,Ln-1 SAY "|"
@Str  , 0 SAY "|Средневзвешенное удельное сходство:................"+ALLTRIM(STR(Ar_field[8] /N_Klass,17,7));@Str++,Ln-1 SAY "|"
@Str  , 0 SAY "|Среднее на объект суммарное сходство:.............."+ALLTRIM(STR(Ar_field[9] /N_Klass,17,7));@Str++,Ln-1 SAY "|"
@Str  , 0 SAY "|Средние на объект фактические суммарные затраты:..."+ALLTRIM(STR(Ar_field[10]/N_Klass,17,3));@Str++,Ln-1 SAY "|"
@Str  , 0 SAY "|В среднем на класс назначено:......................"+ALLTRIM(STR(Ar_field[5] /N_Klass,17,3))+" объекта(ов)";@Str++,Ln-1 SAY "|"

Num_pp = 0
DO WHILE .NOT. EOF()

   M_KodObj = Kod_RObj
   M_KodKlf = Kod_klas
   M_UrSxod = Ur_Sxod
   M_Zatr   = Zatrati
   M_UdSxod = Ud_Sxod
   M_KodKln = Klas_naz

   ** Печать информации по новому классу из БД Klas_res.dbf
   IF M_KodKl_Old <> M_KodKln
      Num_pp = 0
      M_KodKl_Old = Klas_naz
      SELECT Klas_res;SET ORDER TO 1;T=DBSEEK(STR(M_KodKln,4))
      IF T
         M_NameKln = Name
         @Str++, 0 SAY REPLICATE("=",Ln)
         @Str  , 0 SAY "|КЛАСС НАЗНАЧЕНИЯ:";@Str++,Ln-1 SAY "|"
         @Str  , 0 SAY "|Код: "+ALLTRIM(STR(M_KodKln,4))+;
                       ", наименование: "+ALLTRIM(M_NameKln)+;
                       ", начальный ресурс: "+ALLTRIM(STR(Resource,13))+;
                       ", остаток: "+ALLTRIM(STR(Ostatok_res,13));@Str++,Ln-1 SAY "|"
         @Str  , 0 SAY "|Суммарное сходство:................................"+ALLTRIM(STR(Sum_UrSxod,17,7));@Str++,Ln-1 SAY "|"
         @Str  , 0 SAY "|Фактические суммарные затраты:....................."+ALLTRIM(STR(Sum_Zatrat,17))  ;@Str++,Ln-1 SAY "|"
         @Str  , 0 SAY "|Средневзвешенное удельное сходство:................"+ALLTRIM(STR(Svz_UdSxod,17,7));@Str++,Ln-1 SAY "|"
         @Str  , 0 SAY "|Среднее на объект суммарное сходство:.............."+ALLTRIM(STR(Avr_UrSxod,17,7));@Str++,Ln-1 SAY "|"
         @Str  , 0 SAY "|Средние на объект фактические суммарные затраты:..."+ALLTRIM(STR(Avr_Zatrat,17,3));@Str++,Ln-1 SAY "|"
         @Str  , 0 SAY "|Всего на данный класс назначено:..................."+ALLTRIM(STR(Kol_obj,17))+" объекта(ов):";@Str++,Ln-1 SAY "|"
         @Str++, 0 SAY REPLICATE("~",Ln)
         @Str++, 0 SAY "| Номер |  Код  | Наименование  |Ур-нь сходст| Затраты на  |Удельное сход|"
         @Str++, 0 SAY "|по пор.|объекта|   объекта     |об.с классом|назн. объекта|об. с классом|"
*                       | 12345 | 12345 |123456789012345|1234.6789012|1234567890123|12345.7890123|
         @Str++, 0 SAY REPLICATE("~",Ln)
      ENDIF
   ENDIF
   SELECT RObj_zat;SET ORDER TO 1;T=DBSEEK(STR(M_KodObj,5))
   IF T
      M_NameObj = Name
      @Str++, 0 SAY "|"+" "+STR(++Num_pp,5)+" "+;
                    "|"+" "+STR(M_KodObj,5)+" "+;
                    "|"+SUBSTR(M_NameObj,1,15)+;
                    "|"+STR(M_UrSxod,12,7)+;
                    "|"+STR(M_Zatr,13)+;
                    "|"+STR(M_UdSxod,13,7)+"|"
   ENDIF
   SELECT Rasp_naz
   DBSKIP(1)
ENDDO
@Str++, 0 SAY REPLICATE("=",Ln)

CLOSE ALL
USE RObj_zat INDEX Kodzrobj EXCLUSIVE NEW
USE RObj_naz INDEX Kodnrobj EXCLUSIVE NEW
Ln = 47
@Str++, 0 SAY REPLICATE("=",Ln)
@Str  , 0 SAY "|СПИСОК НЕНАЗНАЧЕННЫХ ОБЪЕКТОВ:";@Str++,Ln-1 SAY "|"
@Str++, 0 SAY REPLICATE("~",Ln)
@Str++, 0 SAY "| Номер |  Код  | Наименование  | Затраты на  |"
@Str++, 0 SAY "|по пор.|объекта|   объекта     |назн. объекта|"
*              | 12345 | 12345 |123456789012345|1234567890123|
@Str++, 0 SAY REPLICATE("~",Ln)
Num_pp = 0
SELECT RObj_zat
SET ORDER TO 1
DBGOTOP()
DO WHILE .NOT. EOF()
   M_Kod  = Kod
   M_Name = Name
   M_Zatr = Zatrati
   SELECT RObj_naz;SET ORDER TO 1;T=DBSEEK(STR(M_Kod,5))
   IF T
   ELSE
      @Str++, 0 SAY "|"+" "+STR(++Num_pp,5)+" "+;
                    "|"+" "+STR(M_Kod,5)+" "+;
                    "|"+SUBSTR(M_Name,1,15)+;
                    "|"+STR(M_Zatr,13)+"|"
   ENDIF
   SELECT RObj_zat
   DBSKIP(1)
ENDDO
@Str++, 0 SAY REPLICATE("=",Ln)
@Str++, 0 SAY "Универсальная когнитивная аналитическая система"
@Str++, 0 SAY "НПП *ЭЙДОС*"
CLOSE ALL
SET PRINTER TO
SET DEVICE TO SCREEN

@22,0 SAY REPLICATE("█",80) COLOR "gb+/N"
@23,0 SAY REPLICATE("█",80) COLOR "gb+/N"
@24,0 SAY REPLICATE("█",80) COLOR "gb+/N"
Mess = " ПРОЦЕСС ЗАВЕРШЕН УСПЕШНО !!!"
@22,40-LEN(Mess)/2 SAY Mess COLOR "rg+/rb"
Mess = "Результаты назначений в файле: Res_naz.txt и БД: Rasp_naz.dbf и Klas_res.dbf"
@24,40-LEN(Mess)/2 SAY Mess COLOR "rg+/rb"
INKEY(0)
INKEY(0)

SHOWTIME()
RESTSCREEN(0,0,24,79,scr23)
[/size]

Post Reply