include <stdio.h>

#include "DataArea.h"

DataArea::DataArea( void )
{
    numero 	= "";
    nome 	= "";
    salario = 0;
}

DataArea::DataArea( CString numero, CString nome, double salario )
{
    if ( numero.GetLength() < _TAMANHO_INT )
    {	numero = "0"+numero;
    }
    
    if ( nome.GetLength() > _TAMANHO_NOME )
    {	nome = nome.Mid( 0, _TAMANHO_NOME );
    }
    
    while ( nome.GetLength() < _TAMANHO_NOME )
    {	
    	nome += "_";
    }
    
    this->numero 	= numero;
    this->nome 		= nome;
    this->salario 	= salario;
}

DataArea::DataArea( CString linha )
{
    int 	i = 2;
    CString 	s;
 	
 	numero 	= "";
    nome 	= "";
    salario = 0;
    
 	if ( linha.GetLength() < _TAMANHO_LINHA )
 		return;
 		
    numero = linha.Mid(i,_TAMANHO_INT);
	i += _TAMANHO_INT+1;
	    	    	
    nome = linha.Mid(i,_TAMANHO_NOME);
	i += _TAMANHO_NOME+2;

    s = linha.Mid(i,linha.GetLength());   	        
    salario = atof( s );
}

void DataArea::imprime()
{
    printf( "Numero = %s   Nome = %s   Salario = %.2lf\n", numero, nome, salario );
}

void DataArea::gravaArquivo( FILE * pFile )
{
    fprintf( pFile, "i %d  %s  %.2lf\n", numero, nome, salario );
}

int DataArea::CompareTo (const Object & object) const
{
	DataArea * arg = (DataArea*) &object;
	return this->numero == arg->numero;
}

HashValue DataArea::Hash () const
{
	HashValue hash = 0;
	return hash;
}

void DataArea::Put (ostream&) const
{
}

