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

nando_f at ...951... nando_f at ...951...
Tue Jun 27 17:59:38 CEST 2017


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 -------





More information about the User mailing list