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.lahti...@gmail.com>: > 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, <nand...@nothingsimple.com> 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 <bagone...@gmail.com> > > To: mailing list for gambas users <gambas-user@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 <nand...@nothingsimple.com>: > > > > > > > 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 <h...@gambas-buch.de> > > > > To: gambas-user@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@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@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@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@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@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-user > -- Fernando Cabral Blogue: http://fernandocabral.org Twitter: http://twitter.com/fjcabral e-mail: fernandojosecab...@gmail.com Facebook: f...@fcabral.com.br 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. ------------------------------------------------------------------------------ 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@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user