bool ResultLog::SaveAvailabilityResults( wxString filename, bool _export ) { // The availability results Result *r = GetResults( wxString(wxT("availability")) ); wxFileOutputStream output_avail( filename ); wxTextOutputStream text_avail( output_avail ); int ColumnCount = (_export ? r->GetColumnCount() -2 : r->GetColumnCount()); wxString strHeader; if( _export ) { this->m_SaveDelimiter = wxT(","); StringValueList *header = r->GetHeader(); int countheader = 0; for( StringValueList::Node *node = header->GetFirst() ; node && countheader++ < ColumnCount ; node = node->GetNext() ) { strHeader << *node->GetData() << m_SaveDelimiter; } strHeader.SetChar( strHeader.Length()-1, wxT('\n') ); } else { m_SaveDelimiter = wxT("\t"); } text_avail.WriteString( strHeader ); for( int i = 0 ; i < r->GetRowCount() ; i++ ) { StringValueList *row = r->GetRow( i ); wxString line; int countcolumn = 0; for( StringValueList::Node *node = row->GetFirst() ; node && countcolumn++ < ColumnCount ; node = node->GetNext() ) { line << *node->GetData() << m_SaveDelimiter; } line.SetChar( line.Length()-1, wxT('\n') ); text_avail.WriteString( line ); } return true; }
bool ResultLog::SaveStandardResults( wxString filename, bool _export ) { // The standard reslts Result *r = GetResults( wxString(wxT("standard")) ); wxFileOutputStream output( filename ); wxTextOutputStream text( output ); wxString strHeader; if( _export ) { this->m_SaveDelimiter = wxT(","); StringValueList *header = r->GetHeader(); for( StringValueList::Node *node = header->GetFirst() ; node ; node = node->GetNext() ) { strHeader << *node->GetData() << m_SaveDelimiter; } strHeader.SetChar( strHeader.Length()-1, wxT('\n') ); } else { m_SaveDelimiter = wxT("\t"); } text.WriteString( strHeader ); for( int i = 0 ; i < r->GetRowCount() ; i++ ) { StringValueList *row = r->GetRow( i ); wxString line; for( StringValueList::Node *node = row->GetFirst() ; node ; node = node->GetNext() ) { line << *node->GetData() << m_SaveDelimiter; } line.SetChar( line.Length()-1, wxT('\n') ); text.WriteString( line ); } return true; }