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:

[gelöst] Problem mit lprint

 
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
s-m-n



Anmeldungsdatum: 03.10.2005
Beiträge: 106
Wohnort: Pietling in Oberbayern / Deutschland

BeitragVerfasst am: 10.03.2010, 21:08    Titel: [gelöst] Problem mit lprint Antworten mit Zitat

Hi,
ich nutze den lprint-Befehl unter WinXP und einem Canon Pixma iP4600. Funktioniert soweit ganz gut, nur hab ich folgendes Problem:

Code:
OPEN "tf2.txt" FOR INPUT AS #1
WHILE NOT EOF(1)
  LINE INPUT #1, Zeile(Zeilen)
  Zeilen+=1
WEND
Close #1

for i = 0 to zeilen
    lprint zeile(i)
next


druckt mir die Datei zwar wunderbar aus, lässt aber nach jeder Textzeile eine Leerzeile frei. Mit diesem Code

Code:

for i = 0 to 255
    lprint i; " "; chr(i)
next i


ist das aber nicht der Fall. Kann mir evtl. wer verraten, wie man das Einfügen der Leerzeilen (als Steuerzeichen wohl chr(10) ausgedrückt) verhindern kann? Wäre echt dankbar dafür.

MfG s-m-n


Zuletzt bearbeitet von s-m-n am 10.03.2010, 22:08, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 10.03.2010, 21:54    Titel: Antworten mit Zitat

Semikolon.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
HorstD



Anmeldungsdatum: 01.11.2007
Beiträge: 110

BeitragVerfasst am: 10.03.2010, 21:54    Titel: Antworten mit Zitat

Kann
Zitat:
mir evtl. wer verraten, wie man das Einfügen der Leerzeilen (als Steuerzeichen wohl chr(10) ausgedrückt) verhindern kann?


Indem du die Leerzeilen in der "tf2.txt" entfernst.

Oder versuch mal folgendes:


Code:


OPEN "tf2.txt" FOR INPUT AS #1
WHILE NOT EOF( 1 )

   LINE INPUT #1, Zeile

   IF LEN( Zeile ) THEN
      LPRINT Zeile
   END IF

WEND

Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
s-m-n



Anmeldungsdatum: 03.10.2005
Beiträge: 106
Wohnort: Pietling in Oberbayern / Deutschland

BeitragVerfasst am: 10.03.2010, 22:07    Titel: Antworten mit Zitat

28398 hat Folgendes geschrieben:
Semikolon.


Vielen Dank, genau das wonach ich gesucht hab lächeln hab wohl die Referenz nicht genau genug gelesen, es steht nämlich drin *nochmal nachgesehen hab* verlegen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 566
Wohnort: Jüterbog

BeitragVerfasst am: 10.03.2010, 23:59    Titel: Antworten mit Zitat

@28398: öhhm... entweder steh ich jetzt auf'm Schlauch.....
ein LINE INPUT "filtert" doch LF und CR am Ende aus der Zeile des Textfiles heraus, oder?
Also ein durch LINE INPUT "befüllter" String enthält keine Steuerzeichen am Ende.

wenn sich LPRINT analog zu PRINT verhält, wieso dann eine Semikolon?

...da ich meinen Drucker noch nie via LPRINT gefüttert habe, entschuldige ich mich mal schon im voraus
für die blöde Frage... grinsen
Mutton
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
HorstD



Anmeldungsdatum: 01.11.2007
Beiträge: 110

BeitragVerfasst am: 11.03.2010, 00:38    Titel: Antworten mit Zitat

Code:
hab wohl die Referenz nicht genau genug gelesen, es steht nämlich drin


In der Referenz steht, dass der (L)PRINT Befehl ohne Zeilenumbruch ausgeführt wird, wenn ein Semikolon am Ende steht.

Das bedeutet, alle Ausgaben werden in einer Zeile gedruckt. Zumindest solange bis der Drucker oder Bildschirm einen automatischen Umbruch erzeugt.

Dein Testcode funktioniert ja auch ohne Semikolon!
Code:

for i = 0 to 255
    lprint i; " "; chr(i)
next i


Wenn du hinter chr(i) ein Semikolon setzt, siehst du den Unterschied.
Code:

for i = 0 to 255
    lprint i; " "; chr(i);
next i



Aber ohne deine Textdatei (ein paar Zeilen reichen) gesehen zu haben, kann man nur rätseln.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
s-m-n



Anmeldungsdatum: 03.10.2005
Beiträge: 106
Wohnort: Pietling in Oberbayern / Deutschland

BeitragVerfasst am: 11.03.2010, 16:52    Titel: Antworten mit Zitat

HorstD hat Folgendes geschrieben:
In der Referenz steht, dass der (L)PRINT Befehl ohne Zeilenumbruch ausgeführt wird, wenn ein Semikolon am Ende steht.


In der Referenz vom 31.08.2009 (die ja die aktuelle sein sollte) steht unter PRINT folgendes:

Referenz hat Folgendes geschrieben:
Nach der Ausgabe des Ausdrucks wird der Textcursor um eine Zeile nach unten und in die erste Spalte dieser Zeile versetzt. Ein Semikolon hinter dem Ausdruck unterdrückt diesen Zeilenumbruch.


Wie gesagt, mit dem Semikolon am Ende der Anweisung funktioniert das ganze bestens. Probieren geht über studieren zwinkern

MfG

Edit: Die aktuelle Referenz ist von heute, hab ich mir gerade geholt. Steht aber selbiges drin zwinkern
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 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