📄 tableshow.c
字号:
#include<stdlib.h>#include<stdio.h>#include<sys/types.h>#include<fcntl.h>#include<sys/stat.h>#include<unistd.h>#include<string.h>#include"table.h"int table_show(const char* szTableName){ return do_table_show(table_open(szTableName));}int do_table_show(T_TableDes* pTableDes){ int i,j,k; int nRetCount=0; unsigned long nRecordsCount=pTableDes->pTableHeader->nValidRecordCount; unsigned int nOffset=pTableDes->pTableHeader->nDataOffset; unsigned int nRecSize=pTableDes->pTableHeader->nRecSize; void* pRecords; for(i=0;i<pTableDes->pTableHeader->nColumnCount;i++) //制表,表头信息 printf("%s\t",pTableDes->pColInfos[i].szColumnName); printf("\n"); lseek(pTableDes->fd,nOffset,SEEK_SET); //从文件读入全部记录 pRecords=malloc(nRecSize*nRecordsCount); read(pTableDes->fd,(char*)pRecords,nRecSize*nRecordsCount); for(k=0;k<nRecordsCount;k++) //显示所有记录 { for(j=0;j<pTableDes->pTableHeader->nColumnCount;j++) //按表格式显示一条记录 { //memcpy(pFields[j].pFieldData,pRecord+pTableDes->pRecFields[j].nFieldStart,pTableDes->pRecFields[j].nFieldSize); switch(pTableDes->pColInfos[j].ColumnType) { case conchars: printf("%s\t",(char*)(pRecords+pTableDes->pRecFields[j].nFieldStart)); break; case shortint: printf("%d\t",*(short*)(pRecords+pTableDes->pRecFields[j].nFieldStart)); //printf("%d\t",*(int*)pFields[j].pFieldData); break; case longint: printf("%u\t",*(long int*)(pRecords+pTableDes->pRecFields[j].nFieldStart)); //printf("%d\t",*(long int*)pFields[j].pFieldData); break; case floatval: printf("%f\t",*(float*)(pRecords+pTableDes->pRecFields[j].nFieldStart)); //printf("%f\t",*(float*)pFields[j].pFieldData); } } printf("\n"); nRetCount++; pRecords+=nRecSize; } printf("all should be %u\n",nRecordsCount); printf("%d records shown\n",nRetCount); return nRetCount;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -