/* Gamelon(tm) File I/O Library Sample Code  C Language   */

/* (C)1994 Menai Corporation(tm)  Released for public use */

 

/* Example 7. How to conduct a Fixed Transaction     */

/* alteration.                                       */

 

/* Fixed Transactions occur in reference to a        */

/* particular position within the file. The contents */

/* of the transaction are Inserted before the        */

/* current location of the cursor, Appended after    */

/* the current location of the cursor, or replace    */

/* the object in the current focus of the cursor.    */

/* The following example shows the steps necessary   */

/* to perform a Fixed Transaction:                   */

 

/* Beginning file layout:        */

/*    {                       }  */

/*     [2]{         }[3.14159]   */

/*         [5700304]             */

 

#include <stdlib.h>

#include "gfcursor.h"

 

int main(void) {

char newchar = 'u';

int valid;

CURSOR *c = new_CURSOR(NULL,

"newfile",

AM_SHARED,

NULL,

0);

eCursorQueryValid(c, &valid);

if (!valid)

exit(1);

eCursorMoveIn(c);

eCursorMoveLast(c, OT_OBJ);

eAltInsert(c);

eAltBeginFixedTransaction(c);

/* Cursor moves to temporary file. */

eCursorMovePreFirst(c);

eAltAppend(c);

eObjWriteChar(c, newchar);

eAltAppend(c);

eObjWriteAggregate(c);

eCursorMoveNext(c, OT_OBJ);

eAltModify(c);

eAltStartAggregating(c);

eObjSetComment(c, "A single character.");

eObjSetClass(c, 144);

eObjWriteChar(c, newchar);

eObjApplyIdentity(c, NULL);

eObjSetComment(c, "budget");

eObjImportOSFile(c, "c:\123sheet.w1", OSF_ALL);

/* Commit ends aggregation, not Fixed Transaction. */

eAltCommit(c);

eAltCommitFixedTransaction(c);

delete_CURSOR(c);

return 0;

}

 

#if 0

/* Ending file layout (in vertical display format):      */

/* {                                                     */

/*   [2]                                                 */

/*     {                                                 */

/*       [5700304]                                       */

/*     }                                                 */

/*     {                                                 */

/*       ['u':CL(144):CO("A single character.")]         */

/*       ["c:\123sheet.w1":ID(/*9*/):CO("Budget")]       */

/*     }                                                 */

/*   ['u']                                               */

/*   [3.14159]                                           */

/* }                                                     */

#endif

Return to Samples List

Download this sample source code

 Home | Product | Consulting | Programming | Reviews | Company | Site Map | Guest Book

 Menai Corporation, 1010 El Camino Real, Suite 300, Menlo Park, California 94025-4335
 800-GAMELON (800-426-3566) (US only), 650-853-6450 (voice), 650-853-6453 (fax)
 Questions about our products and services:
info@menai.com.
 Comments about this web site:
webmaster@menai.com.

Copyright © 1996-98 Menai Corporation. All Rights Reserved. Menai, Gamelon and gamelon(stylized) are worldwide trademarks of Menai Corporation, registered in the United States of America, and the .[g] logo is a worldwide trademark of Menai Corporation. All other trademarks are owned by their respective owners.