Я новичок в C++, но имею опыт работы с ArcGIS (используется для баз геоданных). Вот некоторый код, который я написал для загрузки текстового файла в файловую базу геоданных... да, я знаю, что объявления и многие вещи выглядят безумными, но у меня крайний срок, и я не не знаю, как еще это сделать (и просто не имеют знаний). Пожалуйста, дайте мне знать, если у вас есть какие-либо входные данные! Это было бы очень признательно.
Проблемы: -текстовый файл не загружается в gdb -он застревает в бесконечном цикле (по крайней мере, для загрузки текстового файла в резервный текстовый файл) -он печатает сумасшедшие вещи в резервный текстовый файл, которых НЕТ в текстовом файле. -Возможно, другие вещи, о которых я понятия не имею. -Я разместил здесь, потому что я не уверен, какой отклик он получит на форуме ГИС (гораздо больше ориентированном на python). Если вы думаете, что он получит хороший совет там ... lmk.
Код:
#include <iostream>
#include <string>
#include <cstdlib>
#include <fstream>
using namespace std;
int main()
{
ifstream textFile;
ofstream backupFile;
ofstream gdb;
string RECORDID;
string SURVEY_TYPE;
string CLIENT;
string CERTIFIED_TO;
string KEYWORDS;
string SECTION;
string TOWNSHIP;
string RANGE;
string GRANT;
string SUBDIVISION;
string PROPERTY_NOTES;
string PROPERTY_FOLDER;
string PROJECT_DWG;
string FEMA_FIRMETTE;
string LOT_GRADE;
string FEMA_ELEVATION;
string JOB_SHEET;
string FIELD_NOTES;
string ENGINEER_FOLDER;
string ADDRESS;
string CITY;
string STATE;
string ZIPCODE;
string COUNTY;
string INTERSECT_STREET;
string ADDITIONAL_NOTES;
double LATITUDE;
double LONGITUDE;
string HTML;
string DATE_FIELD_WORK;
string JOB_NUMBER;
string SEC_TWN_RNG;
string PROJECT_PDF;
string LOT;
string USER;
string BLOCK;
string TRACT;
string DMS_LAT;
string DMS_LONG;
string PLAT_BOOK;
string PLAT_PGS;
string UNIT;
string PHASE;
string HSE;
string OWNER;
string SUBDIVISION_PLAT;
string CTY_FFE_CERT;
string JOB_NUM_ID;
string DATE_ADDED;
cout << "Textfile uploading" << endl;
textFile.open("test2.txt");
backupFile.open("backup2.txt");
gdb.open("test.gdb\\project");
textFile >> RECORDID >> SURVEY_TYPE >> CLIENT >> CERTIFIED_TO >> KEYWORDS >> SECTION >> TOWNSHIP >> RANGE >> GRANT >> SUBDIVISION >> PROPERTY_NOTES >> PROPERTY_FOLDER >> PROJECT_DWG >> FEMA_FIRMETTE >> LOT_GRADE >> FEMA_ELEVATION >> JOB_SHEET >> FIELD_NOTES >> ENGINEER_FOLDER >> ADDRESS >> CITY >> STATE >> ZIPCODE >> COUNTY >> INTERSECT_STREET >> ADDITIONAL_NOTES >> LATITUDE >> LONGITUDE >> HTML >> DATE_FIELD_WORK >> JOB_NUMBER >> SEC_TWN_RNG >> PROJECT_PDF >> LOT >> USER >> BLOCK >> TRACT >> DMS_LAT >> DMS_LONG >> PLAT_BOOK >> PLAT_PGS >> UNIT >> PHASE >> HSE >> OWNER >> SUBDIVISION_PLAT >> CTY_FFE_CERT >> JOB_NUM_ID >> DATE_ADDED;
while(!(textFile.eof()))
{
gdb << RECORDID << SURVEY_TYPE << CLIENT << CERTIFIED_TO << KEYWORDS << SECTION << TOWNSHIP << RANGE << GRANT << SUBDIVISION << PROPERTY_NOTES << PROPERTY_FOLDER << PROJECT_DWG << FEMA_FIRMETTE << LOT_GRADE << FEMA_ELEVATION << JOB_SHEET << FIELD_NOTES << ENGINEER_FOLDER << ADDRESS << CITY << STATE << ZIPCODE << COUNTY << INTERSECT_STREET << ADDITIONAL_NOTES << LATITUDE << LONGITUDE << HTML << DATE_FIELD_WORK << JOB_NUMBER << SEC_TWN_RNG << PROJECT_PDF << LOT << USER << BLOCK << TRACT << DMS_LAT << DMS_LONG << PLAT_BOOK << PLAT_PGS << UNIT << PHASE << HSE << OWNER << SUBDIVISION_PLAT << CTY_FFE_CERT << JOB_NUM_ID << DATE_ADDED << endl;
backupFile << RECORDID << " " << SURVEY_TYPE << " " << CLIENT << " " << CERTIFIED_TO << " " << KEYWORDS << " " << SECTION << " " << TOWNSHIP << " " << RANGE << " " << GRANT << " " << SUBDIVISION << " " << PROPERTY_NOTES << " " << PROPERTY_FOLDER << " " << PROJECT_DWG << " " << FEMA_FIRMETTE << " " << LOT_GRADE << " " << FEMA_ELEVATION << " " << JOB_SHEET << " " << FIELD_NOTES << " " << ENGINEER_FOLDER << " " << ADDRESS << " " << CITY << " " << STATE << " " << ZIPCODE << " " << COUNTY << " " << INTERSECT_STREET << " " << ADDITIONAL_NOTES << " " << LATITUDE << " " << LONGITUDE << " " << HTML << " " << DATE_FIELD_WORK << " " << JOB_NUMBER << " " << SEC_TWN_RNG << " " << PROJECT_PDF << " " << LOT << " " << USER << " " << BLOCK << " " << TRACT << " " << DMS_LAT << " " << DMS_LONG << " " << PLAT_BOOK << " " << PLAT_PGS << " " << UNIT << " " << PHASE << " " << HSE << " " << OWNER << " " << SUBDIVISION_PLAT << " " << CTY_FFE_CERT << " " << JOB_NUM_ID << " " << DATE_ADDED << " " << endl;
cout << "Text file was uploaded." << endl;
}
textFile.close();
backupFile.close();
gdb.close();
system ("Pause");
return 0;
}
ЛЮБОЙ совет приветствуется. Большое спасибо!
gdb.flush()
после того, как закончили писать? - person jaredready   schedule 23.07.2014gdb
. Кроме того, если вы застряли в бесконечном цикле, это означает, что вы никогда не доберетесь до конца textFile, что имеет смысл, поскольку вы никогда ничего не делаете с этим в своем цикле. - person jaredready   schedule 23.07.2014ostream
. - person jaredready   schedule 23.07.2014