[Gambas-user] drove me crazy
Charlie Reinl
Karl.Reinl at ...2345...
Wed Jan 20 22:38:11 CET 2010
Am Mittwoch, den 20.01.2010, 13:01 -0700 schrieb Dimitris Anogiatis:
> Charlie, Benoit,
>
> Wouldn't something like that usually work?
>
> PUBLIC SUB Main()
> DIM col1 AS NEW Collection
> DIM col2 AS NEW Collection
> DIM sKey AS String
> Dim Counter as Integer
> col1.Add("1", "one")
> col1.Add("2", "two")
> col1.Add("3", "three")
> col1.Add("4", "four")
> PRINT "Returns the key of the last read or last enumerated element. "
> FOR Counter = 0 to col1.Count
> sKey = col1[Counter].Key
> PRINT sKey & " = " & sElem
> col2.Add(sElem, sKey)
> NEXT
> END
>
> The documentation mentions that a Collection acts like a read/write array
> so even though the workaround isn't very elegant, would it work?
>
> Regards,
> Dimitris
>
> On Wed, Jan 20, 2010 at 11:17 AM, Charlie Reinl <Karl.Reinl at ...9...>wrote:
>
> > Am Mittwoch, den 20.01.2010, 17:27 +0100 schrieb Benoît Minisini:
> > > > Am Dienstag, den 19.01.2010, 17:30 -0700 schrieb Dimitris Anogiatis:
> > > > > Hey Charlie,
> > > > >
> > > > > Try changing this line
> > > > >
> > > > > sKey = col1.Key
> > > > >
> > > > > to
> > > > >
> > > > > sKey = sElem.Key
> > > > >
> > > > >
> > > > > Hope this helps
> > > > >
> > > > > Regards,
> > > > > Dimitris
> > > > >
> > > > > On Tue, Jan 19, 2010 at 4:09 PM, Charlie Reinl <Karl.Reinl at ...2367...3...
> > > net.de>wrote:
> > > > > > Salut Benoit,
> > > > > >
> > > > > > its about Collection KEY and Debug-Window on gambas2.
> > > > > >
> > > > > > If you run that project, and open col1 and col2 in a Debug-Window
> > > > > > (DBl-Click on the var), the Collection Key is always the last
> > > > > > enumerated element.
> > > > > >
> > > > > > If you run it without Debug-Window or only col2 in a Debug-Window ,
> > the
> > > > > > Collection Key is the last read.
> > > > > >
> > > > > > PUBLIC SUB Main()
> > > > > > DIM col1 AS NEW Collection
> > > > > > DIM col2 AS NEW Collection
> > > > > > DIM sElem AS String
> > > > > > DIM sKey AS String
> > > > > > col1.Add("1", "one")
> > > > > > col1.Add("2", "two")
> > > > > > col1.Add("3", "three")
> > > > > > col1.Add("4", "four")
> > > > > > PRINT "Returns the key of the last read or last enumerated
> > element. "
> > > > > > FOR EACH sElem IN col1
> > > > > > sKey = col1.Key
> > > > > > PRINT sKey & " = " & sElem
> > > > > > col2.Add(sElem, sKey)
> > > > > > NEXT
> > > > > > END
> > > > > >
> > > > > > see attached project.
> > > > > > --
> > > > > > Amicalement
> > > > > > Charlie
> > > > > >
> > > > > > [OperatingSystem]
> > > > > > OperatingSystem=Linux
> > > > > > KernelRelease=2.6.24-26-generic
> > > > > > DistributionVendor=ubuntu
> > > > > > DistributionRelease="Ubuntu 8.04.3 LTS"
> > > > > >
> > > > > > [System]
> > > > > > CPUArchitecture=i686
> > > > > > TotalRam=506932 kB
> > > > > >
> > > > > > [Gambas]
> > > > > > Gambas1=gbx-1.0.17
> > > > > > Gambas1Path=/usr/bin/gbx
> > > > > >
> > > > > > Gambas2=2.19.0 rev.2613
> > > > > > Gambas2Path=/usr/local/bin/gbx2
> > > > > >
> > > > > > Gambas3=2.99.0 rev.2602 (can't compile actually)
> > > > > > Gambas3Path=/usr/local/bin/gbx3
> > > >
> > > > Salut Dimitris,
> > > >
> > > > no can't work like that , sElem is 'only' a String.
> > > >
> > > > It is like written in the doc,
> > > > "Returns the key of the last read or last enumerated element."
> > > > The problem is, I think, that the Debug-Window loops the collection,
> > > > (every time I move in the collection), to refresh all members, so when
> > I
> > > > try to set the 'sKey = col1.Key' the last element was read and its KEY
> > > > returned.
> > > > The Watch-Window shows the right value. But also the col1 collection in
> > > > the Watch-Window 'derange' to find the right col1.key
> > > >
> > >
> > > Yes, that is exactly the problem. But I don't see any good fix for Gambas
> > 2 at
> > > the moment. For Gambas 3, I can change the behaviour of Collection.Key so
> > that
> > > it returns the last enumerated element, not the last read one (the
> > debugger
> > > does not enumerate the collection, it just read it).
> > >
> > > Regards,
> > >
> >
> > Salut Benoit,
> >
> > I'v looked in the IDE. I also don't see where we can stop/arrange that.
> > So I think we should add a warning , to the documentation!
> >
> >
> > --
> > Amicalement
> > Charlie
Salut Dimitris,
no it can't work, in gambas2 we can not access a collection Item by it's
[number] only it's [KEY]
--
Amicalement
Charlie
More information about the User
mailing list