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);//还原区域设定
}