Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "diccionario.h"
- #include <fstream>
- #include <cstdlib>
- #include <iostream>
- using namespace std;
- void load(diccionario & d, const string & s){
- diccionario::entrada e;
- string cadena;
- string nombre;
- string code;
- string num;
- string f;
- double mas;
- bool fall;
- string year;
- double lat;
- double lon;
- ifstream fi;
- fi.open(s.c_str());
- //Leemos la primera linea de name, reclass...
- getline(fi, cadena);
- while(!fi.eof()){
- int pos_inicio = 0;
- int pos_final;
- getline(fi, cadena); //Vamos leyendo el fichero s.
- //Buscamos el nombre
- pos_final = cadena.find_first_of(";",pos_inicio);
- //nombre.assign(cadena, pos_inicio, (pos_final-pos_inicio-1));
- nombre = cadena.substr(pos_inicio, pos_final-pos_inicio);
- e.first = nombre;
- pos_inicio = pos_final+1;
- //Buscamos los códicos
- pos_final = cadena.find_first_of(";", pos_inicio);
- code = cadena.substr(pos_inicio, pos_final-pos_inicio);
- //Si hay más de un código
- if(code.find(",") != -1){
- while(pos_inicio < pos_final){
- int p;
- string aux;
- p = code.find_first_of(",",pos_inicio);
- aux = code.substr(pos_inicio, p-pos_inicio);
- e.second.setCode(aux);
- pos_inicio = p+1;
- }
- }
- //Si sólo hay un código
- else{
- e.second.setCode(code);
- }
- pos_inicio = pos_final+1;
- //Buscamos la masa
- pos_final = cadena.find_first_of(";",pos_inicio);
- num = cadena.substr(pos_inicio, pos_final-pos_inicio);
- mas = atof(num.c_str()); //Convertimos la cadena a doble
- e.second.setMas(mas);
- pos_inicio = pos_final+1;
- //Buscamos si ha sido encontrado
- pos_final = cadena.find_first_of(";",pos_inicio);
- f = cadena.substr(pos_inicio, pos_final-pos_inicio);
- if(f == "Fell"){
- e.second.setFall(false);
- }
- else if (f == "Found"){
- e.second.setFall(true);
- }
- pos_inicio = pos_final+1;
- //Buscamos el año
- pos_final = cadena.find_first_of(";",pos_inicio);
- year = cadena.substr(pos_inicio, pos_final-pos_inicio);
- e.second.setYear(year);
- pos_inicio = pos_final+1;
- //Buscamos la latitud
- pos_final = cadena.find_first_of(";",pos_inicio);
- num = cadena.substr(pos_inicio, pos_final-pos_inicio);
- lat = atof(num.c_str()); //Convertimos la cadena a doble
- e.second.setLat(lat);
- pos_inicio = pos_final+1;
- //Buscamos la longitud
- num = cadena.substr(pos_inicio);
- lon = atof(num.c_str()); //Convertimos la cadena a doble
- e.second.setLong(lon);
- //Insertamos la entrada en el diccionario
- d.insert(e);
- }
- fi.close();
- }
- int main()
- {
- diccionario D;
- meteorito m;
- defM x;
- cout << m << endl;
- D.insert(m);
- pair<diccionario::entrada,bool> p;
- p = D.find("aaaa");
- if (p.second==true) cout << p.first << endl;
- else cout << "No existe aaaa" << endl;
- cout << D["Barcelona"] << endl;
- D["Valencia"] = x;
- cout<< D["Valencia"] << endl;
- //diccionario Meteoritos;
- //load(Meteoritos, "meteorites_all.csv");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement