home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / Samples / CSAPE32.ARJ / EXAMPLES / DEMOFLOD.C < prev    next >
C/C++ Source or Header  |  1991-03-09  |  3KB  |  125 lines

  1. /*
  2.     demoflod.c
  3.  
  4.     jmd 6/89
  5.  
  6.     Copyright (c) 1989, by Oakland Group, Inc.
  7.     ALL RIGHTS RESERVED.
  8.  
  9.     This program demonstrates loading a sed from a screen file.
  10.  
  11.     It loads the sed named "test" from the screen file "test.lnf"
  12.  
  13.     You must generate this file with the DEMOFSAV example program
  14.     before using this.
  15.  
  16.     Revision History:
  17.     -----------------
  18.      6/06/90 jmd    changed main to return an int
  19.      8/06/90 jmd    added code to pull data out of sed
  20.      9/14/90 bkd    changed to use exit(0) instead of return(0).
  21.     10/19/90 pmcm    included ostdlib.h for exit(), added return(1)
  22.     12/01/90 ted    prototyped main, except if Turbo C++.
  23.     12/04/90 ted    restored "" includes for C-scape headers (not <> includes).
  24. */
  25.  
  26. #include <stdio.h>
  27. #include <string.h>
  28.  
  29. #include "cscape.h"
  30. #include "ostdlib.h"    /*    for exit() */
  31. #include "sfile.h"
  32.  
  33. /* function symbol table */
  34.  
  35. fsyminit_struct my_list[] = {
  36.  
  37.     {FSYM_CLASS},
  38.     {"sedwin_Class",    (VOID_FPTR)    sedwin_Class    ,  NULL },
  39.  
  40.     {FSYM_FIELDFUNCS },
  41.     {"bob_funcs",      FNULL, (VOID *) &bob_funcs},
  42.     {"string_funcs", FNULL, (VOID *) &string_funcs},
  43.     {"cmoney_funcs", FNULL, (VOID *) &cmoney_funcs},
  44.  
  45.     {FSYM_USER },
  46.  
  47.     {FSYM_BORDER },
  48.     {"bd_prompt", (VOID_FPTR) bd_prompt, NULL},
  49.  
  50.     {FSYM_MOUSE },
  51.     {FSYM_MOVEMETHOD },
  52.     {FSYM_EXPLODE },
  53.     {FSYM_SPECIAL },
  54.     {"spc_Embed",         (VOID_FPTR)    spc_Embed,        NULL    },
  55.  
  56.     {FSYM_AUX },
  57.     {FSYM_LISTEND}
  58. };
  59.  
  60. /* Turbo C++ complains if main is prototyped */
  61. #ifndef TCP
  62. int main(void);
  63. #endif
  64.  
  65. int main(void)
  66. {
  67.     sed_type sed, ised;
  68.     sfile_type sfile;
  69.  
  70.     char     customer[50], boatname[50], list[10][30];
  71.     long    boatcost = 0L;
  72.     int     i;
  73.     boolean gotdata = FALSE;
  74.  
  75.     customer[0] = '\0';
  76.     boatname[0] = '\0';
  77.  
  78.     /* Initialize the display */
  79.     disp_Init(def_ModeText, FNULL);
  80.  
  81.     sfile = sfile_Open("test.lnf", my_list);
  82.  
  83.     /* Load the sed */
  84.     sed = sfile_LoadSed(sfile, "test", SED_ALLOC);
  85.  
  86.     if (sed != NULL) {
  87.         sed_Repaint(sed);
  88.         sed_Go(sed);
  89.  
  90.         /* get the data (assume the fields exist) */
  91.         strcpy(customer, (char *) sed_GetNameVar(sed, "customer"));
  92.         strcpy(boatname, (char *) sed_GetNameVar(sed, "boatname"));
  93.         boatcost = *((long *) sed_GetNameVar(sed, "boatcost"));
  94.  
  95.         /* get data from the inner sed */
  96.         ised = sed_GetBob(sed_GetFieldBob(sed, sed_GetNameNo(sed, "list")));
  97.  
  98.         for (i = 0; i < 10; i++) {
  99.             strcpy(list[i], (char *) sed_GetVar(ised, i));
  100.         }
  101.  
  102.         gotdata = TRUE;
  103.  
  104.         sed_Close(sed);
  105.     }
  106.  
  107.     sfile_Close(sfile);
  108.     disp_Close();
  109.  
  110.     if (gotdata) {
  111.         printf("Customer:  %s\n", customer);
  112.         printf("Boat Name: %s\n", boatname);
  113.  
  114.         printf("Boat Cost: %.2f\n", (float) boatcost / 100.0 );
  115.  
  116.         for (i = 0; i < 10; i++) {
  117.             printf("  %d: %s\n", i, list[i]);
  118.         }
  119.     }
  120.  
  121.     exit(0);
  122.     return(0);
  123. }
  124.  
  125.