Datenfelder

Die bekannteste Programmiersprache der Welt

Moderatoren: crack, Marwin, Krüsty

Antworten
Vylqun
Member
Beiträge: 10
Registriert: Samstag 10. Mai 2003, 14:34

Beitrag von Vylqun » Sonntag 11. Mai 2003, 12:58

Hallo,

Ich beschäftige mich schon seit einiger Zeit mit QBasic, habe aber noch nie ein Datenfeld benutzt. Jetzt brauche ich ein drei-dimensionales und ein zwei-dimensionales Datenfeld zum Speichern von einer Bildnummer und zwei dazugehörige Daten (z.B. Höhe, Breite). Könntet ihr mir vielleicht helfen?

AW DW
Wer viel weiß macht viele Fehler. Ich mache nie Fehler.

Benutzeravatar
Marwin
Moderator
Beiträge: 307
Registriert: Donnerstag 8. Mai 2003, 21:19
Wohnort: Seelow, Deutschland
Kontaktdaten:

Beitrag von Marwin » Montag 12. Mai 2003, 11:17

Hi DWinky,

Wenn die Bildnummern fortlaufend sind, dann könnte das hier reichen:

Code: Alles auswählen

DIM Bilder(maxId, 1) AS INTEGER

Bilder(0, 0) = 100
Bilder(0, 1) = 70

Bilder(1, 0) = 100
Bilder(1, 1) = 70
Bilder(id, 0) enthält die Breite des Bildes,
Bilder(id, 1) enthält die Höhe des Bildes,
id ist die Bildnummer und
maxId ist die höchste Bildnummer.

Sollten die Bildnummern nicht durchgängig sein, dann musst du oben nur etwas verändern:

Code: Alles auswählen

Bilder(anzahlBilder, 2) AS INTEGER

Bilder(0, 0) = 1
Bilder(0, 1) = 100
Bilder(0, 2) = 70

Bilder(1, 0) = 2
Bilder(1, 1) = 100
Bilder(1, 2) = 70
Hier ist
Bilder(n, 0) die Bildnummer,
Bilder(n, 1) die Breite des Bildes und
Bilder(n, 2)die Höhe des Bildes.

anzahlBilder steht selbstredend für die Anzahl der Bilder, deren Daten du im Datenfeld speichern möchtest.

n ist irgend eine Zahl von 0 bis anzahlBilder.

Ich hoffe das ist das wonach du gefragt hast?

:P Marwin

Vylqun
Member
Beiträge: 10
Registriert: Samstag 10. Mai 2003, 14:34

Beitrag von Vylqun » Mittwoch 20. August 2003, 08:22

Danke, aber nun habe ich ein weiteres Problem, ich habe jetzt ein Datenfeld
Feld (X,Y) Wobei X und Y in einem Unterprogramm festgelegt wird, das sieht ungefähr so aus:

[span style=font-family:Arial][span style=font-size:8pt;line-height:100%]for FeldX=30 To 390 step 20
for FeldY=30 to 390 step 20
X=(FeldX-10)/20
Y=(FeldY-10)/20
Wert =int(rnd*2)+1
Feld(X,Y)=Wert
next
next
[/span][/span]

Nun kann ich den Wert des Feldes Feld(2,2) oder Feld(3,5) auslesen,
aber ich würde gerne auch die Werte X und Y bei einem anderen Unterprogramm wieder aus dem Datenfeld herauslesen (sofern es geht).
Wer viel weiß macht viele Fehler. Ich mache nie Fehler.

Ignat
Alter Hase
Beiträge: 80
Registriert: Samstag 2. August 2003, 11:13
Kontaktdaten:

Beitrag von Ignat » Mittwoch 20. August 2003, 15:42

Hi!
Because of my bad German I dont understand your problem very good,
but why do you use such "difficult" structure like

Code: Alles auswählen

DIM Bilder(maxId, 1) AS INTEGER

I advice use to use "TYPE" :

Code: Alles auswählen

TYPE Bild
Breite AS INTEGER
Hohe AS INTEGER
END TYPE
DIM Bilder(1 to MaxID) AS Bild

With this structure you will forget a lot of problem!
I think its more usefull und "naturally"... :)
If the ship don't know where to go - it has no fair wind...

Vylqun
Member
Beiträge: 10
Registriert: Samstag 10. Mai 2003, 14:34

Beitrag von Vylqun » Donnerstag 21. August 2003, 13:49

Thanks for answer,

I’ve never worked with “TYPE”, and so I don’t know
weather I can make that ,in your example Bilder, is 1 or 2
(I’m sorry for my bad English.)
I’ll make a field with 20*20 Fields, and every Field has another value.
I’ll get the position of an Field, that I can paint in the Field if the Mouse over it.
I hope you understand my problem better now.
Wer viel weiß macht viele Fehler. Ich mache nie Fehler.

Ignat
Alter Hase
Beiträge: 80
Registriert: Samstag 2. August 2003, 11:13
Kontaktdaten:

Beitrag von Ignat » Donnerstag 21. August 2003, 14:15

Hm...
In your problem "TYPE" is more usefull.
Its like "RECORD" in Pascal or like "struct" in "C++"...
If the ship don't know where to go - it has no fair wind...

Vylqun
Member
Beiträge: 10
Registriert: Samstag 10. Mai 2003, 14:34

Beitrag von Vylqun » Mittwoch 27. August 2003, 08:29

Thank you.
Wer viel weiß macht viele Fehler. Ich mache nie Fehler.

Ignat
Alter Hase
Beiträge: 80
Registriert: Samstag 2. August 2003, 11:13
Kontaktdaten:

Beitrag von Ignat » Sonntag 31. August 2003, 01:05

Thank you
What for? [_[
I did nothing for you!
If the ship don't know where to go - it has no fair wind...

Vylqun
Member
Beiträge: 10
Registriert: Samstag 10. Mai 2003, 14:34

Beitrag von Vylqun » Mittwoch 24. September 2003, 19:56

Ive thank you for your help with "type".
Wer viel weiß macht viele Fehler. Ich mache nie Fehler.

Antworten