home *** CD-ROM | disk | FTP | other *** search
- /*------------------------------------------------------------------*/
- /* REPLMEMO.C */
- /*------------------------------------------------------------------*/
- /* API ▒` ªí : replmemo() */
- /* API ¿τ╝╞└] : replmemo.plb */
- /* Ñ╬ │~ : ¬■╡∙─µª∞ñº╕Ω«╞┤└┤½ */
- /* ╗y ¬k : REPLMEMO(<expN1>,[<expN2>]) */
- /* <expN1> ¬■╡∙─µª∞ñº─µª∞╜s╕╣ */
- /* [<expN2>] ╕Ω«╞▒N│Q┤└┤½ñº¬■╡∙─µª∞¬║░O┐²╜s╕╣ */
- /* ⌐IÑsñΦªí : SET LIBRARY TO REPLMEMO */
- /* USE SONG */
- /* GO 2 */
- /* =REPLMEMO(6,4) */
- /* (ª╣¬φÑ▄▒N▓─ñG╡º░O┐²ñº¬■╡∙─µª∞¬║ñ║«e╕mñJ▓─Ñ| */
- /* ╡º░O┐²ñº¬■╡∙─µª∞ññ ) */
- /*------------------------------------------------------------------*/
-
- #include <pro_ext.h>
- #define DBFAREA 1
-
- MHANDLE dbhandle = 0;
-
-
- void FAR replmemo(ParamBlk FAR *param)
- {
- Locator loc;
- Value val;
- int memochan,skip;
- long memoseek, memoread, memofind;
-
-
-
- loc.l_type = 'R';
- loc.l_where = 1;
- loc.l_NTI = 1;
-
-
- loc.l_offset = param->p[0].val.ev_long - 1;
- memochan = _MemoChan(DBFAREA); /* └≥¿·¬■╡∙└╔ñº└╔«╫▒▒¿ε╜X */
-
- if((memofind = _FindMemo(&loc)) < 0)
- _Error(memofind);
-
- memoread = _MemoSize(&loc); /* ╜T⌐w¬■╡∙─µª∞ñºñjñp */
-
- memoseek = _FSeek(memochan, memofind, 0); /* ▓╛░╩└╔«╫½ⁿ╝╨ */
-
- dbhandle = _AllocHand(memoread);
- memoread = _FRead(memochan, _HandToPtr(dbhandle), memoread);
-
-
- val.ev_type = 'C';
- val.ev_handle = dbhandle;
- val.ev_length = memoread;
-
- /* ▓╛ª▄╕Ω«╞«wññÑ┐╜T¬║╕Ω«╞░O┐² */
- if (param->pCount == 2)
- _DBRead(DBFAREA, param->p[1].val.ev_long);
- else
- _DBSkip(DBFAREA, 1); /* ¡YÑ╝╢╟╗╝▓─ñG¡╙░╤╝╞ <expN2> ½h╣w│]┤└ */
- /* ┤½ñUñ@╡º░O┐²ñº¬■╡∙─µª∞ */
-
- skip = _DBReplace(&loc,&val); /* ┤└┤½¬■╡∙─µª∞ñº╕Ω«╞ */
-
- }
-
- FoxInfo myFoxInfo[] =
- {
- {"REPLMEMO", replmemo, 2, "I,.I"},
- };
-
-
- FoxTable _FoxTable =
- {
- (FoxTable FAR *)0,
- sizeof(myFoxInfo) / sizeof(FoxInfo),
- myFoxInfo
- };