2019-05-23 20:55:33 +02:00
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <string.h>
|
|
|
|
#include <iostream>
|
|
|
|
#include <fstream>
|
|
|
|
|
|
|
|
using namespace std;
|
|
|
|
|
|
|
|
#include "shapefil.h"
|
|
|
|
|
|
|
|
int main(int argc, char const *argv[])
|
|
|
|
{
|
|
|
|
DBFHandle dbfh;
|
|
|
|
int i, iRecord;
|
2019-05-23 20:56:03 +02:00
|
|
|
char *pszFilename = NULL;
|
|
|
|
int nWidth, nDecimals;
|
|
|
|
char szTitle[12];
|
2019-05-23 20:55:33 +02:00
|
|
|
string filename = "f:\\testing\\shp_2_txt\\MA.dbf";
|
|
|
|
|
|
|
|
ofstream txt_file("out.txt");
|
|
|
|
|
|
|
|
dbfh = DBFOpen(filename.c_str(), "rb");
|
|
|
|
|
|
|
|
if (dbfh <= 0)
|
|
|
|
{
|
|
|
|
throw string("File " + filename + " not found");
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
for( iRecord = 0; iRecord < DBFGetRecordCount(dbfh); iRecord++ )
|
|
|
|
{
|
|
|
|
|
|
|
|
for( i = 0; i < DBFGetFieldCount(dbfh); i++ )
|
|
|
|
{
|
|
|
|
DBFFieldType eType;
|
|
|
|
eType = DBFGetFieldInfo( dbfh, i, szTitle, &nWidth, &nDecimals );
|
|
|
|
string dec_lat = "DEC_LAT";
|
|
|
|
string dec_lon = "DEC_LON";
|
|
|
|
string ellip_h = "ELLIP_HT";
|
|
|
|
string ortho_h = "ORTHO_HT";
|
2019-05-23 20:59:28 +02:00
|
|
|
string str(szTitle);
|
|
|
|
string line;
|
2019-05-23 20:55:33 +02:00
|
|
|
|
|
|
|
if (szTitle == dec_lat or szTitle == dec_lon or szTitle == ortho_h)
|
|
|
|
{
|
|
|
|
txt_file << DBFReadStringAttribute( dbfh, iRecord, i );
|
|
|
|
txt_file << " ";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
txt_file << endl;
|
|
|
|
}
|
|
|
|
|
|
|
|
DBFClose( dbfh );
|
|
|
|
txt_file.close();
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|