Deutsch
Bugs und vermeintliche

Absturz bei Rückgabe eines Arrays

 

Paul
Glatz
Hallo Roland,

dieser Code stürzt unter XProfan X2a ab, aber bei XProfan 11.2 nicht. Warum????
Proc HDD

    Parameters hdd$
    declare hdd![2]
    hdd![0] = DiskFree(hdd$) /1024 /1024
    hdd![1]  = DiskSize(hdd$) /1024 /1024
    hdd![2] = hdd![1] - hdd![0]
    return hdd![]' Array zürückgeben

EndProc

cls' Fenster erstellen
font 2
Set("Decimals",2)
Declare hddc![2]' Array erstellen
hddc![] = HDD("C:")'Rückgabe von HDD in hddc! speichern
Print str$(hddc![0])',"MB frei"
Print str$(hddc![1])',"MB gesammt"
Print str$(hddc![2])',"MB belegt"
waitend

Gruß
Paul

14 kB
Hochgeladen:17.06.2011
Ladeanzahl254
Herunterladen
 
17.06.2011  
 




RGH
Da scheint tatsächlich ein Bug versteckt zu sein. Allerdings nur im Interpreter. Kompiliert klappt es.

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
18.06.2011  
 




Dietmar
Horn
Hallo Roland,

Paul und ich haben dieses Problem am Freitagnachmittag in unserem Kabinett in Lauta beide beim Entwickeln von Demos für unser XProfan-Lehrbuch festgestellt, und ich wußte leider auch keine Lösung dafür (außer vielleicht auf das Array insgesamt zu verzichten).

Compiliert tritt diese Fehlermeldung ebenfalls auf - bei Paul unter Windows 7 und bei mir zu Hause unter Windows XP Home. Beide verwenden wir stets die aktuellste Version XProfan X2a.

Gruß
Dietmar
 
Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V.  [...] 

Windows 95 bis Windows 7
Profan² 6.6 bis XProfan X2 mit XPSE

Das große XProfan-Lehrbuch:  [...] 
18.06.2011  
 




RGH
Hallo,

ein Workaround wäre, das Array als Parameter zu übergeben und dieses dann zu füllen.Arrays werden ja ebenso wie Bereiche als Referenz übergeben:
Proc HDD

    Parameters hdd$, hdd![]
    hdd![0] = DiskFree(hdd$) /1024 /1024
    hdd![1]  = DiskSize(hdd$) /1024 /1024
    hdd![2] = hdd![1] - hdd![0]

EndProc

cls' Fenster erstellen
font 2
Set("Decimals",2)
Declare hddc![2]' Array erstellen
HDD("C:", hddc![])
Print str$(hddc![0])',"MB frei"
Print str$(hddc![1])',"MB gesammt"
Print str$(hddc![2])',"MB belegt"
waitend

Gruß
Roland

PS: Selbstverständlich wird es einen Bugfix geben.
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
18.06.2011  
 




RGH
Ach ja, eine Ergänzung noch:

Meine Variante mit der Übergabe des Arrays als Parameter ist auch dann vorzuziehen, wenn der Bug mit der Rückgabe eines Arrays behoben ist: Sie ist schneller, da das Erzeugen, kopieren und Löschen eines zweiten Arrays im Speicher entfällt.

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
19.06.2011  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

8.300 Betrachtungen

Unbenanntvor 0 min.
p.specht22.09.2018
Michael W.26.03.2016
RICOSCH17.01.2016
Georg Teles14.05.2014
Mehr...

Themeninformationen

Dieses Thema hat 3 Teilnehmer:

RGH (3x)
Dietmar Horn (1x)
Paul Glatz (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie