Hallo Besucher, der Thread wurde 2k mal aufgerufen und enthält 14 Antworten

letzter Beitrag von fantomas am

Input mit mehr als einer Zeile

  • Hallo,
    ich habe jetzt einen Drucker(1526) um laufen gebracht.
    Habe auch schon, mit Hilfe der Anleitung, etwas drucken können.


    Code
    1. 10 open 5,4
    2. 20 input a$
    3. 30 if a$="exit" then end
    4. 40 print#5, a$
    5. 50 close 5
    6. 60 goto 10


    Wenn ich jetzt mehr als eine Zeile Text eingeben will, schreibt er immer nur das letzte Zeichen.
    Wenn ich aber mit Variablen arbeite, passiert das nicht. (print#5, a$;b$;c$)


    Wie kann ich denn machen, das ich einen vernünftigen Text schreiben kann?
    Nach jeder Zeile Enter drücken?


    Kann man denn mit einer Routine z.b. den Tastatur-speicher auslesen und immer wieder an a$ hängen?
    Oder geht das nicht, weil a$ alleine wegen dem Speicherplatz keinen ganzen Roman beinhalten kann?


    Wie wäre es, wenn man alle paar Zeichen aus dem Tast.-Speicher in den Ram legt, und dann wieder ausliest?



    Gibt es denn da eine ganz einfache Routine?
    Wenn ja, könntet ihr mir die verraten?



    Danke im voraus!

  • Also, das hab ich damal auch versucht.
    Das Drucken auf diese art und weise geht nur sehr schwierig.
    Denn variablen vertragen nicht alle sonderzeichen (z.b. ",").
    Ich habe es bei einem anderen rechner (epson hx20) Dann so gelöst, dass ich über der eingabezeile eine Textzeie mit "____" gemacht hab, die genau so viele Zeichen enthält, wie eine Drckzeile.
    Ich bin mir nicht sicher, aber da Müsste man was mit dem LEN befehl machen können?


    Code
    1. 10 Get a$
    2. 20 if a$ = "" then 10
    3. 30 b$ = a$ + b$ : a$ = ""
    4. 40 if LEN(a$) = 80 then goto 60
    5. 50 goto 10
    6. 60 open 1,4
    7. 70 print#1 , b$
    8. 80 close 1
    9. 90 goto 10


    Bin mir aber nicht sicher, ob ich da jetzt nicht blödsinn geschrieben hab. Hab das prog nicht probiert. Aber Vlt. kanns Dir helfen.


    Zum drucken würde ich dir aber eher ein druckprogramm empfehlen. (den textomat z.b.)


    Gruß C-Man


    Ach ja. Das listing von sauhund dürfte dann aber glaub ich jedes zeichen in eine Zeile drucken.

  • Kennt denn jemand ein gutes Schreibprogramm, welches am besten in deutsch ist?


    Ich benutzte früher immer "MasterText Plus" von Markt&Technik, aber heute tue ich mit Textverarbeitung auf dem C64 dann doch nicht mehr an :)


    Gibt es gerade auch bei EBAY:
    http://cgi.ebay.de/C64-C128-Ma…BUFI%26otn%3D10%26ps%3D63

  • GET$ ist auf jeden Fall der absturzsicherere Befehl und schon deshalb zu bevorzugen. INPUT ist imho totaler Murks, man kann durch die Eingabe Errors produzieren, Pfeiltasten benutzen etc. p.p. --> Genauso überflüssig wie LET.


    Mit einer Kombination aus GET X$ und einer etwas ausgefeilteren Behandlung von Strings kriegt man einiges hin, Einzelstrings von bis zu (dezimal) 256 Zeichen Länge. Mit nur 4 Strings kannst Du den gesamten Bildschirminhalt speichern. Eleganter ist, dies zeilenweise zu machen, dann brauchst Du 4X240 Zeichen und 1X40 oben drauf.


    Beispiel

    Code
    1. 5 dim a$(4):a=.
    2. 20 getx$:ifx$<>""thenifasc(x$)>=67orasc(x$)<=93thena$(a)=a$(a)+x$:printx$;
    3. 30 if len(a$(a))=240then a=a+1:print
    4. 40 rem HIER KÖNNTE MAN ETWAS KOMPLIZIERTER EINRICHTEN, WIE MAN EIN ZEICHEN MITTELS "INST/DEL" LÖSCHT
    5. 50 rem HIER KÖNNTE MAN F-Tasten zum Verlassen abfragen ---> FOLGE: RETURN
    6. 60 goto 20


    Wichtiger Hinweis: Wenn Du die Strings im .SEQ-Format speichern willst, keine größere Länge als 80 wählen.

  • Kennt denn jemand auch eine Seite, auf der man sich diese Programme unterladen kann?
    Und kann mir jemand Schritt für Schritt erklären, wie ich die Programme mit dem Starcommander(oder evt. einem neuerem Programm) auf die Diskette bekomme?

    Du stellst einfach die falschen Fragen - Kann dem jemand erklären wie die Forumssuche und Google funktionieren?

  • Und verstößt auch gegen die Boardregeln:
    Zitat:
    2.7: Fragen nach Cracks, Serials, unlizensierter Software ( § 91 Abs. 1 UrhG) etc. sind untersagt, bei Zuwiderhandlung wird der Betreffende verwarnt.
    /Zitat: