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:

QB Programme : aber wie drucken auf USB-Drucker ?

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



Anmeldungsdatum: 28.12.2004
Beiträge: 3
Wohnort: MASPALOMAS, GRAN CANARIA

BeitragVerfasst am: 28.12.2004, 16:45    Titel: QB Programme : aber wie drucken auf USB-Drucker ? Antworten mit Zitat

Hallo,

Ich habe viele QB (Qbasci, QB45, egal) Progr. die sehr gut funktionieren.
Es geht nur um Daten (Texte, Zahlen) und das Umprogrammieren
auf VB bringt weitgehend nicht die gleiche Benützungsvorteile wie bei
QB ! Jedoch, Ausdrucken auf meinem Drucker (nur USB-Anschluss)
geht nicht direkt ... ist ja bekannt.

Ich suche also eine Lösung.
>> Ich habe erfolglos schon folgendes
probiert:
a) statt "LPT1", "PRN" benützt (Open "PRN" ...), geht nicht;
b) die Daten in eine Datei schreiben und mit einem VB-Programm
lesen und auf den Drucker auszudrucken ... funktionniert nur wenn
das VB-Programm gestart wird nachdem das QB-Programm zu Ende
ist .... ist aber zu kompliziert, für jeden Ausdruck, diese Umschalterei !
Also, ich suche eine Idee im Stil: VB-Programm im Hintergrund
laufen lassen ohne QB zu stören, oder .... ?

WER HAT IDEEN ZU DIESEM THEMA ?

Danke im Voraus, einen guten Rutsch ins neue Jahr
und schönen Gruss aus Gran Canaria mit viel Sonne ! :)

Jean-Marc

email: vario25@wanadoo.es
_________________
VIVA ESPAÑA
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Devilkevin
aka Kerstin


Anmeldungsdatum: 11.11.2004
Beiträge: 2532
Wohnort: nähe Mannheim

BeitragVerfasst am: 28.12.2004, 16:46    Titel: Antworten mit Zitat

Warum nicht einfach mit Word öffnen ? zwinkern
_________________
www.piratenpartei.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jean-Marc



Anmeldungsdatum: 28.12.2004
Beiträge: 3
Wohnort: MASPALOMAS, GRAN CANARIA

BeitragVerfasst am: 28.12.2004, 17:06    Titel: Mit Word ... noch mehr clic..reien als meine VB Lösung Antworten mit Zitat

Hi,
Für Testzwecke OK mit Word, in der Praxis viel zu kompliziert,
da ich zur Datei per Programm noch Config-Daten mit gebe für die gute
Gestaltung auf dem Papier,
Darum suche ich die Lösung durch Programmierung.
Aber Danke für Deine Antwort.
J-Marc
verwundert
_________________
VIVA ESPAÑA
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 28.12.2004, 17:39    Titel: VB Antworten mit Zitat

Hallo.

Mit dem Prinzip Serverprogramm im Hintergrund hab ich schon vieles gemacht. Ich verwende diese Konstellation öfters, wie zum Beispiel in meinem Quiz für das Soundmodul (=> Siehe Signatur).

Alsoo...

Am besten du startest das VB Programm gleich am Anfang des QB Programms.
Das VB Programm muss in einer Endlosschleife wie dieser laufen:
Code:
Do
 DoEvents
 ...
Loop


Anstelle der Pünktchen hast du 2 Möglichkeiten. Zum einen eine Kommandodatei oder eine Umgebungsvariable.

Wenn du mit einer Datei arbeiten willst, musst du sie am Anfang des QB Programms erstellen, noch bevor du das VB Programm startest. Da schreibst du sowas rein wie "STANDBY".
Code:
OPEN "COMMANDS.TXT" FOR OUTPUT AS #1
PRINT #1, "STANDBY"
CLOSE #1

Anstelle der Pünktchen im VB Programm schreibst du dann:
Code:
Open "COMMANDS.TXT" For Input As #1
If NOT Eof(1) THEN
 Line Input #1, Cmd$
End If
Close #1
If LEFT$(Cmd$, 6) = "Print " THEN
 commando = Split(Cmd$, " ")
 FileToPrint$ = commando(1)
 Druck FileToPrint$ 'In FileToPrint$ steht die Datei, die gedruckt werden soll. Wie das geht dürfte klar sein.
 Open "COMMANDS.TXT" For Output As #1
 Print #1, "STANDBY"
 Close #1
