📄 mifrd.cpp
字号:
// MifRd.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <cassert>
#include "cfg.h"
#include "global.h"
#include "tool.h"
#pragma warning(disable:4244)
#define CENTER_X 108.942660
#define CENTER_Y 34.260489
typedef struct _place{
char num;
char *sz;
INT x;
INT y;
}Place;
Point ConvertCrd(double lng,double lat)
{
Point p;
p.x=ER*((lng-CENTER_X)*PI/180)*1000;
p.y=ER*((lat-CENTER_Y)*PI/180)*1000;
return p;
}
int _tmain(int argc, _TCHAR* argv[])
{
int i,n,placecnt=0;
double x,y; //记录mif文件中点的x,y坐标
FILE *fp1,*fp2;
char str[256]; //定义存放文件中的文本数据的变量
Place pl;
Point pt;
fp1=fopen("E:\\Projects\\Map\\place.mif","r");
assert(fp1!=NULL);
fp2=fopen("C:\\place.dat","wb");
assert(fp2!=NULL);
fseek(fp2,sizeof(int),SEEK_SET);
while(!feof(fp1)) //当文件未读完时循环
{
fscanf(fp1,"%s",str); //读取文件fp2,以字符串格式“%s”存入字符串变量str中
if(strcmp(str,"Text")==0)
{
placecnt++;
fscanf(fp1,"%s",str);
n=strlen(str)-2;
for(i=0;i<n;i++) str[i]=str[i+1];
str[i+1]='\0';
n/=2;
fwrite(&n,sizeof(char),1,fp2);
fwrite(str,sizeof(char),n,fp2);
fscanf(fp1,"%lf %lf",&x,&y);
pt=ConvertCrd(x,y);
pl.x=pt.x;
pl.y=pt.y;
printf("\n%lf,%lf",x,y);
fwrite(&pl,sizeof(Place),1,fp2);
}
}
rewind(fp2);
fwrite(&placecnt,sizeof(INT),1,fp2);
fclose(fp1);
fclose(fp2);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -