Re: Reverse SCAN SPLIT

Liste des GroupesRevenir à cl forth 
Sujet : Re: Reverse SCAN SPLIT
De : melahi_ahmed (at) *nospam* yahoo.fr (Ahmed)
Groupes : comp.lang.forth
Date : 07. Oct 2024, 20:25:20
Autres entêtes
Organisation : novaBBS
Message-ID : <c3785784f01b2fe23fc3613d9144c93e@www.novabbs.com>
References : 1 2 3 4
User-Agent : Rocksolid Light
On Mon, 7 Oct 2024 12:07:16 +0000, dxf wrote:
..

Interesting.  I'd do the numeric conversion in the main routine if
possible.
There's a parsing issue with  s" :30"
And what about this:
: :t  ( add cnt -- add 2 1 | add1 2 add2 2 2 | add1 2 add2 2 add3 2 3)
  bounds  ( end start)
  dup     ( end start start)
  >r      ( end start )   ( r: start)
  swap    ( start end   ) ( r: start)
  dup       ( start end pa)
  -rot    ( pa start end )
  do      ( pa)
     i    ( pa add)
     c@   ( pa c)
     [char] : = ( pa f)
     if         ( pa)
        i       ( pa add)
        -       ( pa-add)
dup     ( pa-add pa-add)
        2       ( pa-add pa-add 2)
        >       ( pa-add t|f)
        if      ( pa-add)
  drop  ( )
          i     ( add)
          dup     ( add add)
          1+    ( add add+1)
          2     ( add add+1 2)
          rot   ( add+1 2 add)
        else    ( pa-add)
          1 = if ( )
    s" 00" ( add 2)
    i      ( add 2 add)
  else  ( )
            i     ( add)
            dup 1+ 1  ( add add+1 1)
            rot     ( add+1 1 add)
          then
then
     then
     -1 +loop    ( ... add+1 1|2 pa)
     r>          (               pa start)
     tuck        (               start pa start)
     -           (               start pa-st)
     dup 0= if 2drop s" 00" then
;
: .t ( s_add s_cnt m_add m_cnt h_add h_cnt)
   type space ." hr"   space
   type space ." min"  space
   type space ." sec"
;
with stack juggling !!!!!!!!!!
Some tests:
s" 10:1:2"  :t .t 10 hr 1 min 2 sec ok
s" :10:"  :t .t 00 hr 10 min 00 sec ok
s" ::"  :t .t 00 hr 00 min 00 sec ok
s" ::1"  :t .t 00 hr 00 min 1 sec ok
s" :10:1"  :t .t 00 hr 10 min 1 sec ok
s" :10:"  :t .t 00 hr 10 min 00 sec ok
s" 10:10:"  :t .t 10 hr 10 min 00 sec ok
s" 10::"  :t .t 10 hr 00 min 00 sec ok
Ahmed

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