Пример #1
0
void createTable(ostream& out, HumdrumFile& infile) {

   out << "<table " << C0C0 << ">\n";

   int i;
   for (i=0; i<infile.getNumLines(); i++) {
      if (infile[i].isGlobalComment()) {
         printGlobalComment(out, infile, i);
         continue;
      }
      if (infile[i].isBibliographic()) {
         printReferenceRecord(out, infile, i);
         continue;
      }
      if (infile[i].isData()) {
         printFields(out, infile, i);
      }
      if (infile[i].isMeasure()) {
         printFields(out, infile, i);
      }
      if (infile[i].isInterpretation()) {
         printFields(out, infile, i);
      }
   }

   out << "</table>\n";

   if (textareaQ) {
      out << "<textarea wrap=off rows=10 cols=70>";
      out << infile;
      out << "</textarea>\n";
   }

}
Пример #2
0
static void handleFile(FILE *f,char *delim,int first,int last) {
	char line[MAX_LINE_LEN];
	while(fgetl(line,sizeof(line),f)) {
		printFields(line,delim,first,last);
		if(ferror(stdout)) {
			printe("Write failed");
			break;
		}
	}
}
Пример #3
0
int cfrf_parse_fields(cfrt_classfile *c, cfrt_file *f) {
    u2 fields_count;
    cfrt_field_info *fields;
    u2 i;
    int result;

    if (c == NULL) {
        return CFREADER_ERR_NULL_PTR;
    }

    result = cfrf_read_u2(&fields_count, f);
    if (result != CFREADER_OK) {
        return result;
    }

    if (fields_count > 0) {
        fields = CFRM_NEW_ARRAY(cfrt_field_info, fields_count);
        if (fields == NULL) {
            return CFREADER_ERR_MALLOC;
        }

        for (i = 0; i < fields_count; i++) {
            result = cfrf_parse_field_info(fields + i, c->constant_pool, f);
            if (result != CFREADER_OK) {
                free(fields);
                return result;
            }
        }
    } else {
        fields = NULL;
    } 
 
    c->fields_count = fields_count;
    c->fields = fields;

#ifdef CFREADER_DEBUG_MODE
    printFields(c);
#endif
    
    return CFREADER_OK;
}
Пример #4
0
int main(int argc, char** argv)
{
  try
  {
    TCLAP::CmdLine cmd("Query tool", ' ');
    TCLAP::SwitchArg showArg("", "show", "Show fields and exit", false);
    TCLAP::ValueArg<std::string> selectArg("s", "select", "Comma separated list of field names to select, if omitted, all fields are selected", false, "", "Field selection");
    TCLAP::ValueArg<std::string> filterArg("f", "filter", "Filter expression in the form FIELDNAME=\"value\", filters selction", false, "", "Filter expression");
    TCLAP::ValueArg<std::string> orderArg("o", "order", "Comma separated list of field names with which to order a selection", false, "", "Order by");
    TCLAP::ValueArg<std::string> datastoreFileArg("d", "db", "JSON database file name to load or create", false, "db.json", "Database file");
    cmd.add(showArg);
    cmd.add(selectArg);
    cmd.add(filterArg);
    cmd.add(orderArg);
    cmd.add(datastoreFileArg);
    cmd.parse(argc, argv);

    DataStore::DatabasePtrH database =
      DataStore::DataStorageJson::Load(datastoreFileArg.getValue().c_str());

    DataStore::IFieldDescriptorConstListConstPtrH allFields =
      database->getScheme()->getFieldDescriptors();

    //
    // Show fields and exit?
    //
    if (showArg.isSet())
    {
      printFields(*(allFields.get()));
      return 0;
    }

    //
    // Parse selection (-s) into a list of field descriptors
    //

    DataStore::IFieldDescriptorConstListPtrH selectedFields;
    if (selectArg.isSet())
    {
      selectedFields = parseFieldNameList(selectArg.getValue(),
        *(allFields.get()));
    }

    //
    // Parse filter (-f) expression into a logical expression AST
    //

    DataStore::Predicate filter = DataStore::Predicate::AlwaysTrue();
    if (filterArg.isSet())
    {
      DataStore::IQualifierPtrH filterAst =
        parseFilterExpression(filterArg.getValue(), *(allFields.get()));
      filter = DataStore::Predicate(filterAst);
    }

    //
    // Parse order (-o) in to list of field descriptors, order is
    // always ascending.
    //

    DataStore::IFieldDescriptorConstListPtrH orderByFields;
    if (orderArg.isSet())
    {
      orderByFields = parseFieldNameList(orderArg.getValue(),
        *(allFields.get()));
    }

    //
    // Perform query, and print result
    //

    DataStore::IQueryResultConstPtrH result =
      database->query(selectedFields, &filter, orderByFields);
    printResult(*(result.get()));
  }
  catch (TCLAP::ArgException &e)
  {
    std::cerr << "error: " << e.error() << " for arg " << e.argId() << std::endl;
    return 1;
  }
  catch (std::exception& ex)
  {
    std::cerr << "error: " << ex.what() << std::endl;
    return 1;
  }

	return 0;
}
Пример #5
0
void ToolsSplashParallel::convertToText()
{
    if (m_options.data.size() == 0)
        throw std::runtime_error("No datasets requested");

    ColTypeInt ctInt;
    ColTypeDouble ctDouble;

    // read data
    //

    std::vector<ExDataContainer> file_data;

    // identify reference data class (poly, grid), reference domain size and number of elements
    //

    DomainCollector::DomDataClass ref_data_class = DomainCollector::UndefinedType;
    try
    {
        dc.readAttribute(m_options.step, m_options.data[0].c_str(), DOMCOL_ATTR_CLASS,
                &ref_data_class, NULL);
    } catch (const DCException&)
    {
        errorStream << "Error: No domain information for dataset '" << m_options.data[0] << "' available." << std::endl;
        errorStream << "This might not be a valid libSplash domain." << std::endl;
        return;
    }

    switch (ref_data_class)
    {
        case DomainCollector::GridType:
            if (m_options.verbose)
                errorStream << "Converting GRID data" << std::endl;
            break;
        case DomainCollector::PolyType:
            if (m_options.verbose)
                errorStream << "Converting POLY data" << std::endl;
            break;
        default:
            throw std::runtime_error("Could not identify data class for requested dataset");
    }

    Domain ref_total_domain;
    ref_total_domain = dc.getGlobalDomain(m_options.step, m_options.data[0].c_str());

    for (std::vector<std::string>::const_iterator iter = m_options.data.begin();
            iter != m_options.data.end(); ++iter)
    {
        // check that all datasets match to each other
        //

        DomainCollector::DomDataClass data_class = DomainCollector::UndefinedType;
        dc.readAttribute(m_options.step, iter->c_str(), DOMCOL_ATTR_CLASS,
                &data_class, NULL);
        if (data_class != ref_data_class)
            throw std::runtime_error("All requested datasets must be of the same data class");

        Domain total_domain = dc.getGlobalDomain(m_options.step, iter->c_str());
        if (total_domain != ref_total_domain)
            throw std::runtime_error("All requested datasets must map to the same domain");

        // create an extended container for each dataset
        ExDataContainer excontainer;

        if (ref_data_class == DomainCollector::PolyType)
        {
            // poly type

            excontainer.container = dc.readDomain(m_options.step, iter->c_str(),
                    Domain(total_domain.getOffset(), total_domain.getSize()), NULL, true);
        } else
        {
            // grid type

            Dimensions offset(total_domain.getOffset());
            Dimensions domain_size(total_domain.getSize());

            for (int i = 0; i < 3; ++i)
                if (m_options.fieldDims[i] == 0)
                {
                    offset[i] = m_options.sliceOffset;
                    if (offset[i] > total_domain.getBack()[i])
                        throw DCException("Requested offset outside of domain");

                    domain_size[i] = 1;
                    break;
                }

            excontainer.container = dc.readDomain(m_options.step, iter->c_str(),
                    Domain(offset, domain_size), NULL);
        }

        // read unit
        //
        if (m_options.applyUnits)
        {
            try
            {
                dc.readAttribute(m_options.step, iter->c_str(), "unitSI",
                        &(excontainer.unit), NULL);
            } catch (const DCException&)
            {
                if (m_options.verbose)
                    errorStream << "no unit for '" << iter->c_str() << "', defaulting to 1.0" << std::endl;
                excontainer.unit = 1.0;
            }

            if (m_options.verbose)
                errorStream << "Loaded dataset '" << iter->c_str() << "' with unit '" <<
                excontainer.unit << "'" << std::endl;
        } else
        {
            excontainer.unit = 1.0;
            if (m_options.verbose)
                errorStream << "Loaded dataset '" << iter->c_str() << "'" << std::endl;
        }

        file_data.push_back(excontainer);
    }

    assert(file_data[0].container->get(0)->getData() != NULL);

    // write to file
    //
    if (ref_data_class == DomainCollector::PolyType)
        printParticles(file_data);
    else
        printFields(file_data);

    for (std::vector<ExDataContainer>::iterator iter = file_data.begin();
            iter != file_data.end(); ++iter)
    {
        delete iter->container;
    }
}
Пример #6
0
void Programmer::printProgrammer(){
    printEmployee();
    printFields();
}