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:

Starten und Drucken eines gwbasic-Programms in Windows

 
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
joe1237



Anmeldungsdatum: 18.10.2006
Beiträge: 6

BeitragVerfasst am: 18.10.2006, 12:01    Titel: Starten und Drucken eines gwbasic-Programms in Windows Antworten mit Zitat

Hallo!
Unter gwbasic kann ich in meinem Programm Bltabneu.bas die Ergebnisse der Bundesliga eingeben und erhalte dann eine vollständige Tabelle des letzten Spieltages, die sowohl auf dem Bildschirm dargestellt als auch unter TABELLE.DAT als Textfile abgespeichert wird.
Ich las nun unter www.qbasic.de, daß es sowohl möglich ist, das Basic-Programm sofort mit einem Doppelklick aus Windows zu starten (z.B. durch entsprechende Verknüpfung) als auch diese Datei mit einem Druckprogramm qbdruck.zip (siehe Ende der homepage !) auszudrucken. Leider verstehe ich als Anfänger die einzelnen notwendigen Schritte zur Aktivierung dieser beiden Programme nicht. Kann mir jemand detalliert und anfängerverständlich weiterhelfen?
Dank im voraus und Gruß joe1237
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 18.10.2006, 12:27    Titel: Antworten mit Zitat

Hallo und willkommen im Forum!

Ich kenne zwar diese beiden Spezialprogramme nicht, aber du kannst ja einfach aus der .bas eine .exe erstellen. Die lässt sich dann ganz normal mit Doppelklick starten. Oder du du machst einen Rechtsklick auf die .bas -> Öffnen mit -> wählst qb.exe und setzt vorher das Häkchen bei "Dateityp immer mit diesem Programm öffnen". Dann wird beim Start des .bas-Programms automatisch der QB-Editor geladen.

Die TABELLE.DAT könntest du z.B. auch mit dem Editor öffnen und von dem aus drucken.

Gruss
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 18.10.2006, 12:32    Titel: Antworten mit Zitat

Hallo. lächeln
Das Problem bei GW-Basic ist, dass es eine interpretierte Sprache ist. Aber sonst hat Skilltronic recht, also mit dem Verknüpfen. zwinkern

Solange es ganz normaler Text ist, der in der Datei steht, genügt ein
Code:

SHELL "RGHDRUCK LIGA.TXT"


(Allerdings weiß ich nicht, ob SHELL in GW-BASIC schon vorhanden war. durchgeknallt)
Probier's mal aus. lächeln
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 18.10.2006, 12:53    Titel: Antworten mit Zitat

Ups - das mit dem gwbasic hab' ich übersehen. Damit lassen sich natürlich schlecht exen erstellen - ich habe selber mit gwbasic angefangen. Ich sage nur RENUM...
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
joe1237



Anmeldungsdatum: 18.10.2006
Beiträge: 6

BeitragVerfasst am: 18.10.2006, 16:16    Titel: Starten und Schreiben eines gwbasic-Programms in Windows Antworten mit Zitat

Hallo!
Das Starten eines gwbasic-Programms mit Doppelklick funktioniert tatsächlich so, wie es skilltronic beschrieben hat!
Nun benötige ich also nur noch ein Programm, mit dem die Tabelle statt auf dem Bildschirm nun auf dem Drucker ausgegeben wird, und ich meine, es müßte mit "qbdruck" funktionieren, aber wie? Leider geht aus der Anleitung für mich nicht hervor, welche Schritte im einzelnen zu tun sind, damit dieser Ausdruck auch klappt. Wer könnte mir helfen?
Dank im voraus und Gruß joe1237
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
croco97



Anmeldungsdatum: 04.11.2005
Beiträge: 260

BeitragVerfasst am: 19.10.2006, 12:11    Titel: Antworten mit Zitat

qbdruck kenne ich nicht. Aber ein paar Ideen, wie du mit leichten Modifikationen ev. zum richtigen Ergebnis kommst.
- Wenn du "tabelle.dat" ausgibst, musst du das entsprechende File mit
Code:

OPEN "tabelle.dat" FOR OUTPUT AS #1"

oder so öffnen. Ersetze hier mal "tabelle.dat" durch "LPT1:" und deine Tabelle müsste aus dem Drucker flutschen...
- Alternativ: Habe gerade nachgeschaut: gwbasic hat den SHELL-Befehl. Dann kannst du auch in dein Programm SHELL"copy tabelle.dat LPT1:" einbauen. Müsste auch funktionieren.
- Es gibt in GWBASIC auch den LPRINT-Befehl. Du kannst also auch an den Stellen, an denen du die Tabelle in das File mittels PRINT #1,... ausgibst, einfach LPRINT schreiben - und schon hast du's auch.

Tipp noch:
QBASIC ist GWBASIC abwärtskompatibel, hat aber den besseren Editor lächeln

Viele Grüsse!

Croco
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
joe1237



Anmeldungsdatum: 18.10.2006
Beiträge: 6

BeitragVerfasst am: 19.10.2006, 14:09    Titel: Antworten mit Zitat

