Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Drucker Befehl 'LPRINT' bei FreeBasic

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
bilta



Anmeldungsdatum: 23.01.2006
Beiträge: 7

BeitragVerfasst am: 25.01.2006, 19:25    Titel: Drucker Befehl 'LPRINT' bei FreeBasic Antworten mit Zitat

Programm gibt eine Fehlermeldung aus beim Befehl LPRINT "Text".
Wo liegt der Fehler?
Gruss
Bilta
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Stormy



Anmeldungsdatum: 10.09.2004
Beiträge: 567
Wohnort: Sachsen - wo die schönen Frauen wachsen ;)

BeitragVerfasst am: 25.01.2006, 19:52    Titel: Antworten mit Zitat

Du musst schon auf eine API zugreifen, um drucken zu können. Allerdings kenn ich mich nicht mit WinAPI und deren Derivaten aus.
_________________
+++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 25.01.2006, 20:09    Titel: Antworten mit Zitat

Ich hab schnell diesen Code Gebastelt:
Code:
LPRINT "Hallo Welt!"
LPRINT "Hallo Welt! 2"
LPRINT "Hallo Welt! 3"

Bei mir Funktionierts (ich hab einen rund 10 Jahre alten Drucker, der noch an LPT 1 hängt, Freebasic 0.15)
Und ich bin nicht der einzige, siehe http://forum.qbasic.at/viewtopic.php?t=1877.

Hast du Freebasic 0.15?
changelog.txt hat Folgendes geschrieben:
Version 0.15 Beta:
...
[added]
...
- LPRINT support (mjs)
...

Mit einer älteren Version geht es also gar nicht.


Sollte es immer nocht nicht gehen, kann das Interresant sein:
http://forum.qbasic.at/viewtopic.php?t=1473
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 25.01.2006, 20:45    Titel: Antworten mit Zitat

Also bei mir funktioniert's auch nicht. neutral

Konfiguration:
- FB Version 0.15 stable
- Drucker: Brother HL-1430
- Anschluss über D-Link DP-300U Printserver
- Netzwerkdrucker als LPT1 verbunden
- OS: W2K

Scheinbar klappt das nur mit echten Druckern am LPT1. Von daher sollte man wohl besser die WinAPI verwenden, wenn auch USB- oder Netzwerkdrucker unterstützt werden sollen. lächeln
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
bilta



Anmeldungsdatum: 23.01.2006
Beiträge: 7

BeitragVerfasst am: 26.01.2006, 11:05    Titel: LPRINT Antworten mit Zitat

Besten Dank für die verschiedenen Antworten.

Mein Drucker ist an LPT1 angeschlossen, aber ich verwende
FreeBasic 0.14!

Gibt es FreeBasic 0.15 schon in der deutschen Fassung?

Gruss
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 26.01.2006, 11:25    Titel: Re: LPRINT Antworten mit Zitat

bilta hat Folgendes geschrieben:
..aber ich verwende
FreeBasic 0.14!

Gibt es FreeBasic 0.15 schon in der deutschen Fassung?

Wenn du FreeBasic 0.14 schon 'fertig hast', kannst du gerne mit der
Übersetzung von FreeBasic 0.15 beginnen vor lachen auf dem Boden rollen
(Da FreeBasic 0.16 schon in den Startlöchern steht, solltest du dich aber beeilen..)
Es kann natürlich auch sein, daß ich dich mißverstanden habe grinsen
Im Klartext: Wie meinstn das ???
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 26.01.2006, 14:03    Titel: Antworten mit Zitat

Hm, so viel gibt's da ja nicht zu übersetzen. Die Kommandozeilenparameterhilfe und ein paar Fehlermeldungen... durchgeknallt
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
bilta



Anmeldungsdatum: 23.01.2006
Beiträge: 7

BeitragVerfasst am: 26.01.2006, 14:22    Titel: LPRINT Antworten mit Zitat

Michael Frey fragte mich, ob ich FreeBasic 0.15 habe -
und weiter teilte er mir mit, 'mit einer älteren Version geht es also gar nicht'

Deshalb meine Antwort, dass ich FreeBasic 0.14 habe.
Du hast mich also wirklich missverstanden!

Gruss
Bilta
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 26.01.2006, 18:43    Titel: Antworten mit Zitat

@bilta
Das war nur ein Witz von ytwinky.
(Meiner Meinung nach nicht alzu gelungen)

Nun im ernst:
Freebasic gibt es nur in Englisch, auch du hast im moment eine Normale, Englische Version vor dir.
Wahrscheinlich hast du Freebasic (so heisst nur der Compiler) mit der FBIde (das ist eine Entwicklungsumgebung, dort gibt man den Code ein) verwechselt.
Du kannst die Freebasic also ohne Probleme wechseln und die Oberfläche mit der du Programmierst (wahrscheinlich FBIde) bleibt auf Deutsch.
Hier der Links zur aktuellen Freebasic Version:
http://prdownloads.sourceforge.net/fbc/FreeBASIC-v0.15b-win32.exe?download
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
oldirty



Anmeldungsdatum: 04.08.2005
Beiträge: 65

BeitragVerfasst am: 26.01.2006, 19:39    Titel: Antworten mit Zitat

Zwar nicht mit LPRINT aber fast genau so gut:

