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

herberth guzman herberthguzman at ...626...
Thu Aug 24 22:39:31 CEST 2017


Hi Benoit, how are you..?

I have a question, I'm lost
Lol

I need a hint on how to delete duplicate items in a array

I have the following function (I send you the code)
And if he works


Example

For Each sDir In ["/usr/share/themes/", Desktop.DataDir &/ "themes/"]
  For Each sNames In RDir(sDir, "*", gb.Directory)

  Print sNames

  Next
Next


The problem is the following:

I have /usr/share/themes/Ambiance
I have /home/herberth.local/share/themes/Ambiance

And I only need one Ambiance
And not two Ambiance

Please help me solve my problem, I have two days and I can not. I want to
cry.
Lol


Attachme my complete code




Private Function ReturnArrays(SortedArray As String[], withNumber As
Boolean) As String[]

  Dim sSingle, sWithNumber As New String[]
  Dim i, n As Integer

  For i = 0 To SortedArray.Max
    ' You can avoid with Tobias's trick (For i = 1 To ...)
    If i < SortedArray.Max Then
      If SortedArray[i] = SortedArray[i + 1] Then
        Inc n
      Else
        Inc n
        sSingle.Push(SortedArray[i])
        sWithNumber.Push(n & SortedArray[i])
        n = 0
      Endif
    Endif
  Next
  Inc n
  sSingle.Push(SortedArray[SortedArray.Max])
  sWithNumber.Push(n & SortedArray[SortedArray.Max])
  If withNumber Then
    Return sWithNumber
  Else
    Return sSingle
  Endif

End

Public Sub sListTheme()

  Dim sDir As String
  Dim sFiles As String
  Dim sSort As String[]
  Dim s As String


  For Each sDir In ["/usr/share/themes/", Desktop.DataDir &/ "themes/"]

    For Each sFiles In Dir(sDir, "*", gb.Directory).Sort()
      sSort = [sFiles]

        For Each s In ReturnArrays(sSort, 0)
         Print s
        Next

      Next
  Next

End


If you can help me I'll thank you.
Thank you.
Regards



More information about the User mailing list