#include #include #include #include #include #include "cgi.h" #define isENTER( ch ) ( ch == '\n' || ch == '\r' ) class cListaMaquinas : public CgiScript { public: cListaMaquinas(int argC, char** argV) : CgiScript(argC, argV) {} const char* GetTitle() { return "Lista de Maquinas"; } virtual void WriteBody(); char GetToken( FILE *arquivo, char *buffer , int *ult ); }; //------------------------------------------------------------------------- void cListaMaquinas::WriteBody(){ char maquina[64],ip[64]; out << "\n" "\n" " Máquinas \n" "\n" "\n" "

Máquinas Disponíveis para monitoramento

\n" "
\n" "\n" "
\n" "Selecione as maquinas que voce deseja monitorar e pressione CONTINUAR\n" "
\n" "
\n" "
\n" "
\n"
          "
\n" "\n"; char ok= 1 ; FILE *arq= fopen("maquinas","r"); int c,i=1; char linha[256]; while(GetToken(arq,maquina,&c) == 1 && ok == 1 ){ if( (ok=GetToken(arq,ip,&c)) == 1) sprintf(linha, "\n", maquina, ip, i, maquina, ip); out << linha ; i++; } out << "
\ %02d. %s IP= %s
" "
\n" "\n" "
\n" "\n" "
\n" "
\n" "\n" "\n"; } //------------------------------------------------------------------------- char cListaMaquinas::GetToken( FILE *arquivo, char *buffer , int *ult ){ int ch ; int pos=0; // Primeiro devemos pular todos os espacos e ENTER`s.... do { ch= fgetc( arquivo ); } while( ch != EOF && ( ch == '\r' || ch=='\n' || isspace( ch ))) ; while( ch != EOF ){ if( ch == ';'){ while( (ch= fgetc( arquivo )) != EOF && ( ch != '\n' )); if( ch != EOF ){ do { ch=fgetc( arquivo ); } while( ch != EOF && isspace( ch ) ); continue ; } } if( ch != EOF && (( !isENTER(ch) && !isspace(ch) && ch != ':' && ch !=',') )){ buffer[ pos++ ]= ch ; buffer[ pos ]= '\0' ; } else{ *ult= ch; strupr( buffer ); return( ch != EOF ); } ch= fgetc( arquivo ); } return( ch != EOF ); } int main(int argC, char** argV){ try { cListaMaquinas lista(argC, argV); lista.Run(); } catch(xmsg& x){ // TODO : Open a file and write the error ! cerr<