Deutsch
Forum

Struct-Elemente via Variablen definieren?

 
In Profan10 klappt Struct mit Längenvariablen offenbar nicht:
KompilierenMarkierenSeparieren
CLS
Declare Feld#[620], s1%,s2%,s$,i&
s1%=20
s2%=40
Struct Feld = Vorname$( s1% ), Nachname$( s2% )
Dim Feld#[],Feld
WaitInput
Dispose Feld#[]
End

Oder mach ich einfach was falsch?
Und geht das vielleicht in Profan11?
 
07.09.2008  
 




Jörg
Sellmeyer
Funktioniert in 11 auch nicht. Ich denke, mit den Strukturen und Klassen ist Roland noch nicht so weit, wie die Anwender. Viele Sachen funktionieren da noch nicht so so, wie gewohnt.
Siehe z.B. hier:  [...] 
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
07.09.2008  
 



Hilfe
$(n):n = Länge des Strings.


Es steht zwar nicht, dass es sich hierbei um eine Konstante handeln muss - aber auch nicht das es ein Argument sein darf.

Schreibt man also
KompilierenMarkierenSeparierendann funktioniert es.
 
07.09.2008  
 



Klar, das geht. Aber wenn ich z.B. eine Datei bearbeiten will, die ich noch nicht kenne und deren Struktur ich erst aus einem Header auslesen muss, dann kann ich STRUCT als Befehl im moment nur vergessen. Oder kann ich bei $(n) die Konstante n noch irgendwie beeinflussen? (Habs im Interpreter mit execute versucht, klappt aber auch nicht, weil der im Moment nur einzelne Befehlsstrings kann).
Gruss, Specht
 
07.09.2008  
 



Nimm doch Long statt $(n) mit dem Du Dir das Handle GlobalAlloc(gPtr,sz) merkst, wird auch die Struktur kleiner.
 
07.09.2008  
 



Und hier die nächste Überraschung:
KompilierenMarkierenSeparieren
 {$cleq}
Cls
Declare x%
set("decimals",0)
x% = 620
Declare Feld#[x%]
print "Das Bereichsarray wird ohne weiteres variabel dimensioniert"
Struct Subfelder = Hinz$(1), Kunz$(1)
Struct Feld = Vorname$(20), Nachname$(40), Subfelder
Dim Feld#[],Feld
print "Die Gesamtlänge der Struktur Feld wird korrekt berechnet: ",SizeOf(Feld#[0])
print
print "Nun folgen 4 Zuweisungen:"

With Feld#[1]

    .Vorname$="Quasimodo"
    .Nachname$="Pivonka"
    .Hinz$="A"
    .Kunz$="B"

EndWith

print "Die Ausgabe zeigt:"

With Feld#[1]

    print .Vorname$, "<-- Hier sollte Quasimodo stehen!"
    print .Nachname$, "<-- Hier sollte Pivonka stehen!"
    print .Hinz$, "<-- Hier sollte A stehen"
    print .Kunz$,"<-- Hier sollte B stehen"

EndWith

beep
print
print "Warum das bei A nicht klappt, ist denn doch etwas überraschend..."
WaitInput
Dispose Feld#[]
End
Ich glaube, was ich brauche ist ein LONG-Drink...
 
07.09.2008  
 




Jörg
Sellmeyer
Was genau klappt denn da nicht? Bei mir steht


Quasimodo
Pivonka
A
B
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
07.09.2008  
 



Hm so bei mir...

Siehe 1. Ausgabewert

7 kB
Kurzbeschreibung: Wiederholbar?
Hochgeladen:07.09.2008
Ladeanzahl115
Herunterladen
 
07.09.2008  
 




Sebastian
Sprenger
Hmm, also in XProfan 11 bekomme ich dasselbe raus wie Jörg - also das richtige.

Aber in XProfan 10 Free ist es tatsächlich falsch!
Die erste Ausgabe heißt dort nicht "Quasimodo", sondern "A".

Nach meiner Kurzrecherche ist es wohl ein Bug beim Vererben von Strukturen:  [...] 
 
Profan² 7.0e, XProfan 9, 11.2a, FreeProfan32
Windows Vista Home Premium 32-Bit, 2.8 Ghz, 4 GB RAM
Windows Me, 1.8 Ghz, 256 MB RAM
07.09.2008  
 



Ah, ein Lichtblick... kann sich also nur noch um Monate handeln..
Methode zur Versionsunterscheidung?
 
07.09.2008  
 



Unterschied zum XProfan 10, 11 machts "korrekt".
 
07.09.2008  
 




RGH
In XProfan 10 mußte die zu beerbende Struktur (im Gegensatz zur Angabe in der Hilfe) wie bei Objekten an erster Stelle stehen, sonst funktionierte es nicht korrekt. In XProfan 11 ist dieser Fehler behoben.

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
07.09.2008  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

4.191 Betrachtungen

Unbenanntvor 0 min.
RudiB.16.08.2022
Georg Teles27.12.2018
Sebastian Sprenger13.10.2013
Andre Rohland10.12.2012

Themeninformationen



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