home *** CD-ROM | disk | FTP | other *** search
/ Programming Tool Box / SIMS_2.iso / bp_1_94 / vbdos / print.frm < prev   
Text File  |  1993-11-02  |  8KB  |  374 lines

  1. Version 1.00
  2. BEGIN Form MainForm
  3.     AutoRedraw   = 0
  4.     BackColor    = QBColor(7)
  5.     BorderStyle  = 1
  6.     Caption      = "Source Lister Demo"
  7.     ControlBox   = 0
  8.     Enabled      = -1
  9.     ForeColor    = QBColor(0)
  10.     Height       = Char(12)
  11.     Left         = Char(15)
  12.     MaxButton    = 0
  13.     MinButton    = 0
  14.     MousePointer = 0
  15.     Tag          = ""
  16.     Top          = Char(3)
  17.     Visible      = -1
  18.     Width        = Char(55)
  19.     WindowState  = 0
  20.     BEGIN Label Bezeichnung1
  21.         Alignment    = 0
  22.         AutoSize     = 0
  23.         BackColor    = QBColor(7)
  24.         BorderStyle  = 0
  25.         Caption      = "&Dateiname:"
  26.         DragMode     = 0
  27.         Enabled      = -1
  28.         ForeColor    = QBColor(0)
  29.         Height       = Char(1)
  30.         Left         = Char(2)
  31.         MousePointer = 0
  32.         TabIndex     = 0
  33.         Tag          = ""
  34.         Top          = Char(1)
  35.         Visible      = -1
  36.         Width        = Char(11)
  37.     END
  38.     BEGIN TextBox DateiName
  39.         BackColor    = QBColor(7)
  40.         BorderStyle  = 1
  41.         DragMode     = 0
  42.         Enabled      = -1
  43.         ForeColor    = QBColor(0)
  44.         Height       = Char(1)
  45.         Left         = Char(14)
  46.         MousePointer = 0
  47.         MultiLine    = 0
  48.         ScrollBars   = 0
  49.         TabIndex     = 1
  50.         TabStop      = -1
  51.         Tag          = ""
  52.         Text         = ""
  53.         Top          = Char(1)
  54.         Visible      = -1
  55.         Width        = Char(37)
  56.     END
  57.     BEGIN Label Bezeichnung2
  58.         Alignment    = 0
  59.         AutoSize     = 0
  60.         BackColor    = QBColor(7)
  61.         BorderStyle  = 0
  62.         Caption      = "&Kopfzeile:"
  63.         DragMode     = 0
  64.         Enabled      = -1
  65.         ForeColor    = QBColor(0)
  66.         Height       = Char(1)
  67.         Left         = Char(2)
  68.         MousePointer = 0
  69.         TabIndex     = 2
  70.         Tag          = ""
  71.         Top          = Char(3)
  72.         Visible      = -1
  73.         Width        = Char(11)
  74.     END
  75.     BEGIN TextBox KopfZeile
  76.         BackColor    = QBColor(7)
  77.         BorderStyle  = 1
  78.         DragMode     = 0
  79.         Enabled      = -1
  80.         ForeColor    = QBColor(0)
  81.         Height       = Char(1)
  82.         Left         = Char(14)
  83.         MousePointer = 0
  84.         MultiLine    = 0
  85.         ScrollBars   = 0
  86.         TabIndex     = 3
  87.         TabStop      = -1
  88.         Tag          = ""
  89.         Text         = ""
  90.         Top          = Char(3)
  91.         Visible      = -1
  92.         Width        = Char(37)
  93.     END
  94.     BEGIN Label Bezeichnung3
  95.         Alignment    = 0
  96.         AutoSize     = 0
  97.         BackColor    = QBColor(7)
  98.         BorderStyle  = 0
  99.         Caption      = "Druck &nach:"
  100.         DragMode     = 0
  101.         Enabled      = -1
  102.         ForeColor    = QBColor(0)
  103.         Height       = Char(1)
  104.         Left         = Char(2)
  105.         MousePointer = 0
  106.         TabIndex     = 4
  107.         Tag          = ""
  108.         Top          = Char(5)
  109.         Visible      = -1
  110.         Width        = Char(11)
  111.     END
  112.     BEGIN CommandButton Drucken
  113.         BackColor    = QBColor(7)
  114.         Cancel       = 0
  115.         Caption      = "&Drucken"
  116.         Default      = 0
  117.         DragMode     = 0
  118.         Enabled      = -1
  119.         Height       = Char(3)
  120.         Left         = Char(40)
  121.         MousePointer = 0
  122.         TabIndex     = 8
  123.         TabStop      = -1
  124.         Tag          = ""
  125.         Top          = Char(7)
  126.         Visible      = -1
  127.         Width        = Char(11)
  128.     END
  129.     BEGIN CommandButton Abbruch
  130.         BackColor    = QBColor(7)
  131.         Cancel       = -1
  132.         Caption      = "&Abbruch"
  133.         Default      = 0
  134.         DragMode     = 0
  135.         Enabled      = -1
  136.         Height       = Char(3)
  137.         Left         = Char(28)
  138.         MousePointer = 0
  139.         TabIndex     = 9
  140.         TabStop      = -1
  141.         Tag          = ""
  142.         Top          = Char(7)
  143.         Visible      = -1
  144.         Width        = Char(11)
  145.     END
  146.     BEGIN Label Bezeichnung4
  147.         Alignment    = 0
  148.         AutoSize     = 0
  149.         BackColor    = QBColor(7)
  150.         BorderStyle  = 0
  151.         Caption      = "Zeilen/&Seite:"
  152.         DragMode     = 0
  153.         Enabled      = -1
  154.         ForeColor    = QBColor(0)
  155.         Height       = Char(1)
  156.         Left         = Char(29)
  157.         MousePointer = 0
  158.         TabIndex     = 6
  159.         Tag          = ""
  160.         Top          = Char(5)
  161.         Visible      = -1
  162.         Width        = Char(14)
  163.     END
  164.     BEGIN TextBox ZeilenSeite
  165.         BackColor    = QBColor(7)
  166.         BorderStyle  = 1
  167.         DragMode     = 0
  168.         Enabled      = -1
  169.         ForeColor    = QBColor(0)
  170.         Height       = Char(1)
  171.         Left         = Char(43)
  172.         MousePointer = 0
  173.         MultiLine    = 0
  174.         ScrollBars   = 0
  175.         TabIndex     = 7
  176.         TabStop      = -1
  177.         Tag          = ""
  178.         Text         = ""
  179.         Top          = Char(5)
  180.         Visible      = -1
  181.         Width        = Char(8)
  182.     END
  183.     BEGIN TextBox DruckNach
  184.         BackColor    = QBColor(7)
  185.         BorderStyle  = 1
  186.         DragMode     = 0
  187.         Enabled      = -1
  188.         ForeColor    = QBColor(0)
  189.         Height       = Char(1)
  190.         Left         = Char(14)
  191.         MousePointer = 0
  192.         MultiLine    = 0
  193.         ScrollBars   = 0
  194.         TabIndex     = 5
  195.         TabStop      = -1
  196.         Tag          = ""
  197.         Text         = ""
  198.         Top          = Char(5)
  199.         Visible      = -1
  200.         Width        = Char(12)
  201.     END
  202.     BEGIN CheckBox ZeilenNummern
  203.         BackColor    = QBColor(7)
  204.         Caption      = "&Zeilennummern"
  205.         DragMode     = 0
  206.         Enabled      = -1
  207.         ForeColor    = QBColor(0)
  208.         Height       = Char(1)
  209.         Left         = Char(2)
  210.         MousePointer = 0
  211.         TabIndex     = 10
  212.         TabStop      = -1
  213.         Tag          = ""
  214.         Top          = Char(7)
  215.         Value        = 0
  216.         Visible      = -1
  217.         Width        = Char(21)
  218.     END
  219.     BEGIN Label Warten
  220.         Alignment    = 0
  221.         AutoSize     = 0
  222.         BackColor    = QBColor(7)
  223.         BorderStyle  = 0
  224.         Caption      = ""
  225.         DragMode     = 0
  226.         Enabled      = -1
  227.         ForeColor    = QBColor(0)
  228.         Height       = Char(1)
  229.         Left         = Char(2)
  230.         MousePointer = 0
  231.         TabIndex     = 11
  232.         Tag          = ""
  233.         Top          = Char(9)
  234.         Visible      = -1
  235.         Width        = Char(25)
  236.     END
  237. END
  238. REM $INCLUDE: 'CONSTANT.BI'
  239.  
  240. DIM Buffer(1 TO 1000) AS STRING
  241.  
  242. SUB Abbruch_Click ()
  243.  
  244.     SYSTEM
  245.  
  246. END SUB
  247.  
  248. SUB DateiName_LostFocus ()
  249.  
  250.     SHARED Buffer() AS STRING
  251.     SHARED BufCount AS INTEGER
  252.     SHARED Grenze AS LONG
  253.     STATIC FileNo AS INTEGER
  254.     DIM Dummy AS INTEGER
  255.  
  256.     ON LOCAL ERROR RESUME NEXT
  257.  
  258. ProzedurStart:
  259.     IF FileNo THEN
  260.         ' Es wird gerade schon in Puffer gelesen
  261.         ' Dieser Vorgang muß beendet werden, danach
  262.         ' erst darf diese Prozedur wieder angesprungen
  263.         ' werden!
  264.         Tag = "Abbruch1"
  265.     ELSE
  266.         FileNo = FREEFILE
  267.         OPEN Dateiname.Text FOR INPUT AS #FileNo
  268.         IF ERR THEN FileNo = 0: EXIT SUB
  269.         BufCount = 0
  270.         DO UNTIL EOF(FileNo) OR LEFT$(Tag, 7) = "Abbruch"
  271.             BufCount = BufCount + 1
  272.             LINE INPUT #FileNo, Buffer(BufCount)
  273.             IF ERR THEN
  274.                 ' Buffer ist voll!
  275.                 BufCount = BufCount - 1
  276.                 EXIT DO
  277.             END IF
  278.             Grenze = SEEK(FileNo)
  279.             Dummy = DOEVENTS()
  280.         LOOP
  281.         IF EOF(FileNo) THEN Grenze = 0
  282.         ' Grenze = 0 heißt: File komplett gelesen;
  283.         ' ein anderer Wert: ab dieser Position muß
  284.         ' noch gelesen werden!
  285.         CLOSE FileNo
  286.         FileNo = 0
  287.  
  288.         IF Tag = "Abbruch1" THEN
  289.             ' Die Prozedur muß von neuem ausgeführt
  290.             ' werden!
  291.             Tag = "": GOTO ProzedurStart
  292.         ELSE
  293.             Tag = ""
  294.         END IF
  295.     END IF
  296.  
  297. END SUB
  298.  
  299. SUB Drucken_Click ()
  300.  
  301.     SHARED Buffer() AS STRING
  302.     SHARED BufCount AS INTEGER
  303.     SHARED Grenze AS LONG
  304.     DIM Zeile AS INTEGER, Seite AS INTEGER
  305.     DIM ZeilenAufSeite AS INTEGER
  306.     DIM SeitenLaenge AS INTEGER
  307.     DIM File AS INTEGER, Text AS STRING
  308.  
  309.     Enabled = False ' Form inaktivieren
  310.  
  311.     SeitenLaenge = VAL(ZeilenSeite.Text)
  312.     File = FREEFILE
  313.  
  314.     PRINTER.PRINT KopfZeile.Text + ", Seite 1"
  315.     PRINTER.PRINT ""
  316.     Seite = 1
  317.  
  318.     DO
  319.         Zeile = Zeile + 1
  320.         IF Zeile <= BufCount THEN
  321.             ' Zeile ist im Puffer
  322.             Text = Buffer(Zeile)
  323.             Warten.Caption = "Lesen aus Puffer..." + STR$(Zeile)
  324.         ELSEIF Zeile = BufCount + 1 THEN
  325.             ' Zeile nicht im Puffer
  326.             IF Grenze = 0 THEN
  327.                 ' es gibt gar keine Zeilen mehr
  328.                 EXIT DO
  329.             ELSE
  330.                 OPEN Dateiname.Text FOR INPUT AS #File
  331.                 ' bis hier hat der Puffer gereicht
  332.                 SEEK #File, Grenze
  333.                 LINE INPUT #File, Text
  334.             END IF
  335.         ELSE
  336.             Warten.Caption = "Lesen von Platte..." + STR$(Zeile)
  337.             IF EOF(File) THEN EXIT DO
  338.             LINE INPUT #File, Text
  339.         END IF
  340.  
  341.         ' Zeile ist gelesen - jetzt ausgeben:
  342.         IF ZeilenNummern.Value THEN
  343.             PRINTER.PRINT "[" + RIGHT$(STR$(10000 + Zeile), 4);
  344.             PRINTER.PRINT "]: ";
  345.         END IF
  346.         PRINTER.PRINT Text
  347.         ZeilenAufSeite = ZeilenAufSeite + 1
  348.         IF ZeilenAufSeite >= SeitenLaenge THEN
  349.             PRINTER.NEWPAGE
  350.             Seite = Seite + 1
  351.             ZeilenAufSeite = 0
  352.             PRINTER.PRINT KopfZeile.Text + ", Seite"; STR$(Seite)
  353.             PRINTER.PRINT ""
  354.         END IF
  355.     LOOP
  356.     CLOSE File
  357.  
  358.     MSGBOX "Die Datei wurde gedruckt."
  359.     ' Falls durch Klick auf OK der Puffer-Lesevorgang
  360.     ' unterbrochen wurde, muß er jetzt nicht weiter
  361.     ' fortgesetzt werden:
  362.     Tag = "Abbruch2"
  363.     Enabled = True
  364.     Warten.Caption = ""
  365.  
  366. END SUB
  367.  
  368. SUB DruckNach_LostFocus ()
  369.  
  370.     PRINTER.PrintTarget = DruckNach.Text
  371.  
  372. END SUB
  373.  
  374.