Deutsch
Forum

Assozatives Array oder Dyn. Array als Eigenschaft in einer Klasse

 

pfisterhamj
Hallo,

ich würde gerne ein assoziatives Array oder ein dynamisches Array innerhalb einer Klasse nutzen (Als Eigenschaft). Leider hab ich bisher noch keinen Weg gefunden XProfan (X4) das auch korrekt mitzuteilen.

Wenn ich die Hilfe jedoch richtig lese kommt bei mir die Frage - geht das überhaupt?

Vielleicht hat jemand einen Tip wie ich sowas bewerkstelligen könnte.

Vielen Dank schonmal.
 
23.12.2019  
 




H.Brill
Leider ist es halt so, daß Strukturen und Klassen eine feste
Größe haben müssen, damit man mit DIM eine solche
erzeugen kann. Deshalb kommen auch nur die einfachen
Variablen in Betracht :


Der Typ der Elemente wird durch das Postfix gekennzeichnet:

&: 32-Bit Integer (Integer, LongInt: 4 Byte).

%: vorzeichenloser 16-Bit Integer (Word, ShortInt: 2 Byte).

$(n): Strings. n=Länge des Strings. Es ist zu berücksichtigen, dass immer ein Null-Byte als Endekennzeichen an den String angehängt wird! Deshalb muß n hier immer um 1 Byte größer angegeben werden, als Zeichen in den String passen sollen.

!: Fließkommazahlen (Double-Format: 64 Bit bzw. 8 Byte, das entspricht dem Float-Typ von XProfan).

#(n): Speicherbereich. n=Größe des Bereiches. Diese Speicherbereiche innerhalb einer Bereichsvariablen sind nicht mit Bereichsvariablen selbst zu verwechseln. Innerhalb der Struktur wird ein entsprechend großer Bereich an Bytes definiert, auf den wie bei einem String zugegriffen werden kann, mit dem Unterschied, dass es kein Null-Byte als Endekennzeichen gibt.

:@ Methode: Name einer Methode. Diese muss als Prozedur im Programm definiert sein, wobei ihr Name aus dem Klassennamen und dem Methodennamen (ohne @), verbunden mit einem Punkt, besteht.


Einzig mit #(n) könnte man ein statisches (festes) Array simulieren.
Mit Zahlen ist das ja kein Problem wegen der 4-Byte Grenze. Bei Strings
würde ich dann alle Strings gleich lang machen (MKStr$), um sie später
besser ausfiltern zu können.

Da muß man sich halt überlegen, was man mit OOP macht und was besser
ohne geht. Ein korrespondierendes dyn. Array geht ja auch.
 
Benutze XPROFAN X3 + FREEPROFAN
24.12.2019  
 




pfisterhamj
Danke für die Antwort. Dann muss ich mir was anderes überlegen.
 
24.12.2019  
 




H.Brill
Vielleicht wäre sowas interessant.
Gerade mal ausprobiert :
Class MeineKlasse = X%, T$(10), MeineKlasse@
Class MeinArray = X%, B$(10), MeinArray@

Proc MeineKlasse.MeineKlasse

    Parameters Long A[], String B[]

    WhileLoop 0, SizeOf(A[]) - 1

        .X% = A[&LOOP]
        .T$ = B[&LOOP]
        Print .X%, .T$

    EndWhile

EndProc

Proc MeinArray.MeinArray

    Parameters String A[]
    Declare String C[]
    C[] = A[]

    WhileLoop 0, SizeOf(C[]) - 1

        Print C[&LOOP]

    EndWhile

EndProc

Declare MeinObjekt#, MeinFeld#
Cls
MeinObjekt# = New(MeineKlasse,Array(Long 1, 2, 3, 4 ,5), Array(String "Das", "ist", "ein", "kleiner", "Test !"))
Print
MeinFeld#   = New(MeinArray, Array(String "das", "geht", "auch."))
WaitKey
Dispose MeinObjekt#, MeinFeld#
End
 
Benutze XPROFAN X3 + FREEPROFAN
24.12.2019  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

220 Betrachtungen

Unbenanntvor 0 min.
ByteAttack vor 16 Tagen
Sascha Haak vor 28 Tagen
Wilfried Friebe02.01.2020
Ernst02.01.2020
Mehr...

Themeninformationen

Dieses Thema hat 2 Teilnehmer:

pfisterhamj (2x)
H.Brill (2x)


AGB  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Impressum  |  Mart  |  Support  |  Suche

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