Variable im Variablennamen?

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

derAtomkeks

ehemals "Sethus"

Betreff: Variable im Variablennamen?

BeitragMi, Apr 19, 2006 18:19
Antworten mit Zitat
Benutzer-Profile anzeigen
HI, kann man irgendwie in einem Variablennamen mithilfe von variablen machen?
Also ich meine das so:

for i=1 to 5
dim feld+i(2)
next

das ich dann da 5 Felder rausbekomme: feld1, feld2,feld3, feld4,feld5
Ich hoffe ihr versteht was ich meine?

Goodjee

BeitragMi, Apr 19, 2006 18:22
Antworten mit Zitat
Benutzer-Profile anzeigen
ich habe mir da auch schonmal gedanken drüber gemacht, und meineransicht geht es nur ein bischen kompliziert....

man köntne es zum beispiel mit types mit dem namen var machen, in denen name und wert gespeichert sind, oder vllt mit banks....
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/
 

Steve0

BeitragMi, Apr 19, 2006 18:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Soweit ich weiß ist das nicht möglich.
Um mehrere Daten zu speichern gibts Dims und Types.

SteveO

[Edit]
Mist zu spät.
Pixelgenaue 2D SingleSurface Engine!!!

derAtomkeks

ehemals "Sethus"

BeitragMi, Apr 19, 2006 18:24
Antworten mit Zitat
Benutzer-Profile anzeigen
aber es müssen x verschiedene felder sein die jeweils y viele einträge haben.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragMi, Apr 19, 2006 18:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
Zitat:
kann man irgendwie in einem Variablennamen mithilfe von variablen machen?

nein, das geht überhaupt nicht!

Wenn dann so..
Code: [AUSKLAPPEN]

Dim Feld(5)
;jetzt kannst du jedes einzen ansprechen mit
Feld(1) = 10
Feld(2) = 20
;usw

Und abgesehen davon gehört das bestimmt in den Beginners-Corner!
[BB2D | BB3D | BB+]
 

Steve0

BeitragMi, Apr 19, 2006 18:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Dims gehen doch auch mehrdimensional.
z.B. Dim feld(10,5,1)

SteveO
Pixelgenaue 2D SingleSurface Engine!!!

derAtomkeks

ehemals "Sethus"

BeitragMi, Apr 19, 2006 18:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Das problem ist aber das es eine unbestimmte anzahl von feldern geben soll. Und ein Dim feld dimensioniert man einmal dann ist die Größe festgelegt und nicht mehr änderbar, oder?
 

trapper

BeitragMi, Apr 19, 2006 18:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann werden dir Types weiterhelfen. Wenn du dich deren bedienst, wirst du eine vorher unbestimmte Menge von "Variablen" anlegen können.

derAtomkeks

ehemals "Sethus"

BeitragMi, Apr 19, 2006 18:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hatte auch schon an Types gedacht, nur ich brauche auch eine unbestimmte anzahl von einträgen in den Types.
Es müsste sowas wie ein Type im Type geben.

D2006

Administrator

BeitragMi, Apr 19, 2006 19:07
Antworten mit Zitat
Benutzer-Profile anzeigen
In diesem Fall solltest du (ernsthaft) den Aufbau deiner Datenstrukturen überdenken. Ich weiß ja nicht, was für ein Problem du lösen willst, aber mir persönlich ist noch keins unter die Finger gekommen, wo so ein komplexer Datentyp notwendig gewesen wäre.

MfG
D2006
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2
 

HW

BeitragMi, Apr 19, 2006 19:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Übrigens ist nach dem Dimensionieren ein Array immer noch änderbar. Du kannst es ganz einfach redimensionieren.
Beispiel:
Code: [AUSKLAPPEN]
Dim bla(5)
Dim bla(10,20,30)
;funktioniert

Du bist dabei keinesfalls an die alte Struktur des Arrays gebunden. Für eine unbekannte Zahl solltest du für die Dimensionen Variablen einsetzen und dann gegebenfalls redimensionieren. Wenn du allerdings die alten Daten des Arrays behalten willst, ist dir nicht zu helfen.

