Exemplo n.º 1
0
void    MakeGaps(void)
{
    uchar   i;
    uint    j;

    if (GetGapSize() == 0)
    {
        for (j=0; j<sizeof(mpbGaps); j++)
            mpbGaps[j] = 0;
    }
    else
    {
        GetGapDate(0);
        for (j=0; j<365; j++)
            mpbGaps[j] = tiGap.bSecond;

        for (i=0; i<GetGapSize(); i++)
        {
            GetGapDate(GetGapSize()-1-i);

            for (j=0; j<=GetDayIndexMD(tiGap.bMonth, tiGap.bDay); j++)
                mpbGaps[j] = tiGap.bSecond;
        }
    }
}
Exemplo n.º 2
0
// добавление нового излома в список и сортировка
bool    AddGap(void)
{
uchar   i,j;
uint    k;

  // проверяем на наличие этого излома в списке
  for (i=0; i<GetGapSize(); i++)
  {
    GetGapDate(i);
    if ((tiGap.bMonth == tiT.bMonth) && (tiGap.bDay == tiT.bDay))
    {
      // заменяем тип излома, не добавляя его в список
      SetGapDate(i);

      SaveCache(&chGaps);
      return(0);
    }
  }


  // записываем излом в конец списка
  tiGap = tiT; SetGapDate(ibX);

  // сортировка
  for(i=0; i<=GetGapSize(); i++)
  {
    for(j=0; j<=GetGapSize(); j++)
    {
      GetGapDate(i);
      k = GetDayIndexMD(tiGap.bMonth, tiGap.bDay);

      GetGapDate(j); 
      if (k < GetDayIndexMD(tiGap.bMonth, tiGap.bDay))
      {
        GetGapDate(i);
        time ti = tiGap;

        GetGapDate(j);
        SetGapDate(i);

        tiGap = ti;
        SetGapDate(j);
      }
    }
  }

  // увеличиваем размер списка
  SetGapSize(GetGapSize() + 1);

  SaveCache(&chGaps);
  return(1);
}
Exemplo n.º 3
0
void    ShowGap(uchar  ibGap)
{
  if (GetGapSize() > 0)
  {
    GetGapDate(ibGap);

    sprintf(szLo,"%2u.%02u", tiGap.bDay, tiGap.bMonth);
    ShowGapName(tiGap.bSecond);
    sprintf(szHi+11,"%2u/%-2u", ibGap+1, GetGapSize());
  }
  else ShowLo(szNoGaps);
}
Exemplo n.º 4
0
// удаление излома из списка
void    DelGap(void)
{
uchar  i;

  // если удаляем не последний излом
  if (ibX < GetGapSize() - 1)
  {
    // сдвигаем последующие изломи вверх
    for (i=ibX; i<GetGapSize() - 1; i++)
    {
      GetGapDate(i + 1);
      SetGapDate(i);
    }
  }
  // иначе уменьшаем индекс текущего излома
  else if (ibX != 0) 
    ibX--;        

  // уменьшаем количество изломов
  if (GetGapSize() != 0)
    SetGapSize(GetGapSize() - 1);

  SaveCache(&chGaps);
}