elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Mensajes
Páginas: [1] 2 3
1  Programación / Programación C/C++ / Re: Duda al escribir ficheros en: 3 Abril 2014, 12:20 pm
Vale,
Solucionado :)

Siguiente problema:
Los datos del .txt son del tipo:
1E-15       0.00000009    E+15

Soy incapaz de que me guarde en el archivo de salida estos numeros me da la siguiente salida

 0.000000 0.000000 -107374176.000000

El tercero ni siquiera existe!! :huh:




mi programa ahora es este:
Código
  1. int main(){
  2.  
  3.    FILE *f;
  4. FILE *f2;
  5.  
  6.   char cadena[11]= "12.txt";
  7.   char nombre2[11]= "salida.txt";
  8.  
  9.    f = fopen( cadena, "r" );  // Fichero datos.txt desde el que leo los datos.
  10.    f2= fopen( nombre2, "w");  // Fichero salida.txt donde escribire los datos.
  11.  
  12.   float col1, col2, col3;
  13.   int i=0, n=1;
  14.   while (i<n)
  15.   {
  16. fscanf (f, " %f %f %f \n",&col1 ,&col2 ,&col3 );
  17. fprintf(f2," %f %f %f \n",col1 ,col2 ,col3);
  18. i++;
  19.   }
  20.  
  21.   fclose(f);
  22.   fclose(f2);
  23.  
  24.    getchar();
  25. return 0;
  26. }
2  Programación / Programación C/C++ / Re: Duda al escribir ficheros en: 2 Abril 2014, 17:46 pm
Consegui solucionar el tema de pasar los ficheros excell a datos.txt . He tenido que hacer una macro en Excell para que me lo pasé a .txt

Teneis ideas para el nuevo reto:
Este programa que aparece abajo, lee archivos .txt de una sola columna,
si tengo un .txt con varias columnas separados por un delimitador como puedo hacerlo!! ?  :o

He buscado pero solo he encontrado cosas que me cambian todo el codigo muchísimo! a ver si alguien me echa una mano!!

Código
  1.  
  2. char leer[1000000];
  3. long double numerof;
  4. float numero;                                      
  5. while (fgets(leer, 1000000, fichero) != NULL) //detecta cuando acaba la informacion del fichero datos.txt y
  6.                                       //lee una linea del fichero , la guarda en leer y pasa a la siguiente linea
  7. {      
  8. numero = atof (leer);// convierto un char en un int
  9. long double numero1= (long double) numero;
  10. //Aqui hago las modificaciones
  11. numerof = numero1*2;
  12. sprintf(leer, " %30.30f \n",numerof); // convierto double a string
  13. // Escribo lo anterior al fichero2
  14. fputs(leer,fichero2);
  15. }
  16. fclose(fichero);  //cierra fich datos.txt
  17. fclose(fichero2);
3  Programación / Programación C/C++ / Re: Duda al escribir ficheros en: 1 Abril 2014, 17:15 pm
Como cadena de texto, no entiendo. Para que te imagines los archivos son del tipo

Un archivo Excell con muchas hojas, y en cada hoja 3 columnas con datos.

4  Programación / Programación C/C++ / Re: Duda al escribir ficheros en: 31 Marzo 2014, 14:24 pm
Dios mio.. vaya trabajo me espera..
Resulta que los Excell tienen varias hojas y además muchisimos datos, a mano es imposible.