Hallo!
Ich muß meine Frage noch weiter präzisieren: Gibt es eine Möglichkeit, print-Befehle, die in den jeweiligen Zeilen des gwbasic-Programms stehen, statt auf dem Bildschirm auf dem Drucker ausgeben zu lassen?
Gruß joe1237
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 19.10.2006, 14:50    Titel: Antworten mit Zitat

Das nannte croco97 doch schon. zwinkern
LPRINT statt PRINT. Allerdings: du brauchst einen Drucker der an den LPT1 (Parallel-Port) angeschlossen wird.
QBDruck ist nur dafür gedacht, falls Windows geladen und ein USB-Drucker sowie passender Treiber dafür installiert ist, einen Text zu drucken. Falls du aber noch so einen alten hast, kannst du LPRINT verwenden. lächeln
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


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

BeitragVerfasst am: 19.10.2006, 15:00    Titel: Antworten mit Zitat

Mao hat Folgendes geschrieben:
(Allerdings weiß ich nicht, ob SHELL in GW-BASIC schon vorhanden war. :x)

Gab es dort auf jeden Fall bereits und hatte ich ganz früher auch schon einige Male benötigt.

Ansonsten habe ich diesen Veteranen eigentlich in der DOS-Partition bei mir auf praktisch jedem "Göppel" auch drauf - läuft soweit unter XP Professional ohne Probleme.

PS: Der Vista-Labor-PC läuft immer noch - soll ich GWBASIC.EXE dort einmal testen? :-)
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 19.10.2006, 15:02    Titel: Antworten mit Zitat

Joa, wär mal ganz interessant zu wissen. lächeln
Obwohl ich mir trotzdem kein Vista holen werde...wobei...könnte sich der Start von Vista nicht noch um ein paar Jahre verzögern? Bis dahin bin ich Service-Personal und kann mir sicher sein, dass ich durch Vista meine Arbeit behalten werde. durchgeknallt lachen
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
joe1237



Anmeldungsdatum: 18.10.2006
Beiträge: 6

BeitragVerfasst am: 19.10.2006, 18:10    Titel: Antworten mit Zitat

Hallo Mao!
Ich habe soeben meinen Drucker durch ein 25-poliges Kabel mit meinem Laptop verbunden und die Installation mit LPT1 vorgenommen. Zur Kontrolle habe ich noch ein Text-Dokument ausdrucken lassen, was auch einwandfrei funktionierte.
Als ich aber jetzt mein gwbasic-Programm in einer print-Zeile gegen eine lprint-Zeile ausgetauscht habe, wurde nichts auf den Drucker ausgegeben!
Ich besitze einen Canon-Drucker i560. Nach Aussage von Canon kann ein solcher Ausdruck auch nicht mehr funktionieren, da der Drucker den lprint-Befehl überhaupt nicht versteht; deshalb sind auch alle Druckbefehle - egal, ob von gwbasic oder von ms-dos aus - bei einem solchen Drucker nicht mehr wirksam!
Falls ich mich irre, wäre ich um eine richtigstellende Info sehr dankbar.
Im voraus hierfür Dank und Gruß joe1237
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 19.10.2006, 18:21    Titel: Antworten mit Zitat

Hi. lächeln
Das liegt daran, dass der Drucker zu neu ist. Ich hab' nur erwähnt, dass es 'nen LPT1-Drucker sein muss - nicht aber, dass er die Daten auch im Rohformat entgegen nehmen muss. Sry dafür. traurig
Allerdings müsstest du solch einen (meist Nadel-) Drucker günstig bei eBay erwerben können. Oooder du lässt das Programm unter Windows laufen und benutzt RGHDruck (QB-Druck). Wie das geht, steht ja eigentlich schon oben beschrieben. zwinkern Wärs evtl. möglich, wenn's nun auch nicht geht, genauer zu beschreiben, was das Problem ist? grinsen zwinkern
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 19.10.2006, 18:32    Titel: Antworten mit Zitat

Oder man benutzt FreeBASIC und druckt per Winapi, da kann man dann auch Bilder drucken happy
_________________
Code:
#include "signatur.bi"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
croco97



Anmeldungsdatum: 04.11.2005
Beiträge: 260

BeitragVerfasst am: 20.10.2006, 13:52    Titel: Antworten mit Zitat

OK, sorry. Hab's gerade ausprobiert: Unter NT 4.0 aufwärts klappt das mit LPT1: und LPRINT tatsächlich nicht mehr so ohne Weiteres. Ganz abgesehen davon, dass nicht alle Drucker mehr Raw-Text verarbeiten (z.B. keine GDI-Drucker).

Ich schätze, man könnte mittels Aufruf eines VBScripts via SHELL() ans Ziel kommen, aber ich verwende VBscript nicht, weiss also auch nicht, wie man von dort den Drucker ansteuert.

Typisches Beispiel, wie kompliziert das Programmiererleben bei einfachen Dingen im Jahr 2006 geworden ist...

Viele Grüsse!

Croco
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Manu