End If
IF Cmd$ = "End" THEN END

Zum Drucken würdest du folgendes im QB Programm machen:
Code:
OPEN "COMMANDS.TXT" FOR OUTPUT AS #1
PRINT #1, "Print MyFile.txt"
CLOSE #1

Und wichtig ist, dass du bevor du das QB Programm beendest, auch das VB Programm beendest! Denn sonst bleibt es im Hintergrund!
Code:
OPEN "COMMANDS.TXT" FOR OUTPUT AS #1
PRINT #1, "End"
CLOSE #1


Mit einer Umgebungsvariable ist es etwas einfacher:
Am Anfang des QB Programms legst du mit
Code:
ENVIRON "VBDRUCK=STANDBY"

die Umgebungsvariable %VBDRUCK% an. Dann startest du das VB Programm und gehts nach dem selben Schema wie bei einer Datei vor.
Anstelle der 3 Pünktchen:
Code:
Cmd$ = ENVIRON$("VBDRUCK")
If Cmd$ = "" THEN MSGBOX "%VBDRUCK% nicht gefunden!":EXIT DO
If LEFT$(Cmd$, 6) = "Print " THEN
 commando = Split(Cmd$, " ")
 FileToPrint$ = commando(1)
 Druck FileToPrint$ 'In FileToPrint$ steht die Datei, die gedruckt werden soll. Wie das geht dürfte klar sein.
 Environ "VBDRUCK=STANDBY"
End If
IF Cmd$ = "End" THEN END

Drucken in QB:
Code:
ENVIRON "VBDRUCK=Print MyFile.txt"

Beenden des VB-Programms:
Code:
ENVIRON "VBDRUCK=End"


Ich hab das jetzt nur im Forumfenster geschrieben. Daher können noch Fehlerchen drin sein, aber im Prinzip sollte's so gehen.

Wenn du noch Fragen hast, kann ich auch auf Englisch antworten, wenn dir das lieber wäre. lächeln

Viele Grüße aus dem grauen & kalten Deutschland!
Sebastian
_________________

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
Thomas Antoni



Anmeldungsdatum: 12.10.2004
Beiträge: 220
Wohnort: Erlangen

BeitragVerfasst am: 28.12.2004, 17:59    Titel: Dazu habe ich mir für die QB-MonterFAQ Folgendes vorgemerkt: Antworten mit Zitat

Zu diesem Thema habe ich mir für die QB-MonterFAQ Folgendes vorgemerkt ...

--------------------------------------------------------------------------------

Frage:
--------
Wie drucke ich QB-Programme auf einen Windows-Drucker aus?

Ich will QBasic-Programme oder andere DOS-ASCII-Textdateien in MS-Word einlesen
und korrekt mit Sonderzeichen ausdrucken!

Hilfe - Meine neue Windows-Textverarbeitung kann keine DOS-ASCII-Text mehr
einlesen!

((z.T. aus meiner MS-DOS-FAQ übernommen ))


Antwort 1
----------
[ von Thomas Antoni, 27.6.2003 - 19.3.2004 ]

*** BAS-Dateien ausdrucken mit dem normalen Windows-Editor
BAS-Quellspracheprogramme kann man mit dem Windows-Editor ausdrucken, der in der
Programmgruppe "Zubehör" zur Verfügung steht. Dazu muss man im Menüpunkt [Datei|
Öffnen...] als Dateityp "Alle Dateien" wählen. Leider werden dort die Umlaute
und Sonderzeichen nicht korrekt dargestellt, weil Windows den ANSI-Zeichencode
und nicht den DOS-ASCCI-Code verwendet. Du kannst das Problem umgehen, indem Du
ind Deinen Quellspracheprogrammen für die Umlaute die Schreibweise mit ae statt
ä, ue statt ü, ss statt ? usw. verwendest. Das ist imer zu empfehlen, wenn Du
die Quelltexte im Internet oder in Tutorials wiedergeben willst. Ansonsten
helfen Dir die folgenden Tipps weiter.

Verwendest Du QickBASIC 4.5 oder 7.1? Dann musst Du beim Abspeichern Deiner
Programme undbedingt die Option "Text - von anderen Programmen lesbar" wählen.
Sonst speichert QB das Programm im eigenen gepackten Format ab, das für
andere Programme nicht lesbar ist.


