Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Smokie_joe

Anmeldungsdatum: 09.05.2005 Beiträge: 16
|
Verfasst am: 01.06.2005, 23:46 Titel: Variable mit Variabler Feldgröße ? |
|
|
Mein frage
ist es möglich das ich das feld für eine variable varaibel mache ??
statt Variable%(10)
Variable%(Variable2%)
Die Variable zwei die die Feldgröße bestimmen soll wird bei jedem durchlauf (z.B. nach Abfrage der Var um 1 erhöt)
ist dies oder etwas ähnliches möglich ?
thx im voraus
smokie |
|
Nach oben |
|
 |
Stormy

Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
Verfasst am: 02.06.2005, 00:14 Titel: |
|
|
Und wie das möglich ist:
Code: | $DYNAMIC
groesse% = 7
DIM Einkommen(groesse%)
PRINT "Momentane Feldgröße ist: "; UBOUND(Einkommen)
INPUT "Bitte gib die gewünschte Feldgröße an:", groesse2%
REDIM Einkommen(groesse2%)
PRINT "Neue Feldgröße ist: "; UBOUND(Einkommen)
SLEEP |
Bei deinem Falle schreibst du allgemein:
Code: | REDIM ArrayName(UBOUND(ArrayName)+1) |
Beachte jedoch, dass beim Neu-Strukturieren des Arrays jeglicher Inhalt verloren geht !
cu, Stormy _________________ +++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial |
|
Nach oben |
|
 |
Smokie_joe

Anmeldungsdatum: 09.05.2005 Beiträge: 16
|
Verfasst am: 02.06.2005, 00:31 Titel: |
|
|
vielen Dank für die schnelle antwort noch so spät
kleine (große) bitte kanst du mir evtl. noch die einzelnen befehle
die du benutz hast genauer erklären. wär nett
oder kann man das wo genau nachlesen ?
Mit dem Neu Organisieren...
Heißt das jedes mal wenn die größe des Felds geändert wird
geht der bisherige Inhalt verloren ?
nochma danke für die antwort
mfg
smokie |
|
Nach oben |
|
 |
Stormy

Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
Verfasst am: 02.06.2005, 00:54 Titel: |
|
|
Sagt dem Interpreter, dass dynamische Felder erlaubt sind. Den Apostroph davor nicht vergessen! Zur Not tuts auch REM.
Code: | groesse% = 7
DIM Einkommen(groesse%) |
Setze groesse% auf den Wert 7. Dimensioniere ein Feld mit dem Namen 'Einkommen' mit einer Feldgröße von der Variable groesse%
Code: | PRINT "Momentane Feldgröße ist: "; UBOUND(Einkommen)
|
Ausgabe der aktuellen Feldgröße durch UBOUND. UBOUND(ArrayName) gibt den höchsten Index des Feldes an. LBOUND(ArrayName) gibt übrigens den niedrigsten Index an.
Code: | INPUT "Bitte gib die gewünschte Feldgröße an:", groesse2% |
Abfrage für neue Feldgröße.
Zitat: | REDIM Einkommen(groesse2%) |
Dimensioniere das Feld 'Einkommen' erneut, aber mit der Feldgröße groesse2%
Code: | PRINT "Neue Feldgröße ist: "; UBOUND(Einkommen) |
Nochmalige Ausgabe der Feldgröße ! Diesmal aber anders als beim ersten Mal!
Code: | REDIM ArrayName(UBOUND(ArrayName)+1) |
Dimensioniere das Feld nochmal neu und setze die Feldgröße auf 'Jetzige Feldgröße' + 1.
Zu deiner Frage: Ja, der gesamte Inhalt wird dabei verloren gehen. Du kannst das Feld in ein anderes zwischenspeichern. Vielleicht gibt es ja auch noch andere Tricks ! (BSAVE und BLOAD könnten auch helfen...)
cu, Stormy _________________ +++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial |
|
Nach oben |
|
 |
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 02.06.2005, 20:17 Titel: |
|
|
Zwei Dinge möchte ich noch anmerken:
1. Wenn du eine Variable als Indexanzahl verwendet, und das Feld mit REDIM statt mit DIM erstellst, verwaltet QB das Array automatisch als DYNAMIC.
2. Unter QBX gibt es die Möglichket, ein Feld zu redimensionieren, ohne dabei die alten Einträge zu löschen. Die Syntax hier ist
REDIM PRESERVE Name(Indizies)
Beides gilt übrigens auch für freeBASIC. _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
 |
Smokie_joe

Anmeldungsdatum: 09.05.2005 Beiträge: 16
|
Verfasst am: 02.06.2005, 22:08 Titel: |
|
|
Danke für eure Hilfe !!
Werd mich dran versuchen.
Sollte ich auf neue probs stoßen werd ich mich ma wieder melden.
was ich nicht hoffe
mfg
smokie |
|
Nach oben |
|
 |
|