Anmeldungsdatum: 16.07.2006
Beiträge: 174
Wohnort: Bayern

BeitragVerfasst am: 23.10.2006, 16:39    Titel: Antworten mit Zitat

könntest mal das Bundesliga Programm posten
inklusive Source

mich würds interessieren

danke

mfg Manu
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


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

BeitragVerfasst am: 24.10.2006, 08:09    Titel: Antworten mit Zitat

Ansonsten die Grundproblematik beim Drucken hatte ich auch schon mehr als einmal erwähnt: Der klassische GW-BASIC und QB-Befehl LPRINT stammt noch aus der Zeit des Single Task-Betriebssystems MS-DOS. Dort gehörte einem das System und die CPU exklusiv, man musste keine saubere Druckjob-Abgrenzung haben (wobei der LAN-Manager dies aber auch schon nötig machte, weil dies ja ziemlich "Fruchtsalat" gäbe, würden zwei Benutzer gleichzeitig einen Druckjob abschicken, aber aufgrund einer fehlenden Jobabgrenzung ist es dem Spooler überlassen, in welcher Mischreihenfolge die Druckdaten zu Papier gebracht werden).

@joe1237: Folgender Versuch wäre das Ganze noch wert: Anstelle von LPRINT mit OPEN "lpt1:" FOR OUTPUT AS 1 arbeiten und PRINT# anstelle von LPRINT verwenden. Schliesslich würde ich ganz am Schluss den Druckjob mit
Code:
PRINT#1, CHR$(12);
CLOSE 1

abschliessen, d.h. Form Feed senden. Mit OPEN und CLOSE hast Du schlussendlich noch die beste Chance, dass das Spoolersystem der Multitasking-Umgebung Windows Deinen Druckjob als atomare Einheit entgegennimmt und sauber in die Warteschlange einordnet.

Ansonsten Artikel aus meiner berühmten Sammlung, die noch am ehesten passen:

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/BildschirmHardcopy.html
http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/BASICunterWindows95_98_NT.html
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
joe1237



Anmeldungsdatum: 18.10.2006
Beiträge: 6

BeitragVerfasst am: 04.11.2006, 18:03    Titel: Antworten mit Zitat

Also: Nachdem ich mir einen alten OKI-Drucker beschafft habe, funktionieren der lprint- und der llist-Befehl einwandfrei; auch der Befehl dir > prn liefert einen einwandfreien Ausdruck des dir auf dem Drucker.
Leider konnte ich aber nicht die früher unter MS-DOS funktionierenden Befehle
Shift-->PrtSc (Ausdrucken des Bildschirminhalts) und CTRL-->PrtSc (Ausdrucken der Daten, die ab jetzt auf dem Bildschirm erscheinen) aktivieren.
Meine Frage: Sind diese beiden letztgenannten Befehle von meinem Laptop mit Windows XP (also eingeschränktem DOS) aus überhaupt aktivierbar, und wenn ja, welche Tasten entsprechen Shift, CTRL und PrtSc ?
Dank im voraus für eine kurze Info und Gruß joe1237
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 04.11.2006, 18:26    Titel: Antworten mit Zitat

Ich glaube, das Shift brauchst du nicht. Ein normales PrintScr dürfte reichen. Ich bin mir aber nicht zu 100% sicher, ob das XP auch noch unterstützte - hab meinen Nadeldrucker nicht mehr. traurig

/edit:
Aber du kannst dir ein QB-Programm basteln, das das für dich übernimmt. lächeln
Code:

Sub Ausdrucken
  For y=1 To 25
    For x=1 To 80
      Zeile$=Zeile$+Screen(y, x)
    Next x
    LPrint Zeile$
    Zeile$=""
  Next y
End Sub

Screen setzt nämlich nicht nur einen Videomodus, sondern kann auch Zeichen auslesen. lächeln
Das kannst du dann auch noch mit einem Assembler-Programm mit der PrintScr-Taste verbinden.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
joe1237



Anmeldungsdatum: 18.10.2006
Beiträge: 6

BeitragVerfasst am: 07.11.2006, 16:04    Titel: Antworten mit Zitat

Hallo Mao!
Besten Dank für Dein kleines Programm, mit dem man den Bildschirmausdruck realisieren kann. Ich habe nur 2 Zeilen geringfügig ändern müssen, damit dieses Programm auf meinem OKI-Drucker lauffähig wurde:
1) FOR Y = 1 TO 24 (statt 25)
2) ZEILE$ = ZEILE$ + CHR$(SCREEN(Y,X))

Nochmals Dank und Gruß joe1237
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 07.11.2006, 16:22    Titel: Antworten mit Zitat

Oh...sorry. verlegen
Bei dem ersten Fehler hatte ich die 1. Zeile irgendwie nicht mit als Zeile gerechnet, bei dem zweiten: ich sollte meine Programme, so gut es geht, testen, bevor ich sie poste. lachen

Freut mich, trotzdem geholfen zu haben! lächeln
_________________
Eine handvoll Glück reicht nie für zwei.
--
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 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