Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: marcico en 17 Julio 2012, 18:24 pm



Título: Una ayudita por favor
Publicado por: marcico en 17 Julio 2012, 18:24 pm
hola!!! una consulta.. yo quiero hacer que el nombre "nuevo.bat" si vaya modificando por nuevo1.bat luego nuevo2.bat... y asi.. pero no se como hacer... primero deberia usar un do while ? digo para que luego de abrir el archivo y hacer lo que tenga uqe hacer vuelva al principio y abra otra archivo pero ahora con otro nombre...
o que funciones deberia de usar? muchas gracias
Código
  1.  
  2. FILE *fichero;
  3.  
  4. fichero = fopen( "nuevo.bat", "w" );
  5. aca hay otro codigo que tiene que guardarse
  6.  
  7.  


Título: Re: Una ayudita por favor
Publicado por: do-while en 17 Julio 2012, 18:27 pm
ˇBuenas!

No se que es lo que quieres hacer exactamente (la explicacion no es que haya quedado demasiado clara), pero si lo que quieres es repartir el contenido de un fichero, tendras que utilizar dos ficheros, uno para leer y otro para escribir.

ˇSaludos!


Título: Re: Una ayudita por favor
Publicado por: marcico en 17 Julio 2012, 18:31 pm
hola mi duda es yo quiero qeu el nombre vaya cambiando.. osea yo quiero hacer algo como
Código
  1. int indicador=0;
  2. FILE *fichero;
  3.  
  4. fichero = fopen( "nuevo%d.bat", "w",&indicador );
  5. aca hay otro codigo que tiene que guardarse
  6.  
  7. indicador++;
  8.  
  9.  

pero se que eso no es posible porque me tira error, yo queiro que al salir vuelva al programa y vuelva a preguntar las cosas pero que guarde los datos en otro archivo... osea ya creo el "nuevo.bat" ahora quiero que cree el otro... osea "nuevo1.bat"  algo asi :D


Título: Re: Una ayudita por favor
Publicado por: DickGumshoe en 17 Julio 2012, 18:31 pm
Hola!

Si lo que quieres es abrir un fichero varias veces pero con nombres distintos, tienes la función rename (http://www.cplusplus.com/reference/clibrary/cstdio/rename/)

Saludos!


Título: Re: Una ayudita por favor
Publicado por: marcico en 17 Julio 2012, 19:21 pm
mmm no me sale... va osea... modifica el nombre pero no es lo que necesito porque no solo va a hacerlo 1 vez.. yo necesito que genere varios archivos.... los cuales van a tener un nombre distinto por vuelta que de el bucle... do while... por eso digo de ponerle unc ontador para que por vuelta en el do while sume 1 y al sumar cambie el nombre del archivo  por otro... y ya el archivo anterior quedo creado con el nombre y este se va a llamar igual al anterior pero con el 1, u el sgte va a tener el 2.. y asi eso queiro hacer pero no me sale.... no se como probar para uqe ande.. no se mucho de programacion... osea tengo la idea de lo que queiro hacer pero no puedo plasmarla en el ejercicio!


Título: Re: Una ayudita por favor
Publicado por: BlackZeroX en 17 Julio 2012, 19:35 pm
Modificalo para tu propósito es igual al que te puso @marcico con la diferencia que no es a un archivo si no a un buffer de cadena.

Código
  1.  
  2. #include <stdio.h>
  3. #include <string.h>
  4.  
  5. int main() {
  6.    char newName[256];
  7.  
  8.    for (int i = -100; i <= 100; i++) {
  9.        memset(newName, 0, 256);                  // limpiamos...
  10.        sprintf(newName, "Archiv0_%d.txt", i); // construimos la cadena Archivo_-100.txt hasta Archivo_100.txt
  11.        puts (newName);
  12. // o como @marcizo
  13. //        fichero = fopen( "Archivo_%d.bat", "w", &i );
  14. // c&#243;digo...
  15.    }
  16.  
  17.    getchar();
  18.    return 0;
  19. }
  20.  
  21.  

Dulces Lunas!¡.


Título: Re: Una ayudita por favor
Publicado por: -MenTaL en 17 Julio 2012, 19:51 pm
Código:
int current;
int max_files;
for(int i = 0; i <= max_files; i++){
char file_name[80];
sprintf(file_name,"archivo_%d.txt",i);
ifstream file(file_name);
if (!file.good()){
//Aqui la funcion si el archivo no existe.
}
}


Edit: no vi que respondieron, justo lo pusieron despues de dar editar :S


Título: Re: Una ayudita por favor
Publicado por: BlackZeroX en 17 Julio 2012, 19:57 pm

« Última modificación: Hoy a las 11:39:24 por BlackZeroX (Astaroth) »


Título: Re: Una ayudita por favor
Publicado por: marcico en 17 Julio 2012, 20:02 pm
muchisimas gracias por tomarse el tiempo para ayudarme.. ahora veo los codigo para aprenderlos.. millones e infinitas gracias... abrazo!


Título: Re: Una ayudita por favor
Publicado por: -MenTaL en 17 Julio 2012, 20:13 pm
« Última modificación: Hoy a las 11:39:24 por BlackZeroX (Astaroth) »


e_e le di a "responder" y me fui a merendar .___.

PD: Off spam y es 19:39 no 11 :)