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

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

?? dcfile.cpp

?? 通用文件操作類:該類通用文件操作進行了封裝
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
    delete  pTempBuffer;
    return  true;
}

/**--------------------------------------------------------------
* @param       lBufferLen : 追加空塊的長度
* @return      true : 成功,false : 失敗
* @description 加入空塊到文件尾
*---------------------------------------------------------------*/
bool DCFile::AppendFileBlock(long lBufferLen)
{
    if ((!m_bOpenFlag) || (lBufferLen <= 0))
       return  false;

    long lTempLength;
    if (m_lMaxTempLength >= lBufferLen)
       lTempLength = lBufferLen;
    else
       lTempLength = m_lMaxTempLength;

    long lCounter = lBufferLen;
    char *pTempBuffer = new char[lTempLength];
    memset(pTempBuffer,0,lTempLength);
    SeekToEnd();
    while (lCounter > 0)
    {
       if (lCounter > lTempLength)
       {
          WriteFile((void*)pTempBuffer, lTempLength);
          lCounter -= lTempLength;
       }
       else
       {
          WriteFile((void*)pTempBuffer, lCounter);
          lCounter = 0;
       }
    }
    delete  pTempBuffer;
    return  true;
}

/**--------------------------------------------------------------
* @param       lOffset : 覆蓋位置的偏移
* @param       pBuffer : 緩沖區指針
* @param       lBufferLen : 緩沖區長度
* @return      true : 成功,false : 失敗
* @description 在文件某偏移處覆蓋一塊
*---------------------------------------------------------------*/
bool DCFile::CoverFileBlock(long lOffset,void *pBuffer, long lBufferLen)
{
    if ((!m_bOpenFlag)||(!pBuffer))
       return false;
    long lFileLen = GetFileLength();
    if ((lFileLen < (lOffset + lBufferLen)) || (lBufferLen <= 0))
       return false;
    Lseek(lOffset,DC_SEEK_SET);
    WriteFile(pBuffer,lBufferLen);
    return  true;
}

/**--------------------------------------------------------------
* @param       cCode : 填充碼
* @param       lOffset : 填充位置的偏移
* @param       lLength : 填充長度
* @return      true : 成功,false : 失敗
* @description 填充文件的一塊
*---------------------------------------------------------------*/
bool DCFile::FileFillBlock(char cCode,long lOffset,long lLength)
{
    if (!m_bOpenFlag)
       return false;
    long lFileLen = GetFileLength();
    if ((lFileLen < (lOffset + lLength)) || (lLength <= 0))
       return false;
    long  lTempLength;
    if (m_lMaxTempLength >= lLength)
       lTempLength = lLength;
    else
       lTempLength = m_lMaxTempLength;
    long lCounter = lLength;
    char *pTempBuffer = new char[lTempLength];
    memset(pTempBuffer,cCode,lTempLength);
    Lseek(lOffset,DC_SEEK_SET);
    while (lCounter > 0)
    {
       if (lCounter > lTempLength)
       {
          WriteFile((void*)pTempBuffer,lTempLength);
          lCounter -= lTempLength;
       }
       else
       {
          WriteFile((void*)pTempBuffer,lCounter);
          lCounter = 0;
       }
    }
    delete  pTempBuffer;
    return  true;
}

/**--------------------------------------------------------------
* @param       cCode : 填充碼
* @param       lLength : 填充長度
* @return      true : 成功,false : 失敗
* @description 加入空塊到文件尾并填充
*---------------------------------------------------------------*/
bool  DCFile::AppendFillBlock(char cCode, long lLength)
{
  if ((!m_bOpenFlag) || (lLength <= 0))
     return  false;
  long lTempLength;
  if (m_lMaxTempLength >= lLength)
     lTempLength = lLength;
  else
     lTempLength = m_lMaxTempLength;
  long lCounter = lLength;
  char *pTempBuffer = new char[lTempLength];
  memset(pTempBuffer,cCode,lTempLength);
  SeekToEnd();
  while (lCounter > 0)
  {
     if (lCounter > lTempLength)
     {
        WriteFile((void*)pTempBuffer, lTempLength);
        lCounter -= lTempLength;
     }
     else
     {
        WriteFile((void*)pTempBuffer, lCounter);
        lCounter = 0;
     }
  }
  delete  pTempBuffer;
  return  true;
}

