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

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

 

/* Example 2a. How to put a series of objects into an */

/* empty aggregate using the PreFirst position.       */

/* The PreFirst position is defined to be prior to    */

/* the first object within the immediately enclosing  */

/* aggregate. If the aggregate is empty, PreFirst is  */

/* defined to be prior to any potential position of   */

/* objects contained within the aggregate. PreFirst   */

/* is shown graphically as:                           */

/*      {  }                                          */

/*       <                                            */

/* Normally, PreFirst is only shown when one or more  */

/* Cursors are actually in the PreFirst position.     */

/* When in the PreFirst position, a cursor may only   */

/* append objects after its current position. Insert, */

/* Replace, Remove and Modify alterations are not     */

/* possible from the PreFirst position. The following */

/* API calls may be used to add a series of data      */

/* objects from the PreFirst position (assume an      */

/* empty file):                                       */

 

#include <stdlib.h>

#include "gfcursor.h"

 

int main(void) {

    short i = 2;

    char ch = 'b';

    double db = 3.14159;

    int valid;

    CURSOR *c = new_CURSOR(NULL,

      "newfile",

      AM_SHARED,

      NULL,

      0);

    eCursorQueryValid(c, &valid);

    if (!valid)

      exit(1);

    eCursorMoveIn(c);

/* Since aggregate is empty, Cursor moves to the  */

/* Null position. Cursor must move to PreFirst or */

/* PostLast in order to make alterations.        

    */eCursorMovePreFirst(c);

    eAltAppend(c);

    eObjWriteShort(c, i);

    eAltAppend(c);

    eObjWriteChar(c, ch);

    eAltAppend(c);

    eObjWriteDouble(c, db);

    delete_CURSOR(c);

    return 0;

}

/* Ending file layout:   */

/* {                   } */

/*   [3.14159]['b'][2]   */

 

/* Note that the each Append alteration placed the   */

/* object in the location immediately following the  */

/* PreFirst position (resulting in the objects being */

/* ordered in the opposite order from the order in   */

/* which they were written).                         */

Download this sample source code

Return to Samples List

 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.