| Deutsch English Français Italiano |
|
<43a038b332e65d36ee48bb8abdbb9d48577b12c4@i2pn2.org> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!weretis.net!feeder9.news.weretis.net!i2pn.org!i2pn2.org!.POSTED!not-for-mail From: dxf <dxforth@gmail.com> Newsgroups: comp.lang.forth Subject: Re: Parsing timestamps? Date: Tue, 8 Oct 2024 18:33:40 +1100 Organization: i2pn2 (i2pn.org) Message-ID: <43a038b332e65d36ee48bb8abdbb9d48577b12c4@i2pn2.org> References: <1f433fabcb4d053d16cbc098dedc6c370608ac01@i2pn2.org> <nnd$4c9fbd3d$321d37fb@0e0bb7c1bfc1d5fc> <8650bd010df25e0833e658b7b54995b4ca62fec8@i2pn2.org> <ve11od$1pcla$1@dont-email.me> <927ca1c2b969054aafdcd77657ab096b10eded5d@i2pn2.org> <7c888269275dcb35f26651b0a28eca21@www.novabbs.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Date: Tue, 8 Oct 2024 07:33:41 -0000 (UTC) Injection-Info: i2pn2.org; logging-data="1074073"; mail-complaints-to="usenet@i2pn2.org"; posting-account="XPw7UV90Iy7EOhY4YuUXhpdoEf5Vz7K+BsxA/Cx8bVc"; User-Agent: Mozilla Thunderbird X-Spam-Checker-Version: SpamAssassin 4.0.0 Content-Language: en-GB In-Reply-To: <7c888269275dcb35f26651b0a28eca21@www.novabbs.com> Bytes: 2241 Lines: 30 On 8/10/2024 5:08 pm, Ahmed wrote: > On Tue, 8 Oct 2024 3:07:31 +0000, dxf wrote: > >> Not bad. Here's a translation. Hopefully it's equivalent (?) >> >> : split ( a u c -- a2 u2 a3 u3 ) >> >r 2dup r> scan 2swap 2 pick - ; >> >> : number ( a u -- u ) 0 0 2swap >number 2drop ; >> >> : xx. ( u -- ) 0 <# bl hold # # #> type ; >> : tab3. ( h m s -- ) 3 spaces ( tab) rot xx. swap xx. xx. ; >> >> : ts_elms ( a u -- h m s ) >> 2>r 0 0 0 2r> begin >> [char] : skip [char] : split dup 0> while >> number drop 5 roll drop -rot >> repeat 2drop 2drop ; >> >> s" 25" ts_elms tab3. 00 00 25 ok >> s" 10:25" ts_elms tab3. 00 10 25 ok >> s" 2:10:25" ts_elms tab3. 02 10 25 ok > > I know you don't care about this case, but: > s" 1:1:" ts_elms tab3. 00 01 01 ok > It should be 01 01 00 Yes. It's an unlikely scenario. For a format that begins with seconds that field must be filled first. Only when it overflows will a separator and minutes field be added.