*** DOS-ASCII- und Windows-ANSI-Code
Unter DOS - und somit auch bei QBasic wird Text im ASCII-Code dargestellt, so
auch QBasic- Quellspracheprogramme. Unter Windows erfolgt die Textdarstellung
jedoch im ANSI- Code. Siehe die LEXIKON-Einträge zu -> ASCII und ->ANSI sowie
die Frage -> "Wie wandle ich DOS-ASCII in Windows-ANSI-Text um?" in der
Kategorie "Texte bearbeiten".

Aufgrund der unterschiedlichen Zeichencodes werden die Umlaute und einige
Sonderzeichen (z.B. Kastensymbole) von DOS-Text in den meisten Windows-
Textverarbeitungen nicht richtig angezeigt und lassen sich nicht mit korrekten
Sonderzeichen ausdrucken.


*** Dateiformat von .BAS-Programmen bei QBasic und QuickBasic
QBasic speichert .BAS-Programme grundsätzlich immer im DOS-ASCII-Format.
QuickBasic verwendet alternativ ein eigenes (gepacktes) Format; dort musst Du
die folgenden Bedienschritte durchführen, um ein Programm als reinen DOS-Text
abzuspeichern: <Datei | Speichern unter... | Text - von anderen Dateien lesbar>.


*** Umwandlung von DOS- in Windows-Text
Bevor Du DOS-Text unter Windows ausdrucken kannst, musst Du ihn in Windows-
ANSII-Text umwandeln. Das geht völlig problemlos: Jeder halbwegs komfortable
Windows-Texteditor kann ASCII- in ANSI-Text umwandeln, z.B. mein
heißgeliebter M&I-WinEditor ( http://www.mitan.de/misoft.htm ).

Auch nahezu jede Textverarbeitung (Word für Windows & Co.) kann diese Datei-
Konvertierung bewerkstelligen. Bei älteren Word-Versionen geht das einfach über
<Datei | Öffnen bzw. Import | DOS-Text>

Es gibt natürlich einige wenige exotische Sonderzeichen, etwa die Kastensymbole
mit Doppelstrichen, die grundsätzlich nicht korrekt umgewandelt werden können,
da es dafür kein entsprechendes ANSI-Zeichen gibt.


*** QB-Programme und andere ASCII-Textdateien mit Word öffnen
Word für Windows ab Version 97 konvertiert beim Öffnen von Dateien diese nicht
mehr automatisch von MS-DOS nach ANSI. Daher werden die Umlaute und viele
Sonderzeichen nicht richtig dargestellt und lassen sich nicht korrekt
ausdrucken. Dies Problem ist jedoch leicht zu umgehen, wofür es zwei Lösungen
gibt:

*** Lösung 1
Ändere die Dateierweiterung "TXT" in "ASC", dann konvertiert Word die Datei beim
Öffnen automatisch in das Windows ANSI-Format

*** Lösung 2
Der Konverter ist bereits installiert, Du musst ihn nur unter
‘Extras/Optionen/Allgemein’ mit dem Schalter ‘Konvertierung beim Öffnen
bestätigen’ aktivieren. Danach fragt Dich Word beim Öffnen einer txt-Datei, in
welchem Format genau diese vorliegt ("Nur Text", entspricht ANSI-Text oder "MS-
DOS-Text" entspricht ASCII.Text etc.).

Übrigens: Eine falsche Entscheidung - egal bei welchem Format - hat keine
Folgen. Du darfst den Text nur nicht speichern. Schließe ihn umgehend und öffne
ihn erneut - diesmal mit dem richtigen Filter.


Antwort 2
---------
[ von Thomas Antoni, 24.4.2003 ]

1) in beliebigen Editor, aber Problem mit Umlauten (ASCII/ANSI)

2) in Word als DOS-Text einlesen

3) unter QB4.5/7.1 als ASCII-lesbaren Text abspeichern:
Dein Problem ist, dass Du die Datei mit QB im falschen Modus gespeichert hast.
Wenn Du Datei|Datei speichern unter... aufrufst, dann gibt es dort bei "Format" zwei Optionen:

QuickBasic (das hast Du benutzt) -
ein komprimiertes, verschlüsseltes Format

und Text (das musst Du anklicken) -
das normale, unverschlüsselte Textformat

Ja, das speicherst Du dann so im Textformat und dann sollte alles gehen...


