home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Programming Tool Box
/
SIMS_2.iso
/
bp_1_94
/
vbdos
/
print.frm
< prev
Wrap
Text File
|
1993-11-02
|
8KB
|
374 lines
Version 1.00
BEGIN Form MainForm
AutoRedraw = 0
BackColor = QBColor(7)
BorderStyle = 1
Caption = "Source Lister Demo"
ControlBox = 0
Enabled = -1
ForeColor = QBColor(0)
Height = Char(12)
Left = Char(15)
MaxButton = 0
MinButton = 0
MousePointer = 0
Tag = ""
Top = Char(3)
Visible = -1
Width = Char(55)
WindowState = 0
BEGIN Label Bezeichnung1
Alignment = 0
AutoSize = 0
BackColor = QBColor(7)
BorderStyle = 0
Caption = "&Dateiname:"
DragMode = 0
Enabled = -1
ForeColor = QBColor(0)
Height = Char(1)
Left = Char(2)
MousePointer = 0
TabIndex = 0
Tag = ""
Top = Char(1)
Visible = -1
Width = Char(11)
END
BEGIN TextBox DateiName
BackColor = QBColor(7)
BorderStyle = 1
DragMode = 0
Enabled = -1
ForeColor = QBColor(0)
Height = Char(1)
Left = Char(14)
MousePointer = 0
MultiLine = 0
ScrollBars = 0
TabIndex = 1
TabStop = -1
Tag = ""
Text = ""
Top = Char(1)
Visible = -1
Width = Char(37)
END
BEGIN Label Bezeichnung2
Alignment = 0
AutoSize = 0
BackColor = QBColor(7)
BorderStyle = 0
Caption = "&Kopfzeile:"
DragMode = 0
Enabled = -1
ForeColor = QBColor(0)
Height = Char(1)
Left = Char(2)
MousePointer = 0
TabIndex = 2
Tag = ""
Top = Char(3)
Visible = -1
Width = Char(11)
END
BEGIN TextBox KopfZeile
BackColor = QBColor(7)
BorderStyle = 1
DragMode = 0
Enabled = -1
ForeColor = QBColor(0)
Height = Char(1)
Left = Char(14)
MousePointer = 0
MultiLine = 0
ScrollBars = 0
TabIndex = 3
TabStop = -1
Tag = ""
Text = ""
Top = Char(3)
Visible = -1
Width = Char(37)
END
BEGIN Label Bezeichnung3
Alignment = 0
AutoSize = 0
BackColor = QBColor(7)
BorderStyle = 0
Caption = "Druck &nach:"
DragMode = 0
Enabled = -1
ForeColor = QBColor(0)
Height = Char(1)
Left = Char(2)
MousePointer = 0
TabIndex = 4
Tag = ""
Top = Char(5)
Visible = -1
Width = Char(11)
END
BEGIN CommandButton Drucken
BackColor = QBColor(7)
Cancel = 0
Caption = "&Drucken"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Left = Char(40)
MousePointer = 0
TabIndex = 8
TabStop = -1
Tag = ""
Top = Char(7)
Visible = -1
Width = Char(11)
END
BEGIN CommandButton Abbruch
BackColor = QBColor(7)
Cancel = -1
Caption = "&Abbruch"
Default = 0
DragMode = 0
Enabled = -1
Height = Char(3)
Left = Char(28)
MousePointer = 0
TabIndex = 9
TabStop = -1
Tag = ""
Top = Char(7)
Visible = -1
Width = Char(11)
END
BEGIN Label Bezeichnung4
Alignment = 0
AutoSize = 0
BackColor = QBColor(7)
BorderStyle = 0
Caption = "Zeilen/&Seite:"
DragMode = 0
Enabled = -1
ForeColor = QBColor(0)
Height = Char(1)
Left = Char(29)
MousePointer = 0
TabIndex = 6
Tag = ""
Top = Char(5)
Visible = -1
Width = Char(14)
END
BEGIN TextBox ZeilenSeite
BackColor = QBColor(7)
BorderStyle = 1
DragMode = 0
Enabled = -1
ForeColor = QBColor(0)
Height = Char(1)
Left = Char(43)
MousePointer = 0
MultiLine = 0
ScrollBars = 0
TabIndex = 7
TabStop = -1
Tag = ""
Text = ""
Top = Char(5)
Visible = -1
Width = Char(8)
END
BEGIN TextBox DruckNach
BackColor = QBColor(7)
BorderStyle = 1
DragMode = 0
Enabled = -1
ForeColor = QBColor(0)
Height = Char(1)
Left = Char(14)
MousePointer = 0
MultiLine = 0
ScrollBars = 0
TabIndex = 5
TabStop = -1
Tag = ""
Text = ""
Top = Char(5)
Visible = -1
Width = Char(12)
END
BEGIN CheckBox ZeilenNummern
BackColor = QBColor(7)
Caption = "&Zeilennummern"
DragMode = 0
Enabled = -1
ForeColor = QBColor(0)
Height = Char(1)
Left = Char(2)
MousePointer = 0
TabIndex = 10
TabStop = -1
Tag = ""
Top = Char(7)
Value = 0
Visible = -1
Width = Char(21)
END
BEGIN Label Warten
Alignment = 0
AutoSize = 0
BackColor = QBColor(7)
BorderStyle = 0
Caption = ""
DragMode = 0
Enabled = -1
ForeColor = QBColor(0)
Height = Char(1)
Left = Char(2)
MousePointer = 0
TabIndex = 11
Tag = ""
Top = Char(9)
Visible = -1
Width = Char(25)
END
END
REM $INCLUDE: 'CONSTANT.BI'
DIM Buffer(1 TO 1000) AS STRING
SUB Abbruch_Click ()
SYSTEM
END SUB
SUB DateiName_LostFocus ()
SHARED Buffer() AS STRING
SHARED BufCount AS INTEGER
SHARED Grenze AS LONG
STATIC FileNo AS INTEGER
DIM Dummy AS INTEGER
ON LOCAL ERROR RESUME NEXT
ProzedurStart:
IF FileNo THEN
' Es wird gerade schon in Puffer gelesen
' Dieser Vorgang muß beendet werden, danach
' erst darf diese Prozedur wieder angesprungen
' werden!
Tag = "Abbruch1"
ELSE
FileNo = FREEFILE
OPEN Dateiname.Text FOR INPUT AS #FileNo
IF ERR THEN FileNo = 0: EXIT SUB
BufCount = 0
DO UNTIL EOF(FileNo) OR LEFT$(Tag, 7) = "Abbruch"
BufCount = BufCount + 1
LINE INPUT #FileNo, Buffer(BufCount)
IF ERR THEN
' Buffer ist voll!
BufCount = BufCount - 1
EXIT DO
END IF
Grenze = SEEK(FileNo)
Dummy = DOEVENTS()
LOOP
IF EOF(FileNo) THEN Grenze = 0
' Grenze = 0 heißt: File komplett gelesen;
' ein anderer Wert: ab dieser Position muß
' noch gelesen werden!
CLOSE FileNo
FileNo = 0
IF Tag = "Abbruch1" THEN
' Die Prozedur muß von neuem ausgeführt
' werden!
Tag = "": GOTO ProzedurStart
ELSE
Tag = ""
END IF
END IF
END SUB
SUB Drucken_Click ()
SHARED Buffer() AS STRING
SHARED BufCount AS INTEGER
SHARED Grenze AS LONG
DIM Zeile AS INTEGER, Seite AS INTEGER
DIM ZeilenAufSeite AS INTEGER
DIM SeitenLaenge AS INTEGER
DIM File AS INTEGER, Text AS STRING
Enabled = False ' Form inaktivieren
SeitenLaenge = VAL(ZeilenSeite.Text)
File = FREEFILE
PRINTER.PRINT KopfZeile.Text + ", Seite 1"
PRINTER.PRINT ""
Seite = 1
DO
Zeile = Zeile + 1
IF Zeile <= BufCount THEN
' Zeile ist im Puffer
Text = Buffer(Zeile)
Warten.Caption = "Lesen aus Puffer..." + STR$(Zeile)
ELSEIF Zeile = BufCount + 1 THEN
' Zeile nicht im Puffer
IF Grenze = 0 THEN
' es gibt gar keine Zeilen mehr
EXIT DO
ELSE
OPEN Dateiname.Text FOR INPUT AS #File
' bis hier hat der Puffer gereicht
SEEK #File, Grenze
LINE INPUT #File, Text
END IF
ELSE
Warten.Caption = "Lesen von Platte..." + STR$(Zeile)
IF EOF(File) THEN EXIT DO
LINE INPUT #File, Text
END IF
' Zeile ist gelesen - jetzt ausgeben:
IF ZeilenNummern.Value THEN
PRINTER.PRINT "[" + RIGHT$(STR$(10000 + Zeile), 4);
PRINTER.PRINT "]: ";
END IF
PRINTER.PRINT Text
ZeilenAufSeite = ZeilenAufSeite + 1
IF ZeilenAufSeite >= SeitenLaenge THEN
PRINTER.NEWPAGE
Seite = Seite + 1
ZeilenAufSeite = 0
PRINTER.PRINT KopfZeile.Text + ", Seite"; STR$(Seite)
PRINTER.PRINT ""
END IF
LOOP
CLOSE File
MSGBOX "Die Datei wurde gedruckt."
' Falls durch Klick auf OK der Puffer-Lesevorgang
' unterbrochen wurde, muß er jetzt nicht weiter
' fortgesetzt werden:
Tag = "Abbruch2"
Enabled = True
Warten.Caption = ""
END SUB
SUB DruckNach_LostFocus ()
PRINTER.PrintTarget = DruckNach.Text
END SUB