Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
joe1237
Anmeldungsdatum: 18.10.2006 Beiträge: 6
|
Verfasst am: 18.10.2006, 12:01 Titel: Starten und Drucken eines gwbasic-Programms in Windows |
|
|
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 |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 18.10.2006, 12:27 Titel: |
|
|
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 |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 18.10.2006, 12:32 Titel: |
|
|
Hallo.
Das Problem bei GW-Basic ist, dass es eine interpretierte Sprache ist. Aber sonst hat Skilltronic recht, also mit dem Verknüpfen.
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. )
Probier's mal aus.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 18.10.2006, 12:53 Titel: |
|
|
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 |
|
 |
joe1237
Anmeldungsdatum: 18.10.2006 Beiträge: 6
|
Verfasst am: 18.10.2006, 16:16 Titel: Starten und Schreiben eines gwbasic-Programms in Windows |
|
|
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 |
|
 |
croco97

Anmeldungsdatum: 04.11.2005 Beiträge: 260
|
Verfasst am: 19.10.2006, 12:11 Titel: |
|
|
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
Viele Grüsse!
Croco |
|
Nach oben |
|
 |
joe1237
Anmeldungsdatum: 18.10.2006 Beiträge: 6
|
Verfasst am: 19.10.2006, 14:09 Titel: |
|
|
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 |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 19.10.2006, 14:50 Titel: |
|
|
Das nannte croco97 doch schon.
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.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 19.10.2006, 15:00 Titel: |
|
|
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 |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 19.10.2006, 15:02 Titel: |
|
|
Joa, wär mal ganz interessant zu wissen.
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.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
joe1237
Anmeldungsdatum: 18.10.2006 Beiträge: 6
|
Verfasst am: 19.10.2006, 18:10 Titel: |
|
|
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 |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 19.10.2006, 18:21 Titel: |
|
|
Hi.
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.
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. Wärs evtl. möglich, wenn's nun auch nicht geht, genauer zu beschreiben, was das Problem ist?  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 19.10.2006, 18:32 Titel: |
|
|
Oder man benutzt FreeBASIC und druckt per Winapi, da kann man dann auch Bilder drucken  _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
 |
croco97

Anmeldungsdatum: 04.11.2005 Beiträge: 260
|
Verfasst am: 20.10.2006, 13:52 Titel: |
|
|
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 |
|
 |
Manu

Anmeldungsdatum: 16.07.2006 Beiträge: 174 Wohnort: Bayern
|
Verfasst am: 23.10.2006, 16:39 Titel: |
|
|
könntest mal das Bundesliga Programm posten
inklusive Source
mich würds interessieren
danke
mfg Manu |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 24.10.2006, 08:09 Titel: |
|
|
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 |
|
 |
joe1237
Anmeldungsdatum: 18.10.2006 Beiträge: 6
|
Verfasst am: 04.11.2006, 18:03 Titel: |
|
|
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 |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 04.11.2006, 18:26 Titel: |
|
|
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.
/edit:
Aber du kannst dir ein QB-Programm basteln, das das für dich übernimmt.
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.
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 |
|
 |
joe1237
Anmeldungsdatum: 18.10.2006 Beiträge: 6
|
Verfasst am: 07.11.2006, 16:04 Titel: |
|
|
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 |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 07.11.2006, 16:22 Titel: |
|
|
Oh...sorry.
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.
Freut mich, trotzdem geholfen zu haben!  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
|