Re: Parsing timestamps?

Liste des GroupesRevenir à cl forth 
Sujet : Re: Parsing timestamps?
De : the.beez.speaks (at) *nospam* gmail.com (Hans Bezemer)
Groupes : comp.lang.forth
Date : 09. Jun 2025, 14:21:52
Autres entêtes
Organisation : KPN B.V.
Message-ID : <nnd$16a55d5e$0e5ab22d@1d9c51e25014f149>
References : 1 2 3 4 5 6
User-Agent : Mozilla Thunderbird
On 08-06-2025 04:38, dxf wrote:
On 8/06/2025 3:07 am, LIT wrote:
My solution is rather straightforward:
>
1 VARIABLE C6
1 VARIABLE C1
>
: TIMESTRSCAN ( addr count -- d )
  >R >R 0 0 R> R>
  OVER + 1-
  DO
    I C@ DUP 58 =
    IF
      DROP
      C6 @ 60 * C6 !
      1 C1 !
    ELSE
      48 - C1 @ * C6 @ M* D+
      10 C1 !
    THEN
  -1 +LOOP
  1 C6 !  1 C1 !
;
First of all: are you an 8-bit hobbyist? I mean, you can convert 32-bit values close to 600,000 hours - that's a whopping 68 years - before you overflow this thing. Signed, that is.
Second, stamp out the variables! You use two globals for this trivial routine. This does the same thing:
: timescan
   over swap chars + >r 0 tuck begin
     over r@ <
   while
     over c@ [char] : =
     if rot + 60 * swap 0 else 10 * over c@ [char] 0 - + then
     swap char+ swap
   repeat r> drop nip +
;
And the beauty of CHAR is - less magic numbers in your code. But even if you are dedicated to using a double word accumulator, you won't need those variables:
: dtimescan
   over swap chars + >r >r 0. r> 0 begin
     over r@ <
   while
     over c@ [char] : =
     if
       swap >r s>d d+ 60 1 m*/ r> 0
     else
       10 * over c@ [char] 0 - +
     then
     swap char+ swap
   repeat r> drop nip s>d d+
;
Now - did I win anything? Maybe a T-shirt "May the Forth be with you"?

Virtue is its own reward.
Hans Bezemer

Date Sujet#  Auteur
6 Oct 24 * Parsing timestamps?56dxf
6 Oct 24 +* Re: Parsing timestamps?19mhx
6 Oct 24 i+* Re: Parsing timestamps?3dxf
6 Oct 24 ii`* Re: Parsing timestamps?2dxf
7 Oct 24 ii `- Re: Parsing timestamps?1dxf
7 Jun13:38 i`* Re: Parsing timestamps?15B. Pym
7 Jun15:36 i +* Re: Parsing timestamps?12dxf
7 Jun18:07 i i`* Re: Parsing timestamps?11LIT
8 Jun03:38 i i `* Re: Parsing timestamps?10dxf
9 Jun14:21 i i  `* Re: Parsing timestamps?9Hans Bezemer
9 Jun14:34 i i   `* Re: Parsing timestamps?8LIT
9 Jun20:31 i i    `* Re: Parsing timestamps?7Hans Bezemer
9 Jun21:00 i i     `* Re: Parsing timestamps?6LIT
10 Jun03:31 i i      +* Re: Parsing timestamps?4dxf
10 Jun08:32 i i      i+* Re: Parsing timestamps?2mhx
10 Jun09:30 i i      ii`- Re: Parsing timestamps?1dxf
10 Jun11:10 i i      i`- Re: Parsing timestamps?1LIT
10 Jun10:52 i i      `- Re: Parsing timestamps?1LIT
9 Jun13:34 i +- Re: Parsing timestamps?1B. Pym
10 Jun10:18 i `- Re: Parsing timestamps?1B. Pym
6 Oct 24 +* Re: Parsing timestamps?5Ruvim
6 Oct 24 i`* Re: Parsing timestamps?4dxf
6 Oct 24 i `* Re: Parsing timestamps?3Ruvim
6 Oct 24 i  +- Re: Parsing timestamps?1Ruvim
6 Oct 24 i  `- Re: Parsing timestamps?1Ruvim
6 Oct 24 +* Re: Parsing timestamps?6FFmike
6 Oct 24 i`* Re: Parsing timestamps?5FFmike
7 Oct 24 i `* Re: Parsing timestamps?4dxf
7 Oct 24 i  `* Re: Parsing timestamps?3FFmike
7 Oct 24 i   `* Re: Parsing timestamps?2dxf
7 Oct 24 i    `- Re: Parsing timestamps?1FFmike
6 Oct 24 +* Re: Parsing timestamps?2Anthony Howe
7 Oct 24 i`- Re: Parsing timestamps?1dxf
7 Oct 24 +* Re: Parsing timestamps?9albert
7 Oct 24 i`* Re: Parsing timestamps?8dxf
7 Oct 24 i `* Re: Parsing timestamps?7sjack
8 Oct 24 i  `* Re: Parsing timestamps?6dxf
8 Oct 24 i   +* Re: Parsing timestamps?3Ahmed
8 Oct 24 i   i+- Re: Parsing timestamps?1dxf
8 Oct 24 i   i`- Re: Parsing timestamps?1sjack
8 Oct 24 i   `* Re: Parsing timestamps?2sjack
9 Oct 24 i    `- Re: Parsing timestamps?1dxf
8 Oct 24 +* Re: Parsing timestamps?3albert
8 Oct 24 i`* Re: Parsing timestamps?2dxf
8 Oct 24 i `- Re: Parsing timestamps?1Ahmed
9 Oct 24 +* Re: Parsing timestamps?4alaa
10 Oct 24 i+* Re: Parsing timestamps?2dxf
10 Oct 24 ii`- Re: Parsing timestamps?1alaa
16 Oct 24 i`- Re: Parsing timestamps?1Hans Bezemer
18 Oct 24 `* Re: Parsing timestamps?7Gerry Jackson
19 Oct 24  `* Re: Parsing timestamps?6dxf
28 Oct 24   `* Re: Parsing timestamps?5Hans Bezemer
29 Oct 24    `* Re: Parsing timestamps?4dxf
29 Oct 24     `* Re: Parsing timestamps?3Hans Bezemer
30 Oct 24      `* Re: Parsing timestamps?2dxf
31 Oct 24       `- Re: Parsing timestamps?1dxf

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal