CStdioFile

14 篇文章 0 订阅

CStdioFile

文件创建、数据写入、写入路径

void StdReferenceDWG::RefDrawCrvt(StdOneReference& ref)
{
  char* old_locale = _strdup(setlocale(LC_CTYPE, NULL));
  setlocale(LC_CTYPE, "chs");//设定

  CString strPath = StdTool::GetCurPath() + _T("衬图\\ReferenceDrawPathCrt.txt");
  CStdioFile file;
  UINT nOpenFlags = CFile::modeWrite;
  if (mvctCrtRefDrw.size() == 0)
  {
     if (file.Open(strPath, nOpenFlags))
    {
      file.Close();
      file.Remove(strPath);
    }
    nOpenFlags = nOpenFlags | CFile::modeCreate;
  }

  mvctCrtRefDrw.push_back(ref);
  if (!file.Open(strPath, nOpenFlags))
    return;
  file.SeekToEnd();
  CString strKey; strKey.Format(_T("key=%d\n"), mvctCrtRefDrw.size());   file.WriteString(strKey);
  CString strvalue;;
  strvalue.Format(_T("%s\n"                  ), ref.mcstrReferenceDwgName                                                                  ); file.WriteString(strvalue);
  strvalue.Format(_T("%s\n"                  ), ref.mcstrReferenceDwgPath                                                                  ); file.WriteString(strvalue);
  strvalue.Format(_T("%d\n"                  ), ref.mbReferenceDwgShow ? 1 : 0                                                             ); file.WriteString(strvalue);
  strvalue.Format(_T("%d\n"                  ), ref.mbReferenceDwgLock ? 1 : 0                                                             ); file.WriteString(strvalue);
  strvalue.Format(_T("%0.1f\n"               ), ref.mdReferenceDwgScale                                                                    ); file.WriteString(strvalue);
  strvalue.Format(_T("%0.1f\n"               ), ref.mdReferenceDwgAngle                                                                    ); file.WriteString(strvalue);
  strvalue.Format(_T("%0.1f\n"               ), ref.mdReferenceDwgRatio                                                                    ); file.WriteString(strvalue);
  strvalue.Format(_T("%0.10f,%0.10f,%0.10f\n"), ref.mptReferenceDwgPtBase.x, ref.mptReferenceDwgPtBase.y, ref.mptReferenceDwgPtBase.z      ); file.WriteString(strvalue);
  strvalue.Format(_T("%0.10f,%0.10f,%0.10f\n"), ref.mptReferenceDwgPtInsert.x, ref.mptReferenceDwgPtInsert.y, ref.mptReferenceDwgPtInsert.z); file.WriteString(strvalue);
  file.Close();

  setlocale(LC_CTYPE, old_locale);
  free(old_locale);//还原区域设定
}

文件内容读取

void StdReferenceDWG::OpeOldPro()
{
  char* old_locale = _strdup(setlocale(LC_CTYPE, NULL));
  setlocale(LC_CTYPE, "chs");//设定

  CString strPath = StdTool::GetCurPath() + _T("衬图\\ReferenceDrawPathCrt.txt");
  CStdioFile file;
  if (!file.Open(strPath, CFile::modeRead)) return;
  CString strRed;
  StdOneReference ref;
  int i = 0;
  while (file.ReadString(strRed))
  {
    if (i == 10)
    {
      mvctCrtRefDrw.push_back(ref);
      i = 0;
    }
    if (i == 0)
    {
      if (strRed.Find(_T("key =")) != -1)
        ref = StdOneReference();
      strRed = L"";
      i++;
      continue;
    }
    else if (i == 1)  ref.mcstrReferenceDwgName = strRed; 
    else if (i == 2)  ref.mcstrReferenceDwgPath = strRed;
    else if (i == 3)  ref.mbReferenceDwgShow = strRed; 
    else if (i == 4)  ref.mbReferenceDwgLock = strRed;
    else if (i == 5)  ref.mdReferenceDwgScale = _wtof(strRed.GetBuffer()); 
    else if (i == 6)  ref.mdReferenceDwgAngle = _wtof(strRed.GetBuffer()); 
    else if (i == 7)  ref.mdReferenceDwgRatio = _wtof(strRed.GetBuffer());
    else if (i == 8)  ref.mptReferenceDwgPtBase = GetPt(strRed);
    else if (i == 9)  ref.mptReferenceDwgPtInsert = GetPt(strRed);
    strRed = L"";
    i++;
  }
  file.Close();

  setlocale(LC_CTYPE, old_locale);
  free(old_locale);//还原区域设定
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ma_Hong_Kai

微信 2936729162

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值