| Deutsch English Français Italiano |
|
<e8d0009d34971a6c9a2e1df583843a10@www.novabbs.com> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!news.misty.com!weretis.net!feeder9.news.weretis.net!i2pn.org!i2pn2.org!.POSTED!not-for-mail From: melahi_ahmed@yahoo.fr (Ahmed) Newsgroups: comp.lang.forth Subject: Re: Parsing =?UTF-8?B?dGltZXN0YW1wcz8=?= Date: Tue, 8 Oct 2024 18:12:14 +0000 Organization: novaBBS Message-ID: <e8d0009d34971a6c9a2e1df583843a10@www.novabbs.com> References: <1f433fabcb4d053d16cbc098dedc6c370608ac01@i2pn2.org> <nnd$7d5c43ef$44717375@4ccc5001f6849bc6> <02c0761d5b634165a4f26eec23ab1cc17ff9945c@i2pn2.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: i2pn2.org; logging-data="1144928"; mail-complaints-to="usenet@i2pn2.org"; posting-account="t+/9LUKLIiUqIe6reyFE7me/EcA/Gr17dRXgwnADesE"; User-Agent: Rocksolid Light X-Spam-Checker-Version: SpamAssassin 4.0.0 X-Rslight-Posting-User: 5f6b2e70af503e44dad56966aa15d35bdef29623 X-Rslight-Site: $2y$10$2tekJuAAqh9iZpVNa/xvmunDXQpUit1XWDxkJ4B72z3HLshi3J2bm Bytes: 2652 Lines: 59 Hi, Here is a programme that uses your split word. I think it works for all combinations (formats). \ here begins the code : SPLIT ( a u c -- a2 u2 a3 u3 ) >r 2dup r> scan 2swap 2 pick - ; : advance 1- swap 1+ swap ; : .00?1 dup 1 3 within 0= if 2drop s" 00" then ; : .00?2 dup 0= if 2drop s" 00" exit then dup 1 3 within 0= if 2drop 2swap 2>r s" 00" 2swap 2r> then ; : .00?3 dup 0= if 2drop s" 00" exit then dup 1 3 within 0= if 2drop 2swap 2>r s" 00" 2rot 2rot 2r> then ; : step1 [char] : split 2swap 2>r .00?1 2swap 2r> advance ; : step2 [char] : split 2swap 2>r .00?2 2swap 2r> advance ; : step3 [char] : split 2swap 2>r .00?3 2swap 2r> advance ; : :t s" --" 2swap step1 step2 step3 2drop 2drop ; : sts space type space ; : .hr sts ." hr" ; : .min sts ." min" ; : .sec sts ." sec" ; : .t 2>r 2swap .hr .min 2r> .sec ; \ the code finshes here. Some tests (gforth under wsl): s" 10:20:30" :t .t 10 hr 20 min 30 sec ok s" 1:20:30" :t .t 1 hr 20 min 30 sec ok s" 1:2:30" :t .t 1 hr 2 min 30 sec ok s" 1:2:3" :t .t 1 hr 2 min 3 sec ok s" :2:3" :t .t 00 hr 2 min 3 sec ok s" 2:3" :t .t 00 hr 2 min 3 sec ok s" :3" :t .t 00 hr 00 min 3 sec ok s" ::3" :t .t 00 hr 00 min 3 sec ok s" ::" :t .t 00 hr 00 min 00 sec ok s" :" :t .t 00 hr 00 min 00 sec ok s" " :t .t 00 hr 00 min 00 sec ok s" 1:" :t .t 00 hr 1 min 00 sec ok s" :1:" :t .t 00 hr 1 min 00 sec ok s" 10::" :t .t 10 hr 00 min 00 sec ok s" 10:5:" :t .t 10 hr 5 min 00 sec ok s" 10:5:2" :t .t 10 hr 5 min 2 sec ok Ahmed --