Чтение элемента таблицы из столбца
// Определение size0
p->size0=sizeof(int)*2 + sizeof(item) * p->ns;
for (i=0,p->strlnt=0; i<p->ns; i++) // Определение длины
p->strlnt += p->ST[i].size; // строки таблицы
return(p);
}
//----- Чтение элемента таблицы из столбца j строки i
// функция возвращает элемент в динамической памяти
void *getrec(int i, int j, TableDef *p)
{
void *data;
int lnt; // Суммарная размерность
int k; // столбцов от 0 до j-1
if (p->fd ==NULL) return NULL;
if (p->ns <=j || p->nr <=i) return NULL;
for (k=0,lnt=0; k<j; k++) lnt += p->ST[k].size;
data = malloc(p->ST[j].size);
fseek(p->fd, p->size0 + (long)p->strlnt*i + lnt, 0);
//
// Смещение строк таблицы в файле +
// Размерность i полных строк +
// Сумма длин столбцов от 0 до j-1
//
fread(data,p->ST[j].size,1,p->fd);
return data;
}
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий