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

  1. /*------------------------------------------------------------------*/
  2. /* REPLMEMO.C                                                       */
  3. /*------------------------------------------------------------------*/
  4. /* API ▒`  ªí : replmemo()                                          */
  5. /* API ¿τ╝╞└] : replmemo.plb                                        */
  6. /* Ñ╬      │~ : ¬■╡∙─µª∞ñº╕Ω«╞┤└┤½                                  */
  7. /* ╗y      ¬k : REPLMEMO(<expN1>,[<expN2>])                         */
  8. /*              <expN1>    ¬■╡∙─µª∞ñº─µª∞╜s╕╣                       */
  9. /*              [<expN2>]  ╕Ω«╞▒N│Q┤└┤½ñº¬■╡∙─µª∞¬║░O┐²╜s╕╣         */
  10. /* ⌐IÑsñΦªí   : SET LIBRARY TO REPLMEMO                             */
  11. /*              USE SONG                                            */
  12. /*              GO 2                                                */
  13. /*              =REPLMEMO(6,4)                                      */
  14. /*              (ª╣¬φÑ▄▒N▓─ñG╡º░O┐²ñº¬■╡∙─µª∞¬║ñ║«e╕mñJ▓─Ñ|         */
  15. /*               ╡º░O┐²ñº¬■╡∙─µª∞ññ )                               */
  16. /*------------------------------------------------------------------*/
  17.  
  18. #include  <pro_ext.h>
  19. #define DBFAREA 1
  20.  
  21. MHANDLE dbhandle = 0;
  22.  
  23.  
  24. void FAR replmemo(ParamBlk  FAR *param)
  25. {
  26.         Locator loc;
  27.         Value val;
  28.         int memochan,skip;
  29.         long memoseek, memoread, memofind;
  30.  
  31.  
  32.  
  33.     loc.l_type = 'R';
  34.     loc.l_where = 1;
  35.     loc.l_NTI = 1;
  36.  
  37.  
  38.     loc.l_offset = param->p[0].val.ev_long - 1;
  39.     memochan = _MemoChan(DBFAREA);        /* └≥¿·¬■╡∙└╔ñº└╔«╫▒▒¿ε╜X  */
  40.  
  41.     if((memofind = _FindMemo(&loc)) < 0)
  42.         _Error(memofind);
  43.  
  44.     memoread = _MemoSize(&loc);                /* ╜T⌐w¬■╡∙─µª∞ñºñjñp */
  45.  
  46.     memoseek = _FSeek(memochan, memofind, 0);  /* ▓╛░╩└╔«╫½ⁿ╝╨       */
  47.  
  48.     dbhandle = _AllocHand(memoread);
  49.     memoread = _FRead(memochan, _HandToPtr(dbhandle), memoread);
  50.  
  51.  
  52.     val.ev_type = 'C';
  53.     val.ev_handle = dbhandle;
  54.     val.ev_length = memoread;
  55.  
  56.      /* ▓╛ª▄╕Ω«╞«wññÑ┐╜T¬║╕Ω«╞░O┐² */
  57.     if (param->pCount == 2)
  58.        _DBRead(DBFAREA, param->p[1].val.ev_long);
  59.     else
  60.        _DBSkip(DBFAREA, 1); /* ¡YÑ╝╢╟╗╝▓─ñG¡╙░╤╝╞ <expN2> ½h╣w│]┤└   */
  61.                             /* ┤½ñUñ@╡º░O┐²ñº¬■╡∙─µª∞                */
  62.  
  63.     skip = _DBReplace(&loc,&val);       /* ┤└┤½¬■╡∙─µª∞ñº╕Ω«╞ */
  64.  
  65. }
  66.  
  67. FoxInfo myFoxInfo[] =
  68. {
  69.         {"REPLMEMO", replmemo, 2, "I,.I"},
  70. };
  71.  
  72.  
  73. FoxTable _FoxTable =
  74. {
  75.     (FoxTable FAR *)0,
  76.     sizeof(myFoxInfo) / sizeof(FoxInfo),
  77.     myFoxInfo
  78. };
  79.