// ННГУ, ВМК, Курс "Методы программирования-2", С++, ООП
//
// arraytab.h - Copyright (c) Гергель В.П. 03.09.2000
//
// Таблицы - базовый класс для таблиц с непрерывной памятью

#include "arraytab.h"

TKey TArrayTable :: GetKey ( TDataPos mode ) const { // значение
  int pos=-1;
  if ( ! IsEmpty() ) {
    switch ( mode ) {
      case FIRST_POS: pos = 0;              break;
      case LAST_POS:  pos = DataCount-1;    break;
      default:        pos = CurrPos;        break;
    }
  }
  return (pos==-1) ? string("") : pRecs[pos]->Key;
}              /*---------------------------------------------*/

PTDatValue TArrayTable :: GetValuePtr ( TDataPos mode ) const { // значение
  int pos=-1;
  if ( ! IsEmpty() ) {
    switch ( mode ) {
      case FIRST_POS: pos = 0;              break;
      case LAST_POS:  pos = DataCount-1;    break;
      default:        pos = CurrPos;        break;
    }
  }
  return (pos==-1) ? NULL : pRecs[pos]->pValue;
}              /*---------------------------------------------*/

int TArrayTable :: Reset ( void ) { // установить на первую запись
  CurrPos = 0;
  return IsTabEnded();
}              /*---------------------------------------------*/

int TArrayTable :: IsTabEnded ( void ) const { // таблица завершена ?
  return CurrPos >= DataCount;
}              /*---------------------------------------------*/

int TArrayTable :: GoNext ( void ) { // переход к следующей записи
  if ( !IsTabEnded() ) CurrPos++;
  return IsTabEnded();
}              /*---------------------------------------------*/

int TArrayTable :: SetCurrentPos ( int pos ) { // установить текущую запись
  CurrPos = ( (pos>-1) && (pos<DataCount) ) ? pos : 0;
  return IsTabEnded();
}              /*---------------------------------------------*/
Хостинг от uCoz