DataSection ?

Anfängerfragen zum Programmieren mit PureBasic.
ThomasT
Beiträge: 7
Registriert: 26.06.2005 21:24
Wohnort: Nürnberg

DataSection ?

Beitrag von ThomasT »

Ich möchte statische Daten möglichst kompakt im Programm ablegen.
Dazu habe ich einen Source auf der PureBasic.com Seite gefunden.
Das Programm heisst Ladys Garden.

Ich kann erkennen, dass die Daten in einem Array gespeicher werden.
Was ich nicht herausfinden konnte, ist wie diese Daten aus der "DataSection" gelesen werden.
Im Manual hab ich auch zu DataSection nichts gefunden.

Kann mir jemand erklären wie das funktioniert, oder gibt es eine bessere Methode statische Daten abzulegen?

Danke für jede Hilfe.


http://www.purebasic.com/download/examp ... sGarden.pb


DataSection ;maze data and movement data for Lady
level1: ;each level has 2 sets of maze data
Data.l 1,1,1,1,1,1,1,1,1,1,1,1
Data.l 1,3,5,5,5,5,5,5,5,5,5,1
Data.l 1,5,2,2,5,1,1,5,2,2,5,1 ;1 = bush1
Data.l 1,5,2,5,5,5,5,5,5,2,5,1 ;2 = bush2
Data.l 1,5,2,5,2,2,2,2,5,2,5,1 ;3 = no flower (space)
Data.l 1,5,5,5,5,5,5,5,5,5,5,1 ;5 = flower
Data.l 1,5,1,1,5,1,1,5,1,1,1,1
Data.l 1,5,5,5,5,5,5,5,5,5,5,1
Data.l 1,5,2,5,2,2,2,2,5,2,5,1
Data.l 1,5,2,5,5,5,5,5,5,2,5,1
Data.l 1,5,2,2,5,1,1,5,2,2,5,1
Data.l 1,5,5,5,5,5,5,5,5,5,5,1
Data.l 1,1,1,1,1,1,1,1,1,1,1,1
Data.l 74 ;number of flowers to collect
[/url]
Denke nie gedacht zu haben denn das Denken der Gedanken ist gedankenloses Denken und wer denkt er denkt der denkt nur dass er denkt aber denken tut er nie.
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

Die Daten werden mit PeekL() ausgelesen. (Hab den Code jetzt nicht gelsen)
du gibst dann einfach an wo das zu suchen ist.

Datasection ist immer dann gut wenn man keine Extradateien ablegen will.
Man kann in so ne Datasection mit IncludeBinary ja auch Dateien reinlegen und dann mit CatchImage() oder so lesen.
Adresse: ?level1 + Kommastelle + Zeile*12

Da braucht man dann auch kein Array für.
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

@Batze
argl... Data werden mit Read ausgelesen... >_<

natürlich kann man die auch mit Peek auslesen, aber machs erstmal easy, hier ist der anfänger-bereich

@Thomas
...außerdem müßte in der help was drin stehen...
geh einfach mal mit dem Cursor auf den begriff DataSection, und drück F1

...mal ein kleines sample:

Code: Alles auswählen

Restore Label
Q.l

For N = 0 to 15
    Read Q
    Debug Q
Next

End

DataSection

Label:

Data.l 37, 45, 21, 99, 52, 64, 92, 37, 45, 17, 86, 69, 42, 58, 23, 71

EndDataSection
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

Achja Read, wie lang hab ich das nicht mehr benutzt. <)
Hast natürlich Recht mit Read ist es viel einfacher.
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Kaeru Gaman hat geschrieben:@Batze
argl... Data werden mit Read ausgelesen... >_<

Is doch egal wie mans macht, es ist doch immer ein Speicherbereich. :allright: Nur kostet Peek/CopyMemory einen weiteren Befehlsaufruf.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
ThomasT
Beiträge: 7
Registriert: 26.06.2005 21:24
Wohnort: Nürnberg

Danke für die Tips

Beitrag von ThomasT »

Das mit DataSection F1 funktioniert tatsächlich.
Ich hatte in der Hilfe im Index DataSection und Read eingetippt und dabei nichts gefunden.
Denke nie gedacht zu haben denn das Denken der Gedanken ist gedankenloses Denken und wer denkt er denkt der denkt nur dass er denkt aber denken tut er nie.
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Re: Danke für die Tips

Beitrag von Andre »

ThomasT hat geschrieben:Das mit DataSection F1 funktioniert tatsächlich.
Ich hatte in der Hilfe im Index DataSection und Read eingetippt und dabei nichts gefunden.
Im Index fehlen die Schlüsselwörter.
Muss ich gleich nochmal Fred erinnern. :twisted:
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

Dank einem Update des DocMaker durch fr34k werden die 'Keywords' bei v3.94 mit im Index der Hilfe stehen... :D
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Antworten