| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen | 
	
	
		| Autor | Nachricht | 
	
		| Nils 
 
 
 Anmeldungsdatum: 24.03.2006
 Beiträge: 191
 
 
 | 
			
				|  Verfasst am: 10.12.2012, 10:38    Titel: Titelzeile beim Ausdrucken programmieren |   |  
				| 
 |  
				| Hi Gemeinde! 
 Habe da eine kleine Programmfrage. Ich will eine Tabelle ausdrucken(ziemlich lange) und dadurch Platz sparen, dass ich über jede Spalte den Spaltennamen schreibe.
 Diese Spaltennamen sollen auf jedem neuen Papierblatt als Zeile ausgedruckt werden.
 Da ich gerne mit QBasic .txt-Dateien erzeuge und dort so schön Seitennummer und Filename autom. ausgedruckt werden, will ich das eben in die .txt-Dateien hineintun.
 
 Bitte um Hilfe
 
 Grüße aus dem Tauwetter
 
 
 Nils
 _________________
 Kontrolliert die Politik! Laßt nicht die Politik Euch kontrollieren! Das sind Eure Angestellten! Lasst Sie das spüren!!!
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| HorstD 
 
 
 Anmeldungsdatum: 01.11.2007
 Beiträge: 110
 
 
 | 
			
				|  Verfasst am: 10.12.2012, 15:00    Titel: |   |  
				| 
 |  
				|  	  | Code: |  	  | DIM spname AS STRING DIM seite AS INTEGER
 DIM maxze AS INTEGER
 DIM i AS INTEGER
 DIM x AS INTEGER
 
 seite = 1
 maxze = 55
 
 spname = "Spalte1    Spalte2   spalte3"
 
 
 'OPEN "lpt1" FOR OUTPUT AS #1
 OPEN "ausgabe.txt" FOR OUTPUT AS #1
 
 PRINT #1, spname
 PRINT #1, STRING$(50, "_")
 PRINT #1,
 FOR i = 1 TO 200
 PRINT #1, "Zeile" + STR$(i)
 
 IF i MOD maxze = 0 THEN
 PRINT #1,
 PRINT #1,
 PRINT #1, SPACE$(60) + "Seite" + STR$(seite)
 PRINT #1, CHR$(12)
 PRINT #1, spname
 PRINT #1, STRING$(50, "_")
 PRINT #1,
 seite = seite + 1
 END IF
 NEXT
 x = i MOD maxze
 IF x THEN
 FOR i = 1 TO maxze - x
 PRINT #1,
 NEXT
 PRINT #1, SPACE$(60) + "Seite" + STR$(seite)
 END IF
 CLOSE
 
 
 
 | 
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Nils 
 
 
 Anmeldungsdatum: 24.03.2006
 Beiträge: 191
 
 
 | 
			
				|  Verfasst am: 10.12.2012, 15:28    Titel: |   |  
				| 
 |  
				| Hi HorstD: 
 Das ging ja richtig schnell! Danke!
 Habe allerdings noch keine Ahnung, was dein Code so richtig macht und an welcher Stelle ich den einfügen soll.
 
 -Ich erzeuge ja schon eine datei, kann also keinen weiteren open-Befehl gebrauchen.
 -Verstehe noch nicht was die Variablen "seite" und "maxze" da bewirken.
 
 Hast Du das aus einem bereits geschriebenen Programm rausgenommen?
 
 Grüße
 
 Nils
 _________________
 Kontrolliert die Politik! Laßt nicht die Politik Euch kontrollieren! Das sind Eure Angestellten! Lasst Sie das spüren!!!
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| nemored 
 
  
 Anmeldungsdatum: 22.02.2007
 Beiträge: 4711
 Wohnort: ~/
 
 | 
			
				|  Verfasst am: 10.12.2012, 16:12    Titel: |   |  
				| 
 |  
				| So wie ich das beim überfliegen sehe, ist "seite" die aktuelle Seitenzahl und "maxze" die maximale Zeilenzahl pro Seite. Das Programm schreibt dir die Daten formatiert in eine neue Datei - diese müsstest du dann nur noch regulär ausdrucken (dabei "maxze" anpassen), oder stattdessen OPEN "lpt" aktivieren, also Ausgabe direkt an den Drucker. _________________
 Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Nils 
 
 
 Anmeldungsdatum: 24.03.2006
 Beiträge: 191
 
 
 | 
			
				|  Verfasst am: 10.12.2012, 18:09    Titel: |   |  
				| 
 |  
				| @HorstD: 
 -Ich weiß nicht, wieviele Zeilen ich erzeuge.
 -IUch bestimme nicht den Seitenumbruch, sondern Wordpad.
 -Nicht ich vergebe die Seitenzahlen, sondern Wordpad!
 -WP schreibt auch den Dateinamen in die erste Zeile.
 -Gibt es nicht eine Möglichkeit mittels einer Formatierungsanweisung das gleiche einfacher zu erreichen?
 
 jedenfalls mal vielen Dank an Deine Adresse
 
 Grüße Nils
 _________________
 Kontrolliert die Politik! Laßt nicht die Politik Euch kontrollieren! Das sind Eure Angestellten! Lasst Sie das spüren!!!
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| nemored 
 
  
 Anmeldungsdatum: 22.02.2007
 Beiträge: 4711
 Wohnort: ~/
 
 | 
			
				|  Verfasst am: 10.12.2012, 18:36    Titel: |   |  
				| 
 |  
				| Mach doch mal einen "Probeausdruck" - Druckvorschau reicht, dann siehst du, wie viele Zeilen reinpassen, bevor eine neue Seite beginnt. Nicht wirklich sauber, könnte aber funktionieren. Und wenn er die aktuelle Seitenzahl nicht dazu schreiben soll - lass sie einfach weg. 
 Ansonsten: http://www.freebasic-portal.de/befehlsreferenz/lprint-anweisung-349.html: LPRINT statt PRINT. Ungetestet, ob das auch wirklich in einem modernen Windowssystem funktioniert.
  Da steht dabei, wie du einen Seitenumbruch erzeugst. _________________
 Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| HorstD 
 
 
 Anmeldungsdatum: 01.11.2007
 Beiträge: 110
 
 
 | 
			
				|  Verfasst am: 10.12.2012, 23:52    Titel: |   |  
				| 
 |  
				| Hier eine angepasste Version. Wenn du damit nicht klarkommst, musst du deinen Code zeigen.
 
 
  	  | Code: |  	  | DIM spname AS STRING
 DIM maxze AS INTEGER
 DIM i AS INTEGER
 
 maxze = 52   'Max. Zeilen deiner Tabelle pro Seite (evtl. anpassen)
 
 spname = "Spalte1    Spalte2   spalte3"   ' Spaltenueberschrift (Beispiel)
 
 OPEN "ausgabe.txt" FOR OUTPUT AS #1     'ausgabe.txt durch deinen Dateinamen ersetzen
 
 PRINT #1, spname             'Spaltenueberschrift
 PRINT #1, STRING$(50, "_")   'Strich (nur als Beispiel)
 PRINT #1,                    'Leerzeile (nur als Beispiel)
 
 FOR i = 1 TO 200                 'nur als Beispiel
 PRINT #1, "Zeile" + STR$(i)   'durch deine Tabellenzeilen ersetzen
 
 IF i MOD maxze = 0 THEN        'Wenn max. Zeilenanzahl erreicht, dann
 
 PRINT #1, CHR$(12)          'Seitenumbruch
 PRINT #1, spname            'Spaltenueberschrift
 PRINT #1, STRING$(50, "_")  'Strich
 PRINT #1,                   'Leerzeile
 
 END IF
 NEXT
 
 CLOSE
 
 
 | 
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		|  |