/**--------------------------------------------------------------
* @param       lOffset : 截斷文件的位置
* @return      true : 成功,false : 失敗
* @description 截斷文件
*---------------------------------------------------------------*/
bool DCFile::TruncatFile(long lOffset)
{
    SetFileLength(lOffset);
    return true;
}

/**--------------------------------------------------------------
* @param       lReadOffset : 讀出位置的偏移
* @param       pBuffer : 接收緩沖區的指針
* @param       lBufferLen : 接收緩沖區的長度
* @return      實際讀出文件的長度,異常 = -1
* @description 從文件讀出一塊
*---------------------------------------------------------------*/
long DCFile::ReadFile(long lReadOffset,void *pBuffer, long lBufferLen)
{
    if (!m_bOpenFlag)
       return  -1;
    Lseek(lReadOffset,DC_SEEK_SET);
    return read(m_FileHandle,pBuffer,lBufferLen);
}

/**--------------------------------------------------------------
* @param       lWriteOffset : 寫入位置的偏移
* @param       pBuffer : 寫入緩沖區的指針
* @param       lBufferLen : 寫入緩沖區的長度
* @return      實際寫入文件的長度,異常 = -1
* @description 寫一塊到文件內
*---------------------------------------------------------------*/
long  DCFile::WriteFile(long lWriteOffset,void *pBuffer, long lBufferLen)
{
    if (!m_bOpenFlag)
       return  -1;
    Lseek(lWriteOffset,DC_SEEK_SET);
    return write(m_FileHandle,pBuffer,lBufferLen);
}

/**--------------------------------------------------------------
* @param       pBuffer : 接收緩沖區的指針
* @param       lBufferLen : 接收緩沖區的長度
* @return      實際讀出文件的長度
* @description 從文件當前位置讀出一塊
*---------------------------------------------------------------*/
long  DCFile::ReadFile(void *pBuffer, long lBufferLen)
{
    if (!m_bOpenFlag)
       return  -1;
    return read(m_FileHandle,pBuffer,lBufferLen);
}

/**--------------------------------------------------------------
* @param       pBuffer : 寫入緩沖區的指針
* @param       lBufferLen : 寫入緩沖區的長度
* @return      實際寫入文件的長度
* @description 從文件當前位置寫入一塊
*---------------------------------------------------------------*/
long  DCFile::WriteFile(void *pBuffer, long lBufferLen)
{
    if (!m_bOpenFlag)
       return  -1;
    return write(m_FileHandle,pBuffer,lBufferLen);
}

/**--------------------------------------------------------------
* @param       無
* @return      無
* @description 文件指針移動到文件尾
*---------------------------------------------------------------*/
void  DCFile::SeekToEnd()
{
  if (m_bOpenFlag)
     Lseek(0,DC_SEEK_END);
}

/**--------------------------------------------------------------
* @param       pFileName : 文件名
* @return      true : 成功,false : 失敗
* @description 刪除文件
*---------------------------------------------------------------*/
bool  DCFile::DeleteFile(char *pFileName)
{
#ifdef  __WINDOWS_OS
  return DeleteFile(pFileName);
#else
  return !remove(pFileName);
#endif
}

/**--------------------------------------------------------------
* @param       pszFileOld : 原文件名
* @param       pszFileNew : 新文件名
* @return      true : 成功,false : 失敗
* @description 文件改名
*---------------------------------------------------------------*/
bool  DCFile::RenameFile(char *pszFileOld,char *pszFileNew)
{
#ifdef  __WINDOWS_OS
    return RenameFile(pszFileOld, pszFileNew);
#else
    return !rename(pszFileOld, pszFileNew);
#endif
}

