On 2011-08-18 12:11, Johnny Rosenberg wrote:
I was, in a reply to another question, told that my questions were way
too basic for the d...@api.openoffice.org list, so I'll give it a try
here instead.
I wrote some example code:
REM ***** BASIC *****
Option Compatible
Option Explicit
Type MyType
a As Integer
b As Integer
End Type
Dim x(1) As MyType
Sub Main
Dim y As MyType
Dim i As Integer
For i=0 To 1
x(i).a=1+i*2
x(i).b=2+i*2
Next i
y.a=5
y.b=6
MsgBox x(0).a& x(0).b& x(1).a& x(1).b& y.a& y.b ' Displays 123456
ReDim x(1) As MyType
ReDim y As MyType
MsgBox x(0).a& x(0).b& x(1).a& x(1).b& y.a& y.b ' Displays 123400
End Sub
So if we have an array as MyType (or any other custom type, I
suppose), ReDim will not reset it.
Is this the expected behaviour or should I write a bug report?
If it is expected, why?
I guess it's unnecessary to mention that I am a complete beginner in
everything that has anything to do with computers; we guitar players
are quite stupid, you know.
Oh, and in case it matters:
LibreOffice 3.3.3, Ubuntu 10.10.
LibreOffice installed with the debs at http://www.libreoffice.org/.
Best regards
Johnny ”The Moron” Rosenberg
ジョニー・ローゼンバーグ
Johnny:
'Dim x(1) As MyType' is a static array. ReDim is for use with dynamic arrays.
Dim x() as MyType 'Dynamic Array
sub main()
ReDim x(1) as MyType
...
...
End sub
Dim y as MyType is a variable, not an array, so ReDim should not work. But it
does apparently, which may be the actual bug, unless there is a nuance I am
missing. Excel 03 does not allow it.
Strangely enough I could get your code to work in Excel with the correct usage
of the ReDim (minus the ReDim y variable), but could not get it to work in
LibreOffice. Ran out of time as it is way past my bedtime.
TomW
--
For unsubscribe instructions e-mail to: users+h...@global.libreoffice.org
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/users/
All messages sent to this list will be publicly archived and cannot be deleted