Basic Univers

Structure CountElement_String
  nom.s
  count.l
EndStructure




Procedure.s GetMostFrequentElement(lst.s())

  NewList count.CountElement_String()
  
  ForEach lst()
  
    trouve = #False
    ResetList(count())
    While trouve = #False And NextElement(count())
      If count()\nom = lst()
        trouve = #True
      EndIf
    Wend
    
    If trouve
      count()\count + 1
    Else
      AddElement(count())
        count()\nom = lst()
        count()\count = 1
    EndIf
  
  Next
  
  SortStructuredList(count(), 1, OffsetOf(CountElement_String\count), #PB_Sort_Long)
  
  retour$ = ""
  If CountList(count())
    SelectElement(count(), 0)
    retour$ = count()\nom
    Debug count()\count
  EndIf
  
  ClearList(count())
  ProcedureReturn retour$
  
EndProcedure






NewList elt.s()

AddElement(elt()) : elt() = "coucou"
AddElement(elt()) : elt() = "salut"
AddElement(elt()) : elt() = "coucou"
AddElement(elt()) : elt() = "ca va ?"
AddElement(elt()) : elt() = "coucou"
AddElement(elt()) : elt() = "test"
AddElement(elt()) : elt() = "test2"
AddElement(elt()) : elt() = "test"
AddElement(elt()) : elt() = "coucou"
AddElement(elt()) : elt() = "test2"
AddElement(elt()) : elt() = "test"

Debug GetMostFrequentElement(elt())