/**--------------------------------------------------------------
* @param       pszFileDst : 拷貝目標文件名
* @param       pszFileSrc : 拷貝源文件名
* @return      true : 成功,false : 失敗
* @description 拷貝文件
*---------------------------------------------------------------*/
bool  DCFile::CopyFile(char *pszFileDst,char *pszFileSrc)
{
    if (IsFileExist(pszFileSrc))
       return  false;
    bool bRet = false;
#ifdef  __WINDOWS_OS
    int  hFileSrc = open(pszFileSrc, O_BINARY | O_RDONLY);
    int  hFileDst = open(pszFileDst, O_CREAT  | O_BINARY | O_RDWR);
    if ((hFileSrc != -1) && (hFileDst != -1))
    {
       char *pTempBuffer = new char[MAXTEMPLATEBUFFLEN];
       long lFileLength = filelength(hFileSrc);
       long  lReadLength;
       while (lFileLength > 0)
       {
           if (lFileLength > MAXTEMPLATEBUFFLEN)
              lReadLength = MAXTEMPLATEBUFFLEN;
           else
              lReadLength = lFileLength;
           read(hFileSrc,pTempBuffer,lReadLength);
           write(hFileDst,pTempBuffer,lReadLength);
           lFileLength -= lReadLength;
       }
       delete [] pTempBuffer;
       bRet = true;
    }
    close(hFileDst);
    close(hFileSrc);
#else
    ifstream infile(pszFileSrc,ifstream::binary);
    ofstream outfile(pszFileDst,ofstream::binary);

    if ((infile.is_open()) && (outfile.is_open()))
    {
      infile.seekg(0,ifstream::end);
      long lFileLength = infile.tellg();
      infile.seekg(0);
      char *pTempBuffer = new char[MAXTEMPLATEBUFFLEN];

      long  lReadLength;
      while (lFileLength > 0)
      {
          if (lFileLength > MAXTEMPLATEBUFFLEN)
             lReadLength = MAXTEMPLATEBUFFLEN;
          else
             lReadLength = lFileLength;
          infile.read(pTempBuffer,lReadLength);
          outfile.write(pTempBuffer,lReadLength);
          lFileLength -= lReadLength;
      }
      delete [] pTempBuffer;
      bRet = true;
    }
    outfile.close();
    infile.close();
#endif
    return bRet;
}

