reports.cpp
上传用户:jtjnyq9001
上传日期:2014-11-21
资源大小:3974k
文件大小:3k
源码类别:

3G开发

开发平台:

Visual C++

  1. //
  2. //  File = code_gain_sim.cpp
  3. //
  4. #include <stdlib.h> 
  5. #include <iostream> 
  6. #include <fstream>
  7. #include <time.h>
  8. #include <strstream>
  9. #include <iomanip>
  10. #include "parmfile.h"
  11. #include "psstream.h"
  12. #include "reports.h"
  13. //================================================
  14. // Global Stuff
  15. extern ofstream LongReport;
  16. extern ofstream ShortReport;
  17. extern ofstream *DebugFile;
  18. extern PracSimStream DetailedResults;
  19. extern PracSimStream BasicResults;
  20. extern PracSimStream ErrorStream;
  21. extern char *DateString;
  22. //================================================
  23. void CreateReportFiles( char *report_name_root,
  24.                         bool date_in_short_rpt_name,
  25.                         bool date_in_full_rpt_name )
  26. {
  27.   char long_rpt_name[255];
  28.   char short_rpt_name[255];
  29.   char date_strm_buf[32];
  30.   char date_str[32];
  31.   //--------------------------------------------------------------------------
  32.   // Build the date time string
  33.   struct tm *time_struct;
  34.   time_t clock_val;
  35.   time( &clock_val );
  36.   time_struct = localtime( &clock_val );
  37.   strstream* date_stream = new strstream( date_strm_buf, 32, ios::out );
  38.   (*date_stream)  << setfill('0') << setw(2) << (time_struct->tm_year - 100)
  39.                   << setfill('0') << setw(2) << (1+time_struct->tm_mon) 
  40.                   << setfill('0') << setw(2) << time_struct->tm_mday << "_"
  41.                   << setfill('0') << setw(2) << time_struct->tm_hour 
  42.                   << setfill('0') << setw(2) << time_struct->tm_min 
  43.                   << setfill('0') << setw(2) << time_struct->tm_sec
  44.                   << ends;
  45.   strcpy( date_str, date_strm_buf);
  46.   DateString = new char[32];
  47.   strcpy( DateString, date_str);
  48.   //-------------------------------------------------------------------------
  49.   if( date_in_short_rpt_name )
  50.     {
  51.     strcpy( short_rpt_name, report_name_root);
  52.     strcat( short_rpt_name, "_short_");
  53.     strcat( short_rpt_name, date_str );
  54.     strcat( short_rpt_name, ".txt");
  55.     ShortReport.open(short_rpt_name, ios::out | ios::trunc);
  56.     }
  57.   else
  58.     {
  59.     strcpy( short_rpt_name, report_name_root);
  60.     strcat( short_rpt_name, "_short.txt");
  61.     ShortReport.open(short_rpt_name, ios::out | ios::trunc);
  62.     }
  63.   if(date_in_full_rpt_name)
  64.     {
  65.     strcpy( long_rpt_name, report_name_root);
  66.     strcat( long_rpt_name, "_full_");
  67.     strcat( long_rpt_name, date_str );
  68.     strcat( long_rpt_name, ".txt");
  69.     LongReport.open(long_rpt_name, ios::out | ios::trunc);
  70.     }
  71.   else
  72.     {
  73.     strcpy( long_rpt_name, report_name_root);
  74.     strcat( long_rpt_name, "_full.txt");
  75.     LongReport.open(long_rpt_name, ios::out | ios::trunc);
  76.     }
  77.   
  78.   BasicResults.SetReportFile(ShortReport);
  79.   BasicResults.SetReportFile(LongReport);
  80.   DetailedResults.SetReportFile(LongReport);
  81.   #ifdef _DEBUG
  82.     BasicResults.SetReportFile(*DebugFile);
  83.     ErrorStream.SetReportFile(*DebugFile);
  84.   #endif
  85.   ErrorStream.SetReportFile(ShortReport);
  86.   ErrorStream.SetReportFile(LongReport);
  87.   BasicResults << date_str << endl;
  88. };