| |
|
|
- Seite 1 - |
|
Walter | Der Interpreter von XProfan X4 stürzt mit "Zugriffsverletzung" ab:
cls list$ 0 = "Anfang" print list$(0) waitinput
In der exe funktioniert es. |
|
|
| |
|
|
|
« Dieser Beitrag wurde als Lösung gekennzeichnet. » |
|
H.Brill | Wundert mich, daß es in der exe funktioniert. Das dürfte normalerweise gar nicht funtkionieren.
Hier fehlt eindeutig ein
wobei X für die Anzahl der Einträge steht. Also
Dann funktioniert das auch. Diese Listen haben NICHTS mit der immer initialisierten Listboxliste zu tun. Wenn es auch veraltet ist, sollte Roland vielleicht doch einen Hinweis bei
List!(N) - List$(N) - List%(N) - List&(N)
für Dim! x Dim$ x usw. in der Hilfe geben.
Listen kann man ja nicht genug haben. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 28.06.2018 ▲ |
|
|
|
|
|
Walter | |
|
| |
|
|
|
Jörg Sellmeyer | Kann es sein, dass du die Runtime noch nicht richtig eingetragen hast? Füg mal ein Print $ProfVer in den Code ein. |
|
|
| |
|
|
|
Walter | |
|
| |
|
|
|
H.Brill | Was auch noch erwähnenswert wäre bzw. was nicht jeder weiß : Die dynamischen Arrays, die hinter den Listen mit DIM stecken, kann man mit _SYSLIST$[], _SYSLIST%[], _SYSLIST&[] und _SYSLIST![] auch erreichen und damit auch in den Move-Funktionen verwenden. Auch die normalen Arrayfunktionen, wie SetSize() und SizeOf() und CLEAR können verwendet werden.
Das gehört dann auch zu der Rubrik SYSTEMVARIABLEN. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 30.06.2018 ▲ |
|
|
|
|
RGH | Diese vier überholten Listen, die vor Einführung von Arrays in XProfan als Array-Ersatz geschaffen wurden, werden in der Tat nach Abschaffung derselben durch diese vier dynamischen Arrays simuliert, damit alte Quellcodes noch funktionieren.
Bei neuen Programmen gibt es aber absolut keinen Grund, diese alten Listen zu benutzen, da dynamische Arrays deutlich vielseitiger sind.
Gruß Roland |
|
|
| XProfan X4Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 30.06.2018 ▲ |
|
|
|
|
Walter | Ist ja auch ein (ur)altes Programm, das ich nur in einem anderen Teil ergänzte, worauf es nun in X4 plötzlich nicht mehr laufen wollte! |
|
|
| |
|
|
|
H.Brill | RGH (30.06.2018)
Diese vier überholten Listen, die vor Einführung von Arrays in XProfan als Array-Ersatz geschaffen wurden, werden in der Tat nach Abschaffung derselben durch diese vier dynamischen Arrays simuliert, damit alte Quellcodes noch funktionieren.
Bei neuen Programmen gibt es aber absolut keinen Grund, diese alten Listen zu benutzen, da dynamische Arrays deutlich vielseitiger sind.
Gruß Roland
ein bißchen widersprichst du dir aber. Oben sagst du als erstes, daß diese Listen durch dynamische Arrays simuliert werden. Im Abschnitt darunter sagst du als zweites, daß man besser dynamische Arrays wegen der Vielseitigkeit nehmen sollte.
Was ist jetzt der Unterschied zwischen den vier fest eingebauten dynamischen Arrays und einem selbst deklariertem dynamischen Array ?
Also, ich würde sagen : Die vier festen Arrays würde ich beibehalten und wer will kann sie ja benutzen. Mir sieht es jedenfalls so aus, als wären diese vier ganz normale Arrays, deren Größe man man vorher mit Dim$ usw. festlegen muß. Wären es dynamische, käme auch kein Laufzeitfehler und auf das Dim$ /%/&/! könnte verzichtet werden. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 01.07.2018 ▲ |
|
|
|
|
RGH | Wo ist der Widerspruch?
Die speziellen dynamischen Arrays werden im Interpreter erst durch den DIM$-, DIM%-, DIM&- oder DIM!-Befehl erzeugt. Daher ist der DIM-Befehl wie bei den abgeschafften Originalen zwingend notwendig. So weit sollte die Simulation schon gehen.
Also DIM$ 20 erzeugt das dynamische Array _SYSList$[] und führt anschließen den Befehl SETSIZE _SYSList$[], 20 aus. Aus LIST$ 15="Hugo" wird im weiteren Verlauf des Programmes dann: LET _SYSList$[15]="Hugo". Und aus der Funktion LIST$(20) wird dann die interne Funktion _SYSList("$", 20), die das dynamische Array _SYSList$[] ausliest.
Gruß Roland |
|
|
| XProfan X4Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 01.07.2018 ▲ |
|
|
|
|
H.Brill | Aha, das wußte ich jetzt nicht, zu welchem Zeitpunkt diese speziellen Arrays erzeugt werden. Hätte ja auch sein können, daß sie beim Start der Runtime bzw. Interpreter schon mit einem Element initialisiert werden und das DIM einfach ein SetSize ist.
Dann kann man ja auch alles so lassen, wie es ist.
PS: Das scheinen dann nochmals spezielle Arrays zu sein. Du könntest doch, genau wie in der Hilfe zu dyn. Arrays, beim Start des Interpreters bzw. Runtime ein einfaches
VAR _SYSLIST$[], _SYSLIST%[],
_SYSLIST&[], _SYSLIST![]
machen und alles ist initialisiert. Ein
wäre dann das : _SYSList$[15]="Hugo" und setzt dann das Array auf 16 Einträge, wenn noch keine vorhanden. Geht doch bei den normalen dyn. Arrays genau so. Das DIM könnte dann zum Verkleinern des Arrays genutzt werden oder auch wegfallen, da es SetSize gibt.
Dadurch wäre dann auch der Programmabsturz durch ein vergessenes DIM erschlagen. Ist mal nur so eine Überlegung. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 01.07.2018 ▲ |
|
|
|