Hier mal ein Demo zum Drucken:
Es wird der Standard-Drucker ermittelt mir vorheriger Druckerauswahl
Über "open lpt "LPT:" + printer_name + ",EMU=TTY" as fo'+ doc_title2 as fo" wird er dann (Auch wenn an USB angeschlossen) identifiziert. Alle print #-Ausgaben werden dann an den Drucker geschickt.

Vielleicht hilfts ja weiter.

CU
OlDirty

Code:

''
'' lineprt -- shows how to use GDI printers from FB using BASIC-only commands
''
#include "windows.bi"
screen 19
windowtitle "Druckdialog"
Dim As Any Ptr hwnd
hwnd =  FindWindow( 0, "Druckdialog" ) 'Zeiger Finden über Fenstertitel
option explicit
option private
Declare Function apiGetProfileString Lib "kernel32" Alias "GetProfileStringA" _
    (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, _
    ByVal lpReturnedString As String, ByVal nSize As Long) As Long
Declare Function fDefaultPrinter() As String
Dim as string printer_name, doc_title, doc_title2
Dim as integer fi, fo, erg
Dim as string zeile
Exec Environ$("windir") &"\\System32\\rundll32.exe",_
        "shell32.dll,SHHelpShortcuts_RunDLL PrintersFolder"
Erg = MessageBox (hwnd,"Standarddrucker gewählt?","Fertig?",_
                                                    MB_ICONQUESTION Or _
                                                    MB_OK Or _
                                                    MB_DEFBUTTON1 Or _
                                                    MB_TOPMOST)
printer_name=fDefaultPrinter() 'Druckername ermitteln
if len(printer_name)=0 then end 1

Erg = MessageBox (hwnd,"Druck starten?","Starten?",_
                                                    MB_ICONQUESTION Or _
                                                    MB_YESNO Or _
                                                    MB_DEFBUTTON1 Or _
                                                    MB_TOPMOST)
if erg=IDNO then
    print "Druck abgebrochen"
    print "Gewaehlter Drucker war: ";printer_name
    sleep
    end
end if
'line input "What's the documents title"; doc_title
'Demo-Text-Datei fuer den Ausdruck
doc_title="C:\temp\dat.txt"

if len(doc_title)>0 then
    if instr(doc_title,",")>0 then
        print "The document title must not contain a comma"
        end 1
    end if
    doc_title2 = ",TITLE=" + doc_title
end if

print printer_name
print doc_title
print
fi=freefile
open doc_title for input as fi
    fo=freefile
    open lpt "LPT:" + printer_name + ",EMU=TTY" as fo'+ doc_title2 as fo
        while eof(fi)<>-1
                line input #fi,zeile
                print zeile
                print #fo,zeile
        wend

    'print #fo, "Hello World !"
    'print #fo, chr$(12); ' start a new page
    'print #fo, "I say ""Hello World !"" on page 2"
    close fo
close fi
sleep
end

'******************************************************
Function fDefaultPrinter() As String
    Dim strBuffer As String * 254
    Dim lngReturn As Long
    Dim strDefaultPrinter As String
    lngReturn = apiGetProfileString("WINDOWS", "DEVICE", ",,,", _
                                    strBuffer, _
                                    Len(strBuffer))
    fDefaultPrinter =Left$(strBuffer, InStr(strBuffer, ",") - 1)
End Function
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
bilta



Anmeldungsdatum: 23.01.2006
Beiträge: 7

BeitragVerfasst am: 26.01.2006, 20:03    Titel: LPRINT Antworten mit Zitat

Herzlichsten Dank für die Aufklärung!

Ich werde mich offensichtlich intensiver mit der Materie auseinandersetzen
müssen.

Einen schönen Abend wünscht

Bilta
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 26.01.2006, 20:49    Titel: Antworten mit Zitat

Boah, das funktioniert mit Netzwerkdruckern und sogar mit dem PDF Creator... happy Cool! Ein PDF Testdokument, das aus FB heraus gedruckt wurde, gibt's hier: Download, 3kB

@ExpSoft: Der Code wäre was für's fb@rchiv! zwinkern
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
bilta



Anmeldungsdatum: 23.01.2006
Beiträge: 7

BeitragVerfasst am: 27.01.2006, 11:08    Titel: LPRINT Antworten mit Zitat

@Michael Frey
Habe, wie von Dir vorgeschlagen, den Wechsel vorgenommen.
Jetzt funktionierts einwandfrei!
Nochmals besten Dank für alle Antworten.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 27.01.2006, 20:48    Titel: Antworten mit Zitat

Die API ist natürlich wesentlich bequemer, zumindest bietet sie mehr Features. Aber, der Vollständigkeit halber: Habt ihr denn auch alle brav die Ref gelesen?

Befehlsreferenz; LPRINT hat Folgendes geschrieben:
Einige Drucker beginnen mit dem Druckauftrag erst, wenn ein CHR(12) (End of Page)
gedruckt wird.


Klartext:
Michael Frey's code sollte in dieser Form funktionieren:
Code:
LPRINT "Hallo Welt!"
LPRINT "Hallo Welt! 2"
LPRINT "Hallo Welt! 3"
LPRINT CHR(12)



Have a nice day
Ciao
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz