 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Jean-Marc
Anmeldungsdatum: 28.12.2004 Beiträge: 3 Wohnort: MASPALOMAS, GRAN CANARIA
|
Verfasst am: 28.12.2004, 16:45 Titel: QB Programme : aber wie drucken auf USB-Drucker ? |
|
|
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 |
|
 |
Devilkevin aka Kerstin

Anmeldungsdatum: 11.11.2004 Beiträge: 2532 Wohnort: nähe Mannheim
|
Verfasst am: 28.12.2004, 16:46 Titel: |
|
|
Warum nicht einfach mit Word öffnen ?  _________________ www.piratenpartei.de |
|
Nach oben |
|
 |
Jean-Marc
Anmeldungsdatum: 28.12.2004 Beiträge: 3 Wohnort: MASPALOMAS, GRAN CANARIA
|
Verfasst am: 28.12.2004, 17:06 Titel: Mit Word ... noch mehr clic..reien als meine VB Lösung |
|
|
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
 _________________ VIVA ESPAÑA |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 28.12.2004, 17:39 Titel: VB |
|
|
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.
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 |
|
 |
Thomas Antoni

Anmeldungsdatum: 12.10.2004 Beiträge: 220 Wohnort: Erlangen
|
Verfasst am: 28.12.2004, 17:59 Titel: Dazu habe ich mir für die QB-MonterFAQ Folgendes vorgemerkt: |
|
|
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 |
|
 |
Jean-Marc
Anmeldungsdatum: 28.12.2004 Beiträge: 3 Wohnort: MASPALOMAS, GRAN CANARIA
|
Verfasst am: 28.12.2004, 18:12 Titel: |
|
|
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  _________________ VIVA ESPAÑA |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 28.12.2004, 18:18 Titel: Achso, nochwas |
|
|
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!
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
Mr.Qb.4.5
Anmeldungsdatum: 10.11.2004 Beiträge: 110 Wohnort: in Bayern
|
Verfasst am: 28.12.2004, 21:36 Titel: ... ganz einfach |
|
|
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  |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 28.12.2004, 22:20 Titel: |
|
|
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 |
|
 |
|
|
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.
|
|