home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a120 / 1.ddi / API / SEEKBYTE.C < prev    next >
Encoding:
C/C++ Source or Header  |  1992-04-23  |  1.7 KB  |  50 lines

  1. /*------------------------------------------------------------------*/
  2. /* SEEKBYTE.C                                                       */
  3. /*------------------------------------------------------------------*/
  4. /* API ▒`  ªí : seek_byte()                                         */
  5. /* API ¿τ╝╞└] : seekbyte.plb                                        */
  6. /*------------------------------------------------------------------*/
  7. #include <pro_ext.h>
  8. #define FALSE  0
  9. void FAR seek_byte(ParamBlk FAR *parm)
  10. {
  11.    char FAR *string,buff[2];
  12.    int my_byte;
  13.    MHANDLE handle,myhandle;
  14.    unsigned int my_len;
  15.    my_len = parm->p[0].val.ev_length;   /* ªrªΩ¬║¬°½╫                 */
  16.    handle = parm->p[0].val.ev_handle;   /* └≥¿·ª╣ªrªΩñº│B▓z╛╣         */
  17.    my_byte= parm->p[1].val.ev_long;     /* ├¼¿·⌐╥¡n┼╠¿·ñºª∞ñ╕▓╒¬║ª∞╕m */
  18.    if (my_byte > my_len)  /* ªp¬G⌐╥¡n┼╠¿·ñºª∞ñ╕▓╒¬║ª∞╕mñj⌐≤ªrªΩñº¬°½╫ */
  19.       _RetLogical(FALSE);
  20.    else
  21.    {
  22.      myhandle = _AllocHand(my_len);
  23.      string = (char FAR *) _HandToPtr(myhandle);
  24.      _MemMove(string,_HandToPtr(handle),my_len);  /* ½■│╞ª╣ªrªΩ       */
  25.  
  26.      buff[0] = takebyte(string, my_byte);
  27.      buff[1] = '\0';    /* ¿╧Ñ╬ _RetChar() ╢╟ª^ñºªrªΩ╗▌ÑH null ╡▓º└   */
  28.  
  29.      _RetChar(buff);                      /* ▒N¡╚╢╟ª^╡╣ FoxPro        */
  30.      _FreeHand(myhandle);                 /* ─└⌐±▒╝ñúªA╗▌¡nñº MHANDLE */
  31.    }
  32.    return;                                /* ▓{ªb¬≡ª^ª▄ FoxPro        */
  33. }
  34.  
  35. takebyte(char FAR *str, int byte)
  36. {
  37.     *str=*(str+byte-1);
  38.     return(*str);
  39. }
  40.  
  41. FoxInfo myFoxInfo[] = {
  42.         {"SEEK_BYTE",seek_byte,2,"C,I"}
  43. };
  44.  
  45. FoxTable _FoxTable = {
  46.          (FoxTable FAR *)0,
  47.          sizeof (myFoxInfo) / sizeof (FoxInfo),
  48.          myFoxInfo
  49. };
  50.