Ver Mensaje Individual
  #9 (permalink)  
Antiguo 19/05/2011, 00:28
cirulo
 
Fecha de Ingreso: diciembre-2010
Mensajes: 21
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: fopen no me detecta si fichero existe

Código:
void simulacion(char file[30])
{
     char archivo_simulacion[150] = "L:\\Programas\\Medidas\\Simulaciones\\";
     FILE *terminado = fopen("C:\\Program Files\\PPP\\medios\\auxi.red","r");
     int i;
    
     strcat(archivo_simulacion,file);
     
     if (terminado != NULL) 
     {
            fclose(terminado);
            remove("C:\\Program Files\\PPP\\medios\\auxi.red");
     }

     ShellExecute(NULL, TEXT("open"), TEXT("C:\\Program Files\\PPP\\ing.exe"), TEXT(archivo_simulacion), NULL, SW_SHOWNORMAL);

     Sleep(6500);

     SetCursorPos(500, 35);
     mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, GetMessageExtraInfo());
     mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, GetMessageExtraInfo());

     terminado = fopen("C:/Program Files/PPP/medios/auxi.red","r");

     while (terminado == NULL)
     {
          /*Sleep(1000);*/
          terminado = fopen("C:/Program Files/PPP/medios/auxi.red","r");
     }
     
     fclose(terminado);
}
Ésta es la parte del código que corre una simulación con un programa externo; la simulación ha acabado cuando aparece el archivo auxi.red.

Pegándolo veo una cosa de la que no me había dado cuenta. En algunas partes tengo \\ y en otras /; no las había corregido todas. El caso es que ShellExecute me daba error sino era con \\, pero el resto de órdenes parece que van bien con / (en principio quise usar / porque leí que funcionarían en Windows y Linux). ¿Dependiendo de la función a la que llame admiten las \\ o /?

Una curiosidad ya que estamos; ¿es un poco exagerado el WHILE comprobando continuamente? ¿es mejor poner ese retardo en cada iteracción?

Saludos.

Editado: el código anterior funciona a pesar de \\ y /.