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:

Speicher mit dem DIM-Befehl in QBasic reservieren

 
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
DJ Sayphor



Anmeldungsdatum: 19.01.2014
Beiträge: 10

BeitragVerfasst am: 21.02.2014, 19:21    Titel: Speicher mit dem DIM-Befehl in QBasic reservieren Antworten mit Zitat

Hallo liebes Forum!

Habe leider schon wieder längst verdrängt, wie man Speicher mit Hilfe des DIM-Befehls reserviert. Bräuchte also einmal die Syntax vom Befehl.

Danke schon mal im Voraus
DJ Sayphor
_________________
Achtel sind im Grunde genommen auch nur doppelt so schnell gespielte Viertel...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5900
Wohnort: Deutschland

BeitragVerfasst am: 21.02.2014, 21:16    Titel: Variablen deklarieren mit DIM Antworten mit Zitat

Hallo,

mit DIM deklariert man Variablen und gibt an, welchen Datentyp sie besitzen sollen.

Beispiele:
Code:
'Ganzzahl:
Dim g As Integer
g = 123

'Gleitkommazahl:
Dim f As Double
f = 1.234

'String:
Dim s As String
s = "Hallo Welt"

'String fester Länge:
Dim fix As String * 12
fix = "Oberweserdampfschifffahrtgesellschaftskapitaen"
Print Chr$(34); fix; Chr$(34)


Viele Grüße!
Sebastian
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
DJ Sayphor



Anmeldungsdatum: 19.01.2014
Beiträge: 10

BeitragVerfasst am: 21.02.2014, 21:29    Titel: Antworten mit Zitat

...Kann sein, dass der DIM-Befehl für was anderes da ist.

In diesem Fall müsste ich nämlich für ca. 1000 - 2000 Werte Speicher in einer Schleife reservieren (eine Variable mit der Syntax [String$(Zahl)]).

Und ich dachte, dass man da dann DIM benutzen kann.

Danke für den Hinweis zwinkern
_________________
Achtel sind im Grunde genommen auch nur doppelt so schnell gespielte Viertel...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5900
Wohnort: Deutschland

BeitragVerfasst am: 21.02.2014, 21:33    Titel: Array mit DIM deklarieren Antworten mit Zitat

DJ Sayphor hat Folgendes geschrieben:
In diesem Fall müsste ich nämlich für ca. 1000 - 2000 Werte Speicher in einer Schleife reservieren (eine Variable mit der Syntax [String$(Zahl)]).

Du meinst ein Array. Das ist eine "Sonderform" einer Variable. Sie hat nur einen Namen, aber viele durchnummerierte "Schubladen".

Code:
Dim Benutzer(1 To 4) As String
Benutzer(1) = "Max Muster"
Benutzer(2) = "Petra Probe"
Benutzer(3) = "Thilo Test"
Benutzer(4) = "Erik Exempel"

Dim i As Integer
' Array von vorne bis hinten durchlaufen:
For i = LBound(Benutzer) To UBound(Benutzer)
   Print Benutzer(i)   'i-tes Element ausgeben.
Next i

Sleep: End

_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
DJ Sayphor



Anmeldungsdatum: 19.01.2014
Beiträge: 10

BeitragVerfasst am: 21.02.2014, 21:40    Titel: Antworten mit Zitat

Entweder bin ich zu dumm, zu müde, oder wir reden aneinander vorbei.

Ich will im Prinzip einen eigenen INPUT - Befehl zusammenbasteln und bräuchte deswegen nicht nur Platz für die standardmäßigen 10 Elemente (also nicht String$(1) bis String$(10), sondern String$(1) bis String$(1500))
_________________
Achtel sind im Grunde genommen auch nur doppelt so schnell gespielte Viertel...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 21.02.2014, 22:32    Titel: Antworten mit Zitat

Ja, wie wäre es dann mit
Code:
Dim Benutzer(1 To 1500) As String

statt
Code:
Dim Benutzer(1 To 4) As String

?
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5900
Wohnort: Deutschland

BeitragVerfasst am: 21.02.2014, 23:27    Titel: Antworten mit Zitat

Wie Jojo schon beschrieben hat, kannst du die Größe des Arrays (auch "Datenfeld" genannt) selbst bestimmen.

Code:
Dim x(1 To 3) As String

ergäbe ein Array mit 3 Zeichenketten-Elementen, während
Code:
Dim y(1 To 300) As String

gleich 300 Elemente ermöglicht. Das erste Element hat dabei den Index 1 (LBound) und das letzte Element den Index 300 (UBound).
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 873
Wohnort: Ruhrpott

BeitragVerfasst am: 22.02.2014, 10:13    Titel: Antworten mit Zitat

Hallo!

Ich glaube, ihr redet wirklich aneinander vorbei.

Was DJ Sayphor vermutlich meint, ist ein String mit n gleichen Zeichen, den er als Platzhalter verwenden möchte
Code:
STRING$(Länge%,{ASCII-Code% | Stringausdruck$})

Für eine selbstgebastelte INPUT - Funktion ist es allerdings unnötig, extra Platz zu reservieren, da QBasic seine Strings und den dafür erforderlichen Speicher selbständig verwaltet.

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2459
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 22.02.2014, 16:08    Titel: Antworten mit Zitat

Zum Thema Ersatz für INPUT:

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/BildschirmMasken.html

Zur eigentlichen Frage: Ansonsten wie bereits diskutiert ein expliziter DIM vom Array. Wie bei QB üblich lediglich auf die 64 KB-Segmentierung achten, d.h. Array kann nicht beliebig gross sein (dürfte in diesem Fall für den beabsichtigten Zweck keine Probleme geben).
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
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