📄 writeshape.cpp
字号:
#include "Writeshape.h"
#include <iostream>
#include <fstream>
#define SPACE {while(c_puncture!=':')binfile>>c_puncture; c_puncture='0';}
using namespace std;
int Coutshape::converted(int t)
{
int q;
q=((t>>24)&0xff|(t<<24)|(t>>8)&0xff00|(t<<8)&0xff0000);
return(q);
}
void Coutshape::writeshape(char * p_txtaddress,char* p_shpaddress)
{
fstream binfile,boutfile;
binfile.open(p_txtaddress,ios::in);
boutfile.open(p_shpaddress,ios::out|ios::binary);
int n_value=converted(9994);
boutfile.write((char*)&n_value,sizeof(int));
boutfile.seekg(24,ios::beg);
m_totallength=converted(542);
boutfile.write((char*)&m_totallength,sizeof(int));
m_version=1000;
boutfile.write((char*)&m_version,sizeof(int));
m_shapetype=3;
boutfile.write((char*)&m_shapetype,sizeof(int));
char c_puncture='0';
SPACE
binfile>>m_totalrecord;
SPACE
for(int i=0;i<4;i++)
{
binfile>>m_box[i];
boutfile.write((char*)&m_box[i],sizeof(double));
}
boutfile.seekg(100,ios::beg);
for (int i=1;i<=m_totalrecord;i++)
{
SPACE
SPACE
int a=converted(i);
boutfile.write((char*)&a,sizeof(int));
for(int i=0;i<4;i++)
{
binfile>>m_box[i];
}
SPACE
binfile>>m_pointnumber;
int m=48+16*m_pointnumber;
m=converted(m/2);
boutfile.write((char*)&m,sizeof(int));
boutfile.write((char*)&m_shapetype,sizeof(int));
for(int i=0;i<4;i++)
{
boutfile.write((char*)&m_box[i],sizeof(double));
}
SPACE
m_part=1;
boutfile.write((char*)&m_part,sizeof(int));
boutfile.write((char*)&m_pointnumber,sizeof(int));
m_part--;
boutfile.write((char*)&m_part,sizeof(int));
for (int i=0;i<m_pointnumber*2;i++)
{
binfile>>m_point;
boutfile.write((char*)&m_point,sizeof(double));
}
}
boutfile.close();
binfile.close();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -