Bez popisu

File.cpp 2.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #include "packet.h"
  2. #include <string>
  3. #include <fstream>
  4. #include <vector>
  5. /// \file
  6. using namespace std ;
  7. /// \fn bool ReadFile(string fname, vector<Packet> & netdata)
  8. /// \~English
  9. /// \brief Function that reads a file and return a boolean
  10. /// that determines if the file was succesfully opened and read or not.
  11. /// \param fname String that contains the filename of the file.
  12. /// \param netdata Vector of packets.
  13. /// \return true if successfuly read a file, false otherwise
  14. /// \~Spanish
  15. /// \brief Funcion que lee un archivo y devuelve un booleano que determina
  16. /// si el archivo abrio y se leyo con exito o no.
  17. /// \param fname Cadena de caracteres que contiene el nombre del archivo.
  18. /// \param netdata Vector de paquetes.
  19. /// \return cierto si leyo el archivo con exito, false de lo contrario
  20. bool ReadFile(string fname, vector<Packet> & netdata){
  21. ifstream infile;
  22. string sa ; // temp source address
  23. string da ; // temp dest address
  24. int sp ; // temp src port (puerto fuente)
  25. int dp ; // temp dst port (puerto destino)
  26. int oct ; // temp octets (octetos)
  27. int pkt ; // temp packets (paquetes)
  28. infile.open(fname.c_str());
  29. if(!infile.is_open())
  30. return false ;
  31. while(infile>> sa >> da >> sp >> dp >> oct >>pkt ){
  32. Packet p(sa, da, sp, dp, oct, pkt) ;
  33. netdata.push_back(p) ;
  34. }
  35. infile.close() ;
  36. return true ;
  37. }
  38. /// \fn bool SaveFile(string fname, vector<Packet> netdata)
  39. /// \~English
  40. /// \brief Function that saves a file to the computer.
  41. /// It returns true when the file was succesfully saved and false
  42. /// if an error occurred.
  43. /// \param fname String that contains the filename of the file.
  44. /// \param netdata Vector of packets.
  45. /// \return true if successfuly read a file, false otherwise
  46. /// \~Spanish
  47. /// \brief Funcion que guarda un archivo en la computadora.
  48. /// Devuelve cierto cuando el archivo se guardo con exito y falso si
  49. /// ocurre error
  50. /// \param fname Cadena de caracteres que contiene el nombre del archivo.
  51. /// \param netdata Vector de paquetes.
  52. /// \return cierto si guardo el archivo con exito, false de lo contrario
  53. bool SaveFile(string fname, vector<Packet> netdata){
  54. ofstream outfile;
  55. outfile.open(fname.c_str());
  56. if(!outfile.is_open())
  57. return false ;
  58. for(unsigned int i = 0; i < netdata.size(); i++){
  59. outfile << netdata.at(i).getSrcAddr() << " " << netdata.at(i).getDstAddr() << " "
  60. << netdata.at(i).getSrcPort() << " " << netdata.at(i).getDstPort() << " "
  61. << netdata.at(i).getOctects() << " " << netdata.at(i).getPackets() << endl ;
  62. }
  63. outfile.close() ;
  64. return true ;
  65. }