This is mnoGoSearch's cache of https://lists.gambas-basic.org/pipermail/user/2017-June/060637.html. It is a snapshot of the page as it appeared during last crawling. The current page could have changed in the meantime.

Last modified: Tue, 27 Jun 2017, 20:51:43 CEST    Size: 16018
[Gambas-user] I need a hint on how to deleted duplicate items in a array

[Gambas-user] I need a hint on how to deleted duplicate items in a array

Fernando Cabral fernandojosecabral at ...626...
Tue Jun 27 20:51:43 CEST 2017


Jussi said:

> As Fernando stated your code is good only for small arrays. But if someone
>is going to use it, here is correct implementation:

No, Jussi, I didn't say it is good only for small arrays. I said some
suggestions apply only
to small arrays because if I have to traverse the array again and again,
advancing one item at a time, and coming back to the next item, to repeat
it one more time, then time requirement will grow exponentially. This makes
most suggestion unusable for large arrays. The arrays I have might grow to
thousands and thousands os items.

Regards

- fernando






2017-06-27 15:43 GMT-03:00 Jussi Lahtinen <jussi.lahtinen at ...626...>:

> As Fernando stated your code is good only for small arrays. But if someone
> is going to use it, here is correct implementation:
>
> For x = 0 to a.Max
>   if z.Find(a[x]) = -1 Then z.Add(a[x])
> Next
>
>
> z.Exist() might be faster... I don't know.
>
>
>
> Jussi
>
>
>
> On Tue, Jun 27, 2017 at 6:59 PM, <nando_f at ...951...> wrote:
>
> > Well, there is complicated, then there is simplicity:
> > I tested this. Works for sorted, unsorted.
> > Can't be any simpler.
> >
> > Public Function RemoveMultiple(a As String[]) As String[]
> >
> > Dim x as Integer
> > Dim z as NEW STRING[]
> >
> > For x = 1 to a.count()
> >   if z.Find(a) = 0 Then z.Add(a[x])
> > Next
> >
> > 'if you want it sorted, do it here
> > Return z
> >
> > END
> >
> > ' - - - - -
> > use it this way:
> >
> > myArray = RemoveMultiple(myArray)
> >   'the z array is now myArray.
> >   'the original array is destroyed because there are no references.
> >
> >
> >
> > --
> > Open WebMail Project (http://openwebmail.org)
> >
> >
> > ---------- Original Message -----------
> > From: Gianluigi <bagonergi at ...626...>
> > To: mailing list for gambas users <gambas-user at lists.sourceforge.net>
> > Sent: Tue, 27 Jun 2017 16:52:48 +0200
> > Subject: Re: [Gambas-user] I need a hint on how to deleted duplicate
> items
> > in a array
> >
> > > My two cents.
> > >
> > > Public Sub Main()
> > >
> > >   Dim sSort As String[] = ["A", "B", "B", "B", "C", "D", "D", "E", "E",
> > > "E", "E", "F"]
> > >   Dim sSame As String[] = sSort
> > >   Dim bb As New Byte[]
> > >   Dim sSingle As New String[]
> > >   Dim i, n As Integer
> > >
> > >   For i = 0 To sSort.Max
> > >     If i < sSort.Max Then
> > >       If sSort[i] = sSame[i + 1] Then
> > >         Inc n
> > >       Else
> > >         sSingle.Push(sSort[i])
> > >         bb.Push(n + 1)
> > >         n = 0
> > >       Endif
> > >     Endif
> > >   Next
> > >   sSingle.Push(sSort[sSort.Max])
> > >   bb.Push(n + 1)
> > >   For i = 0 To sSingle.Max
> > >     Print sSingle[i]
> > >   Next
> > >   For i = 0 To bb.Max
> > >     Print bb[i] & sSingle[i]
> > >   Next
> > >
> > > End
> > >
> > > Regards
> > > Gianluigi
> > >
> > > 2017-06-27 16:33 GMT+02:00 <nando_f at ...951...>:
> > >
> > > > Another very effective and simple would be:
> > > >
> > > > You have your array with data
> > > > You create a new empty array.
> > > >
> > > > Loop through each item in your array with data
> > > > If it's not in the new array, then add it.
> > > >
> > > > Destroy the original array.
> > > > Keep the new one.
> > > > ...something like (syntax may not be correct)
> > > >
> > > > Public Function RemoveMultiple(a As String[]) As String[]
> > > >
> > > >   Dim x as Integer
> > > >   Dim z as NEW STRING[]
> > > >
> > > >   For x = 1 to a.count()
> > > >     if z.Find(a) = 0 Then z.Add(a[x])
> > > >   Next
> > > >
> > > >   Return z
> > > >
> > > > END
> > > >
> > > > -Nando (Canada)
> > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Open WebMail Project (http://openwebmail.org)
> > > >
> > > >
> > > > ---------- Original Message -----------
> > > > From: Hans Lehmann <hans at ...3219...>
> > > > To: gambas-user at lists.sourceforge.net
> > > > Sent: Tue, 27 Jun 2017 15:51:19 +0200
> > > > Subject: Re: [Gambas-user] I need a hint on how to deleted duplicate
> > items
> > > > in a array
> > > >
> > > > > Hello,
> > > > >
> > > > > look here:
> > > > >
> > > > > 8<----------------------------------------------------------
> > > > ---------------------
> > > > > ---------- Public Function RemoveMultiple(aStringListe As String[])
> > As
> > > > String[]
> > > > >  Dim iCount As Integer   Dim iIndex As Integer   Dim sElement As
> > String
> > > > >
> > > > >    iIndex = 0 ' Initialisierung NICHT notwendig
> > > > >    While iIndex < aStringListe.Count
> > > > >      iCount = 0
> > > > >      sElement = aStringListe[iIndex]
> > > > >      While aStringListe.Find(sElement) <> -1
> > > > >        Inc iCount
> > > > >        aStringListe.Remove(aStringListe.Find(sElement))
> > > > >      Wend
> > > > >      If iCount Mod 2 = 1 Then
> > > > >         aStringListe.Add(sElement, iIndex)
> > > > >         Inc iIndex
> > > > >      Endif ' iCount Mod 2 = 1 ?
> > > > >    Wend
> > > > >
> > > > >    Return aStringListe
> > > > >
> > > > > End ' RemoveMultiple(...)
> > > > > 8<----------------------------------------------------------
> > > > ---------------------
> > > > > ----------
> > > > >
> > > > > Hans
> > > > > gambas-buch.de
> > > > >
> > > > > ------------------------------------------------------------
> > > > ------------------
> > > > > Check out the vibrant tech community on one of the world's most
> > > > > engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> > > > > _______________________________________________
> > > > > Gambas-user mailing list
> > > > > Gambas-user at lists.sourceforge.net
> > > > > https://lists.sourceforge.net/lists/listinfo/gambas-user
> > > > ------- End of Original Message -------
> > > >
> > > >
> > > > ------------------------------------------------------------
> > > > ------------------
> > > > Check out the vibrant tech community on one of the world's most
> > > > engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> > > > _______________________________________________
> > > > Gambas-user mailing list
> > > > Gambas-user at lists.sourceforge.net
> > > > https://lists.sourceforge.net/lists/listinfo/gambas-user
> > > >
> > > ------------------------------------------------------------
> > ------------------
> > > Check out the vibrant tech community on one of the world's most
> > > engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> > > _______________________________________________
> > > Gambas-user mailing list
> > > Gambas-user at lists.sourceforge.net
> > > https://lists.sourceforge.net/lists/listinfo/gambas-user
> > ------- End of Original Message -------
> >
> >
> > ------------------------------------------------------------
> > ------------------
> > Check out the vibrant tech community on one of the world's most
> > engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> > _______________________________________________
> > Gambas-user mailing list
> > Gambas-user at lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/gambas-user
> >
> ------------------------------------------------------------
> ------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Gambas-user mailing list
> Gambas-user at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gambas-user
>



-- 
Fernando Cabral
Blogue: http://fernandocabral.org
Twitter: http://twitter.com/fjcabral
e-mail: fernandojosecabral at ...626...
Facebook: f at ...3654...
Telegram: +55 (37) 99988-8868
Wickr ID: fernandocabral
WhatsApp: +55 (37) 99988-8868
Skype:  fernandojosecabral
Telefone fixo: +55 (37) 3521-2183
Telefone celular: +55 (37) 99988-8868

Enquanto houver no mundo uma só pessoa sem casa ou sem alimentos,
nenhum político ou cientista poderá se gabar de nada.



More information about the User mailing list