Started from a nice code of Michael vogel for insert an element in String array
http://www.purebasic.fr/english/viewtop ... 40#p369940
I have try to modify it for insert this time an element in a strutrured array
Code: Select all
Structure Try
a.i
b.s
c.i
EndStructure
Procedure ArrayInsertStructure(Array name.try(1), Pos, *Element.try)
Protected n = ArraySize(name()) + 1
ReDim name(n)
name(n)\a = *Element\a
name(n)\b = *Element\b
name(n)\c = *Element\c
n = PeekL(name() + SizeOf(try) * n)
MoveMemory(name() + SizeOf(try) * Pos - SizeOf(try), name() + SizeOf(try) * Pos, PeekL(name() - 8) * SizeOf(try) - SizeOf(try) * Pos)
PokeL(name() + SizeOf(try) * Pos, n)
EndProcedure
Dim s.Try(10)
Define Element.Try
For i = 1 To 10
s(i)\a = i
s(i)\b = "String" + Trim(Str(i))
s(i)\c = Val(Trim(Str(i)) + Trim(Str(i)))
Next
Element\a = 100
Element\b = "Hello"
Element\c = 1000
ArrayInsertStructure(s(), 5, @Element)
For i = 1 To ArraySize(s())
Debug s(i)\a
Debug s(i)\b
Debug s(i)\c
Debug ""
Next i
The string /b and the /c element is not writed in 5e position
If someone know why ?Debugger wrote:1
1
11
2
2
22
3
3
33
4
4
44
100
4
44
5
5
55
6
6
66
7
7
77
8
8
88
9
9
99
10
10
1010
Have a good day