home *** CD-ROM | disk | FTP | other *** search
/ C/C++ User's Journal & Wi…eveloper's Journal Tools / C-C__Users_Journal_and_Windows_Developers_Journal_Tools_1997.iso / windbase / memslc.3 / slist.c < prev    next >
C/C++ Source or Header  |  1996-07-30  |  4KB  |  111 lines

  1. /*****************************************************************************\
  2. **                                                                           **
  3. **  WW     WW IIIIIIII NNN   NN DDDDDDD  BBBBBBB     AA     SSSSSS EEEEEEEE  **
  4. **  WW  W  WW    II    NNNN  NN DD    DD BB    BB  AA  AA  SS      EE        **
  5. **  WW  W  WW    II    NN NN NN DD    DD BBBBBBB  AAAAAAAA  SSSSSS EEEEEE    **
  6. **   WW W WW     II    NN  NNNN DD    DD BB    BB AA    AA      SS EE        **
  7. **    WWWWW   IIIIIIII NN   NNN DDDDDDD  BBBBBBB  AA    AA SSSSSS  EEEEEEEE  **
  8. **                                                                           **
  9. **   SSSSSS  OOOOOO  FFFFFFFF TTTTTTTT WW     WW    AA    RRRRRRR  EEEEEEEE  **
  10. **  SS      OO    OO FF          TT    WW  W  WW  AA  AA  RR    RR EE        **
  11. **   SSSSS  OO    OO FFFFF       TT    WW  W  WW AAAAAAAA RRRRRRR  EEEEEE    **
  12. **       SS OO    OO FF          TT     WW W WW  AA    AA RR   RR  EE        **
  13. **  SSSSSS   OOOOOO  FF          TT      WWWWW   AA    AA RR    RR EEEEEEEE  **
  14. **                                                                           **
  15. *********** NOTICE ************************************************************
  16. **        This file contains valuable trade secrets and proprietary          **
  17. **        assets of Windbase Software Inc.  Embodying substantial            **
  18. **        creative efforts and confidential information.  Unauthorized       **
  19. **        use, copying, decompiling, translating, disclosure or              **
  20. **        transfer, of any kind, is strictly prohibited.                     **
  21. **                                                                           **
  22. **        COPYRIGHT (C) 1992, 1993, 1994.  Windbase Software Inc.            **
  23. **        ALL RIGHTS RESERVED.                                               **
  24. \*****************************************************************************/
  25.  
  26. #include <stdio.h>
  27. #include <string.h>
  28. #include <malloc.h>
  29.  
  30. #include "../memsl.h"
  31.  
  32. #ifdef WBSTDC
  33.   int Compare(void *nullitem, char *item1, char *item2)
  34. #else
  35.   int Compare(nullitem, item1, item2)
  36.     void *nullitem;
  37.     char *item1,
  38.          *item2;
  39. #endif
  40.   {
  41.     WBTrcEntry(0,"Compare",("%p, %s, %s",nullitem,item1,item2));
  42.  
  43.     nullitem = nullitem;
  44.  
  45.     WBTrcReturn(0,strcmp(item1,item2),("%d",strcmp(item1,item2)));
  46.   }
  47.  
  48. #if defined(WBTRC_LEVEL1) || defined(WBTRC_LEVEL2)
  49.   #ifdef WBSTDC
  50.     int main(int argc, char **argv)
  51.   #else
  52.     int main(argc, argv)
  53.       int argc;
  54.       char **argv;
  55.   #endif
  56. #else
  57.   #ifdef WBSTDC
  58.     int main(void)
  59.   #else
  60.     int main()
  61.   #endif
  62. #endif
  63.   {
  64.     WBSLIST *slist;
  65.     FILE *file;
  66.     char strarray[200][21], *strptr;
  67.     int i = 0;
  68.  
  69.     WBTrcMainEntry();
  70.  
  71.     if ((slist = WBSListOpen(NULL)) != NULL)
  72.       {
  73. #ifdef FUNCTCAST
  74.         WBSListCompareF(slist,NULL,(int (*)(void *, void *, void *))Compare);
  75. #else
  76.         WBSListCompareF(slist,NULL,(int (*)())Compare);
  77. #endif
  78.         if ((file = fopen("data.dat","r")) != NULL)
  79.           {
  80.             while (fgets(strarray[i],20,file))
  81.               {
  82.                 WBSListAdd(slist,strarray[i],WB_LAST);
  83.                 i++;
  84.               }
  85.             fclose(file);
  86.             if ((strptr = WBSListGet(slist,WB_FIRST)) != NULL)
  87.               do
  88.                 {
  89.                   printf("Get Next: %s",strptr);
  90.                 }
  91.               while ((strptr = WBSListGet(slist,WB_NEXT)) != NULL);
  92.             if ((strptr = WBSListGet(slist,WB_LAST)) != NULL)
  93.               do
  94.                 {
  95.                   printf("Get Previous: %s",strptr);
  96.                 }
  97.               while ((strptr = WBSListGet(slist,WB_PREV)) != NULL);
  98.             i = 0;
  99.             while (WBSListIs(slist) != WB_EMPTY)
  100.               {
  101.                 printf("Searching and deleting %s",strarray[i]);
  102.                 WBSListSearch(slist,strarray[i]);
  103.                 WBSListDelete(slist,WB_CURRENT);
  104.                 i++;
  105.               }
  106.           }
  107.         WBSListClose(slist);
  108.       }
  109.     WBTrcReturn(0,0,("0"));
  110.   }
  111.