Deutsch
Forum

Longs / Integer in Struktur oder Klasse speichern

 

Jörg
Sellmeyer
Wie kann ich am Besten eine variable Anzahl von Longs/Integers in einer Klasse/Struktur speichern.
Bisher mache ich das über eine Liste Create("List"), aber dann sind die Zahlen immer nur als String gespeichert und müssen immer wieder umgewandelt werden.
Auf eine Bereichsvariable wird, laut Hilfe, auch wie auf einen String zugegriffen. Eine variable Anzahl von Variablen kann man nicht definieren...
Arrays in Klassen sind leider nicht möglich.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
31.08.2008  
 




Jac
de
Lad
Was spricht gegen eine Bereichsvariable?
KompilierenMarkierenSeparieren
declare b#,c#,t&
Dim b#,0
struct str1=a&,b&,c&
struct str2=a&,b&,c&,d&,e&

whileloop 10

    dim c#,str1
    t&=SizeOf(b#)
    dim b#,t&+SizeOf(c#)
    Speicherinhalt von c# an b#+t& kopieren; wie am besten (API?)
    dispose c#
    dim c#,str2
    t&=SizeOf(b#)
    dim b#,t&+SizeOf(c#)
    Speicherinhalt von c# an b#+t& kopieren; wie am besten (API?)
    dispose c#

endwhile

cls
Print SizeOf(b#)
Dispose b#
waitinput

...ungetestet...
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
31.08.2008  
 




Jörg
Sellmeyer
Dafür benötige ich dann aber wieder die glpobale Variable C#. Das kann man dann auch einfacher haben. Ich möchte die Longs nur innerhalb der Klasse speichern, ohne zusätzliche Variablen. Also etwa so, nur nicht mit dem Umweg über Strings. Geht das überhaupt?
KompilierenMarkierenSeparieren
Class Test = Test@,Inhalt$(1000),Anzahl%,getInhalt@

Proc Test.Test

    WhileLoop %pcount

        .Inhalt$ = .Inhalt$ + Str$(&(&Loop)) + "|"
        .Anzahl% = &Loop

    Wend

    Return .Inhalt$

EndProc

Proc Test.getInhalt

    Parameters Index%
    Return SubStr$(.Inhalt$,Index%,"|")

EndProc

Var B# = New(Test,123,345,2434,823) ,...,...)
Print B#.getInhalt(3),B#.Anzahl%
WaitInput

[offtopic]Hab die überflüssigen Beiträge entfernt[/offtopic]
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
31.08.2008  
 




eine variable Anzahl


Ist ja die Frage ob "variabel" hier auch "größenoffen" bedeuten soll.

Wenn es einfach sein soll, und eine Maximalgröße kein Problem ist, dann braucht man doch nur ein Long speichern welches das Handle eines Speichers beinhaltet. (So, wie ich das im Prinzip im ScrollControl-Quelltext mache.)
KompilierenMarkierenSeparieren
long h=globalAlloc(gPtr,8)
...
long h&,0=typ
long h&,4=wnd
...
globalFree(h)
...
So kann alles lokal in der Klasse abgesichert werden.
 
31.08.2008  
 




Jörg
Sellmeyer
Ok - muß ich mir mal GlobalAlloc ansehen. Hab ich bisher noch nix mit gemacht. So eine ungefähre Maximalgröße habe ich schon, daher müßte das funktionieren. Danke.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
31.08.2008  
 



Die im Grunde 3 verschiedenen Zeilen sinds.
 
31.08.2008  
 




Jörg
Sellmeyer
Klappt suuper!
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
31.08.2008  
 




Frank
Abbing
Alle meine Dlls arbeiten damit, obwohl Heaps ja nen Tacken schneller sein sollen. Sicher Aberglaube.
GlobalAlloc ist übrigens das gleiche wie LocalAlloc. Bevor du noch danach fragst...
 
31.08.2008  
 




Jörg
Sellmeyer
Da würd mich eher interessieren, was Heaps sind...
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
31.08.2008  
 



Auch nur Speicher aber dynamischer dank übergeordneter Zuordnung welche aber genau deshalb auch umständlicher ist. Du hast im Grunde ein Handle statt einer Adresse.
 
31.08.2008  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

1.173 Betrachtungen

Unbenanntvor 0 min.
Walter13.01.2023
Michael Borowiak12.01.2013
Jörg Sellmeyer21.10.2011

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