Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Variable mit Variabler Feldgröße ?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Smokie_joe



Anmeldungsdatum: 09.05.2005
Beiträge: 16

BeitragVerfasst am: 01.06.2005, 23:46    Titel: Variable mit Variabler Feldgröße ? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Stormy



Anmeldungsdatum: 10.09.2004
Beiträge: 567
Wohnort: Sachsen - wo die schönen Frauen wachsen ;)

BeitragVerfasst am: 02.06.2005, 00:14    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Smokie_joe



Anmeldungsdatum: 09.05.2005
Beiträge: 16

BeitragVerfasst am: 02.06.2005, 00:31    Titel: Antworten mit Zitat

vielen Dank für die schnelle antwort noch so spät zwinkern

kleine (große) bitte kanst du mir evtl. noch die einzelnen befehle
die du benutz hast genauer erklären. wär nett grinsen

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
Benutzer-Profile anzeigen Private Nachricht senden
Stormy



Anmeldungsdatum: 10.09.2004
Beiträge: 567
Wohnort: Sachsen - wo die schönen Frauen wachsen ;)

BeitragVerfasst am: 02.06.2005, 00:54    Titel: Antworten mit Zitat

Code:
'$DYNAMIC

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:
SLEEP

zwinkern

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 ! zwinkern (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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 02.06.2005, 20:17    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Smokie_joe



Anmeldungsdatum: 09.05.2005
Beiträge: 16

BeitragVerfasst am: 02.06.2005, 22:08    Titel: Antworten mit Zitat

Danke für eure Hilfe !!
grinsen
Werd mich dran versuchen.

Sollte ich auf neue probs stoßen werd ich mich ma wieder melden. peinlich

was ich nicht hoffe Zunge rausstrecken

mfg
smokie
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz