Man könnte in der RAM-Tabelle ein zusätzliches Feld "Kommentar" einbauen. Dann weiß man später auch noch, wieso man was wie gelöst hat. :-) Sollte zwar bei so kleinen COSI-Programmen egal sein, aber der Lerneffekt ist sicher höher.
In der Datei kann man ja den Kommentar durch eine Raute (#) getrennt vom COSI-Source absetzen. Zum Beispiel
LDAU7 # Lade die Zahl 7 in den Akkumulator
ADDD4 # Addiere die Zahl aus Speicherzelle 4 hinzu
STOD5 # Speichere das Ergebnis in Speicherzelle 5
END
13 # Diese Zahl soll in Zeile 1 addiert werden
? # Hier steht dann das Ergebnis 20
Im Command muss dann eine extra Variable comment angelegt werden.
Logged In: YES
user_id=1415729
Originator: NO
Ja, sehr gute Idee. Erhöht den Lerneffekt um ein Vielfaches.
Beim Export ins alte COSI-Format werden solche Kommentare dann verloren gehen. Darauf sollte man den User evtl. gesondert informieren (am besten direkt beim Export und in der Hilfe, denk ich mal).
Gespeichert werden sollte der Kommentar allerdings nur im Model der JTable (also RAMTable) und nicht im RAMModel, welches ja nur zur eigentlichen Befehlsspeicherung gedacht ist. Eventuell sollten da auch die verschiedenen Anzeigen für verschiedene Typen der JTable verwendet werden, um eine doppelte Speicherung zu vermeiden. Das ist aber ein anderess Thema...
Logged In: YES
user_id=1650589
Originator: YES
Auf jeden Fall ergibt der Kommentar nur im RAM Sinn. Sinnlos ist es im Stack, da hier kein Befehl vom User direkt reingeschrieben werden darf. Ich denke aber schon, dass man den Kommentar selber im jeweiligen Befehl (Command) hinterlegen sollte, denn ein Kommentar bezieht sich nun mal auf einen Befehl -- zumindest meistens.
Wenn man die beiden Models joint, ist das Problem, das du ansprichst, eigentlich schon behoben.
@Export-Warnung: Ja, die bestehende "zu große Zahl"-Warnung wird dann einfach hierum ergänzt
Logged In: YES
user_id=1650589
Originator: YES
Im neuen Speicherformat kann man auch Zeilenlabels für komprimierte Speicherung verwenden. Das würde z.B. Dokumente verkleinern, die viel Whitespace enthalten, z.B.
LDAU5
BRTD20
20: END
Nur so als Idee.
Logged In: YES
user_id=1650589
Originator: YES
Das "ganz neue" Speicherformat mit Zeilenlabels ist nicht eingebaut, der Rest schon.
Logged In: YES
user_id=1650589
Originator: YES
Das "ganz neue" Speicherformat mit Zeilenlabels ist nicht eingebaut, der Rest schon.