⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mkcatalog.cpp

📁 开源的电子海图程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    oModule.Dump( stdout );    oModule.Create( "out.000" );/* -------------------------------------------------------------------- *//*      Create a record.                                                *//* -------------------------------------------------------------------- */    DDFRecord *poRec = new DDFRecord( &oModule );    DDFField *poField;    poField = poRec->AddField( oModule.FindFieldDefn( "0001" ) );    poRec->SetFieldRaw( poField, 0, "\1\0\036", 3 );    poField = poRec->AddField( oModule.FindFieldDefn( "DSID" ) );    poRec->SetIntSubfield   ( "DSID", 0, "RCNM", 0, 10 );    poRec->SetIntSubfield   ( "DSID", 0, "RCID", 0, 1 );    poRec->SetIntSubfield   ( "DSID", 0, "EXPP", 0, 1 );    poRec->SetIntSubfield   ( "DSID", 0, "INTU", 0, 4 );    poRec->SetStringSubfield( "DSID", 0, "DSNM", 0, "GB4X0000.000" );    poRec->SetStringSubfield( "DSID", 0, "EDTN", 0, "2" );    poRec->SetStringSubfield( "DSID", 0, "UPDN", 0, "0" );    poRec->SetStringSubfield( "DSID", 0, "UADT", 0, "20010409" );    poRec->SetStringSubfield( "DSID", 0, "ISDT", 0, "20010409" );    poRec->SetFloatSubfield ( "DSID", 0, "STED", 0, 3.1 );    poRec->SetIntSubfield   ( "DSID", 0, "PRSP", 0, 1 );    poRec->SetStringSubfield( "DSID", 0, "PSDN", 0, "" );    poRec->SetStringSubfield( "DSID", 0, "PRED", 0, "2.0" );    poRec->SetIntSubfield   ( "DSID", 0, "PROF", 0, 1 );    poRec->SetIntSubfield   ( "DSID", 0, "AGEN", 0, 540 );    poRec->SetStringSubfield( "DSID", 0, "COMT", 0, "" );    poField = poRec->AddField( oModule.FindFieldDefn( "DSSI" ) );    poRec->SetIntSubfield   ( "DSSI", 0, "DSTR", 0, 2 );    poRec->SetIntSubfield   ( "DSSI", 0, "AALL", 0, 1 );    poRec->SetIntSubfield   ( "DSSI", 0, "NALL", 0, 1 );    poRec->SetIntSubfield   ( "DSSI", 0, "NOMR", 0, 22 );    poRec->SetIntSubfield   ( "DSSI", 0, "NOCR", 0, 0 );    poRec->SetIntSubfield   ( "DSSI", 0, "NOGR", 0, 2141 );    poRec->SetIntSubfield   ( "DSSI", 0, "NOLR", 0, 15 );    poRec->SetIntSubfield   ( "DSSI", 0, "NOIN", 0, 512 );    poRec->SetIntSubfield   ( "DSSI", 0, "NOCN", 0, 2181 );    poRec->SetIntSubfield   ( "DSSI", 0, "NOED", 0, 3192 );    poRec->SetIntSubfield   ( "DSSI", 0, "NOFA", 0, 0 );    poRec->Write();    delete poRec;#ifdef notdef/* -------------------------------------------------------------------- *//*      Create a record.                                                *//* -------------------------------------------------------------------- */    poRec = new DDFRecord( &oModule );    poField = poRec->AddField( oModule.FindFieldDefn( "0001" ) );    poRec->SetFieldRaw( poField, 0, "\2\0\036", 3 );    poField = poRec->AddField( oModule.FindFieldDefn( "DSPM" ) );    poRec->SetIntSubfield   ( "DSPM", 0, "RCNM", 0, 20 );    poRec->SetIntSubfield   ( "DSPM", 0, "RCID", 0, 1 );    poRec->SetIntSubfield   ( "DSPM", 0, "HDAT", 0, 2 );    poRec->SetIntSubfield   ( "DSPM", 0, "VDAT", 0, 17 );    poRec->SetIntSubfield   ( "DSPM", 0, "SDAT", 0, 23 );    poRec->SetIntSubfield   ( "DSPM", 0, "CSCL", 0, 52000 );    poRec->SetIntSubfield   ( "DSPM", 0, "DUNI", 0, 1 );    poRec->SetIntSubfield   ( "DSPM", 0, "HUNI", 0, 1 );    poRec->SetIntSubfield   ( "DSPM", 0, "PUNI", 0, 1 );    poRec->SetIntSubfield   ( "DSPM", 0, "COUN", 0, 1 );    poRec->SetIntSubfield   ( "DSPM", 0, "COMF", 0, 1000000 );    poRec->SetIntSubfield   ( "DSPM", 0, "SOMF", 0, 10 );    poRec->Write();    delete poRec;/* -------------------------------------------------------------------- *//*      Create a record.                                                *//* -------------------------------------------------------------------- */    poRec = new DDFRecord( &oModule );    poField = poRec->AddField( oModule.FindFieldDefn( "0001" ) );    poRec->SetFieldRaw( poField, 0, "\3\0\036", 3 );    poField = poRec->AddField( oModule.FindFieldDefn( "VRID" ) );    poRec->SetIntSubfield   ( "VRID", 0, "RCNM", 0, 110 );    poRec->SetIntSubfield   ( "VRID", 0, "RCID", 0, 518 );    poRec->SetIntSubfield   ( "VRID", 0, "RVER", 0, 1 );    poRec->SetIntSubfield   ( "VRID", 0, "RUIN", 0, 1 );    poField = poRec->AddField( oModule.FindFieldDefn( "SG3D" ) );    poRec->SetIntSubfield   ( "SG3D", 0, "YCOO", 0, -325998702 );    poRec->SetIntSubfield   ( "SG3D", 0, "XCOO", 0, 612175350 );    poRec->SetIntSubfield   ( "SG3D", 0, "VE3D", 0, 174 );    poRec->SetIntSubfield   ( "SG3D", 0, "YCOO", 1, -325995189 );    poRec->SetIntSubfield   ( "SG3D", 0, "XCOO", 1, 612228812 );    poRec->SetIntSubfield   ( "SG3D", 0, "VE3D", 1, 400 );    poRec->Write();#endif    delete poRec;}/************************************************************************//*                             mk_catalog()                             *//************************************************************************/void mk_catalog(){    DDFModule  oModule;    DDFFieldDefn *poFDefn;    oModule.Initialize();/* -------------------------------------------------------------------- *//*      Create the '0000' definition.                                   *//* -------------------------------------------------------------------- */    poFDefn = new DDFFieldDefn();    poFDefn->Create( "0000", "", "0001CATD",                      DDFFieldDefn::elementary,                      DDFFieldDefn::char_string );    oModule.AddField( poFDefn );/* -------------------------------------------------------------------- *//*      Create the '0000' definition.                                   *//* -------------------------------------------------------------------- */    poFDefn = new DDFFieldDefn();    poFDefn->Create( "0001", "ISO 8211 Record Identifier", "",                      DDFFieldDefn::elementary, DDFFieldDefn::bit_string,                     "(b12)" );    oModule.AddField( poFDefn );/* -------------------------------------------------------------------- *//*      Create the CATD field.                                          *//* -------------------------------------------------------------------- */    poFDefn = new DDFFieldDefn();    poFDefn->Create( "CATD", "Catalog Directory field", "",                     DDFFieldDefn::vector, DDFFieldDefn::mixed_data_type );    poFDefn->AddSubfield( "RCNM", "A(2)" );    poFDefn->AddSubfield( "RCID", "I(10)" );    poFDefn->AddSubfield( "FILE", "A" );    poFDefn->AddSubfield( "LFIL", "A" );    poFDefn->AddSubfield( "VOLM", "A" );    poFDefn->AddSubfield( "IMPL", "A(3)" );    poFDefn->AddSubfield( "SLAT", "R" );    poFDefn->AddSubfield( "WLON", "R" );    poFDefn->AddSubfield( "NLAT", "R" );    poFDefn->AddSubfield( "ELON", "R" );    poFDefn->AddSubfield( "CRCS", "A" );    poFDefn->AddSubfield( "COMT", "A" );    oModule.AddField( poFDefn );    oModule.Dump( stdout );    oModule.Create( "out.ddf" );/* -------------------------------------------------------------------- *//*      Create a record.                                                *//* -------------------------------------------------------------------- */    DDFRecord *poRec = new DDFRecord( &oModule );    DDFField *poField;    poField = poRec->AddField( oModule.FindFieldDefn( "0001" ) );    poRec->SetFieldRaw( poField, 0, "\0\0\036", 3 );    poField = poRec->AddField( oModule.FindFieldDefn( "CATD" ) );    poRec->SetStringSubfield( "CATD", 0, "RCNM", 0, "CD" );    poRec->SetIntSubfield   ( "CATD", 0, "RCID", 0, 1 );    poRec->SetStringSubfield( "CATD", 0, "FILE", 0, "CATALOG.030" );    poRec->SetStringSubfield( "CATD", 0, "VOLM", 0, "V01X01" );    poRec->SetStringSubfield( "CATD", 0, "IMPL", 0, "ASC" );    poRec->SetStringSubfield( "CATD", 0, "COMT", 0,                               "Exchange Set Catalog file" );    poRec->Write();    delete poRec;/* -------------------------------------------------------------------- *//*      Create a record.                                                *//* -------------------------------------------------------------------- */    poRec = new DDFRecord( &oModule );    poField = poRec->AddField( oModule.FindFieldDefn( "0001" ) );    poRec->SetFieldRaw( poField, 0, "\1\0\036", 3 );    poField = poRec->AddField( oModule.FindFieldDefn( "CATD" ) );    poRec->SetStringSubfield( "CATD", 0, "RCNM", 0, "CD" );    poRec->SetIntSubfield   ( "CATD", 0, "RCID", 0, 2 );    poRec->SetStringSubfield( "CATD", 0, "FILE", 0, "No410810.000" );    poRec->SetStringSubfield( "CATD", 0, "VOLM", 0, "V01X01" );    poRec->SetStringSubfield( "CATD", 0, "IMPL", 0, "BIN" );    poRec->SetFloatSubfield ( "CATD", 0, "SLAT", 0, 59.000005 );    poRec->SetFloatSubfield ( "CATD", 0, "WLON", 0, 4.999996 );    poRec->SetFloatSubfield ( "CATD", 0, "NLAT", 0, 59.500003 );    poRec->SetFloatSubfield ( "CATD", 0, "ELON", 0, 5.499997 );    poRec->SetStringSubfield( "CATD", 0, "CRCS", 0, "555C3AD4" );    poRec->Write();    delete poRec;}/* **********************************************************************//*                                main()                                *//* **********************************************************************/int main( int nArgc, char ** papszArgv ){    mk_s57();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -