亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? dbfopen.c

?? 包含詳細(xì)例子的c#創(chuàng)建shape文件的開源碼
?? C
?? 第 1 頁 / 共 4 頁
字號(hào):
DBFReadIntegerAttribute( DBFHandle psDBF, int iRecord, int iField ){    double	*pdValue;    pdValue = (double *) DBFReadAttribute( psDBF, iRecord, iField, 'N' );    if( pdValue == NULL )        return 0;    else        return( (int) *pdValue );}/************************************************************************//*                        DBFReadDateAttribute()                         *//*                                                                      *//*      Read a date attribute.                                      *//************************************************************************/int SHPAPI_CALLDBFReadDateAttribute( DBFHandle psDBF, int iRecord, int iField ){    double	*pdValue;    pdValue = (double *) DBFReadAttribute( psDBF, iRecord, iField, 'D' );    if( pdValue == NULL )        return 0;    else        return( (int) *pdValue );}/************************************************************************//*                        DBFReadDoubleAttribute()                      *//*                                                                      *//*      Read a double attribute.                                        *//************************************************************************/double SHPAPI_CALLDBFReadDoubleAttribute( DBFHandle psDBF, int iRecord, int iField ){    double	*pdValue;    pdValue = (double *) DBFReadAttribute( psDBF, iRecord, iField, 'N' );    if( pdValue == NULL )        return 0.0;    else        return( *pdValue );}/************************************************************************//*                        DBFReadStringAttribute()                      *//*                                                                      *//*      Read a string attribute.                                        *//************************************************************************/const char SHPAPI_CALL1(*)DBFReadStringAttribute( DBFHandle psDBF, int iRecord, int iField ){    return( (const char *) DBFReadAttribute( psDBF, iRecord, iField, 'C' ) );}/************************************************************************//*                        DBFReadLogicalAttribute()                     *//*                                                                      *//*      Read a logical attribute.                                       *//************************************************************************/const char SHPAPI_CALL1(*)DBFReadLogicalAttribute( DBFHandle psDBF, int iRecord, int iField ){    return( (const char *) DBFReadAttribute( psDBF, iRecord, iField, 'L' ) );}/************************************************************************//*                         DBFIsAttributeNULL()                         *//*                                                                      *//*      Return TRUE if value for field is NULL.                         *//*                                                                      *//*      Contributed by Jim Matthews.                                    *//************************************************************************/int SHPAPI_CALLDBFIsAttributeNULL( DBFHandle psDBF, int iRecord, int iField ){    const char	*pszValue;    pszValue = DBFReadStringAttribute( psDBF, iRecord, iField );    switch(psDBF->pachFieldType[iField])    {      case 'N':      case 'F':        /* NULL numeric fields have value "****************" */        return pszValue[0] == '*';      case 'D':        /* NULL date fields have value "00000000" */        return strncmp(pszValue,"00000000",8) == 0;      case 'L':        /* NULL boolean fields have value "?" */         return pszValue[0] == '?';      default:        /* empty string fields are considered NULL */        return (strlen(pszValue) == 0);    }}/************************************************************************//*                          DBFGetFieldCount()                          *//*                                                                      *//*      Return the number of fields in this table.                      *//************************************************************************/int SHPAPI_CALLDBFGetFieldCount( DBFHandle psDBF ){    return( psDBF->nFields );}/************************************************************************//*                         DBFGetRecordCount()                          *//*                                                                      *//*      Return the number of records in this table.                     *//************************************************************************/int SHPAPI_CALLDBFGetRecordCount( DBFHandle psDBF ){    return( psDBF->nRecords );}/************************************************************************//*                          DBFGetFieldInfo()                           *//*                                                                      *//*      Return any requested information about the field.               *//************************************************************************/DBFFieldType SHPAPI_CALLDBFGetFieldInfo( DBFHandle psDBF, int iField, char * pszFieldName,                 int * pnWidth, int * pnDecimals ){    if( iField < 0 || iField >= psDBF->nFields )        return( FTInvalid );    if( pnWidth != NULL )        *pnWidth = psDBF->panFieldSize[iField];    if( pnDecimals != NULL )        *pnDecimals = psDBF->panFieldDecimals[iField];    if( pszFieldName != NULL )    {	int	i;	strncpy( pszFieldName, (char *) psDBF->pszHeader+iField*32, 11 );	pszFieldName[11] = '\0';		for( i = 10; i > 0 && pszFieldName[i] == ' '; i-- )	    pszFieldName[i] = '\0';    }    if ( psDBF->pachFieldType[iField] == 'L' )		return( FTLogical);    else if( psDBF->pachFieldType[iField] == 'N' || psDBF->pachFieldType[iField] == 'F' )    {		if( psDBF->panFieldDecimals[iField] > 0 )			return( FTDouble );		else			return( FTInteger );    }    else if ( psDBF->pachFieldType[iField] == 'D' )		return (FTDate );	else		return( FTString );}/************************************************************************//*                         DBFWriteAttribute()                          *//*									*//*	Write an attribute record to the file.				*//************************************************************************/static int DBFWriteAttribute(DBFHandle psDBF, int hEntity, int iField,			     void * pValue ){    int	       	nRecordOffset, i, j, nRetResult = TRUE;    unsigned char	*pabyRec;    char	szSField[400], szFormat[20];/* -------------------------------------------------------------------- *//*	Is this a valid record?						*//* -------------------------------------------------------------------- */    if( hEntity < 0 || hEntity > psDBF->nRecords )        return( FALSE );    if( psDBF->bNoHeader )        DBFWriteHeader(psDBF);/* -------------------------------------------------------------------- *//*      Is this a brand new record?                                     *//* -------------------------------------------------------------------- */    if( hEntity == psDBF->nRecords )    {	DBFFlushRecord( psDBF );	psDBF->nRecords++;	for( i = 0; i < psDBF->nRecordLength; i++ )	    psDBF->pszCurrentRecord[i] = ' ';	psDBF->nCurrentRecord = hEntity;    }/* -------------------------------------------------------------------- *//*      Is this an existing record, but different than the last one     *//*      we accessed?                                                    *//* -------------------------------------------------------------------- */    if( psDBF->nCurrentRecord != hEntity )    {	DBFFlushRecord( psDBF );	nRecordOffset = psDBF->nRecordLength * hEntity + psDBF->nHeaderLength;	fseek( psDBF->fp, nRecordOffset, 0 );	fread( psDBF->pszCurrentRecord, psDBF->nRecordLength, 1, psDBF->fp );	psDBF->nCurrentRecord = hEntity;    }    pabyRec = (unsigned char *) psDBF->pszCurrentRecord;    psDBF->bCurrentRecordModified = TRUE;    psDBF->bUpdated = TRUE;/* -------------------------------------------------------------------- *//*      Translate NULL value to valid DBF file representation.          *//*                                                                      *//*      Contributed by Jim Matthews.                                    *//* -------------------------------------------------------------------- */    if( pValue == NULL )    {        switch(psDBF->pachFieldType[iField])        {          case 'N':          case 'F':	    /* NULL numeric fields have value "****************" */            memset( (char *) (pabyRec+psDBF->panFieldOffset[iField]), '*',                     psDBF->panFieldSize[iField] );            break;          case 'D':	    /* NULL date fields have value "00000000" */            memset( (char *) (pabyRec+psDBF->panFieldOffset[iField]), '0',                     psDBF->panFieldSize[iField] );            break;          case 'L':	    /* NULL boolean fields have value "?" */             memset( (char *) (pabyRec+psDBF->panFieldOffset[iField]), '?',                     psDBF->panFieldSize[iField] );            break;          default:            /* empty string fields are considered NULL */            memset( (char *) (pabyRec+psDBF->panFieldOffset[iField]), ' ',                     psDBF->panFieldSize[iField] );            break;        }        return TRUE;    }/* -------------------------------------------------------------------- *//*      Assign all the record fields.                                   *//* -------------------------------------------------------------------- */    switch( psDBF->pachFieldType[iField] )    {      case 'D':      case 'N':      case 'F':	if( psDBF->panFieldDecimals[iField] == 0 )	{            int	nWidth = psDBF->panFieldSize[iField];            if( sizeof(szSField)-2 < nWidth )                nWidth = sizeof(szSField)-2;	    sprintf( szFormat, "%%%dd", nWidth );	    sprintf(szSField, szFormat, (int) *((double *) pValue) );	    if( (int)strlen(szSField) > psDBF->panFieldSize[iField] )            {	        szSField[psDBF->panFieldSize[iField]] = '\0';                nRetResult = FALSE;            }	    strncpy((char *) (pabyRec+psDBF->panFieldOffset[iField]),		    szSField, strlen(szSField) );	}	else	{            int		nWidth = psDBF->panFieldSize[iField];            if( sizeof(szSField)-2 < nWidth )                nWidth = sizeof(szSField)-2;	    sprintf( szFormat, "%%%d.%df",                      nWidth, psDBF->panFieldDecimals[iField] );	    sprintf(szSField, szFormat, *((double *) pValue) );	    if( (int) strlen(szSField) > psDBF->panFieldSize[iField] )            {	        szSField[psDBF->panFieldSize[iField]] = '\0';                nRetResult = FALSE;            }	    strncpy((char *) (pabyRec+psDBF->panFieldOffset[iField]),		    szSField, strlen(szSField) );	}	break;      case 'L':        if (psDBF->panFieldSize[iField] >= 1  &&             (*(char*)pValue == 'F' || *(char*)pValue == 'T'))            *(pabyRec+psDBF->panFieldOffset[iField]) = *(char*)pValue;        break;      default:	if( (int) strlen((char *) pValue) > psDBF->panFieldSize[iField] )        {	    j = psDBF->panFieldSize[iField];            nRetResult = FALSE;        }	else        {            memset( pabyRec+psDBF->panFieldOffset[iField], ' ',                    psDBF->panFieldSize[iField] );	    j = strlen((char *) pValue);        }	strncpy((char *) (pabyRec+psDBF->panFieldOffset[iField]),		(char *) pValue, j );	break;    }    return( nRetResult );}/************************************************************************//*                     DBFWriteAttributeDirectly()                      *//*                                                                      *//*      Write an attribute record to the file, but without any          *//*      reformatting based on type.  The provided buffer is written     *//*      as is to the field position in the record.                      *//************************************************************************/int SHPAPI_CALL	DBFWriteAttributeDirectly(DBFHandle psDBF, int hEntity, int iField,                              void * pValue ){    int	       	nRecordOffset, i, j;    unsigned char	*pabyRec;/* -------------------------------------------------------------------- *//*	Is this a valid record?						*//* -------------------------------------------------------------------- */    if( hEntity < 0 || hEntity > psDBF->nRecords )        return( FALSE );    if( psDBF->bNoHeader )        DBFWriteHeader(psDBF);/* -------------------------------------------------------------------- *//*      Is this a brand new record?                                     *//* -------------------------------------------------------------------- */    if( hEntity == psDBF->nRecords )    {	DBFFlushRecord( psDBF );	psDBF->nRecords++;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀av一区二区三区| 国产成人免费视频| 国产欧美精品一区二区色综合| 奇米888四色在线精品| 国产伦理精品不卡| 欧美在线观看视频一区二区| 欧美成人vr18sexvr| 国产精品的网站| 欧美一区二区免费视频| 99国产一区二区三精品乱码| 久久精品国产免费| 午夜精品成人在线| 亚洲精品videosex极品| 中文字幕亚洲电影| 国产拍欧美日韩视频二区| 日韩欧美成人午夜| 欧美精品亚洲一区二区在线播放| 91影视在线播放| aaa欧美色吧激情视频| 国产麻豆精品theporn| 久久国产欧美日韩精品| 日本午夜一区二区| 亚洲第一激情av| 亚洲一区二三区| 亚洲激情欧美激情| 一区二区三区免费| 亚洲精品第一国产综合野| 亚洲视频每日更新| 日韩毛片精品高清免费| 国产精品不卡一区二区三区| 中文字幕欧美国产| 国产精品全国免费观看高清 | 成人黄色网址在线观看| 久久se这里有精品| 久久se精品一区精品二区| 免播放器亚洲一区| 久久99精品久久久久久| 六月丁香婷婷色狠狠久久| 美女尤物国产一区| 激情综合色播激情啊| 久久99精品视频| 国产成人av一区二区三区在线 | 91丨porny丨国产入口| 成人av在线资源网站| 不卡av在线免费观看| 北条麻妃一区二区三区| 色欧美乱欧美15图片| 色噜噜狠狠成人网p站| 欧美日韩一区三区四区| 欧美一级国产精品| 2023国产一二三区日本精品2022| 久久九九久久九九| 日韩理论片一区二区| 午夜精品影院在线观看| 蜜臀av一级做a爰片久久| 韩国精品久久久| 成人精品一区二区三区中文字幕 | av不卡一区二区三区| 在线影院国内精品| 91精品久久久久久久99蜜桃| 日韩精品一区二区三区在线| 国产午夜三级一区二区三| 中文字幕一区二区三区不卡在线| 亚洲午夜久久久久久久久久久| 日韩有码一区二区三区| 国产一区二区三区| 91在线观看视频| 777色狠狠一区二区三区| 久久久久久久网| 18成人在线观看| 日日摸夜夜添夜夜添精品视频| 加勒比av一区二区| 成人av集中营| 欧美日本一区二区在线观看| 久久久久久久久久电影| 亚洲伦在线观看| 久久精品国产在热久久| 99久久综合色| 日韩欧美国产综合一区 | 成人激情综合网站| 欧美精品第1页| 国产精品国产三级国产三级人妇 | 一本一本大道香蕉久在线精品| 69久久夜色精品国产69蝌蚪网| 精品精品欲导航| 一区二区三区不卡视频在线观看| 久久99精品国产91久久来源| 色综合久久久久综合体桃花网| 日韩欧美激情一区| 亚洲国产日日夜夜| 成人av电影在线播放| 日韩欧美在线网站| 伊人婷婷欧美激情| 成人午夜大片免费观看| 日韩一区二区精品葵司在线| 最新久久zyz资源站| 久久99精品网久久| 欧美久久婷婷综合色| 中文字幕在线观看不卡| 韩国一区二区三区| 欧美一区二区三区四区在线观看 | 久久精品夜色噜噜亚洲a∨| 亚洲大片一区二区三区| youjizz久久| 精品久久久久久综合日本欧美| 一区二区三区中文字幕| 成人午夜看片网址| 精品粉嫩超白一线天av| 天堂精品中文字幕在线| 在线免费av一区| 中文字幕字幕中文在线中不卡视频| 国产麻豆一精品一av一免费 | 精品福利一区二区三区免费视频| 亚洲电影激情视频网站| 一本色道久久综合亚洲91| 国产精品少妇自拍| 国产精品综合视频| 精品国产一区二区三区不卡 | 成人污视频在线观看| 精品国产电影一区二区| 日韩成人伦理电影在线观看| 欧美影视一区二区三区| 亚洲乱码国产乱码精品精可以看 | 日韩一级片在线播放| 亚洲第一精品在线| 欧美日韩一区小说| 亚洲高清一区二区三区| 欧洲视频一区二区| 亚洲乱码国产乱码精品精的特点 | 日本福利一区二区| 亚洲少妇中出一区| 91免费观看在线| 亚洲日本va在线观看| 91原创在线视频| 一区二区三区91| 欧美天堂亚洲电影院在线播放| 亚洲一区在线观看视频| 欧美日韩在线直播| 日韩av中文在线观看| 3d成人动漫网站| 蜜乳av一区二区| 精品成人一区二区| 高清日韩电视剧大全免费| 欧美激情一区三区| 91麻豆福利精品推荐| 亚洲欧美日韩久久精品| 欧美伊人久久大香线蕉综合69| 亚洲综合免费观看高清完整版| 欧美午夜免费电影| 日本在线不卡一区| 久久综合色婷婷| 成人永久aaa| 一区二区三区中文在线观看| 欧美日韩精品系列| 精彩视频一区二区| 一区免费观看视频| 欧美日韩激情一区二区| 精品一区二区免费视频| 国产欧美精品一区aⅴ影院 | 欧美久久一区二区| 国产一区二区在线视频| 中文字幕一区在线| 欧美日韩国产综合久久| 狠狠色丁香久久婷婷综合_中 | 色视频一区二区| 青青草伊人久久| 久久九九国产精品| 在线观看av不卡| 九色porny丨国产精品| 国产精品色一区二区三区| 欧美在线一二三四区| 久久精品国产网站| 亚洲美女免费在线| 日韩欧美的一区| 一本色道亚洲精品aⅴ| 久久国产夜色精品鲁鲁99| 国产精品久久久久一区| 欧美精品18+| 99久久国产综合精品色伊| 肉色丝袜一区二区| 亚洲少妇30p| 精品毛片乱码1区2区3区| 91毛片在线观看| 精品亚洲成av人在线观看| 亚洲免费av高清| 久久久久青草大香线综合精品| 色噜噜狠狠成人网p站| 国产一区二区精品久久99| 亚洲成人免费在线| 国产蜜臀97一区二区三区| 69久久夜色精品国产69蝌蚪网| www.一区二区| 国产一区在线观看视频| 亚洲一区二区精品视频| 欧美激情一区二区三区四区| 91精品啪在线观看国产60岁| 91蝌蚪porny| 国产a级毛片一区| 美女脱光内衣内裤视频久久网站| 亚洲激情图片qvod|