Antwort 3
------------
[ von Andreas Meile ("Dreael", ), im QB-Forum, 22.11.04 ]

Siehe dazu

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/BASICunterWindows95_98_NT.html

Ansonsten meine Tipps bzw. Vorschläge zumindest, die Du einmal ausprobieren kannst: Gib das Gerät im Netzwerk frei (NET SHARE im Prompt oder einfacher rechte Maustaste und "Freigabe"). Anschliessend gib in der Eingabeaufforderung
Code:
NET USE LPT1: \\PCNAME\FREIGABE

ein. Damit verpasst Du dem Drucker ein DOS-konformes LPT, so dass QB damit etwas anfangen können sollte. :-) Allerdings bist Du darauf angewiesen, dass der Drucker noch einen klassischen Befehlssatz versteht; dies ist typischerweise bei diesen ganz billigen GDI-Druckern nicht mehr gegeben, sondern nur die etwas teureren Laserdrucker mit PostScript-Emulation sind in der Lage, solche klassischen Befehlssätze zu verarbeiten. Am besten einmal damit etwas herumexperimentieren.

Ansonsten dürfte http://www.dosprint.com/ Dein wirklicher Freund und Helfer sein, denn diese Firma hat eine Emulationssoftware entwickelt.


--------------------------------------------------------------------------------
_________________
+++ Die beliebte QBasic CD-ROM von QBasic.de - 670 MB QBasic-Stuff mit komfortabler HTML-Oberfläche. Für nur 5 EUR bestellbar auf www.antonis.de/qbcdueb.htm +++
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jean-Marc



Anmeldungsdatum: 28.12.2004
Beiträge: 3
Wohnort: MASPALOMAS, GRAN CANARIA

BeitragVerfasst am: 28.12.2004, 18:12    Titel: Antworten mit Zitat

Das Problem liegt nicht bei der Code-Umwandlung zum Drucken,
habe bereits eine Tabelle in Vorbereitung.
Wichtig ist das der Drucker funzt und QB auch weiter nicht
blockiert.
Aber, Vielen Dank für die Angaben.

Auch Dank an Sebastian für die Programm-Codes.

Alles wird ausprobiert - und Resultat mitgeteilt,
dass es für weitere nütlich ist.

Tschüss an allen.

Jean-Marc lächeln
_________________
VIVA ESPAÑA
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 28.12.2004, 18:18    Titel: Achso, nochwas Antworten mit Zitat

Hallo.

Du könntest auch noch Folgendes probieren:

VB Programm:
Code:
Datei$ = Command$
If Datei$ = "" THEN END
Open Datei$ For Input As #1
Do Until Eof(1)
 DoEvents
 Line Input #1, Zeile$
 Druck Zeile$
Loop
Close #1


Und im QB Programm müsstest du Folgendes schreiben:
Code:
SHELL "START DRUCK.EXE MYFILE.TXT"


Das sollte sogar auch gehen! lächeln

Viele Grüße!
Sebastian
_________________

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
Mr.Qb.4.5



Anmeldungsdatum: 10.11.2004
Beiträge: 110
Wohnort: in Bayern

BeitragVerfasst am: 28.12.2004, 21:36    Titel: ... ganz einfach Antworten mit Zitat

Hallo,

wenn du eine reine Textdatei über einen USB-Drucker drucken willst, dann mach das mit dem integrierten Editor.
und schreib dann in dein QB-Programm folgende Zeile rein:
SHELL"notepad /p Datei.txt"

Hoffe das hilft dir.
MFG
Mr.Qb.4.5 grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 28.12.2004, 22:20    Titel: Antworten mit Zitat

Artikel zum Thema:

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/BASICunterWindows95_98_NT.html

Ansonsten ein kleiner Versuch wert (Achtung: NAT-Hardware-Firewall nötig, damit der PC nicht nackt im Internet draussen steht!): Datei- und Druckerfreigabe aktiveren, anschliessend Drucker freigeben und diesen mit
Code:
NET USE LPT2: \\RECHNER\FREIGABE

verbinden. Anschliessend kann man in QB
Code:
OPEN "lpt2:" FOR OUTPUT AS 1
PRINT#1, Druckerdaten$
CLOSE 1

probieren. Ansonsten käufliche Spezial-Software-Lösung, die manchmal im Usenet genannt wird: www.dosprint.com
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. 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