Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.lang.forth    |    Forth programmers eat a lot of Bratwurst    |    117,927 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 116,858 of 117,927    |
|    sjack to dxf    |
|    Re: Parsing timestamps?    |
|    07 Oct 24 16:20:29    |
   
   From: sjack@dontemail.me   
      
   dxf wrote:   
   > The HH:MM:SS format is easy but how to deal with the variants shown above?   
   > They occur in the real world.   
      
   Toad code:   
   fload job   
   : xx. 0 <# bl hold # # #> type ;   
   : tab3. tab rot xx. swap xx. xx. ;   
      
   -- &num ( g -- s )   
   -- Convert g-string to numeric string address   
   : &num drop 1- ;   
   -- Note g-string is ANS string ( addr u )   
      
   -- ts_elms ( "[hh:][mm:]ss" -- 0 0 ss | 0 mm ss | hh mm ss )   
   -- Parse timestamp elements: hh=hours mm=minutes ss=seconds   
   -- Input hh: element and hh:mm: combination elements may be left out   
   -- if zero(s).   
   : ts_elms   
    bl word here count   
    o+s do i c@ asc : = if bl i c! then loop   
    0 0 0 here count   
    begin   
    bl split dup 0> while &num number drop   
    5 roll drop -rot   
    repeat 4drop   
    ;   
      
      
    ts_elms 25   
   i. tab3. --> 00 00 25   
   i. ts_elms 25 tab3. --> 00 00 25   
   i. ts_elms 10:25 tab3. --> 00 10 25   
   i. ts_elms 2:10:25 tab3. --> 02 10 25   
    OK   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca