Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: KZN en 22 Enero 2017, 14:19 pm



Título: [C] Problema archivo existente.
Publicado por: KZN en 22 Enero 2017, 14:19 pm
Estoy intentando crear un código que me diga si existe o no un programa y me da error, os suplico ayuda, aquí os dejo el código.

Código:


#include <stdio.h>
#include <stdlib.h>
#include <Shlobj.h>
#include <windows.h>
#include <dir.h>
#include <sys/types.h>
#include <dirent.h>


if (System.IO.File.Exists("C:\\aqui\\esta\\zzzz.txt"))
            {
                //código si fichero existe
            }
            else
            {
                //código si fichero no existe
            }
Código del error
Código:
12 1   (Ruta) Error] expected identifier or '(' before 'if'
16 13 (Ruta) [Error] expected identifier or '(' before 'else'


Título: Re: [C] Problema archivo existente.
Publicado por: MAFUS en 22 Enero 2017, 14:28 pm
¿Qué tal si empiezas encerrándolo todo dentro de una función? Por ejemplo int main()


Título: Re: [C] Problema archivo existente.
Publicado por: ivancea96 en 22 Enero 2017, 14:29 pm
Esto es C#, no C++:

Código
  1. System.IO.File.Exists("C:\\aqui\\esta\\zzzz.txt")

Luego, no puedes poner código sin m.as Tienes que poner la función main:
Código
  1. int main(){
  2.    // ...
  3. }



Título: Re: [C] Problema archivo existente.
Publicado por: KZN en 22 Enero 2017, 14:53 pm
Sigue sin funcionar, os agradezco la ayuda y sigo esperando a quien tenga la respuesta definitiva


Título: Re: [C] Problema archivo existente.
Publicado por: ivancea96 en 22 Enero 2017, 15:36 pm
Sigue sin funcionar, os agradezco la ayuda y sigo esperando a quien tenga la respuesta definitiva

No te podemos dar una respuiesta "definitiva" si no nos dices cómo lo tienes ahora.


Título: Re: [C] Problema archivo existente.
Publicado por: KZN en 22 Enero 2017, 15:41 pm
Probe a meterlo dentro de int main y no funciono, así que lo deje como postee al principio del post


Título: Re: [C] Problema archivo existente.
Publicado por: ivancea96 en 22 Enero 2017, 15:49 pm
Que al hacer una cosa siga dando errores, no significa que esa correción sea incorrecta.
No tienes que meterlo todo en el main, solo el código, sin los includes.
Y no es el único problema; mira lo que te escribí.
Y di qué compilador usas.


Título: Re: [C] Problema archivo existente.
Publicado por: KZN en 22 Enero 2017, 15:54 pm
Utilizo Dev C++


Título: Re: [C] Problema archivo existente.
Publicado por: ivancea96 en 22 Enero 2017, 16:23 pm
Esto es C#, no C++:

Código
  1. System.IO.File.Exists("C:\\aqui\\esta\\zzzz.txt")

Luego, no puedes poner código sin m.as Tienes que poner la función main:
Código
  1. int main(){
  2.    // ...
  3. }

No te podemos dar una respuiesta "definitiva" si no nos dices cómo lo tienes ahora.


Título: Re: [C] Problema archivo existente.
Publicado por: KZN en 22 Enero 2017, 16:29 pm
Código:

#include <stdio.h>
#include <stdlib.h>
#include <Shlobj.h>
#include <windows.h>
#include <dir.h>
#include <sys/types.h>
#include <dirent.h>



int main () {
if (System.IO.File.Exists("C:\\algo.txt"))
            {
                //código si fichero existe
            }
            else
            {
                //código si fichero no existe
            }
}

Código error
Código:
(Ruta) In function 'main':
14 5 (Ruta) [Error] 'System' undeclared (first use in this function)
14 5 (Ruta) [Note] each undeclared identifier is reported only once for each function it appears in


Título: Re: [C] Problema archivo existente.
Publicado por: ivancea96 en 22 Enero 2017, 16:38 pm
Lo dicho, esa línea es de C#, no de C++.

Puedes usar algo como el código que ponen en http://www.cplusplus.com/reference/cstdio/fopen/ (http://www.cplusplus.com/reference/cstdio/fopen/), con la función fopen:

Código
  1. #include <stdio.h>
  2. int main ()
  3. {
  4.  FILE * pFile;
  5.  pFile = fopen ("myfile.txt","r");
  6.  if (pFile!=NULL)
  7.  {
  8.    // Codigo si existe
  9.    fclose (pFile);
  10.  }else{
  11.    // Codigo si no existe
  12.  }
  13.  return 0;
  14. }


Título: Re: [C] Problema archivo existente.
Publicado por: KZN en 22 Enero 2017, 16:42 pm
Pero es que yo estoy usando C, no C++.
Mi editor se llama Dev C++ pero no solo edita C++, sino también C#


Título: Re: [C] Problema archivo existente.
Publicado por: ivancea96 en 22 Enero 2017, 16:48 pm
Un par de cosas.
En primer lugar, el código que te puse ahí es de C. (Por tu respuesta, intuyo que no lo probaste).
En segundo lugar, no tengo constancia de que Dev-C++ esté preparado para compilar C#. Si lo está, muy bien, pero te diré que no por ello puedes mezclar varios lenguajes en un mismo código. O programas C, o programas C#.


Título: Re: [C] Problema archivo existente.
Publicado por: MAFUS en 22 Enero 2017, 16:54 pm
Una cosa es el editor y la otra el compilador/intérprete.

Con un editor puedes crear cualquier código en cualquier lenguaje pues todos sirven para escribir. Puedes hasta escribir El Quijote con ellos si quieres. Otra cosa es que cuándo vayas a compilar te acepte ese código. Ese el problema que te encuentras. Le das al compilador de C++ de tu editor un código en C# que no entiende para nada. Así que es normal que se queje.

Elige en que lenguaje quieres hacer las cosas y consigue el IDE para programar con él.


Título: Re: [C] Problema archivo existente.
Publicado por: KZN en 22 Enero 2017, 16:59 pm
No, no lo puse, me invento los errores... :¬¬


Estoy usando C no C++ , aquí te dejo la lista de extensiones.
(http://imgur.com/J5QG0Wo.png)


Título: Re: [C] Problema archivo existente.
Publicado por: ivancea96 en 22 Enero 2017, 17:08 pm
Ahí no hay nada de C# ._.
Y lo dicho, el código q te puse antes es de C, no C++.


Título: Re: [C] Problema archivo existente.
Publicado por: KZN en 22 Enero 2017, 19:07 pm
Lamento la espera, tuve que ausentarme, después de ver el comentario, revisar nuevamente el post y probarlo quería agradecer al usuario Ivancea96 por su ayuda, tema solucionado.