SEQ-Datei mit Namen in Variable anlegen

Es gibt 24 Antworten in diesem Thema, welches 1.169 mal aufgerufen wurde. Der letzte Beitrag (26. Juli 2025 um 14:10) ist von berni.

  • Vielleicht in Zeile 2025 mal print d$(ds,f) eingeben. Dann siehst du, wo er hängen bleibt.

    Leider nicht, Zeile 2025 wird erst gar nicht ausgeführt, das Programm hängt sich weiterhin unmittelbar vor Beginn der Doppelschleife auf!

    Vorhin habe ich mal mit einfacher strukturierten Dateiein- und -ausgaben experimentiert, als Erstes das Lesen und Schreiben einer einzelnen Textzeile, Eingabe als Literal:

    Bitte melde dich an, um diesen Anhang zu sehen.

    Wie man sieht, läuft das Programm einwandfrei - das Stringliteral wird auf Diskette geschrieben, anschließend in eine Variable eingelesen und auf den Bildschirm ausgegeben.

    Dann als Nächstes Eingabe, Schreiben, Lesen und Ausgabe eines kleinen zweidimensionalen Arrays, diesmal durchgehend via Variablen:

    Das Listing:

    Bitte melde dich an, um diesen Anhang zu sehen.

    ...und ein Testlauf des Programms:

    Bitte melde dich an, um diesen Anhang zu sehen.

    Auch hier funktioniert alles wie beabsichtigt... der einzige Unterschied zu "tele-disk(un so)" ist, dass ich sämtliche Schleifen unverschachtelt gelassen habe (eine zweite Schleifenebene wäre bei nur 2 Elementen in der zweiten Arraydimension ja auch Overkill...). Könnte es eventuell sein, dass der interne Dateizeiger mit verschachtelten Schleifen nicht zurechtkommt?

    Bis bald im Khyberspace!

    Yadgar

  • das Programm hängt sich weiterhin unmittelbar vor Beginn der Doppelschleife auf!

    Das widerspricht doch deiner Aussage, dass 2021 einmal ausgeführt wird. :?:

    Bitte melde dich an, um diesen Link zu sehen. (Bitte melde dich an, um diesen Link zu sehen.)Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.
  • Ich glaube du wirfst $ds() und $ads() durcheinander. Bei der Suche nach dem ersten leeren Zeichensatz suchst du in $ads(), aber du speicherst die Werte in $ds(). Da du $ads() nie änderst, ist da bereits der erste Zeichensatz leer und demnach wird auch nichts auf die Diskette geschrieben.

    Und nochwas was mir aufgefallen ist: In 5120 springst du mit GOTO aus dem Unterprogramm raus. Das führt, wenn man das Programm länger benutzt (= wenn du ca. 20mal e eingegeben hast), irgendwann zu einem OUT OF MEMORY ERROR, da bei jedem Aufruf des Unterprogramms die Rücksprungadresse auf dem Stack liegen bleibt.

  • - CBM-DOS hat ein Problem mit sehr kurzen Dateien (vor allem solchen mit nur einem Zeichen). Es wäre besser, die Anzahl der Datensätze als erstes in die Haupt-Datei zu schreiben.

    - Variablennamen (inklusive Arrays) haben im CBM-Basic nur maximal zwei gültige Zeichen; mehr können eingegeben werden, der Interpreter ignoriert sie aber. Daher sind 'abstand' und 'aberheidschi' dieselbe Variable.

    - Ich bin mir durchaus unsicher, ob die POKE-Zeile eine gültige Möglichkeit ist, das Array zu löschen.

    KI-Verwendung in diesem Posting: Rechtschreibkontrolle des Browsers.
    Abweichungen aufgrund des technischen Fortschritts oder individueller Vorlieben vorbehalten.

  • - Ich bin mir durchaus unsicher, ob die POKE-Zeile eine gültige Möglichkeit ist, das Array zu löschen.

    Das sollte gehen. Der CLR-Befehl macht auch nichts anderes...