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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ogr_miattrind.cpp

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
    {        poINDFile = new TABINDFile();        if( poINDFile->Open( pszMIINDFilename, "w+" ) != 0 )        {            delete poINDFile;            poINDFile = NULL;                        CPLError( CE_Failure, CPLE_OpenFailed,                       "Failed to create %s.",                      pszMIINDFilename );            return OGRERR_FAILURE;        }    }/* -------------------------------------------------------------------- *//*      Do we have this field indexed already?                          *//* -------------------------------------------------------------------- */    int i;    OGRFieldDefn *poFldDefn=poLayer->GetLayerDefn()->GetFieldDefn(iField);    for( i = 0; i < nIndexCount; i++ )    {        if( papoIndexList[i]->iField == iField )        {            CPLError( CE_Failure, CPLE_AppDefined,                       "It seems we already have an index for field %d/%s\n"                      "of layer %s.",                       poFldDefn->GetNameRef(),                      poLayer->GetLayerDefn()->GetName() );            return OGRERR_FAILURE;        }    }/* -------------------------------------------------------------------- *//*      What is the corresponding field type in TAB?  Note that we      *//*      don't allow indexing of any of the list types.                  *//* -------------------------------------------------------------------- */    TABFieldType eTABFT;    int           nFieldWidth = 0;    switch( poFldDefn->GetType() )    {      case OFTInteger:        eTABFT = TABFInteger;        break;      case OFTReal:        eTABFT = TABFFloat;        break;      case OFTString:        eTABFT = TABFChar;        if( poFldDefn->GetWidth() > 0 )            nFieldWidth = poFldDefn->GetWidth();        else            nFieldWidth = 64;        break;      default:        CPLError( CE_Failure, CPLE_AppDefined,                   "Indexing not support for the field type of field %s.",                  poFldDefn->GetNameRef() );        return OGRERR_FAILURE;    }/* -------------------------------------------------------------------- *//*      Create the index.                                               *//* -------------------------------------------------------------------- */    int iINDIndex;    iINDIndex = poINDFile->CreateIndex( eTABFT, nFieldWidth );    // CreateIndex() reports it's own errors.    if( iINDIndex < 0 )        return OGRERR_FAILURE;    AddAttrInd( iField, iINDIndex );/* -------------------------------------------------------------------- *//*      Save the new configuration.                                     *//* -------------------------------------------------------------------- */    return SaveConfigToXML();}/************************************************************************//*                             DropIndex()                              *//*                                                                      *//*      For now we don't have any capability to remove index data       *//*      from the MapInfo index file, so we just limit ourselves to      *//*      ignoring it from now on.                                        *//************************************************************************/OGRErr OGRMILayerAttrIndex::DropIndex( int iField ){/* -------------------------------------------------------------------- *//*      Do we have this field indexed already?                          *//* -------------------------------------------------------------------- */    int i;    OGRFieldDefn *poFldDefn=poLayer->GetLayerDefn()->GetFieldDefn(iField);    for( i = 0; i < nIndexCount; i++ )    {        if( papoIndexList[i]->iField == iField )            break;    }    if( i == nIndexCount )    {        CPLError( CE_Failure, CPLE_AppDefined,                   "DROP INDEX on field (%s) that doesn't have an index.",                  poFldDefn->GetNameRef() );        return OGRERR_FAILURE;    }/* -------------------------------------------------------------------- *//*      Remove from the list.                                           *//* -------------------------------------------------------------------- */    OGRMIAttrIndex *poAI = papoIndexList[i];    memmove( papoIndexList + i, papoIndexList + i + 1,              sizeof(void*) * (nIndexCount - i - 1) );    delete poAI;    nIndexCount--;             /* -------------------------------------------------------------------- *//*      Save the new configuration, or if there is nothing left try     *//*      to clean up the index files.                                    *//* -------------------------------------------------------------------- */    if( nIndexCount > 0 )        return SaveConfigToXML();    else    {        VSIUnlink( pszMetadataFilename );        VSIUnlink( pszMIINDFilename );        return OGRERR_NONE;    }}/************************************************************************//*                             AddAttrInd()                             *//************************************************************************/void OGRMILayerAttrIndex::AddAttrInd( int iField, int iINDIndex ){    OGRMIAttrIndex *poAttrInd = new OGRMIAttrIndex( this, iINDIndex, iField);    nIndexCount++;    papoIndexList = (OGRMIAttrIndex **)         CPLRealloc(papoIndexList, sizeof(void*) * nIndexCount);        papoIndexList[nIndexCount-1] = poAttrInd;}/************************************************************************//*                         GetFieldAttrIndex()                          *//************************************************************************/OGRAttrIndex *OGRMILayerAttrIndex::GetFieldIndex( int iField ){    for( int i = 0; i < nIndexCount; i++ )    {        if( papoIndexList[i]->iField == iField )            return papoIndexList[i];    }    return NULL;}/************************************************************************//*                             AddToIndex()                             *//************************************************************************/OGRErr OGRMILayerAttrIndex::AddToIndex( OGRFeature *poFeature,                                        int iTargetField ){    OGRErr eErr = OGRERR_NONE;    if( poFeature->GetFID() == OGRNullFID )    {        CPLError( CE_Failure, CPLE_AppDefined,                   "Attempt to index feature with no FID." );        return OGRERR_FAILURE;    }    for( int i = 0; i < nIndexCount && eErr == OGRERR_NONE; i++ )    {        int iField = papoIndexList[i]->iField;        if( iTargetField != -1 && iTargetField != iField )            continue;        if( !poFeature->IsFieldSet( iField ) )            continue;        eErr =             papoIndexList[i]->AddEntry( poFeature->GetRawFieldRef( iField ),                                        poFeature->GetFID() );    }    return eErr;}/************************************************************************//*                          RemoveFromIndex()                           *//************************************************************************/OGRErr OGRMILayerAttrIndex::RemoveFromIndex( OGRFeature * /*poFeature*/ ){    return OGRERR_UNSUPPORTED_OPERATION;}/************************************************************************//*                     OGRCreateDefaultLayerIndex()                     *//************************************************************************/OGRLayerAttrIndex *OGRCreateDefaultLayerIndex(){    return new OGRMILayerAttrIndex();}/************************************************************************//* ==================================================================== *//*                            OGRMIAttrIndex                            *//* ==================================================================== *//************************************************************************//* class declared at top of file *//************************************************************************//*                           OGRMIAttrIndex()                           *//************************************************************************/OGRMIAttrIndex::OGRMIAttrIndex( OGRMILayerAttrIndex *poLayerIndex,                                 int iIndexIn, int iFieldIn ){    iIndex = iIndexIn;    iField = iFieldIn;    poLIndex = poLayerIndex;    poINDFile = poLayerIndex->poINDFile;    poFldDefn = poLayerIndex->GetLayer()->GetLayerDefn()->GetFieldDefn(iField);}/************************************************************************//*                          ~OGRMIAttrIndex()                           *//************************************************************************/OGRMIAttrIndex::~OGRMIAttrIndex(){}/************************************************************************//*                              AddEntry()                              *//************************************************************************/OGRErr OGRMIAttrIndex::AddEntry( OGRField *psKey, long nFID ){    GByte *pabyKey = BuildKey( psKey );    if( psKey == NULL )        return OGRERR_FAILURE;    if( poINDFile->AddEntry( iIndex, pabyKey, nFID+1 ) != 0 )        return OGRERR_FAILURE;    else        return OGRERR_NONE;}/************************************************************************//*                            RemoveEntry()                             *//************************************************************************/OGRErr OGRMIAttrIndex::RemoveEntry( OGRField * /*psKey*/, long /*nFID*/ ){    return OGRERR_UNSUPPORTED_OPERATION;}/************************************************************************//*                              BuildKey()                              *//************************************************************************/GByte *OGRMIAttrIndex::BuildKey( OGRField *psKey ){    switch( poFldDefn->GetType() )    {      case OFTInteger:        return poINDFile->BuildKey( iIndex, psKey->Integer );        break;      case OFTReal:        return poINDFile->BuildKey( iIndex, psKey->Real );        break;      case OFTString:        return poINDFile->BuildKey( iIndex, psKey->String );        break;      default:        CPLAssert( FALSE );        return NULL;    }}/************************************************************************//*                           GetFirstMatch()                            *//************************************************************************/long OGRMIAttrIndex::GetFirstMatch( OGRField *psKey ){    GByte *pabyKey = BuildKey( psKey );    long nFID;    nFID = poINDFile->FindFirst( iIndex, pabyKey );    if( nFID < 1 )        return OGRNullFID;    else        return nFID - 1;}/************************************************************************//*                           GetAllMatches()                            *//************************************************************************/long *OGRMIAttrIndex::GetAllMatches( OGRField *psKey ){    GByte *pabyKey = BuildKey( psKey );    long  *panFIDList = NULL, nFID;    int   nFIDCount=0, nFIDMax=2;    panFIDList = (long *) CPLMalloc(sizeof(long) * 2);    nFID = poINDFile->FindFirst( iIndex, pabyKey );    while( nFID > 0 )    {        if( nFIDCount >= nFIDMax-1 )        {            nFIDMax = nFIDMax * 2 + 10;            panFIDList = (long *) CPLRealloc(panFIDList, sizeof(long)*nFIDMax);        }        panFIDList[nFIDCount++] = nFID - 1;                nFID = poINDFile->FindNext( iIndex, pabyKey );    }    panFIDList[nFIDCount] = OGRNullFID;        return panFIDList;}/************************************************************************//*                               Clear()                                *//************************************************************************/OGRErr OGRMIAttrIndex::Clear(){    return OGRERR_UNSUPPORTED_OPERATION;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜国产不卡在线观看视频| 在线观看日韩一区| 久久99深爱久久99精品| 视频一区视频二区中文字幕| 亚洲高清不卡在线观看| 亚洲高清视频中文字幕| 丝袜亚洲另类欧美综合| 日本va欧美va欧美va精品| 美女网站一区二区| 极品少妇一区二区三区精品视频| 激情久久五月天| 丁香桃色午夜亚洲一区二区三区| 成人av电影免费在线播放| 9久草视频在线视频精品| 色香蕉久久蜜桃| 在线播放/欧美激情| 日韩一级二级三级精品视频| 精品日产卡一卡二卡麻豆| 精品国产乱子伦一区| 久久久久88色偷偷免费| 一区在线播放视频| 亚洲国产你懂的| 免费人成精品欧美精品| 国产成人8x视频一区二区| 99国产精品久| 欧美三级电影精品| 91精品国产91综合久久蜜臀| 26uuu色噜噜精品一区| 中文在线一区二区| 亚洲综合一二区| 免费成人美女在线观看| 国产丶欧美丶日本不卡视频| 色综合久久中文综合久久牛| 欧美嫩在线观看| 久久精品欧美一区二区三区麻豆| 亚洲人xxxx| 青青草97国产精品免费观看 | 欧美精品一区二区在线观看| 国产日韩欧美a| 亚洲午夜日本在线观看| 精一区二区三区| 91视频.com| 欧美一级高清大全免费观看| 中文字幕第一区第二区| 三级在线观看一区二区| 国产69精品久久777的优势| 在线一区二区三区| 精品电影一区二区| 一区二区三区四区中文字幕| 久久精品国产澳门| 色综合久久88色综合天天6| 欧美电影精品一区二区| 国产精品国产馆在线真实露脸| 日韩成人免费在线| www.综合网.com| 日韩无一区二区| 亚洲免费在线视频一区 二区| 久久99精品一区二区三区 | 亚洲天堂精品在线观看| 美腿丝袜在线亚洲一区 | 欧美va亚洲va| 亚洲日本在线a| 国产麻豆一精品一av一免费 | 国产日本一区二区| 日韩精品一卡二卡三卡四卡无卡| 99综合电影在线视频| 欧美一区二区三区在线电影| 亚洲女同女同女同女同女同69| 国产一区二区福利| 日韩三级视频中文字幕| 亚洲综合av网| 97久久超碰精品国产| 久久久国际精品| 免费在线欧美视频| 欧美日韩精品电影| 一区二区三区日韩欧美| 顶级嫩模精品视频在线看| 精品国产sm最大网站免费看| 午夜精品久久久久久久99樱桃| 91啪亚洲精品| 国产精品色在线观看| 国产乱妇无码大片在线观看| 91精品在线观看入口| 亚洲成人免费av| 在线中文字幕一区| 亚洲精品欧美综合四区| www.爱久久.com| 中文字幕成人网| 国产精品夜夜爽| 精品国产乱码久久久久久久久| 日韩电影免费在线观看网站| 欧美日韩第一区日日骚| 亚洲综合成人在线视频| 在线观看视频91| 亚洲乱码国产乱码精品精的特点| yourporn久久国产精品| 国产精品护士白丝一区av| 成人一区二区三区| 国产欧美久久久精品影院| 国产美女视频91| 国产欧美综合色| 粉嫩嫩av羞羞动漫久久久| 国产午夜亚洲精品不卡| 国产成人综合在线观看| 欧美韩国日本不卡| 不卡视频免费播放| 亚洲人成小说网站色在线| 日本黄色一区二区| 亚洲综合在线观看视频| 欧美三区在线观看| 日本午夜精品视频在线观看| 欧美一级片在线观看| 久久精品国产久精国产| 久久色视频免费观看| 国产激情偷乱视频一区二区三区| 国产欧美日韩三区| 波多野结衣亚洲| 一区二区三区在线影院| 欧美丝袜自拍制服另类| 日韩av一区二区三区| 精品日韩欧美一区二区| 国产精品99久久久久久久女警| 欧美高清在线精品一区| 一本一道综合狠狠老| 亚洲成av人综合在线观看| 91麻豆精品国产91久久久资源速度| 蜜臀va亚洲va欧美va天堂| 国产亚洲欧美日韩在线一区| 972aa.com艺术欧美| 日韩在线观看一区二区| 久久亚洲综合色| av成人动漫在线观看| 五月天欧美精品| 久久九九全国免费| 91浏览器在线视频| 蜜臀av性久久久久蜜臀aⅴ四虎| 久久精品一区二区三区av| 国产**成人网毛片九色| 亚洲二区视频在线| 久久久久久久久久电影| 91福利视频久久久久| 激情综合色播五月| 国产精品久久久久久久久免费樱桃| 91成人在线观看喷潮| 精品一区二区影视| 亚洲精品自拍动漫在线| 日韩视频中午一区| 成人黄页毛片网站| 人人爽香蕉精品| 日韩码欧中文字| 精品99999| 欧美吞精做爰啪啪高潮| 精品一区二区免费| 一区二区三区在线视频观看 | 综合激情网...| 日韩片之四级片| jlzzjlzz亚洲日本少妇| 日本欧美一区二区| 综合亚洲深深色噜噜狠狠网站| 日韩欧美一区中文| 日本丶国产丶欧美色综合| 激情综合色综合久久综合| 亚洲一区二三区| 国产精品高潮呻吟| 欧美成人一区二区三区| 欧美亚洲一区二区三区四区| 国产电影精品久久禁18| 爽好久久久欧美精品| 亚洲免费在线视频| 欧美国产日产图区| 精品国产乱码久久久久久图片 | 精品久久国产老人久久综合| 在线观看日韩电影| 99精品久久只有精品| 国内精品国产成人| 日韩经典一区二区| 亚洲成人免费看| 一区二区三区在线观看国产| 国产三级三级三级精品8ⅰ区| 91精品久久久久久久久99蜜臂| 91麻豆国产精品久久| 成人深夜福利app| 国产精品123| 韩国三级电影一区二区| 美腿丝袜亚洲一区| 爽好久久久欧美精品| 午夜视黄欧洲亚洲| 亚洲国产精品自拍| 亚洲乱码精品一二三四区日韩在线| 国产精品三级电影| 久久女同互慰一区二区三区| 欧美成人女星排名| 日韩欧美国产精品一区| 91精品国产综合久久精品app | 精品理论电影在线| 日韩一区二区三区四区| 欧美一级专区免费大片| 欧美一区二区久久| 91精品国产综合久久精品| 欧美日韩成人综合天天影院|