11Fermer13
andoh_wilfriedLe 28/06/2008 à 15:57
bobti89 (./10) :
Un truc du genre serait mieux je pense :
search(str,substr)
Func
  Local n,list
  1->n
  {}->list
  Loop
    inString(str,substr,n)->n
    If n=0
      Return list
    n->list[dim(list)+1]
    n+1->n
  EndLoop
EndFunc

En plus mieux bien ca donne :
search(str,substr)
Func
  Local n,list
  {}->list
  inString(str,substr)->n
  While n!=0
    n->list[dim(list)+1]
    inString(str,substr,n+1)->n
  EndWhile
  list
EndFunc

Avec != pour différent de

Après faut voir avec ce qu'il veut exactement !

edit : renommé l en list pour la lisibilité


on peut faire mieux encore :

search(str,substr)
Func
  Local n,list,i
  {}->list
  0->i
  1->n
  While n!=0
    inString(str,substr,n)->n
    if n != 0 then
      i+1->i
      n->list[i]
      n+1->n
   endif
  EndWhile
  return list
EndFunc