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

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

?? avc_e00gen.c

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? C
?? 第 1 頁 / 共 4 頁
字號:
/********************************************************************** * $Id: avc_e00gen.c,v 1.17 2006/06/14 15:01:33 daniel Exp $ * * Name:     avc_e00gen.c * Project:  Arc/Info vector coverage (AVC)  BIN->E00 conversion library * Language: ANSI C * Purpose:  Functions to generate ASCII E00 lines form binary structures. * Author:   Daniel Morissette, dmorissette@dmsolutions.ca * ********************************************************************** * Copyright (c) 1999-2005, Daniel Morissette * * 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. ********************************************************************** * * $Log: avc_e00gen.c,v $ * Revision 1.17  2006/06/14 15:01:33  daniel * Remove any embeded '\0' from data line in AVCE00GenTableRec() * * Revision 1.16  2005/06/03 03:49:58  daniel * Update email address, website url, and copyright dates * * Revision 1.15  2004/08/19 17:48:20  warmerda * Avoid uninitialized variable warnings. * * Revision 1.14  2001/11/25 21:15:23  daniel * Added hack (AVC_MAP_TYPE40_TO_DOUBLE) to map type 40 fields bigger than 8 * digits to double precision as we generate E00 output (bug599) * * Revision 1.13  2001/11/19 20:39:48  daniel * Change to correctly format 0-arc PAL records, so that they have a * single "filler" arc record * * Revision 1.12  2000/09/26 20:21:04  daniel * Added AVCCoverPC write * * Revision 1.11  2000/09/22 19:45:20  daniel * Switch to MIT-style license * * Revision 1.10  2000/02/04 04:54:03  daniel * Fixed warnings * * Revision 1.9  2000/02/03 07:21:02  daniel * TXT/TX6 with string longer than 80 chars: split string in 80 chars chunks * * Revision 1.8  2000/02/02 04:28:00  daniel * Fixed support of TX6/RXP/RPL coming from "weird" coverages * * Revision 1.7  1999/08/23 18:20:49  daniel * Fixed support for attribute fields type 40 * * Revision 1.6  1999/05/17 16:19:39  daniel * Made sure ACVE00GenTableRec() removes all spaces at the end of a * table record line (it used to leave one space) * * Revision 1.5  1999/05/11 02:08:17  daniel * Simple changes related to the addition of coverage write support. * * Revision 1.4  1999/03/03 02:06:38  daniel * Properly handle 8 bytes floats inside single precision tables. * * Revision 1.3  1999/02/25 17:01:58  daniel * Added support for 16 bit integers in INFO tables (type=50, size=2) * * Revision 1.2  1999/02/25 04:17:51  daniel * Added TXT, TX6/TX7, RXP and RPL support + some minor changes * * Revision 1.1  1999/01/29 16:28:52  daniel * Initial revision * **********************************************************************/#include "avc.h"#include <ctype.h>      /* toupper() *//********************************************************************** *                          AVCE00GenInfoAlloc() * * Allocate and initialize a new AVCE00GenInfo structure. * * The structure will eventually have to be freed with AVCE00GenInfoFree(). **********************************************************************/AVCE00GenInfo  *AVCE00GenInfoAlloc(int nCoverPrecision){    AVCE00GenInfo       *psInfo;    psInfo = (AVCE00GenInfo*)CPLCalloc(1,sizeof(AVCE00GenInfo));    /* Allocate output buffer.       * 2k should be enough... the biggest thing we'll need to store     * in it will be 1 complete INFO table record.     */    psInfo->nBufSize = 2048;    psInfo->pszBuf = (char *)CPLMalloc(psInfo->nBufSize*sizeof(char));    psInfo->nPrecision = nCoverPrecision;    return psInfo;}/********************************************************************** *                          AVCE00GenInfoFree() * * Free any memory associated with a AVCE00GenInfo structure. **********************************************************************/void    AVCE00GenInfoFree(AVCE00GenInfo  *psInfo){    if (psInfo)        CPLFree(psInfo->pszBuf);    CPLFree(psInfo);}/********************************************************************** *                          AVCE00GenReset() * * Reset the fields in the AVCE00GenInfo structure so that further calls * with bCont = TRUE (ex: AVCE00GenArc(psInfo, TRUE)) would return NULL. **********************************************************************/void    AVCE00GenReset(AVCE00GenInfo  *psInfo){    /* Reinitialize counters so that further calls with bCont = TRUE,     * like AVCE00GenArc(psInfo, TRUE) would return NULL.     */    psInfo->iCurItem = psInfo->numItems = 0;}/********************************************************************** *                          AVCE00GenStartSection() * * Generate the first line of an E00 section. * * pszClassName applies only to JABBERWOCKY type of sections. **********************************************************************/const char *AVCE00GenStartSection(AVCE00GenInfo *psInfo, AVCFileType eType,                                   const char *pszClassName){    char *pszName = "UNK";    AVCE00GenReset(psInfo);    if (eType == AVCFileTX6 || eType == AVCFileRXP || eType == AVCFileRPL)    {        /* TX6/RXP/RPL sections start with the class name (the basename          * of the file) in uppercase.         * ex:  The section for "cities.txt" would start with "CITIES"         */        int i;        for(i=0; pszClassName[i] != '\0'; i++)        {            psInfo->pszBuf[i] = toupper(pszClassName[i]);        }        psInfo->pszBuf[i] = '\0';    }    else    {        /* In most cases, the section starts with a 3 letters code followed         * by the precision code (2 or 3)         */        switch(eType)        {          case AVCFileARC:            pszName = "ARC";            break;          case AVCFilePAL:            pszName = "PAL";            break;          case AVCFileCNT:            pszName = "CNT";            break;          case AVCFileLAB:            pszName = "LAB";            break;          case AVCFileTOL:            pszName = "TOL";            break;          case AVCFilePRJ:            pszName = "PRJ";            break;          case AVCFileTXT:            pszName = "TXT";            break;          default:            CPLError(CE_Failure, CPLE_NotSupported,                     "Unsupported E00 section type!");        }        if (psInfo->nPrecision == AVC_DOUBLE_PREC)            sprintf(psInfo->pszBuf, "%s  3", pszName);        else            sprintf(psInfo->pszBuf, "%s  2", pszName);    }    return psInfo->pszBuf;}/********************************************************************** *                          AVCE00GenEndSection() * * Generate the last line(s) of an E00 section. * * This function should be called once with bCont=FALSE to get the * first "end of section" line for the current section, and then call  * with bCont=TRUE to get all the other lines. * * The function returns NULL when there are no more lines to generate * for this "end of section". **********************************************************************/const char *AVCE00GenEndSection(AVCE00GenInfo *psInfo, AVCFileType eType,                                GBool bCont){    if (bCont == FALSE)    {        /*-------------------------------------------------------------          * Most section types end with only 1 line.         *------------------------------------------------------------*/        AVCE00GenReset(psInfo);        psInfo->iCurItem = 0;        if (eType == AVCFileARC ||            eType == AVCFilePAL ||            eType == AVCFileRPL ||            eType == AVCFileCNT ||            eType == AVCFileTOL ||            eType == AVCFileTXT ||            eType == AVCFileTX6 )        {            sprintf(psInfo->pszBuf,     "        -1         0         0         0         0         0         0");        }        else if (eType == AVCFileLAB)        {            if (psInfo->nPrecision == AVC_DOUBLE_PREC)                sprintf(psInfo->pszBuf,           "        -1         0 0.00000000000000E+00 0.00000000000000E+00");            else                sprintf(psInfo->pszBuf,           "        -1         0 0.0000000E+00 0.0000000E+00");        }        else if (eType == AVCFilePRJ)        {            sprintf(psInfo->pszBuf, "EOP");        }        else if (eType == AVCFileRXP )        {            sprintf(psInfo->pszBuf,"        -1         0");        }        else        {            CPLError(CE_Failure, CPLE_NotSupported,                     "Unsupported E00 section type!");            return NULL;        }    }    else if ( psInfo->iCurItem == 0 &&              psInfo->nPrecision == AVC_DOUBLE_PREC &&              (eType == AVCFilePAL || eType == AVCFileRPL)     )    {        /*---------------------------------------------------------          * Return the 2nd line for the end of a PAL or RPL section.         *--------------------------------------------------------*/        sprintf(psInfo->pszBuf,                 " 0.00000000000000E+00 0.00000000000000E+00");        psInfo->iCurItem++;    }    else    {        /*-----------------------------------------------------          * All other section types end with only one line, and thus         * we return NULL when bCont==TRUE         *----------------------------------------------------*/        return NULL;    }    return psInfo->pszBuf;}/********************************************************************** *                          AVCE00GenObject() * * Cover function on top of AVCE00GenArc/Pal/Cnt/Lab() that will * call the right function according to argument eType. * * Since there is no compiler type checking on psObj, you have to * be very careful to make sure you pass an object of the right type  * when you use this function! * * The function returns NULL when there are no more lines to generate * for this ARC. **********************************************************************/const char *AVCE00GenObject(AVCE00GenInfo *psInfo,                             AVCFileType eType, void *psObj, GBool bCont){    const char *pszLine = NULL;    switch(eType)    {      case AVCFileARC:        pszLine = AVCE00GenArc(psInfo, (AVCArc*)psObj, bCont);        break;      case AVCFilePAL:      case AVCFileRPL:        pszLine = AVCE00GenPal(psInfo, (AVCPal*)psObj, bCont);        break;      case AVCFileCNT:        pszLine = AVCE00GenCnt(psInfo, (AVCCnt*)psObj, bCont);        break;      case AVCFileLAB:        pszLine = AVCE00GenLab(psInfo, (AVCLab*)psObj, bCont);        break;      case AVCFileTOL:        pszLine = AVCE00GenTol(psInfo, (AVCTol*)psObj, bCont);        break;      case AVCFileTXT:        pszLine = AVCE00GenTxt(psInfo, (AVCTxt*)psObj, bCont);        break;      case AVCFileTX6:        pszLine = AVCE00GenTx6(psInfo, (AVCTxt*)psObj, bCont);        break;      case AVCFilePRJ:        pszLine = AVCE00GenPrj(psInfo, (char**)psObj, bCont);        break;      case AVCFileRXP:        pszLine = AVCE00GenRxp(psInfo, (AVCRxp*)psObj, bCont);        break;      default:        CPLError(CE_Failure, CPLE_NotSupported,                 "AVCE00GenObject(): Unsupported file type!");    }    return pszLine;}/*=====================================================================                            ARC stuff =====================================================================*//********************************************************************** *                          AVCE00GenArc() * * Generate the next line of an E00 ARC. *

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
三级欧美韩日大片在线看| 一区在线观看视频| 欧美日韩中文另类| 色综合久久久久久久久久久| 成人国产电影网| 福利视频网站一区二区三区| 成人在线综合网| 99精品视频免费在线观看| www.色综合.com| 色综合欧美在线视频区| 在线精品视频免费播放| 欧美色成人综合| 日韩一区二区三区精品视频 | 久久一二三国产| 精品欧美一区二区在线观看| 久久久www成人免费毛片麻豆 | 国产精品每日更新| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 国产精品久久久久7777按摩| 亚洲欧洲日本在线| 午夜精品一区在线观看| 精品一区二区三区久久久| 国内外成人在线| 91一区二区在线观看| 欧美影院精品一区| 日韩欧美国产精品一区| 国产精品免费av| 视频一区欧美日韩| 国产成人精品综合在线观看| 91在线一区二区三区| 日韩久久精品一区| 亚洲天天做日日做天天谢日日欢 | 国产女人18毛片水真多成人如厕| 国产精品人妖ts系列视频| 一区二区三区精密机械公司| 美女mm1313爽爽久久久蜜臀| 国产 欧美在线| 欧美精品一二三| 国产精品国产三级国产普通话99| 亚洲www啪成人一区二区麻豆| 国产毛片精品一区| 欧美日本乱大交xxxxx| 国产欧美日韩视频在线观看| 午夜影视日本亚洲欧洲精品| 成人av在线电影| 日韩视频免费直播| 亚洲国产欧美日韩另类综合| 国产成人综合亚洲91猫咪| 51精品秘密在线观看| 国产精品国产三级国产aⅴ原创| 青娱乐精品在线视频| 91福利在线观看| 精品国产乱码久久久久久夜甘婷婷 | 精品女同一区二区| 性做久久久久久久免费看| 不卡的电视剧免费网站有什么| 欧美videos中文字幕| 日韩精品色哟哟| 欧美影视一区二区三区| 亚洲日本在线视频观看| 国产成人免费在线| 国产亚洲午夜高清国产拍精品| 首页综合国产亚洲丝袜| 欧美色爱综合网| 亚洲在线成人精品| 色综合天天综合在线视频| 中文字幕精品在线不卡| 国产一区二区伦理| www日韩大片| 国产一区二区在线观看免费| 精品蜜桃在线看| 久久不见久久见中文字幕免费| 欧美日韩国产一二三| 一个色综合网站| 欧美亚洲高清一区二区三区不卡| 亚洲欧美一区二区视频| 97se亚洲国产综合自在线不卡| 中文av一区二区| 91丨porny丨蝌蚪视频| 亚洲欧美偷拍三级| 欧美色成人综合| 午夜私人影院久久久久| 欧美日韩色综合| 喷白浆一区二区| 精品国产成人在线影院| 国产黄色91视频| 亚洲欧美日韩小说| 欧美精品少妇一区二区三区| 青娱乐精品视频在线| 337p日本欧洲亚洲大胆精品| 成人一区二区三区在线观看| 国产精品美女久久久久久久| 91久久精品一区二区| 天天综合网天天综合色| 精品国产3级a| 不卡视频一二三| 亚洲成人精品影院| 久久精品一区四区| 99国产精品久久久久久久久久| 一区二区三区四区在线| 91精品国产91综合久久蜜臀| 久久超碰97人人做人人爱| 亚洲欧美一区二区视频| 欧美日韩高清在线播放| 国产一区二区导航在线播放| 中文字幕不卡的av| 制服丝袜日韩国产| 成人性视频免费网站| 水野朝阳av一区二区三区| 国产日韩欧美a| 欧美人伦禁忌dvd放荡欲情| 精品一区二区三区免费视频| 一区在线观看视频| 精品久久五月天| 欧美日韩专区在线| 国产成人aaa| 日本欧美一区二区三区乱码| 国产精品久久777777| 3751色影院一区二区三区| www.av亚洲| 国产一区二区三区精品欧美日韩一区二区三区 | 久久99精品国产91久久来源| 国产精品二三区| 日韩精品一区二区三区蜜臀 | 日韩精品一区国产麻豆| 色中色一区二区| 国产成a人无v码亚洲福利| 日本亚洲一区二区| 亚洲午夜私人影院| 亚洲精品国产a| 国产精品伦理在线| 国产亚洲精品aa午夜观看| 制服丝袜av成人在线看| 日本乱人伦aⅴ精品| 国产成人免费高清| 国产在线精品国自产拍免费| 日韩av在线免费观看不卡| 亚洲精品第1页| 亚洲人xxxx| **欧美大码日韩| 亚洲私人影院在线观看| 国产精品久久精品日日| 国产精品美女久久福利网站| 久久久久久久精| 国产日韩av一区| 国产精品乱人伦一区二区| 国产精品女主播在线观看| 国产欧美视频一区二区| 日本一区二区三区高清不卡 | 亚洲欧美另类久久久精品| 国产精品日产欧美久久久久| 国产欧美日韩视频一区二区| 久久精品一区二区| 国产午夜亚洲精品午夜鲁丝片 | 亚洲6080在线| 亚洲一区二区四区蜜桃| 亚洲福利一二三区| 视频一区欧美精品| 久久国产精品一区二区| 狠狠色丁香九九婷婷综合五月| 久久99国产乱子伦精品免费| 蜜臀av一区二区在线观看| 国产一区在线观看视频| 国产成人午夜精品影院观看视频 | 亚洲日穴在线视频| 亚洲国产精品久久一线不卡| 五月天激情综合| 韩国成人福利片在线播放| 国产精品影视天天线| 不卡在线观看av| 欧美日韩小视频| 欧美大度的电影原声| 中文字幕乱码日本亚洲一区二区 | 欧美xxxxx牲另类人与| 久久综合一区二区| 国产精品久久久久一区二区三区共 | 亚洲乱码日产精品bd| 亚洲亚洲精品在线观看| 九九在线精品视频| 成人国产精品免费观看| 欧美剧在线免费观看网站| 日韩女优av电影| 国产精品传媒视频| 日本亚洲三级在线| 成人avav影音| 欧美精品777| 欧美国产精品一区二区三区| 亚洲国产美国国产综合一区二区| 蜜桃视频免费观看一区| 不卡大黄网站免费看| 日韩一区二区电影在线| 国产精品国产三级国产专播品爱网| 午夜不卡在线视频| gogo大胆日本视频一区| 欧美刺激午夜性久久久久久久| 国产精品国产三级国产有无不卡| 免费在线观看精品| 91免费观看在线| 久久精品亚洲一区二区三区浴池| 图片区小说区区亚洲影院|