/**--------------------------------------------------------------
* @param       lFileLen : 文件長度
* @return      true : 成功,false : 失敗
* @description 設文件長度
*---------------------------------------------------------------*/
bool  DCFile::SetFileLength(long lFileLen)
{
    if (!m_bOpenFlag)
       return false;
    bool bRet = false;
#ifdef  __WINDOWS_OS
    int iCurrPos = tell(m_FileHandle);
    if (chsize(m_FileHandle,lFileLen) == 0)
       bRet = true;
    lseek(m_FileHandle,iCurrPos,SEEK_SET);
#else
    int iCurrPos = tell(m_FileHandle);
    if (ftruncate(m_FileHandle,lFileLen) == 0)
        bRet = true;
    lseek(m_FileHandle,iCurrPos,SEEK_SET);
#endif
    return bRet;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产入口| 在线综合+亚洲+欧美中文字幕| 91免费在线看| 91首页免费视频| 精品视频1区2区| 日韩一区二区电影在线| 久久免费国产精品| 亚洲男人天堂一区| 免费美女久久99| 成人免费精品视频| 欧美日韩性生活| 久久一区二区视频| 一个色妞综合视频在线观看| 看片的网站亚洲| 91在线一区二区三区| 欧美一卡二卡三卡四卡| 成人免费一区二区三区在线观看| 午夜视频在线观看一区| 懂色中文一区二区在线播放| 欧美视频一区二区三区四区| 久久久不卡影院| 首页国产欧美久久| 99麻豆久久久国产精品免费优播| 91麻豆精品久久久久蜜臀| 国产精品你懂的在线| 人人精品人人爱| 色视频一区二区| 国产欧美精品区一区二区三区| 亚洲成人黄色影院| av爱爱亚洲一区| 日韩欧美综合一区| 夜夜嗨av一区二区三区 | 日韩一区二区在线看片| 中文字幕中文字幕在线一区| 免费欧美高清视频| 欧美日韩激情一区| 中文字幕一区二区三区四区| 裸体一区二区三区| 欧美性欧美巨大黑白大战| 一区二区中文视频| 国产黄人亚洲片| 欧美成人三级在线| 日韩影视精彩在线| 欧日韩精品视频| 国产精品美女久久久久久久久| 美女视频一区在线观看| 欧美日韩三级一区| 亚洲精品国产无天堂网2021| 成人深夜视频在线观看| 精品对白一区国产伦| 图片区小说区国产精品视频| 色噜噜狠狠成人网p站| 国产精品乱人伦| 国产成人在线影院| 2020日本不卡一区二区视频| 人人精品人人爱| 91精品久久久久久久久99蜜臂| 一区二区成人在线| 在线看不卡av| 一区二区三区精品在线| 91在线免费视频观看| 国产精品传媒入口麻豆| 从欧美一区二区三区| 国产欧美日韩三区| 国产高清亚洲一区| 亚洲国产成人在线| 国产很黄免费观看久久| 欧美国产日本视频| www.亚洲激情.com| 亚洲欧洲日产国码二区| 99国产欧美久久久精品| 最近中文字幕一区二区三区| 99久久久无码国产精品| 中文字幕在线不卡| 91麻豆高清视频| 亚洲已满18点击进入久久| 欧美性色欧美a在线播放| 亚洲成人免费观看| 欧美一卡在线观看| 国内精品伊人久久久久av影院| 精品粉嫩aⅴ一区二区三区四区 | 欧美www视频| 国产一区视频导航| 中文一区在线播放| 91偷拍与自偷拍精品| 一区二区三区中文字幕电影| 欧美在线观看一区| 日本成人超碰在线观看| 欧美mv日韩mv国产网站app| 国产精品1024| 亚洲欧美日韩国产成人精品影院 | 亚洲综合偷拍欧美一区色| 欧美亚洲禁片免费| 久久国产尿小便嘘嘘尿| 久久九九久久九九| 91一区一区三区| 亚洲国产视频在线| 欧美大片日本大片免费观看| 国产精品资源在线观看| 中文字幕亚洲视频| 精品视频一区 二区 三区| 久久99久久精品| 中文字幕第一页久久| 在线精品视频一区二区三四| 美女看a上一区| 欧美国产精品中文字幕| 在线观看av不卡| 久久精品噜噜噜成人88aⅴ| 国产欧美日韩三区| 欧美视频在线不卡| 国产乱子伦一区二区三区国色天香| 国产精品水嫩水嫩| 欧美日韩综合在线| 国产乱码精品一区二区三区五月婷| 中文字幕日韩一区| 91精品在线免费观看| 成人少妇影院yyyy| 五月天精品一区二区三区| 国产午夜精品美女毛片视频| 欧美午夜一区二区三区| 国产福利一区在线| 亚洲成人一区二区在线观看| 国产日韩综合av| 欧美日韩一二三| 成年人午夜久久久| 日本91福利区| 亚洲蜜桃精久久久久久久| 欧美va在线播放| 色综合久久综合中文综合网| 久久精品av麻豆的观看方式| 18成人在线观看| 欧美tk—视频vk| 在线视频你懂得一区| 国产福利电影一区二区三区| 亚洲成人一区二区| 国产精品麻豆久久久| 欧美一级搡bbbb搡bbbb| 色综合久久综合网| 成人综合在线网站| 琪琪久久久久日韩精品| 亚洲人亚洲人成电影网站色| www久久久久| 91麻豆精品国产| 色综合久久综合中文综合网| 国产99久久久久| 另类成人小视频在线| 亚洲专区一二三| 国产精品久久久久四虎| 精品国产欧美一区二区| 欧美巨大另类极品videosbest | 亚洲精品免费看| 亚洲国产精品成人综合色在线婷婷| 91精品国产综合久久久久久久久久 | 欧美日韩精品是欧美日韩精品| 成人性生交大片| 韩国精品主播一区二区在线观看 | 日韩午夜小视频| 欧美日韩在线电影| 色视频成人在线观看免| 成人污污视频在线观看| 久久99精品国产麻豆婷婷洗澡| 亚洲高清免费在线| 亚洲一区二区三区三| 亚洲人成小说网站色在线| 国产精品沙发午睡系列990531| 欧美精品一区二区三区蜜桃视频 | 国产在线一区观看| 青娱乐精品视频| 日本成人在线网站| 午夜不卡av免费| 亚洲第一在线综合网站| 一区二区三区欧美日| 亚洲欧美一区二区三区极速播放 | 99精品视频在线播放观看| 欧美激情综合网| 国产丝袜在线精品| 国产亚洲一本大道中文在线| 日韩欧美国产成人一区二区| 日韩三级伦理片妻子的秘密按摩| 7777精品伊人久久久大香线蕉的| 欧美性猛交xxxx乱大交退制版| 欧美性大战久久久久久久蜜臀 | 免费视频一区二区| 日韩高清在线不卡| 免费精品视频在线| 久久成人av少妇免费| 奇米一区二区三区| 老司机精品视频一区二区三区| 麻豆91精品视频| 精品亚洲porn| 成人自拍视频在线| 一道本成人在线| 欧美三级欧美一级| 91精品国产综合久久蜜臀| 欧美va亚洲va香蕉在线| 国产日韩欧美精品综合| 国产精品久99| 一区二区三区中文免费| 亚洲一区二区欧美| 日本最新不卡在线|