Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2014
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.57 KB | None | 0 0
  1. #include "diccionario.h"
  2. #include <fstream>
  3. #include <cstdlib>
  4. #include <iostream>
  5.  
  6. using namespace std;
  7.  
  8.  
  9. void load(diccionario & d, const string & s){
  10.  
  11.     diccionario::entrada e;
  12.     string cadena;
  13.     string nombre;
  14.     string code;
  15.     string num;
  16.     string f;
  17.     double mas;
  18.     bool fall;
  19.     string year;
  20.     double lat;
  21.     double lon;
  22.     ifstream fi;
  23.  
  24.     fi.open(s.c_str());
  25.  
  26.     //Leemos la primera linea de name, reclass...
  27.     getline(fi, cadena);
  28.  
  29.     while(!fi.eof()){
  30.  
  31.         int pos_inicio = 0;
  32.         int pos_final;
  33.  
  34.         getline(fi, cadena); //Vamos leyendo el fichero s.
  35.  
  36.         //Buscamos el nombre
  37.         pos_final = cadena.find_first_of(";",pos_inicio);
  38.  
  39.         //nombre.assign(cadena, pos_inicio, (pos_final-pos_inicio-1));
  40.         nombre = cadena.substr(pos_inicio, pos_final-pos_inicio);
  41.  
  42.         e.first = nombre;
  43.  
  44.         pos_inicio = pos_final+1;
  45.  
  46.         //Buscamos los códicos
  47.         pos_final = cadena.find_first_of(";", pos_inicio);
  48.  
  49.         code = cadena.substr(pos_inicio, pos_final-pos_inicio);
  50.  
  51.         //Si hay más de un código
  52.         if(code.find(",") != -1){
  53.  
  54.             while(pos_inicio < pos_final){
  55.  
  56.                 int p;
  57.                 string aux;
  58.  
  59.                 p = code.find_first_of(",",pos_inicio);
  60.  
  61.                 aux = code.substr(pos_inicio, p-pos_inicio);
  62.  
  63.                 e.second.setCode(aux);
  64.  
  65.                 pos_inicio = p+1;
  66.  
  67.             }
  68.         }
  69.  
  70.         //Si sólo hay un código
  71.         else{
  72.  
  73.             e.second.setCode(code);
  74.         }
  75.  
  76.         pos_inicio = pos_final+1;
  77.  
  78.         //Buscamos la masa
  79.         pos_final = cadena.find_first_of(";",pos_inicio);
  80.  
  81.         num = cadena.substr(pos_inicio, pos_final-pos_inicio);
  82.  
  83.         mas = atof(num.c_str());    //Convertimos la cadena a doble
  84.  
  85.         e.second.setMas(mas);
  86.  
  87.         pos_inicio = pos_final+1;
  88.  
  89.  
  90.         //Buscamos si ha sido encontrado
  91.         pos_final = cadena.find_first_of(";",pos_inicio);
  92.  
  93.         f = cadena.substr(pos_inicio, pos_final-pos_inicio);
  94.  
  95.         if(f == "Fell"){
  96.  
  97.             e.second.setFall(false);
  98.         }
  99.  
  100.         else if (f == "Found"){
  101.  
  102.             e.second.setFall(true);
  103.         }
  104.  
  105.         pos_inicio = pos_final+1;
  106.  
  107.         //Buscamos el año
  108.         pos_final = cadena.find_first_of(";",pos_inicio);
  109.  
  110.         year = cadena.substr(pos_inicio, pos_final-pos_inicio);
  111.  
  112.         e.second.setYear(year);
  113.  
  114.         pos_inicio = pos_final+1;
  115.  
  116.         //Buscamos la latitud
  117.         pos_final = cadena.find_first_of(";",pos_inicio);
  118.  
  119.         num = cadena.substr(pos_inicio, pos_final-pos_inicio);
  120.  
  121.         lat = atof(num.c_str());    //Convertimos la cadena a doble
  122.  
  123.         e.second.setLat(lat);
  124.  
  125.         pos_inicio = pos_final+1;
  126.  
  127.         //Buscamos la longitud
  128.         num = cadena.substr(pos_inicio);
  129.  
  130.         lon = atof(num.c_str());    //Convertimos la cadena a doble
  131.  
  132.         e.second.setLong(lon);
  133.  
  134.         //Insertamos la entrada en el diccionario
  135.         d.insert(e);
  136.     }
  137.  
  138.     fi.close();
  139.  
  140. }
  141.  
  142. int main()
  143. {
  144.     diccionario D;
  145.     meteorito m;
  146.     defM x;
  147.  
  148.     cout << m << endl;
  149.  
  150.     D.insert(m);
  151.     pair<diccionario::entrada,bool> p;
  152.     p = D.find("aaaa");
  153.     if (p.second==true) cout << p.first << endl;
  154.     else cout << "No existe aaaa" << endl;
  155.  
  156.  
  157.     cout << D["Barcelona"] << endl;
  158.  
  159.     D["Valencia"] = x;
  160.     cout<< D["Valencia"] << endl;
  161.  
  162.  
  163.     //diccionario Meteoritos;
  164.     //load(Meteoritos, "meteorites_all.csv");
  165.  
  166.    return 0;
  167. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement