Reverse SCAN SPLIT

Liste des Groupes 
Sujet : Reverse SCAN SPLIT
De : dxforth (at) *nospam* gmail.com (dxf)
Groupes : comp.lang.forth
Date : 07. Oct 2024, 09:52:15
Autres entêtes
Organisation : i2pn2 (i2pn.org)
Message-ID : <5c65a8f1fdfc3e9937a825842fe23dc2758f48ef@i2pn2.org>
User-Agent : Mozilla Thunderbird
Earlier I mentioned scanning in reverse.  Here's an implementation.

[undefined] dxforth [if]
: \CHAR ( a u -- a2 u2 c )  1- 2dup + c@ ;
[then]

\ As for SCAN but scan from end
: SCAN< ( a u c -- a2 u2 | a 0 )
  >r over swap begin dup while \char r@ = until 1+ then
  rot drop rdrop ;

\ As for SPLIT but scan from end. Latter string is topmost.
: SPLIT< ( a u c -- a2 u2 a3 u3 )
  >r 2dup r> scan< 2swap 2 pick /string ;

\ example

: /T ( a u -- hour min sec )
  3 0 do
    [char] : split<  0 0 2swap >number 2drop drop  -rot
    ( u ... a u)  dup if  1-  then
  loop 2drop  swap rot ;

: T  /t  cr  rot . ." hr "  swap . ." min " . ." sec " ;

s" 1:2:3"    t
s" 02:03"    t
s" 06:"      t
s" 03"       t
s" 23:59:59" t
s" 0:00:03"  t

Date Sujet#  Auteur
7 Oct 24 * Reverse SCAN SPLIT18dxf
7 Oct 24 +* Re: Reverse SCAN SPLIT6Ahmed
7 Oct 24 i`* Re: Reverse SCAN SPLIT5Ahmed
7 Oct 24 i `* Re: Reverse SCAN SPLIT4dxf
7 Oct 24 i  `* Re: Reverse SCAN SPLIT3Ahmed
8 Oct 24 i   `* Re: Reverse SCAN SPLIT2dxf
8 Oct 24 i    `- Re: Reverse SCAN SPLIT1Ahmed
7 Oct 24 +* Re: Reverse SCAN SPLIT2Ruvim
7 Oct 24 i`- Re: Reverse SCAN SPLIT1dxf
7 Oct 24 +- Re: Reverse SCAN SPLIT1dxf
10 Oct 24 +- Re: Reverse SCAN SPLIT1dxf
10 Oct 24 `* Re: Reverse SCAN SPLIT7albert
10 Oct 24  `* Re: Reverse SCAN SPLIT6dxf
17 Oct 24   +- Re: Reverse SCAN SPLIT1minforth
17 Oct 24   `* Re: Reverse SCAN SPLIT4mhx
18 Oct 24    +- Re: Reverse SCAN SPLIT1dxf
18 Oct 24    `* Re: Reverse SCAN SPLIT2dxf
19 Oct 24     `- Re: Reverse SCAN SPLIT1albert

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal