Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
DJ Sayphor
Anmeldungsdatum: 19.01.2014 Beiträge: 10
|
Verfasst am: 21.02.2014, 20:21 Titel: Speicher mit dem DIM-Befehl in QBasic reservieren |
|
|
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 |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 21.02.2014, 22:16 Titel: Variablen deklarieren mit DIM |
|
|
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 _________________
Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
|
DJ Sayphor
Anmeldungsdatum: 19.01.2014 Beiträge: 10
|
Verfasst am: 21.02.2014, 22:29 Titel: |
|
|
...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 _________________ Achtel sind im Grunde genommen auch nur doppelt so schnell gespielte Viertel... |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 21.02.2014, 22:33 Titel: Array mit DIM deklarieren |
|
|
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 |
_________________
Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
|
DJ Sayphor
Anmeldungsdatum: 19.01.2014 Beiträge: 10
|
Verfasst am: 21.02.2014, 22:40 Titel: |
|
|
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 |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 21.02.2014, 23:32 Titel: |
|
|
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 |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 22.02.2014, 00:27 Titel: |
|
|
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). _________________
Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1211 Wohnort: Ruhrpott
|
Verfasst am: 22.02.2014, 11:13 Titel: |
|
|
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 |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2507 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 22.02.2014, 17:08 Titel: |
|
|
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 |
|
|
|