| |
|
|
| In Profan10 klappt Struct mit Längenvariablen offenbar nicht: KompilierenMarkierenSeparieren Oder mach ich einfach was falsch? Und geht das vielleicht in Profan11? |
|
|
| |
|
|
|
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. |
|
|
| |
|
|
|
| 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 |
|
|
| |
|
|
|
| Nimm doch Long statt $(n) mit dem Du Dir das Handle GlobalAlloc(gPtr,sz) merkst, wird auch die Struktur kleiner. |
|
|
| |
|
|
|
| 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... |
|
|
| |
|
|
|
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 |
|
|
| |
|
|
|
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? |
|
|
| |
|
|
|
| Unterschied zum XProfan 10, 11 machts "korrekt". |
|
|
| |
|
|
|
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 ▲ |
|
|
|