Update 'shp_2_txt.cpp'

This commit is contained in:
zwnk 2019-05-23 21:08:28 +02:00
parent 92ee58e14e
commit de943c84f0

View file

@ -1,3 +1,10 @@
/*
http://shapelib.maptools.org/dbf_api.html
basic funtionality taken from dbfdump.c
path to libshp.dll has to be added as a PATH var
*/
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
@ -17,18 +24,21 @@ int main(int argc, char const *argv[])
char szTitle[12]; char szTitle[12];
string filename = "f:\\testing\\shp_2_txt\\MA.dbf"; string filename = "f:\\testing\\shp_2_txt\\MA.dbf";
// open textfile and dbf handle
ofstream txt_file("out.txt"); ofstream txt_file("out.txt");
dbfh = DBFOpen(filename.c_str(), "rb"); dbfh = DBFOpen(filename.c_str(), "rb");
// check
if (dbfh <= 0) if (dbfh <= 0)
{ {
throw string("File " + filename + " not found"); throw string("File " + filename + " not found");
} }
else else
{ {
// loop over dbf records
for( iRecord = 0; iRecord < DBFGetRecordCount(dbfh); iRecord++ ) for( iRecord = 0; iRecord < DBFGetRecordCount(dbfh); iRecord++ )
{ {
// loop over fields of record
for( i = 0; i < DBFGetFieldCount(dbfh); i++ ) for( i = 0; i < DBFGetFieldCount(dbfh); i++ )
{ {
DBFFieldType eType; DBFFieldType eType;
@ -40,6 +50,7 @@ int main(int argc, char const *argv[])
string str(szTitle); string str(szTitle);
string line; string line;
// parse for lat, lon in degrees and orhto height
if (szTitle == dec_lat or szTitle == dec_lon or szTitle == ortho_h) if (szTitle == dec_lat or szTitle == dec_lon or szTitle == ortho_h)
{ {
txt_file << DBFReadStringAttribute( dbfh, iRecord, i ); txt_file << DBFReadStringAttribute( dbfh, iRecord, i );
@ -48,7 +59,7 @@ int main(int argc, char const *argv[])
} }
txt_file << endl; txt_file << endl;
} }
// close dbf handle and textfile
DBFClose( dbfh ); DBFClose( dbfh );
txt_file.close(); txt_file.close();
} }