Arrays...

Blitz3D Forums/Blitz3D Beginners Area/Arrays...

Yahfree(Posted 2007) [#1]
I'v been reading some good C++ books, and arrays seem very handy, i'v never messed with them in blitz, but as a learning thing i'd like to use them as a data stucture...

I want a multi-dimensional array so i can create a data structure like this:

myarray[
"test",100,
"secondtest",200,
]

to have 2 elements for an array... is this kind of stuff possible in blitz? or should i go with my usual TYPES data structure? (harder to type and harder to read then somthing like the above)


Yeshu777(Posted 2007) [#2]
As far as I'm aware the nearest to this in Blitz would be types.

In C you usually use typedef struct and then have an array of the associated structure.


Nice_But_Dim(Posted 2007) [#3]
In the blitz manual you can use the dim command

e.g Dim (100,200)


Yeshu777(Posted 2007) [#4]
From my understanding the Dim command only creates an array of a single type. eg. Dim name$(10,5,2) creates an array of strings, despite how many dimensions are specified.

In C you can define a custom structure and create and array from that structure. eg.


typedef struct my_array
{
    int a
    float b
    char c
} MY_ARRAY;

then use it as follows:

const MY_ARRAY  array[]=
{
     { 1, 2.5, 'a' },
     { 6, 7.5, 'b' },
     { 2, 3.2, 'c' },
     { 4, 1.2, 'd' }
};




semar(Posted 2007) [#5]
In Blitz you can also have an array of types:
Type Planet
field name$
field radius%
end type

Dim MyArray.Planet(10) ; or MyArray(10).Planet, I can't remember now the syntax.
MyArray(1) = new Planet
MyArray(1)\radius = 123
MyArray(1)\name = "Saturn"

;another use is also:
p.Planet = MyArray(1)
print "Planet " + p\name + " has a radius of " + p\radius + " Km."


Sergio.


Yahfree(Posted 2007) [#6]
Thanks for the help guys, but its easyer for me just to use TYPES