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

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

?? tigerfilebase.cpp

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/****************************************************************************** * $Id: tigerfilebase.cpp 10646 2007-01-18 02:38:10Z warmerdam $ * * Project:  TIGER/Line Translator * Purpose:  Implements TigerBaseFile class, providing common services to all *           the tiger file readers. * Author:   Frank Warmerdam, warmerdam@pobox.com * ****************************************************************************** * Copyright (c) 1999, Frank Warmerdam * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. ****************************************************************************/#include "ogr_tiger.h"#include "cpl_conv.h"#include "cpl_error.h"#include "cpl_string.h"CPL_CVSID("$Id: tigerfilebase.cpp 10646 2007-01-18 02:38:10Z warmerdam $");/************************************************************************//*                           TigerFileBase()                            *//************************************************************************/TigerFileBase::TigerFileBase(){    pszShortModule = NULL;    pszModule = NULL;    fpPrimary = NULL;    poFeatureDefn = NULL;    nFeatures = 0;    nVersionCode = 0;    nVersion = TIGER_Unknown;}/************************************************************************//*                           ~TigerFileBase()                           *//************************************************************************/TigerFileBase::~TigerFileBase(){    CPLFree( pszModule );    CPLFree( pszShortModule );    if( poFeatureDefn != NULL )    {        poFeatureDefn->Release();        poFeatureDefn = NULL;    }    if( fpPrimary != NULL )    {        VSIFClose( fpPrimary );        fpPrimary = NULL;    }}/************************************************************************//*                              OpenFile()                              *//************************************************************************/int TigerFileBase::OpenFile( const char * pszModuleToOpen,                             const char *pszExtension ){    char        *pszFilename;    CPLFree( pszModule );    pszModule = NULL;    CPLFree( pszShortModule );    pszShortModule = NULL;        if( fpPrimary != NULL )    {        VSIFClose( fpPrimary );        fpPrimary = NULL;    }    if( pszModuleToOpen == NULL )        return TRUE;    pszFilename = poDS->BuildFilename( pszModuleToOpen, pszExtension );    fpPrimary = VSIFOpen( pszFilename, "rb" );    CPLFree( pszFilename );    if( fpPrimary != NULL )    {        pszModule = CPLStrdup(pszModuleToOpen);        pszShortModule = CPLStrdup(pszModuleToOpen);        for( int i = 0; pszShortModule[i] != '\0'; i++ )        {            if( pszShortModule[i] == '.' )                pszShortModule[i] = '\0';        }        SetupVersion();        return TRUE;    }    else        return FALSE;}/************************************************************************//*                            SetupVersion()                            *//************************************************************************/void TigerFileBase::SetupVersion(){    char        aszRecordHead[6];    VSIFSeek( fpPrimary, 0, SEEK_SET );    VSIFRead( aszRecordHead, 1, 5, fpPrimary );    aszRecordHead[5] = '\0';    nVersionCode = atoi(aszRecordHead+1);    VSIFSeek( fpPrimary, 0, SEEK_SET );    nVersion = TigerClassifyVersion( nVersionCode );}/************************************************************************//*                       EstablishRecordLength()                        *//************************************************************************/int TigerFileBase::EstablishRecordLength( FILE * fp ){    char        chCurrent;    int         nRecLen = 0;        if( fp == NULL || VSIFSeek( fp, 0, SEEK_SET ) != 0 )        return -1;/* -------------------------------------------------------------------- *//*      Read through to the end of line.                                *//* -------------------------------------------------------------------- */    chCurrent = '\0';    while( VSIFRead( &chCurrent, 1, 1, fp ) == 1           && chCurrent != 10           && chCurrent != 13 )    {        nRecLen++;    }/* -------------------------------------------------------------------- *//*      Is the file zero length?                                        *//* -------------------------------------------------------------------- */    if( nRecLen == 0 )    {        return -1;    }        nRecLen++; /* for the 10 or 13 we encountered *//* -------------------------------------------------------------------- *//*      Read through line terminator characters.  We are trying to      *//*      handle cases of CR, CR/LF and LF/CR gracefully.                 *//* -------------------------------------------------------------------- */    while( VSIFRead( &chCurrent, 1, 1, fp ) == 1           && (chCurrent == 10 || chCurrent == 13 ) )    {        nRecLen++;    }    VSIFSeek( fp, 0, SEEK_SET );    return nRecLen;}/************************************************************************//*                       EstablishFeatureCount()                        *//************************************************************************/void TigerFileBase::EstablishFeatureCount(){    if( fpPrimary == NULL )        return;    nRecordLength = EstablishRecordLength( fpPrimary );    if( nRecordLength == -1 )    {        nRecordLength = 1;        nFeatures = 0;        return;    }/* -------------------------------------------------------------------- *//*      Now we think we know the fixed record length for the file       *//*      (including line terminators).  Get the total file size, and     *//*      divide by this length to get the presumed number of records.    *//* -------------------------------------------------------------------- */    long        nFileSize;        VSIFSeek( fpPrimary, 0, SEEK_END );    nFileSize = VSIFTell( fpPrimary );    if( (nFileSize % nRecordLength) != 0 )    {        CPLError( CE_Warning, CPLE_FileIO,                  "TigerFileBase::EstablishFeatureCount(): "                  "File length %d doesn't divide by record length %d.\n",                  nFileSize, nRecordLength );    }    nFeatures = nFileSize / nRecordLength;}/************************************************************************//*                              GetField()                              *//************************************************************************/const char *TigerFileBase::GetField( const char * pachRawDataRecord,                                     int nStartChar, int nEndChar ){    static char         aszField[128];    int                 nLength = nEndChar - nStartChar + 1;        CPLAssert( nEndChar - nStartChar + 2 < (int) sizeof(aszField) );    strncpy( aszField, pachRawDataRecord + nStartChar - 1, nLength );    aszField[nLength] = '\0';    while( nLength > 0 && aszField[nLength-1] == ' ' )        aszField[--nLength] = '\0';    return aszField;}/************************************************************************//*                              SetField()                              *//*                                                                      *//*      Set a field on an OGRFeature from a tiger record, or leave      *//*      NULL if the value isn't found.                                  *//************************************************************************/void TigerFileBase::SetField( OGRFeature *poFeature, const char *pszField,                              const char *pachRecord, int nStart, int nEnd )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产98色在线|日韩| 精品国产三级a在线观看| 欧美日韩国产综合草草| 久久精品欧美日韩精品| 亚洲成人av一区| 91在线观看下载| 久久久久久久久久看片| 调教+趴+乳夹+国产+精品| 99久久久免费精品国产一区二区| 日韩久久免费av| 亚洲国产cao| 日本伦理一区二区| 国产精品狼人久久影院观看方式| 国产在线视频一区二区| 日韩一级片在线观看| 亚洲成人精品一区| 色综合色综合色综合| 中文字幕日韩欧美一区二区三区| 国产麻豆精品在线| 欧美乱妇一区二区三区不卡视频| ...xxx性欧美| 91亚洲精华国产精华精华液| 国产精品免费网站在线观看| 国产一区二区视频在线播放| 日韩天堂在线观看| 日韩电影免费在线| 91精品国产美女浴室洗澡无遮挡| 亚洲国产精品久久人人爱| 欧美色视频在线观看| 亚洲电影一区二区三区| 欧美日韩精品一区二区三区四区 | 日韩精品五月天| 91激情五月电影| 亚洲国产精品一区二区www| 欧美视频日韩视频在线观看| 香港成人在线视频| 69av一区二区三区| 男男成人高潮片免费网站| 日韩免费高清电影| 丰满少妇久久久久久久| 国产精品进线69影院| 在线观看av一区二区| 五月天中文字幕一区二区| 欧美成人精品1314www| 国产精品系列在线播放| 中文字幕在线不卡| 欧美日韩一区二区三区在线看 | 日韩亚洲欧美一区二区三区| 另类调教123区| 久久久久久久久久久久电影| 成人黄色软件下载| 亚洲精品中文在线观看| 欧美日韩国产欧美日美国产精品| 日本女人一区二区三区| 欧美高清一级片在线观看| 99久久免费精品| 日韩成人免费电影| 久久久综合视频| 91国产福利在线| 免费成人av在线播放| 国产欧美精品日韩区二区麻豆天美| 99这里只有久久精品视频| 亚洲成年人网站在线观看| 久久久亚洲精品一区二区三区| 色综合久久中文字幕综合网| 日本vs亚洲vs韩国一区三区二区| 欧美国产精品专区| 欧美日韩国产经典色站一区二区三区| 久久av资源网| 一区二区三区加勒比av| 精品久久久久久久久久久久包黑料 | 一区二区免费视频| 久久久激情视频| 在线播放国产精品二区一二区四区| 国产综合色精品一区二区三区| 亚洲精品免费播放| 久久先锋影音av| 欧美日韩国产首页| 94-欧美-setu| 国产成人自拍网| 免费在线观看精品| 一区二区三区四区高清精品免费观看| 日韩免费在线观看| 欧美日韩激情一区二区三区| 国产成人精品亚洲午夜麻豆| 日本最新不卡在线| 亚洲自拍偷拍欧美| 中文字幕亚洲不卡| 欧美国产综合一区二区| 亚洲精品一区二区三区福利 | 国产欧美视频一区二区| 欧美精品一二三| 在线免费不卡电影| 91视频免费播放| 成人一区二区三区在线观看 | 日本韩国欧美三级| av电影在线不卡| 国产成人av一区| 国产一区二区美女诱惑| 日本欧美一区二区三区乱码 | 丁香婷婷深情五月亚洲| 久久精品国内一区二区三区| 天堂av在线一区| 亚洲福利一二三区| 亚洲国产视频在线| 一区二区三区中文在线观看| 国产精品成人在线观看 | 日韩免费观看高清完整版| 欧美日韩国产电影| 欧美日韩国产一区二区三区地区| 欧美性xxxxx极品少妇| 91国模大尺度私拍在线视频| 91精品福利在线| 欧美日韩一区三区四区| 欧美高清一级片在线| 日韩三级在线免费观看| 91精品国产美女浴室洗澡无遮挡| 91精品国产乱码久久蜜臀| 欧美肥大bbwbbw高潮| 欧美理论电影在线| 日韩一区二区精品葵司在线 | 色久优优欧美色久优优| 色综合天天综合网国产成人综合天 | 五月激情丁香一区二区三区| 亚洲国产wwwccc36天堂| 免费一级欧美片在线观看| 奇米777欧美一区二区| 九九视频精品免费| 成人免费看片app下载| 99久久777色| 欧美美女bb生活片| 精品国产乱码久久久久久影片| 久久久亚洲欧洲日产国码αv| 国产蜜臀av在线一区二区三区| 国产精品久久久久久久第一福利 | 国产999精品久久| 色综合久久久久久久久| 欧美蜜桃一区二区三区| 日韩欧美不卡一区| 国产欧美精品一区| 午夜精品在线视频一区| 黄网站免费久久| 91污在线观看| 欧美精品乱码久久久久久按摩| 日韩欧美久久一区| 亚洲视频你懂的| 日本成人在线电影网| 国产成人在线视频免费播放| 91电影在线观看| 久久久久久久久蜜桃| 亚洲一区av在线| 国产不卡一区视频| 欧美视频在线播放| 久久精品视频网| 亚洲国产视频a| 高清不卡在线观看| 欧美一区二区啪啪| 亚洲欧洲日产国产综合网| 蜜臀a∨国产成人精品| 99久久精品费精品国产一区二区| 欧美人狂配大交3d怪物一区| 日韩一区日韩二区| 久久精品国产99国产| 日本精品裸体写真集在线观看| 91精品国产91综合久久蜜臀| 1000精品久久久久久久久| 久久99热狠狠色一区二区| 欧美中文字幕一区二区三区亚洲| 国产午夜精品在线观看| 日韩高清欧美激情| 欧美亚洲动漫另类| 国产精品丝袜一区| 国产精品1区二区.| 欧美一区二区三区精品| 亚洲一区二区三区四区在线观看| 国产成人一级电影| 日韩免费在线观看| 日韩电影在线观看电影| 欧美午夜一区二区| 中文字幕在线不卡国产视频| 国产精品一卡二卡| 欧美成人官网二区| 免费日韩伦理电影| 欧美丰满嫩嫩电影| 亚洲国产cao| 欧美综合久久久| 亚洲一区二区三区四区不卡| 91在线观看成人| 国产精品福利一区二区| 国产成人免费在线| 国产视频一区二区在线观看| 久久国产精品99久久久久久老狼| 欧美午夜寂寞影院| 五月天丁香久久| 欧美福利视频导航| 五月婷婷欧美视频| 欧美日韩高清一区二区三区| 午夜亚洲国产au精品一区二区| 欧美日韩一区二区在线观看视频 | 欧美理论片在线|