voy a ver si encuentro algo.. uff :(

Muchísimas gracias por comentarme las alternativas.
Da gusto este foro, sin duda. El día que pueda aportar yo algo lo haré..  :rolleyes:
5  Programación / Programación C/C++ / Re: Duda al escribir ficheros en: 28 Marzo 2014, 15:48 pm
El problema que la estructura de datos no siempre es la misma, creo que me quedaré con lo que ya tengo.

Otro tema, llevo buscando un buen rato y no encuentro nada.

Si en vez de los ficheros en .txt los tengo en un excell, que funcion debo utilizar para exportar los datos tal y como he hecho a lo largo del hilo?

Un saludooo



El problema que la estructura de datos no siempre es la misma, creo que me quedaré con lo que ya tengo.

Otro tema, llevo buscando unos dias y no se por donde empezar!

Si en vez de los ficheros en .txt los tengo en un excell, que funcion debo utilizar para exportar los datos tal y como he hecho a lo largo del hilo?

Un saludooo
6  Programación / Programación C/C++ / Re: Duda al escribir ficheros en: 25 Marzo 2014, 13:45 pm
Ostras vale,
pense que dentro del while no se ejecutaba nada.. jojo
entonces ya está perfecto!!
entendi mal a amchacon!!

Gracias de nuevo!  ;D
7  Programación / Programación C/C++ / Re: Duda al escribir ficheros en: 25 Marzo 2014, 11:40 am
Perfecto, lo he notado muchísimo! Gracias amchacon!

Solo veo un defecto y es serio! : Me está cogiendo cada dos numeros, es decir los numeros impares en posicion de fila no me los coge, lo que no se por que!  :-[

Código
  1. //programa para obtener archivos y modificarlos guardandolos en nuevos archivos.
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <math.h>
  7. #include <string.h>
  8. #include <fstream>
  9.  
  10. using namespace std;
  11.  
  12. int main(){
  13.  
  14.    FILE *fichero;
  15. FILE *fichero2;
  16.  
  17.   char nombre[11] = "datos.txt";
  18.   char nombre2[11]= "salida.txt";
  19.  
  20.   fichero = fopen( nombre, "r" );  // Fichero datos.txt desde el que leo los datos.
  21.   fichero2= fopen( nombre2, "w");  // Fichero salida.txt donde escribire los datos.
  22.  
  23.   if ( fichero == NULL ) {
  24.      printf( "Fichero '%s' no se pudo abrir.\n", nombre ); /* error */
  25.      return -1;
  26. }
  27.   if ( fichero2 == NULL ) {
  28.      printf( "Fichero '%s' no se pudo abrir.\n", nombre2 ); /* error */
  29.      return -1;
  30. }
  31.  
  32. char leer[1000];
  33. double numero,numerof;
  34.  
  35. while (fgets(leer, 1000, fichero) != NULL) //detecta cuando acaba la informacion del fichero datos.txt
  36. {                                        
  37. fgets(leer,1000,fichero); //lee una linea del fichero , la guarda en leer y pasa a la siguiente linea
  38. numero = atof (leer);// convierto un char en un int
  39. //Aqui hago las modificaciones
  40. numerof = numero*1;
  41. sprintf(leer, "%f\n",numerof); // convierto double a string
  42. // Escribo lo anterior al fichero2
  43. fputs(leer,fichero2);
  44. }
  45. fclose(fichero);  //cierra fich datos.txt
  46. fclose(fichero2);
  47.  
  48. getchar();
  49. return 0;
  50. }
8  Programación / Programación C/C++ / Re: Duda al escribir ficheros en: 25 Marzo 2014, 09:13 am
Muchísimas gracias, con toda esta información me funciona la meta que tenia como programilla que quiero hacer, no lo he acabado aún pero quiza sigo posteando aqui dudas.

Muchas gracias de verdad, ;D

Pero una ultima cosa..
Dejo aqui el programa que estoy haciendo, es diferente de lo vuestro y me gustaria saber si no tiene ningun error garrafal que me de problemas más adelante.

Reto: Además estoy viendo que para 20k datos me tarda unos segundos, querria saber si hay alguna forma de acortar el tiempo de ejecución pues mis ficheros de datos tienen 200k datos y son muchos ficheros...

Pues dicho esto, os comento:
-El programa recibe un dichero datos.txt que es de una sola columna y que es de este tipo:
    611.1118
    611.6466
    612.8956
    611.8088
    615.3070
    614.8684
    ....ETC... (hasta 20K datos así)
-Este programa recoge este fichero, yo modifico (en este caso con una multiplicación) estos datos (pasandolos a int previamente)  y los multiplico por dos por ejemplo y luego volviendolos a convertir.
-Por ultimo recibo un fichero salida.txt como el siguiente:
1222.223600
1223.293200
1225.791200
1223.617600
1230.614000
1229.736800
1232.356000
...ETC...(Así hasta los 20k datos)


Mi codigo que funciona es este:
Código
  1. //programa para obtener archivos y modificarlos guardandolos en nuevos archivos.
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <math.h>
  7. #include <string.h>
  8. #include <fstream>
  9.  
  10. using namespace std;
  11.  
  12. // Funcion que hace algo
  13. char nombre_fichero();
  14.  
  15. int main(){
  16.  
  17.    FILE *fichero;
  18. FILE *fichero2;
  19.  
  20.   char nombre[11] = "datos.txt";
  21.   char nombre2[11]= "salida.txt";
  22.   char leer[1000];
  23.  
  24.   fichero = fopen( nombre, "r" );  // Fichero datos.txt desde el que leo los datos.
  25.   fichero2= fopen( nombre2, "w");  // Fichero salida.txt donde escribire los datos.
  26.  
  27. if ( fichero == NULL ) {
  28.      printf( "Fichero '%s' no se pudo abrir.\n", nombre ); /* error */
  29.      return -1;
  30.   }
  31.   if ( fichero2 == NULL ) {
  32.      printf( "Fichero '%s' no se pudo abrir.\n", nombre2 ); /* error */
  33.      return -1;
  34.   }
  35.  
  36. int i=0,n=20000;
  37. double numero,numerof;
  38.  
  39. while(i<n) //detecta cuando acaba la informacion del fichero datos.txt
  40.    {                                        
  41.    fgets(leer,1000000,fichero); //lee una linea del fichero , la guarda en leer y pasa a la siguiente linea
  42. numero = atof (leer);// convierto un char en un int
  43. //Aqui hago las modificaciones
  44. numerof =numero*2;
  45. printf("%s %f \n", leer, numerof);
  46. sprintf(leer, "%f\n",numerof);
  47. // Escribo lo anterior al fichero2
  48.    fputs(leer,fichero2);
  49. i++;
  50.    }
  51. fclose(fichero);  //cierra fich datos.txt
  52.  
  53. getchar();
  54. return 0;
  55. }
  56.  

Un saludete, a ver quien es el crack que me dice por donde van los tiros para acortarle tiempo! y Gracias!


EDITO: El programa lo necesitamos aqui en el departamento de electronica para hacer transformadas de fourier de señales, multiplicar por dos es una mera prueba para ver la conversión de datos.
9  Programación / Programación C/C++ / Re: Duda al escribir ficheros en: 24 Marzo 2014, 12:12 pm
Compilo con visual studio 2010!
Me dará muchos problemas?

Voy a seguir intentandolo... a ver si me aclaro! muchas gracias chicos!
Que dificil y arduo es esto de C++, madre mia! Me cuesta mucho comprender la programación.. yo y mis limitaciones :( jeje


Voy a pelearme con ello y os comento, saludos!
10  Programación / Programación C/C++ / Re: Duda al escribir ficheros en: 24 Marzo 2014, 11:59 am
uff fgets? vale voy a ello!
lo mezclo por que no me empano mucho..

Entonces que me aclare.. para leer una linea del datos.txt uso el fgets la inserto en salida.txt y luego como me voy a la segunda linea del datos.txt?
Páginas: [1] 2 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines