tableshow.c

来自「linux下」· C语言 代码 · 共 73 行

C
73
字号
#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 + =
减小字号Ctrl + -
显示快捷键?