打开文件对话框写入并保存文件操作

简介: //LI YA ZHOU 20170220//测量数据写入文件void CHoopsBaseView::OnLayoutSaveMeasure(){BOOL isOpen = FALSE; //是...
//LI YA ZHOU 20170220
//测量数据写入文件
void CHoopsBaseView::OnLayoutSaveMeasure()
{

BOOL isOpen = FALSE;         //是否打开(否则为保存)  
/*CString defaultDir = L"E:\\FileTest";   //默认打开的文件路径 */
CString fileName ;          //默认打开的文件名 
CString filter = L"txt文本(*.txt)|*.txt||";    //文件过虑的类型 
CFileDialog fileDlg(isOpen, NULL, fileName, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, filter, NULL);  
/*fileDlg.GetOFN().lpstrInitialDir = L"E:\\FileTest\\testdata.txt";  */
INT_PTR result = fileDlg.DoModal();  
CString filePath/* = defaultDir + "\\" + fileName*/;    
if(result == IDOK)
{  
filePath = fileDlg.GetPathName();  


FILE *fp;
fp=fopen((CT2A)filePath,"w+");
fprintf(fp,"#编号 类型   测量   x1   y1   z1 x2   y2   z2 x3   y3   z3\n");
int codeno=1;
for (int i=0;i<m_iMouseClickCnt1;i++)
{
float x1=m_fNodePositionXYZ1[i][0];
float y1=m_fNodePositionXYZ1[i][1];
float z1=m_fNodePositionXYZ1[i][2];


float x2=m_fNodePositionXYZ1[i+1][0];
float y2=m_fNodePositionXYZ1[i+1][1];
float z2=m_fNodePositionXYZ1[i+1][2];


float distance=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2));
fprintf(fp,"%d\tlength\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\n",codeno,distance,x1,y1,z1,x2,y2,z2,0.0f,0.0f,0.0f);
codeno++;
i++;
}
for (int i=0;i<m_iMouseClickCnt2;i++)
{
float x1=m_fNodePositionXYZ2[i][0];
float y1=m_fNodePositionXYZ2[i][1];
float z1=m_fNodePositionXYZ2[i][2];


float x2=m_fNodePositionXYZ2[i+1][0]; 
float y2=m_fNodePositionXYZ2[i+1][1];
float z2=m_fNodePositionXYZ2[i+1][2];


float x3=m_fNodePositionXYZ2[i+2][0];
float y3=m_fNodePositionXYZ2[i+2][1];
float z3=m_fNodePositionXYZ2[i+2][2];
float distance1,distance2;
distance1 = sqrt( (x2 - x1)*(x2 - x1)+(y2 - y1)*(y2 -y1)+(z2 - z1)*(z2 - z1));
distance2 = sqrt( (x2 - x3)*(x2 - x3)+(y2 - y3)*(y2 - y3)+(z2 - z3)*(z2 - z3));
double fAngle=acos(  ( (x1 - x2)*(x3 - x2)+(y1 - y2)*(y3 - y2)+(z1 - z2)*(z3 - z2) )/((distance1*distance2)));
double degree=fAngle*180/3.141592653;
fprintf(fp,"%d\tangle\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\n",codeno,degree,x1,y1,z1,x2,y2,z2,x3,y3,z3);
codeno++;
i++;
i++;
}
for (int i=0;i<m_iMouseClickCnt3;i++)
{
float x1=m_fNodePositionXYZ3[i][0];
float y1=m_fNodePositionXYZ3[i][1];
float z1=m_fNodePositionXYZ3[i][2];


float x2=m_fNodePositionXYZ3[i+1][0];
float y2=m_fNodePositionXYZ3[i+1][1];
float z2=m_fNodePositionXYZ3[i+1][2];


float x3=m_fNodePositionXYZ3[i+2][0];
float y3=m_fNodePositionXYZ3[i+2][1];
float z3=m_fNodePositionXYZ3[i+2][2];



float a1,b1,c1,d1;
float a2,b2,c2,d2;
float a3,b3,c3,d3;
a1=(y1*z2 - y2*z1 - y1*z3 + y3*z1 + y2*z3 - y3*z2);
b1 = -(x1*z2 - x2*z1 - x1*z3 + x3*z1 + x2*z3 - x3*z2);
c1 = (x1*y2 - x2*y1 - x1*y3 + x3*y1 + x2*y3 - x3*y2);
d1 = -(x1*y2*z3 - x1*y3*z2 - x2*y1*z3 + x2*y3*z1 + x3*y1*z2 - x3*y2*z1);


a2 = 2 * (x2 - x1);
b2 = 2 * (y2 - y1);
c2 = 2 * (z2 - z1);
d2 = x1 * x1 + y1 * y1 + z1 * z1 - x2 * x2 - y2 * y2 - z2 * z2;




a3 = 2 * (x3 - x1);
b3 = 2 * (y3 - y1);
c3 = 2 * (z3 - z1);
d3 = x1 * x1 + y1 * y1 + z1 * z1 - x3 * x3 - y3 * y3 - z3 * z3;
float m_fCenterX=-(b1*c2*d3 - b1*c3*d2 - b2*c1*d3 + b2*c3*d1 + b3*c1*d2 - b3*c2*d1)   //Center
/(a1*b2*c3 - a1*b3*c2 - a2*b1*c3 + a2*b3*c1 + a3*b1*c2 - a3*b2*c1);
float m_fCenterY= (a1*c2*d3 - a1*c3*d2 - a2*c1*d3 + a2*c3*d1 + a3*c1*d2 - a3*c2*d1)
/(a1*b2*c3 - a1*b3*c2 - a2*b1*c3 + a2*b3*c1 + a3*b1*c2 - a3*b2*c1);
float m_fCenterZ=-(a1*b2*d3 - a1*b3*d2 - a2*b1*d3 + a2*b3*d1 + a3*b1*d2 - a3*b2*d1)
/(a1*b2*c3 - a1*b3*c2 - a2*b1*c3 + a2*b3*c1 + a3*b1*c2 - a3*b2*c1);


float fRadiusLen=sqrt((m_fCenterX-x1)*(m_fCenterX-x1)+(m_fCenterY-y1)*(m_fCenterY-y1)  //Radius
+(m_fCenterZ-z1)*(m_fCenterZ-z1) );



fprintf(fp,"%d\tradius\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\n",codeno,fRadiusLen,x1,y1,z1,x2,y2,z2,x3,y3,z3);
codeno++;
i++;
i++;
}
for (int i=0;i<m_iMouseClickCnt4;i++)
{
float x1=m_fNodePositionXYZ4[i][0];
float y1=m_fNodePositionXYZ4[i][1];
float z1=m_fNodePositionXYZ4[i][2];


fprintf(fp,"%d\tnormal\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\n",codeno,0.0f,x1,y1,z1,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f);
codeno++;
}
fprintf(fp,"\n");
fclose(fp);
} 

}


