FileHelper.h
上传用户:zhanglf88
上传日期:2013-11-19
资源大小:6036k
文件大小:2k
源码类别:

金融证券系统

开发平台:

Visual C++

  1. ////////////////////////////////////////////////////////////////////////////////
  2. // General utilities : File I/O helper class
  3. //
  4. // Copyright (c) 2003 by Morning
  5. // http://morningspace.51.net
  6. // mailto:moyingzz@etang.com
  7. //
  8. // Permission to use, copy, modify, distribute and sell this program for any 
  9. // purpose is hereby granted without fee, provided that the above copyright 
  10. // notice appear in all copies and that both that copyright notice and this 
  11. // permission notice appear in supporting documentation.
  12. //
  13. // It is provided "as is" without express or implied warranty.
  14. ////////////////////////////////////////////////////////////////////////////////
  15. #ifndef _FILE_HELPER_H_
  16. #define _FILE_HELPER_H_
  17. //
  18. #include <string>
  19. #include <vector>
  20. #include <fstream>
  21. #include <stdio.h>
  22. //
  23. namespace MUtils {
  24. class FileHelper
  25. {
  26. public:
  27.     // used to open binary file
  28.     static bool open(const std::string filename, std::string& content)
  29.     {
  30.         FILE *file = fopen(filename.c_str(), "rb");
  31.         if (file == NULL)
  32.             return false;
  33.         fseek(file, 0, SEEK_END);
  34.         int len = ftell(file);
  35. rewind(file);
  36.         char *buffer = new char[len];
  37.         fread(buffer, sizeof(char), len, file);
  38.         content.assign(buffer, len);
  39.         delete []buffer;
  40.         fclose(file);
  41.         return true;
  42.     }
  43.     // used to open text file
  44.     static bool open(const std::string file_name, std::vector<std::string>& lines)
  45.     {
  46.         std::ifstream file(file_name.c_str(), std::ios::in);
  47.         if (!file) 
  48.         {
  49.             return false;
  50.         }
  51.         lines.clear();
  52.         char buffer[buffer_size];
  53.         while (file.getline(buffer, buffer_size, 'n'))
  54.         {
  55.             lines.push_back(buffer);
  56.         }
  57.         
  58.         return true;
  59.     }
  60. private:
  61.     enum { buffer_size = 3000 };
  62. };
  63. } // namespace MUtils
  64. #endif // _FILE_HELPER_H_