home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / extra18 / ctricks / dynarray / array.txt < prev    next >
Encoding:
Text File  |  1992-01-29  |  4.7 KB  |  87 lines

  1.                                                        Datei: ARRAY.H
  2.                                                        Seite: 1
  3.  
  4.         [VO/6]    1: /* ------------------------------------------------- */
  5.         [L75]    2: /*                      ARRAY.H                      */
  6.         [Y97]    3: /*             Verwaltung dynamischer Arrays         */
  7.         [MV6]    4: /*          (c) 1992 Thomas Lach & DMV-Verlag        */
  8.         [VO/6]    5: /* ------------------------------------------------- */
  9.         [O/O/O/]    6: 
  10.         [2W2]    7: #ifndef _ARRAY_H
  11.         [8W2]    8: #define _ARRAY_H
  12.         [O/O/O/]    9: 
  13.         [NY2]   1O/: #include <alloc.h>
  14.         [O/O/O/]   11: 
  15.         [YC3]   12: #define ARR_NOERR    O/
  16.         [T38]   13: #define ARR_MEMERR  -1O/O/     /* out of mem on malloc */
  17.         [MN7]   14: #define ARR_LIMERR  -1O/1     /* array size > 64k     */
  18.         [E77]   15: #define ARR_MAXERR  -1O/2     /* tried to locate
  19.         [NM3]   16:                                 element > ArrCount   */
  20.         [O/O/O/]   17: 
  21.         [3W2]   18: typedef struct {
  22.         [O/O/O/]   19: 
  23.         [MY7]   2O/:   unsigned  ArrSize,        /* current alloced amount
  24.         [GO/3]   21:                                of elements           */
  25.         [UD5]   22:             ArrCount;       /* current amount of
  26.         [3M3]   23:                                elements in array     */
  27.         [O/O/O/]   24: 
  28.         [HY6]   25:   size_t    ItemSize,        /* size of one item in
  29.         [DF2]   26:                                 array                */
  30.         [ZE5]   27:             AllocSize;       /* current alloced
  31.         [4G2]   28:                                 bytes                */
  32.         [O/O/O/]   29: 
  33.         [L26]   3O/:   char      *Arr,            /* ptr to array         */
  34.         [6V4]   31:             *Tmp;            /* temp ptr             */
  35.         [O/O/O/]   32: 
  36.         [CC6]   33:   int       ErrCode;         /* error code           */
  37.         [O/O/O/]   34: 
  38.         [4M1]   35: } _Array;
  39.         [O/O/O/]   36: 
  40.         [M25]   37: #define NULLARRAY  ((_Array *)O/)
  41.         [O/O/O/]   38: 
  42.         [576]   39: #define ArrayGetwoErr(arr, x)                \
  43.         [VN5]   4O/:   ((x >= ArrayElemNum(arr) ?                 \
  44.         [KO/4]   41:     (char*)O/ :                               \
  45.         [PF6]   42:     (char*)&(arr->Arr[((x+1)*arr->ItemSize)  \
  46.         [P13]   43:              -arr->ItemSize])))
  47.         [O/O/O/]   44: 
  48.         [XB7]   45: #define ArrayElemNum(arr)      (arr->ArrCount)
  49.         [SE6]   46: #define ArrayChgAlloc(arr,siz)               \
  50.         [WK6]   47:   (arr->AllocSize = ((siz>O/) ? siz : MinArr)))
  51.         [BN6]   48: #define ArrayErr(arr)          (arr->ErrCode)
  52.         [L57]   49: #define ArrayData(arr)         ((char *)(arr->Arr))
  53.         [O/O/O/]   5O/: 
  54.         [US5]   51: _Array * ArrayStart(size_t size);
  55.         [LW6]   52: _Array * ArrayAdd(_Array *arr, char *data);
  56.         [6K8]   53: void   * ArrayChg(_Array *arr, void *data, size_t pos);
  57.         [GV6]   54: void   * ArrayGet(_Array *arr, size_t pos);
  58.         [GY4]   55: void     ArrayKill(_Array *arr);
  59.         [O/O/O/]   56: 
  60.         [NZO/]   57: #endif
  61.                                                        Datei: ARRAY.H
  62.                                                        Seite: 2
  63.  
  64.         [VO/6]   58: /* ------------------------------------------------- */
  65.         [516]   59: /*             Ende von ARRAY.H                      */
  66.         [O/O/O/]   6O/: 
  67.         
  68.         
  69.         
  70.         
  71.         
  72.                                                     ┌──────┐
  73.           D O S   I n t e r n a t i o n a l         │ Info │
  74.         ╔════════════════════╤══════════════════════╧══════╧═══════╗
  75.         ║ Name Listing-Datei │ ARRAY.H                             ║
  76.         ╟────────────────────┼─────────────────────────────────────╢
  77.         ║ Anzahl Zeilen      │    6O/                               ║
  78.         ╟────────────────────┼─────────────────────────────────────╢
  79.         ║ Anzahl Seiten      │  O/.3O/                               ║
  80.         ╟────────────────────┼─────────────────────────────────────╢
  81.         ║ Listing-Länge (mm) │ 147.3                               ║
  82.         ╟────────────────────┼─────────────────────────────────────╢
  83.         ║ Originallänge (mm) │ 254.O/                               ║
  84.         ╟────────────────────┼─────────────────────────────────────╢
  85.         ║ Repro-Faktor       │    58 Prozent                       ║
  86.         ╚════════════════════╧═════════════════════════════════════╝
  87.