[Avida-SVN] r3416 - development/source/tools

brysonda at myxo.css.msu.edu brysonda at myxo.css.msu.edu
Tue Sep 22 13:08:55 PDT 2009


Author: brysonda
Date: 2009-09-22 16:08:55 -0400 (Tue, 22 Sep 2009)
New Revision: 3416

Modified:
   development/source/tools/cDataFile.cc
   development/source/tools/cDataFile.h
   development/source/tools/cDataManager_Base.cc
Log:
Adjust cDataFile to unify number formatting of the first data line with all subsequent lines.   Also clear out buffered line and comment strings once written to reduce unnecessary memory use.

THIS WILL BREAK CONSISTENCY

No quantitative differences, but the formatting of the output line changes and thus output files are no longer character for character matches.


Modified: development/source/tools/cDataFile.cc
===================================================================
--- development/source/tools/cDataFile.cc	2009-09-22 19:52:43 UTC (rev 3415)
+++ development/source/tools/cDataFile.cc	2009-09-22 20:08:55 UTC (rev 3416)
@@ -44,7 +44,7 @@
 void cDataFile::Write( double x, const char* descr )
 {
   if (!m_descr_written) {
-    m_data += cStringUtil::Stringf("%f ", x);
+    m_data << x << " ";
     WriteColumnDesc(descr);
   } else
     m_fp << x << " ";
@@ -54,7 +54,7 @@
 void cDataFile::Write(int i, const char* descr)
 {
   if (!m_descr_written) {
-    m_data += cStringUtil::Stringf("%i ", i);
+    m_data << i << " ";
     WriteColumnDesc(descr);
   } else
     m_fp << i << " ";
@@ -64,7 +64,7 @@
 void cDataFile::Write(long i, const char* descr)
 {
   if (!m_descr_written) {
-    m_data += cStringUtil::Stringf("%i ", i);
+    m_data << i << " ";
     WriteColumnDesc(descr);
   } else
     m_fp << i << " ";
@@ -73,7 +73,7 @@
 void cDataFile::Write(unsigned int i, const char* descr)
 {
   if (!m_descr_written) {
-    m_data += cStringUtil::Stringf("%u ", i);
+    m_data << i << " ";
     WriteColumnDesc(descr);
   } else
     m_fp << i << " ";
@@ -83,7 +83,7 @@
 void cDataFile::Write(const char* data_str, const char* descr)
 {
   if (!m_descr_written) {
-    m_data += cStringUtil::Stringf("%s ", data_str);
+    m_data << data_str << " ";
     WriteColumnDesc(descr);
   } else
     m_fp << data_str << " ";
@@ -145,7 +145,10 @@
 {
   if ( !m_descr_written ){
     m_fp << m_descr;
+    m_descr = "";
+    
     m_descr_written = true;
+    assert(m_data.str().size() == 0);
   }
 }
 
@@ -154,7 +157,12 @@
 {
   if ( !m_descr_written ){
     m_fp << m_descr << endl;
-    m_fp << m_data << endl;
+    m_descr = "";
+    
+    m_fp << m_data.str() << endl;
+    m_data.clear();
+    m_data.str("");
+    
     m_descr_written = true;
   }
   else m_fp << endl;

Modified: development/source/tools/cDataFile.h
===================================================================
--- development/source/tools/cDataFile.h	2009-09-22 19:52:43 UTC (rev 3415)
+++ development/source/tools/cDataFile.h	2009-09-22 20:08:55 UTC (rev 3416)
@@ -27,6 +27,7 @@
 #define cDataFile_h
 
 #include <fstream>
+#include <sstream>
 
 #ifndef cString_h
 #include "cString.h"
@@ -50,7 +51,7 @@
 #endif
 private:
   cString m_name;
-  cString m_data;
+  std::ostringstream m_data;
   cString m_descr;
   int num_cols;
   

Modified: development/source/tools/cDataManager_Base.cc
===================================================================
--- development/source/tools/cDataManager_Base.cc	2009-09-22 19:52:43 UTC (rev 3415)
+++ development/source/tools/cDataManager_Base.cc	2009-09-22 20:08:55 UTC (rev 3416)
@@ -52,7 +52,6 @@
       }
       data_file.WriteColumnDesc(cur_desc);
     }
-    data_file.FlushComments();
     data_file.Endl();
   }
   




More information about the Avida-cvs mailing list