1       !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        ! Program: INT_DEMO_F_SCAN.INT
        ! System : INTOUCH DEMONSTRATION SYSTEM
        ! Author : Jim Herron
        ! Date   :  13-FEB-1991
        ! Purpose: Illustrate the SCAN function
        !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

        open structure vend : name 'tti_run:vendor', &
          datafile "sys$scratch:tti_vendor.tmp"

        clear area 3, 1, 21, 80
        print at 4, 1, bold : &
          'No spacing is needed and the characters do not need to be contiguous.'
        print at 5, 1, bold : &
          'The names are in "last-name, first-name" format.  For example, try'
        print at 6, 1, bold : &
          'taking the default and then some combinations of your own.'

        set scroll 10,21

        do
          clear area 8, 1, 8, 80
          line input at 8, 5, prompt 'Enter parts of a name: ', &
                default 'ZRN,L':part$

          if  _exit or _back or part$ = ''  then exit do
          part$ = ucase$(part$)
          clear area 10, 1, 21, 80
          print at 10,1:;
          extract structure vend
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          ~~ include scan(vend(name), part$) > 0 ~~
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            print vend(name); tab(30); vend(phone);' '; vend(city)
            ask window: row z
            if  z >= 21  then
              print at 22,30, bold: 'Press CTRL/Z to exit or';
              delay
              if  _exit  then exit extract
              clear area 10, 1, 22, 80
              print at 10,1:;
            end if
          end extract
        loop
        set scroll 1,24

        end