Guest User

Untitled

a guest
Apr 22nd, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. -module(split).
  2. -export([tokens/2]).
  3. -export([len/1]).
  4. -export([substr/3]).
  5.  
  6. tokens(String, Limiter) ->
  7. tokens(String, Limiter, [], []).
  8.  
  9. tokens([], _Limiter, Sub, Res) ->
  10. [lists:reverse(Sub)|Res];
  11.  
  12. tokens(Str, Limiter, Sub, Res) ->
  13.  
  14. [H|T] = Str,
  15. Substr = lists:sublist(Str,len(Limiter)),
  16.  
  17. if
  18. Substr == Limiter ->
  19. tokens(lists:sublist(Str,len(Limiter)+1, len(Str)), Limiter, [], [lists:reverse(Sub)|Res]);
  20. true ->
  21. tokens(T, Limiter, [H|Sub], Res)
  22. end.
  23.  
  24.  
  25. len(Str) ->
  26. len(Str, 0).
  27.  
  28. len(Str,Len) ->
  29. case Str of
  30. [] -> Len;
  31. [_|T] -> len(T,Len+1)
  32. end.
  33.  
  34. substr(String, Start, End) ->
  35. substr(String, Start, End, [], 1).
  36.  
  37. substr(String, Start, End, Res ,Count) ->
  38. case String of
  39. [] ->
  40. lists:reverse(Res);
  41. [H|T] ->
  42. if
  43. (Count >= Start) and (Start > 0) and (End >= Count) ->
  44. substr(T, Start, End,[H|Res], Count+1);
  45. true ->
  46. substr(T, Start, End, Res, Count+1)
  47. end
  48.  
  49. end.
Add Comment
Please, Sign In to add comment