Appending Arrays
BlitzMax Forums/BlitzMax Beginners Area/Appending Arrays
| ||
| Is there a way to append to arrays without wiping the array clean? Basically doing what: Array:String = new String[NewNumElements] does, without wiping the array. I've tried Array = Array[..NewNumElements] But it doesn't seem to be working. |
| ||
| you don't have an array so how should it work? It would need to be someStringArray:string[] = ... cause thats all that was wrong |
| ||
Do you just want to append new entries to an existing array or do you want to concatenate (join) two arrays, one on the end of the other? There was a recent update which allowed array concatenation, I think.Global A:String[]=["One","Two","Three"] Global B:String[]=["Four","Five","Six"] Global C:String[]=A+B For Local I:Int=0 To 5 Print C[I] Next |
| ||
Dreamora, I'm not sure what you mean. The first example: Array:String = new String[NewNumElements]works. The full code would be: Local Array:String[30] Local NewNumElements:Int = 20 Array:String = New String[NewNumElements] Gabriel: Appending new entries, not concatenation. The original code was:
Method AddFunction(FunctionName:String)
NumFunctions:+1
Functions = Functions[..NumFunctions]
Functions[NumFunctions - 1].Create("Function", FunctionName)
End Method
But its giving me a accessing null field error. |
| ||
| Appending new entries, not concatenation Can you explain the difference?As far as I can see, he's exactly answered your question. |
| ||
| GFK: I guess I was a bit hasty in my assumption there. I want to add a blank field to the existing array rather than concatenating two different arrays together. Edit: Tried Concoctenation:
Method AddFunction(FunctionName:String)
Local TempArray_A:TCode[] = Functions
NumFunctions:+1
Local TempArray_B:TCode[] = New TCode[NumFunctions]
Local TempArray_C:TCode[] = TempArray_A + TempArray_B
Functions = TempArray_C
Functions[NumFunctions - 1].Create("Function", FunctionName)
End Method
same problem as before. |
| ||
then your code is just wrong, point
SuperStrict
Global Functions :String[30]
Global NumFunctions:Int = 20
Functions = New String[NumFunctions]
addfunction("test")
addfunction("gaga")
addfunction("i just did it wrong again!")
Delay 2000
End
Function AddFunction(FunctionName:String)
NumFunctions:+1
Functions = Functions[..NumFunctions]
Functions[NumFunctions - 1] = FunctionName
Print Functions[NumFunctions - 1]
End Functionworks without any problems. Most likely because you put the :string behind it thought it is no :string, its :string[] which is something elementally different (actually a different class! :Array) |
| ||
| I want to add a blank field to the existing array array=array[..len(array)+1] Local array:String[]=["one","two","three"] Local len1:Int=Len(array) array=array[..len1+1] Local len2:Int=Len(array) Print len1 + " " + len2 array[3]="Four" For Local all:String=EachIn array Print all Next |