Ayuda de nuevo ahora si que estoy anonadado

Iniciado por Søra, 22 Mayo 2010, 15:27 PM

0 Miembros y 1 Visitante están viendo este tema.

Søra

He estado buscando explicacion a un problema que tengo pero no se que narices le pasa imaginen yo tengo un archivo llamado Realmlist.wtf en el cual pone:

wowsulvus.no-ip.biz
exirn.servegame.com

y cuando ejecuto este codigo no me lee la primera linea pasa directamente a la segunda o.O'

#include <stdio.h>
main()
{
printf(" _       _         _       _     ______         _               _     _ \n");
printf("(_)  _  (_)       (_)  _  (_)   (______)       (_) _           (_)   (_)\n");
printf("(_) (_) (_)  ___  (_) (_) (_)   (_)__    _   _  _ (_)__  _   _ (__)_ (_)\n");
printf("(_) (_) (_) (___) (_) (_) (_)   (____)  (_)_(_)(_)(____)(_) (_)(_)(_)(_)\n");
printf("(_)_(_)_(_)(_)_(_)(_)_(_)_(_)   (_)____   (_)  (_)(_)   (_)_(_)(_)  (__)\n");
printf(" (__) (__)  (___)  (__) (__)    (______)(_) (_)(_)(_)    (___) (_)   (_)\n");
printf("-----------------------------------------------------------------By Sora\n");
printf("Comprobando disponibilidad de realmlists:\n");
printf("------------------------------------------------------------------------\n");
printf("------------------------------------------------------------------------\n");

   char bufferealm[40];
   FILE *pf;
   pf = fopen("Realmlist.wtf","r+");
   if (pf==NULL) {
       printf("No has configurado WEL debes ejecutar el archivo Configure.exe");
   }
   
   while (fgets(bufferealm,40,pf) != NULL);
   {
     
      char buffer[50];
      sprintf(buffer, "ping -w 4 %s", bufferealm);
      if (system(buffer) == 0) {
         FILE *df;
         df = fopen("C:\\Archivos de programa\\World of warcraft\\Data\\esES\\realmlist.wtf","w");
         char buffertres[50];
         sprintf(buffertres,"set realmlist %s",bufferealm);
         fprintf(df,"%s",buffertres);
         printf("------------------------------------------------------------------------\n");
         printf("------------------------------------------------------------------------\n");
         printf("%s esta encendido y el realmlist ya esta cambiado\n",&bufferealm);
         
         printf("Lanzando paginas de votos...\n");
         system("firefox http://www.google.es");
         system("firefox http://www.google.es");
         printf("------------------------------------------------------------------------\n");
         printf("------------------------------------------------------------------------\n");


         printf("Lanzando World Of Warcraft\n");
         execl("C:\\Archivos de prorgama\\World of Warcraft\\Wow.exe","Wow.exe",0);
         return 0;}

         else {
         printf("%s se encuentra apagado WEL pasara al siguiente realmlist\n",&bufferealm);
         
           }
    }
     
 
 
}


Espero que no les resulten muy pesadas mis preguntas..

Saludos Søra.





Se busca sabio para intercambio:
Todo lo que se por la mitad de lo que desconozco.

nicolas_cof

Aca te dejo el codigo con algunas modificaciones, por lo menos en la ejecucion anda todo bien!
Lo que si, para usar la funcion execl(), tengo entendido que tenes que incluir la libreria unistd.h (no se si sera asi en Windows).

#include <stdio.h>
#include <string.h>

int
main( void )
{
char bufferealm[40];
FILE *pf;

pf = fopen( "Realmlist.wtf", "r+" );
if ( pf == NULL )
{
printf( "No has configurado WEL debes ejecutar el archivo Configure.exe" );
return -1;
}

while ( fgets( bufferealm, 40, pf ) != NULL )
{
char buffer[50];
bufferealm[strlen( bufferealm ) - 1] = '\0';
sprintf( buffer, "ping -w 4 %s", bufferealm );
if ( system( buffer ) == 0 )
{
FILE *df = fopen( "realmlist.wtf", "w" );
if ( df != NULL )
{
char buffertres[50];
sprintf( buffertres, "set realmlist %s", bufferealm );
fprintf( df, "%s", buffertres );
printf( "------------------------------------------------------\n"
"------------------------------------------------------\n"
"%s esta encendido y el realmlist ya esta cambiado\n", bufferealm );

printf( "Lanzando paginas de votos...\n" );
//system( "firefox http://www.google.es" );
//system( "firefox http://www.google.es" );
printf( "------------------------------------------------------\n"
"------------------------------------------------------\n"
"Lanzando World Of Warcraft\n" );
//execl( "C:\\Archivos de prorgama\\World of Warcraft\\Wow.exe", "Wow.exe", 0 );

return 0;
}
else
return -1;
}
else
printf( "%s se encuentra apagado WEL pasara al siguiente realmlist\n\n\n", bufferealm );
}
}


Ejecucion del programa...
./Main
ping: unknown host exirn.servegame.com
exirn.servegame.com se encuentra apagado WEL pasara al siguiente realmlist


PING wowsulvus.no-ip.biz (94.23.240.155) 56(84) bytes of data.
64 bytes from ns209133.ovh.net (94.23.240.155): icmp_seq=1 ttl=52 time=277 ms
64 bytes from ns209133.ovh.net (94.23.240.155): icmp_seq=2 ttl=52 time=276 ms
64 bytes from ns209133.ovh.net (94.23.240.155): icmp_seq=3 ttl=52 time=277 ms
64 bytes from ns209133.ovh.net (94.23.240.155): icmp_seq=4 ttl=52 time=278 ms

--- wowsulvus.no-ip.biz ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 276.769/277.876/278.838/0.735 ms
------------------------------------------------------
------------------------------------------------------
wowsulvus.no-ip.biz esta encendido y el realmlist ya esta cambiado
Lanzando paginas de votos...
------------------------------------------------------
------------------------------------------------------
Lanzando World Of Warcraft


Realmlist.wtf
exirn.servegame.com
wowsulvus.no-ip.biz


realmlist.wtf
set realmlist wowsulvus.no-ip.biz

Salu10.

Søra

Muchas gracias aunque tampoco esperaba que me hicieran el codigo pero gracias. Lo unico me puedes resolver un par de dudas con los arreglos:

Citarbufferealm[strlen( bufferealm ) - 1] = '\0';

esto exactamente que hace??

Todo lo demas lo entiendo XD muchas gracias nicolas_cof.

Saludos Søra.





Se busca sabio para intercambio:
Todo lo que se por la mitad de lo que desconozco.

Akai

bufferealm[strlen( bufferealm ) - 1] = '\0';

lo que hace es que en el último carácter de la cadena bufferrealm, pone un \0, es decir, el carácter de final de cadena

Søra

Muchas gracias codigo 100% asimilado XD.

Saludos Søra.





Se busca sabio para intercambio:
Todo lo que se por la mitad de lo que desconozco.