Seite 1 von 1

Array nach String benennen?

Verfasst: 16.06.2007 11:25
von D4uS1
Ich habe eine Prozedur für eine erstellung von Vegetationen per Terrain Höhe in Irrlicht. Nun will man ja nicht nur eine Sorte Baum in einer Map einfügen. Deshalb wollte ich den Benutzer selber entscheiden lassen seine Arrays heißen. Kann man das ganze irgentwie über einen String abfragen?

Verfasst: 16.06.2007 11:50
von ZeHa
Naja in dem Fall wirst Du wohl eine Struktur brauchen, z.B.

Code: Alles auswählen

Structure Array
  Name$
  Data.w[256]
EndStructure
Ich weiß jetzt nicht genau wie Deine Arrays aussehen (auch wegen Irrlicht), aber so kannst Du praktisch einen String mit einem Array zu einem neuen Datentyp kapseln.

Verfasst: 16.06.2007 12:12
von D4uS1
achso, ja das wäre eine Idee, ich meine aber eigentlich sowas wie ein Benutzer Array. Ist das Auch möglich? Also hier ein Bsp:

Code: Alles auswählen

Procedure($ArrayName, Anzahl)
 global dim Arrayname$.w(Anzahl)
endprocedure

Verfasst: 16.06.2007 12:18
von Tafkadasom2k5
Nope, das geht so nicht. Der "Name" des Arrays wird ja auch nur beim Kompilieren genutzt- nach dem Kompilieren ist der Name AFAIK nirgendwo mehr vorhanden. Intern wird eben nur mit Adressen und Größen gearbeitet. ALso Variablennamen/LL-Namen und Array-Namen sind nach dem Kompilieren passé.Sie dienen nur zur besseren Lesbarkei und zur Veranschaulichung für den Programmierer.

Verfasst: 16.06.2007 12:26
von THEEX
Ohje...

Also normal legt man keine Globalen innerhalb einer Prozedur fest. Dann frag ich mich, was $ArrayName soll (Schreibfehler?) und wenn ich das richtig verstehe, möchtest Du der Variablen (bzw, Deinem Feld) einen Namen durch den User geben, was auch Unfug ist. Achja, dann fällt mir auch noch auf, daß Dein Feld String ist, dann aber auch auf Word deklarierd wird (wenn man das überhaupt so sagen kann).
Also dir fehlt einiges an Grundkenntnissen, aber Du legst gleich mit 3D und Irrlicht los. Du solltest Dich besser mal erst ein PB reinarbeiten.

Verfasst: 16.06.2007 12:36
von D4uS1
CSprengel hat geschrieben:Ohje...

Also normal legt man keine Globalen innerhalb einer Prozedur fest. Dann frag ich mich, was $ArrayName soll (Schreibfehler?) und wenn ich das richtig verstehe, möchtest Du der Variablen (bzw, Deinem Feld) einen Namen durch den User geben, was auch Unfug ist. Achja, dann fällt mir auch noch auf, daß Dein Feld String ist, dann aber auch auf Word deklarierd wird (wenn man das überhaupt so sagen kann).
Also dir fehlt einiges an Grundkenntnissen, aber Du legst gleich mit 3D und Irrlicht los. Du solltest Dich besser mal erst ein PB reinarbeiten.
$ArrayName ist ein Schreibfehler, ich meinet ArrayName$
Ausserdem ist es kein Unfug wenn ich eine Variable dem user geben möchte. Jemand der zum Beiepiel eine Landschaft erstellen möchte, und mehr als eine Baumart verwendet, kann dann verschiedene Bäume dadurch erstellen und somit bessere Terrains erzeugen. Ausserdem besitze ich genügend Grundkenntisse über PB. Ich programmiere schon seit einiger Zeit. Man kann ja nunmal nicht allwissend sein. Ich kann ja nicht hellsehend von Anfang an zwischen Word deklarierung und String, oder was auch immer das fürn mist sein soll unterscheiden. Dafür gibt es ja dieses Forum. Mit Irrlicht komme ich mit meinen Kenntnissen super klar.

Verfasst: 16.06.2007 14:41
von THEEX
Also, ich wollt Dir ja nur 'nen Tip geben und ich bin mir sicher, gerade jetzt nach Deiner Reaktion, es fehlen einige Grundkenntnisse.
Was soll das eigentlich sein, Du möchtest dem User eine Variable geben? So nach dem Motto, ich schenk Dir was? Auch wenn Du ja Deiner Aussage nach bescheid weisst, so sieht man doch an Deinen ganzen Threads, Dir fehlt einiges an Wissen.
Natürlich darfst Du fragen und Du darfst auch so viel fragen, wie Du möchtest, aber was bringt es, wenn Du nur die Hälfte, wenn überhaupt verstehst, weil eben einiges an Wissen fehlt.
Ja und zwischen Word und String solltest schon unterscheiden können, vorallem wenn beides verwenden möchtest (im übrigen ist der schei... Grundwissen). Und dafür gibts die Purebasic-Hilfe.
Irgendwie erinnerst mich stark an Pandorra.
Aber wie gesagt, wollte nur einen gut gemeinten Tip geben, natürlich kann ja auch ich es sein, der von nix was versteht und nur meint, er verstünde was...

Verfasst: 16.06.2007 15:14
von D4uS1
jaja is ja ok, aber ich glaube du verstehst nicht wie ich das meine. Ich wollte ja nur wissen ob des möglich ist, einen Array so zu bennenen, das man anhand der Prozedur halt etwas erstellt, auf das man zugreifen kann im Laufe des Codes. Ich wollte also nur wissen ob es möglich war oder nicht, die antwort nein hat mir gereicht.

Verfasst: 16.06.2007 15:26
von mk-soft
Aller Anfang ist schwer.

Grundlagen sind wichtig. Auch um nicht die Lust zu verlieren weil man etwas nicht vesteht.

Also erst mal etwas lesen und dann Schritt für Schritt dieses ausprobieren.
Als erstes Zahlensysteme wieder verinnerlichen.

Einfache Datentypen:
Was ist ein Byte, Word, Long und Quad.

Strukturierte Datentypen:
Float und Double

Zeichen und Zeichenkette:
Char und Strings

Dann Abfragen ausprobieren
If ... Else ... Endif

Schleifen und Wiederholungen
For x=1 to 10 ... Next
Repeat ... Until
While ... Wend.

und so weiter.
Das muss sitzen und aus dem FF beherrschen.

FF :wink:

Verfasst: 16.06.2007 15:37
von D4uS1
achso, ihr meintet die Variable word? *Kopfschlag*
Ich dachte das is irgenteinson komplexer Zusammenhang. Was das ist weiß ich natürlich. ich dachte grade, weil ja auch der zusammenhang mit String gegeben war, und bekanntlicherweise ein String ein Text ist, das ihr sone art andre Art von String meint. Missverständnis, sry. :oops: