home *** CD-ROM | disk | FTP | other *** search
/ Sound Sensations! / sound_sensations.iso / voice / mvc87100 / mvreader.prg < prev    next >
Text File  |  1990-06-10  |  4KB  |  108 lines

  1. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  2. * Program  *  MVREADER.PRG                                                  *
  3. * System   *  Micro/Voice for Clipper Summer '87                            *
  4. * Version  *  Version 1.00                                                  *
  5. * Library  *  MVCLIP87.LIB - 06/10/90 1:00a                                 *
  6. * Author   *  Steve Badaracco                                               *
  7. * Notice   *  (c)1990, DataBlaze Solutions, All Rights Reserved             *
  8. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  9. *                                                                           *
  10. * This program demonstrates reading text from a disk file with Micro/Voice. *
  11. * Try MVREADER.TXT, which contains words defined in the mini-dictionaries.  *
  12. * When reading text from a file, it is especially important to have a       *
  13. * dictionary present, as we have done here.  A full dictionary is available *
  14. * to registered users of Micro/Voice, as well as a program which allows     *
  15. * you to build a custom dictionary; see the DOC file for details.           *
  16. *                                                                           *
  17. * To compile (requires The Clipper Compiler, Summer '87 Version):           *
  18. *     CLIPPER MVREADER                                                      *
  19. *                                                                           *
  20. * To link for execution (using Microsoft Overlay Linker Version 3.x):       *
  21. *     LINK MVREADER,,NUL,CLIPPER+EXTEND+MVCLIP87/SE:256                     *
  22. * To link for execution (using Turbo Link Version 1.x):                     *
  23. *     TLINK MVREADER,,NUL,CLIPPER+EXTEND+MVCLIP87                           *
  24. * To link for execution (using PLINK86plus Version 2.24 for Clipper):       *
  25. *     PLINK86 FI MVREADER LIB CLIPPER,MVCLIP87,EXTEND                       *
  26. * To link for execution (using Blinker Dynamic Overlay Linker Version 1.x): *
  27. *     BLINKER FI MVREADER LIB CLIPPER,MVCLIP87,EXTEND                       *
  28. *                                                                           *
  29. * To run the demo on the sample text file:                                  *
  30. *     MVREADER MVREADER.TXT                                                 *
  31. *                                                                           *
  32. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  33.  
  34. parameters filename
  35.  
  36. if pcount() = 0
  37.    * No parameters from DOS
  38.    ? 'Filename to be read must be specified on the command line.'
  39.    ?
  40.    quit
  41. elseif !file(filename)
  42.    * First parameter was not an existing file
  43.    ? 'File not found.'
  44.    ?
  45.    quit
  46. elseif "?" $ filename .or. "*" $ filename
  47.    * Did you know that Clipper's file() function processes wildcards?
  48.    ? 'No wildcards allowed.'
  49.    ?
  50.    quit
  51. elseif v_init( 'system01.dct', 'mycustom.dct', 1, 23, 2 ) # 0
  52.    * Good Micro/Voice initialization settings for PS/2 Model 55SX
  53.    ? 'Voice initialization error: data file(s) not found.'
  54.    ?
  55.    quit
  56. elseif memory(0) < 12        && a good round number
  57.    ? 'Not enough memory to read a file.'
  58.    ?
  59.    quit
  60. endif
  61.  
  62. ? 'Reading file: "&filename." ... <Esc> to cancel.'
  63.  
  64. * Open the file
  65. * Remember ... this is just a demo; we area assuming this is a text file.
  66. handle = fopen( filename )
  67. if handle < 0
  68.    ? 'Error opening file.'
  69.    ?
  70.    quit
  71. endif
  72.  
  73. * Read up to 10K for our demo
  74. thedata = space( 10240 )
  75. fread( handle, @thedata, 10240 )
  76. fclose( handle )
  77. thedata = trim( thedata )
  78.  
  79. * Main loop -- until end of text or Esc key is pressed
  80. do while ! empty( thedata ) .and. inkey() # 27
  81.  
  82.    * Parse out next logical line
  83.    crlf = at( chr(13)+chr(10), thedata )
  84.    crlf = if( crlf=0, len( thedata ) + 1, crlf )
  85.    current = ltrim( subst( thedata, 1, crlf-1 ) )
  86.    thedata = subst( thedata, crlf+2 )
  87.  
  88.    if ! empty( current )    && Don't bother with blank lines
  89.  
  90.       * Pack the line for Micro/Voice
  91.       packed = v_wpack( current )
  92.  
  93.       * Display text as read from file
  94.       ? current
  95.  
  96.       * Display the phoneme string equivalent
  97.       ? v_unpack( packed )
  98.  
  99.       * Speak it
  100.       v_pkspeak( packed )
  101.  
  102.    endif
  103.  
  104. enddo
  105.  
  106. quit
  107.  
  108.