Jan_

Ehemaliger Admin

BeitragMi, Apr 19, 2006 19:41
Antworten mit Zitat
Benutzer-Profile anzeigen
~VERSCHOBEN~

Types sind anfänger sachen
man könnte auch banks nehmen

Jan_
between angels and insects

5k41

BeitragMi, Apr 19, 2006 21:47
Antworten mit Zitat
Benutzer-Profile anzeigen
oder machst wirklich nen Type im Type:

Type Tparent
field child.Tchild
End Type

Type Tchild
field variable
End Type

Parent.Tparent=New Tparent
Parent\child.Tchild=New Tchild
Parent\child\variable=10
Parent\child.Tchild=New Tchild
Parent\child\variable=20

MfG
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image

derAtomkeks

ehemals "Sethus"

BeitragDo, Apr 20, 2006 8:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Und wie ruft man dann alle Childs in einem Parent ab? Ich meine mit for ... next

Jan_

Ehemaliger Admin

BeitragDo, Apr 20, 2006 8:58
Antworten mit Zitat
Benutzer-Profile anzeigen
garnicht,

sondern Recursiv.
Rekursiv, heißt, eine Function die sich selber aufruft.
in der machste nen For next,
http://blitzbase.de/befehle3d/countchildren.htm
For i=1 to countchildren(entity)
http://blitzbase.de/befehle3d/getchild.htm
blub=getchild(entity,i)
rekfunction(blub)
next
between angels and insects

derAtomkeks

ehemals "Sethus"

BeitragDo, Apr 20, 2006 9:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann kommt bei mir "Illegal Type Conversion". Und was ist Rekfunction? Den Befehl gibts doch garnicht, auf jeden fall nicht in blitz3D

d-bug

BeitragDo, Apr 20, 2006 9:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Was Jan_ dir gab ist ein Dummy-Code, also nichts was du kopieren und in deinen Code einfügen kannst.

RekFunction(blub) soll in dem Fall die oben genannte rekursive (sich selbst aufrufende) Funktion darstellen. Die mußt du dir selbst schreiben.

Ich möchte dir hier ans Herz legen, mal über dein Problem selbst nachzudenken, sonst wirst du es wahrscheinlich nie verstehen.

cheers

derAtomkeks

ehemals "Sethus"

BeitragDo, Apr 20, 2006 9:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, ich setze mich jetzt in mein stilles Kämmerlein und lese und überlege... Smile Trotzdem danke für die vielen Antworten!

Jan_

Ehemaliger Admin

BeitragDo, Apr 20, 2006 10:29
Antworten mit Zitat
Benutzer-Profile anzeigen
oh, ich hatte dich etwas fortgeschrittener erwartet,
Hier was zum testen, solllte Funktionieren,
Übergebe einfach dein Mesh mit den Children:

Code: [AUSKLAPPEN]
mesh = loadmesh("meinmodel.3ds")
rekfunction(mesh)


So, und nun die Funktion:

Code: [AUSKLAPPEN]

function rekfunction(entity)
  Local Blub
  if countchildren(entity) then
    For i=1 to countchildren(entity)
      blub=getchild(entity,i)
      ;hier kommt die veränderung des Childs hin
      rotateentity blub,rand(360),rand(360),rand(360) ; kleines Beispiel, alles sollte jetzt wie verrückt verdreht sein
      rekfunction(blub)
    next
  endif
end function
between angels and insects

derAtomkeks

ehemals "Sethus"

BeitragDo, Apr 20, 2006 10:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Das kann ich sicher gut gebrauchen, aber diese Funktionen (getchild etc.) funktionieren nur mit entitys. Hab mich vielleicht vorher etwas falsch ausgedrückt Embarassed . ich möchte zahlen aufrufen die ich vorher gespeichert habe, nicht irgendwelche entity handels (so heißt das doch?). Ich brauche sowas wie ein Dim feld das man redimensionieren kann ohne das der inhalt verloren geht.

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group