相关文章
xltd文件怎么打开?教你xltd格式文件打开方法
xltd文件怎么打开?教你xltd格式文件打开方法
1302 0
|
5月前
|
Shell
自定义右击菜单,添加指定打开文件方式
自定义右击菜单,添加指定打开文件方式
69 0
|
7月前
(17):文件对话框
(17):文件对话框
PyQt5 技术篇-调用文件对话框获取文件、文件夹路径。文件对话框返回选中的多个文件路径
PyQt5 技术篇-调用文件对话框获取文件、文件夹路径。文件对话框返回选中的多个文件路径
2496 0
PyQt5 技术篇-调用文件对话框获取文件、文件夹路径。文件对话框返回选中的多个文件路径
|
Windows
windows命令行下打开文本文件编辑
windows命令行下打开文本文件编辑
|
Shell Windows
如何在VBS脚本中显示“选择文件对话框”或“选择目录对话框”
、选择文件[XP操作系统,不能用于Win2000或98],使用“UserAccounts.CommonDialog”对象向用户显示一个标准的“文件打开”对话框Set objDialog = CreateObject("UserAccounts.
1759 0
VBS 文件选择框,选择Excel文件
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 on error resume Next Set objDialog=CreateObject("UserAccounts.
840 0
|
Windows
IntellJ_打开选中的文件所在的文件夹
方法(一)最简单 idea 打开 setting 找到keymap 搜索 show in explorer 右键设置一个快捷键  我一般设置 alt + v 然后点击项目其中一个文件位置 比如我点击一个 hellowworld.class  然后我按 alt +v 就会自己打开他在本地的位置 方法(二)比方法一 详细 MyEclipse中工具栏有个功能,选中项目中的某个文件,单击按钮可以打开此文件(或目录) 在windows资源管理器中的位置。
1239 0