Autor
|
Tema: Como hacer que tome registros este programa desde un txt y aplique la funcion (Leído 4,898 veces)
|
luis456
Desconectado
Mensajes: 548
|
Hola a todos Me gustaria saber si es posible hacer que este codigo que suma 1 a cada numero pero de uno en uno. 01 32 34 38 41 44 <-- registro original en variable 02 32 34 38 41 44 sumamos 1 al primero 01 33 34 38 41 44 sumamos 1 al segundo 01 32 35 38 41 44 sumamos 1 al tercero 01 32 34 39 41 44 sumamos 1 al cuarto 01 32 34 38 42 44 sumamos 1 al quinto 01 32 34 38 41 45 sumamos 1 al sexto Se podria hacer que tome de un txt varios registros y le aplique el codigo uno por uno ? no importando que sean muchos esto es lo que llevaria el txt por decir algo. 01 32 34 38 41 44 03 06 19 32 47 49 08 12 20 34 47 49 la idea es que lea el primer registro aplique la funcion y siga con el segundo y cuando se acaben los registros guardarlos en otro Txt, ************************* #include <iostream> using namespace std; int main() { int v[6]={1 ,32, 34, 38, 41, 44}; int i,j,a[6][6]; for (i=0;i<6;i++) for (j=0;j<6;j++){ if (i!=j) a[i][j]=v[j]; else a[i][j]=v[i]+1; } for (i=0;i<6;i++){ for (j=0;j<6;j++){ cout << a[i][j]<<" "; }cout << endl; } return 0; }
Gracias de antemano Luis
|
|
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
durasno
Desconectado
Mensajes: 373
|
Lo que hiciste parace no tener problemas, solo es cuestion que averigues el tema de manejo de archivos. Tambien tal vez te convendria averiguar sobre memoria dinamica ya que si no sabes la cantidad de registros del archivo es mejor manejarlo dinamicamente
Saludos
|
|
|
En línea
|
Ahorrate una pregunta, lee el man
|
|
|
luis456
Desconectado
Mensajes: 548
|
Lo que hiciste parace no tener problemas, solo es cuestion que averigues el tema de manejo de archivos. Tambien tal vez te convendria averiguar sobre memoria dinamica ya que si no sabes la cantidad de registros del archivo es mejor manejarlo dinamicamente
Saludos
Gracias por responder como he dicho anteriormente trabajaba con fox y de memoria dinámica Npi de que existía jeje , me imagino que sera la capacidad del pc para hacer estos calculos y se libera al terminar ? bien alguna idea de como empezar y por donde ? de todas manera por mi edad aprendo mas rápido con ejemplos para trastear con ellos. este código funciona bien pero siempre hay un pero ,es una joda que cada ves tenga que modificar los numeros a mano, No se ni por donde empezar para que siquiera lea el archivo y menos pasar los registros a la variable. gracias Luis
|
|
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
durasno
Desconectado
Mensajes: 373
|
Me parece que tu problema es que no tenes un material del cual estudiar, en cualquier libro aparecen estos temas. En el sección de libros C/C++ vas a encontrar varios o tambien tenes http://c.conclase.net/curso/index.php y asi hay bastante cosas en internet Saludos
|
|
|
En línea
|
Ahorrate una pregunta, lee el man
|
|
|
-- KiLiaN --
Desconectado
Mensajes: 1.163
Ju Já!!
|
Busca algún manual de C++ y vete a la parte que expliquen el manejo de archivos.
|
|
|
En línea
|
|
|
|
luis456
Desconectado
Mensajes: 548
|
Vale vere este fin de empaparme con eso,es que solo los fines de semana es que pùedo estudiar.
Mirare esos enlaces a ver si me entero
Gracias
Luis
|
|
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
Vale veré este fin de empaparme con eso,es que solo los fines de semana es que puedo estudiar.
Mirare esos enlaces a ver si me entero
Gracias
Luis
Animo que son dos dias ¡ ¡ ¡. Como te he comentado me defiendo más en C que en C++, no obstante haré lo que tú comentas y me iré mirando los ficheros en C++. Pero para que veas que es relativamente sencillo, te dejo el código en C -guárdalo con la extensión .c -. No hace falta manejar memoria dinámica ya que sólo haces uso de un array de seis elementos. La idea es leer una línea de esos seis elementos, formar la matriz con los incrementos correspondientes y guardarla en un nuevo fichero. Así de sencillo: un solo array y una sola matriz para todo, independientemente de cuantas líneas tenga el fichero. Para que lo" veas" te dejo los printf -en C++ serían cout-:#include <stdio.h> #include <stdlib.h> #define NOM_ARCHIVO "luis_C.txt" #define NOM_ARCHIVO2 "luis2_C.txt" #define NUM_ELEM 6 int main(void){ FILE *fichero,*fichero2; float v[NUM_ELEM],a[6][6]; int i,j; /*********** ESTO LO PUEDES QUITAR CREANDO EL FICHERO A MANO ************/ if ((fichero = fopen(NOM_ARCHIVO, "w")) == NULL){ perror(NOM_ARCHIVO); return EXIT_FAILURE; } fprintf(fichero, "01 32 34 38 41 44\n"); fprintf(fichero, "03 06 19 32 47 49\n"); fprintf(fichero, "08 12 20 34 47 50"); /*fprintf(fichero, "01 32 34 38 41 44\n03 06 19 32 47 49\n08 12 20 34 47 50");<== o este solo fprintf*/ fclose(fichero); /**************************************************************************/ if ((fichero = fopen(NOM_ARCHIVO, "r")) == NULL){ perror(NOM_ARCHIVO); return EXIT_FAILURE; } if ((fichero2 = fopen(NOM_ARCHIVO2, "w")) == NULL){ perror(NOM_ARCHIVO); return EXIT_FAILURE; } while (fscanf(fichero,"%g %g %g %g %g %g", &v[0], &v[1], &v[2], &v[3], &v[4], &v[5])==6){ for (i=0;i<6;i++) printf ("v[%d]= %g ",i, v[i]); puts("\n");puts("\n"); for (i=0;i<6;i++) for (j=0;j<6;j++){ if (i!=j) a[i][j]=v[j]; else a[i][j]=v[i]+1; } fprintf (fichero2, "\n "); for (i=0;i<6;i++){ for (j=0;j<6;j++){ printf ("%g ", a[i][j]); fprintf (fichero2, "%g ", a[i][j]); }fprintf (fichero2, "\n ");puts("\n"); } } fclose(fichero); fclose(fichero2); return EXIT_SUCCESS; }
Saluditos!. P.D: Recuerda que los ficheros generados se encuentran en la misma carpeta donde está el código.
|
|
« Última modificación: 11 Enero 2013, 16:32 pm por leosansan »
|
En línea
|
|
|
|
luis456
Desconectado
Mensajes: 548
|
Animo que son dos dias ¡ ¡ ¡. Como te he comentado me defiendo más en C que en C++, no obstante haré lo que tú comentas y me iré mirando los ficheros en C++. Pero para que veas que es relativamente sencillo, te dejo el código en C -guárdalo con la extensión .c -. No hace falta manejar memoria dinámica ya que sólo haces uso de un array de seis elementos. La idea es leer una línea de esos seis elementos, formar la matriz con los incrementos correspondientes y guardarla en un nuevo fichero. Así de sencillo: un solo array y una sola matriz para todo, independientemente de cuantas líneas tenga el fichero. Para que lo" veas" te dejo los printf -en C++ serían cout-:#include <stdio.h> #include <stdlib.h> #define NOM_ARCHIVO "luis_C.txt" #define NOM_ARCHIVO2 "luis2_C.txt" #define NUM_ELEM 6 int main(void){ FILE *fichero,*fichero2; float v[NUM_ELEM],a[6][6]; int i,j; /*********** ESTO LO PUEDES QUITAR CREANDO EL FICHERO A MANO ************/ if ((fichero = fopen(NOM_ARCHIVO, "w")) == NULL){ perror(NOM_ARCHIVO); return EXIT_FAILURE; } fprintf(fichero, "01 32 34 38 41 44\n"); fprintf(fichero, "03 06 19 32 47 49\n"); fprintf(fichero, "08 12 20 34 47 50"); /*fprintf(fichero, "01 32 34 38 41 44\n03 06 19 32 47 49\n08 12 20 34 47 50");<== o este solo fprintf*/ fclose(fichero); /**************************************************************************/ if ((fichero = fopen(NOM_ARCHIVO, "r")) == NULL){ perror(NOM_ARCHIVO); return EXIT_FAILURE; } if ((fichero2 = fopen(NOM_ARCHIVO2, "w")) == NULL){ perror(NOM_ARCHIVO); return EXIT_FAILURE; } while (fscanf(fichero,"%g %g %g %g %g %g", &v[0], &v[1], &v[2], &v[3], &v[4], &v[5])==6){ for (i=0;i<6;i++) printf ("v[%d]= %g ",i, v[i]); puts("\n");puts("\n"); for (i=0;i<6;i++) for (j=0;j<6;j++){ if (i!=j) a[i][j]=v[j]; else a[i][j]=v[i]+1; } fprintf (fichero2, "\n "); for (i=0;i<6;i++){ for (j=0;j<6;j++){ printf ("%g ", a[i][j]); fprintf (fichero2, "%g ", a[i][j]); }fprintf (fichero2, "\n ");puts("\n"); } } fclose(fichero); fclose(fichero2); return EXIT_SUCCESS; }
Saluditos!. P.D: Recuerda que los ficheros generados se encuentran en la misma carpeta donde está el código. Hola Leo gracias por tu dedicación a estos proyectos locos que hago ya estoy viendo las diferencias en c y c++ y mezclado con foxpro salen una buena ensalada Luis
|
|
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
Hola Leo gracias por tu dedicación a estos proyectos locos que hago ya estoy viendo las diferencias en c y c++ y mezclado con foxpro salen una buena ensalada Luis Al final logré una horita y he podido empezar a leer sobre los ficheros en C++. Te paso el código en C++ de lo que pedias ¡ ¡ ¡. Compilalo y ejecutalo y luego abre el fichero de texto luis2.txt, ahí estarán todas las matrices resultantes de aplicar el incremento de uno a cada array, todo un gustazo ¡ ¡ ¡ y en luis.txt es donde están, o bien tú lo pones a mano, los arrays.#include <iostream> #include <fstream> #include <string> using namespace std; int main () { int i,j,v[6]={0},a[6][6]; /*********** ESTO LO PUEDES QUITAR CREANDO EL FICHERO A MANO ************/ fstream myfile ("luis.txt"); if (myfile.is_open()){ myfile << "01 32 34 38 41 44\n"; myfile << "03 06 19 32 47 49\n"; myfile << "08 12 20 34 47 49\n"; myfile.close(); } else cout << "\n Incapaz de crear o abrir el fichero \n"; /**************************************************************************/ string line; ifstream myfile1 ("luis.txt"); if (myfile1.is_open()){ ofstream myfile3 ("luis2.txt"); if (myfile3.is_open()){ myfile1 >>v[0] >>v[1]>>v[2] >>v[3]>>v[4] >>v[5]; while ( (!myfile1.eof())) { for (i=0;i<6;i++) cout << "v["<<i<<"] = "<<v[i] << " "; cout <<endl; for (i=0;i<6;i++) for (j=0;j<6;j++){ if (i!=j) a[i][j]=v[j]; else a[i][j]=v[i]+1; } myfile3 << "\n ";cout <<endl; for (i=0;i<6;i++){ for (j=0;j<6;j++){ cout << a[i][j]<< " "; myfile3 << a[i][j] <<" "; }myfile3 << "\n ";cout <<endl; } myfile1 >>v[0] >>v[1]>>v[2] >>v[3]>>v[4] >>v[5]; } myfile3.close();/**/ } else cout << "\n Incapaz de crear o abrir el fichero \n"; myfile1.close(); } else cout << "\n Incapaz de crear o abrir el fichero \n"; return 0; }
Saluditos!.P.D: Es mi primer código con ficheros en C++. Supongo que la semana que viene, cuando me haya visto el tema con más calma, me parecerá horrible pero ........ hace lo que pedías.
|
|
|
En línea
|
|
|
|
luis456
Desconectado
Mensajes: 548
|
Hola Leo el codigo funciona de Pm pero en cuanto le pongo mas numeros manualmente no me sale nada, tampoco logro que lea el archivo con los registros que me hace el otro codigo tengo la idea de que en el nombre de " myfile3 " tiene que ver en algo ? saludos luis using namespace std; int main () { int i,j,v[6]={0},a[6][6]; /*********** ESTO LO PUEDES QUITAR CREANDO EL FICHERO A MANO ************/ // fstream myfile ("luis.txt"); // if (myfile.is_open()){ // myfile << "01 32 34 38 41 44\n"; // myfile << "03 06 19 32 47 49\n"; // myfile << "08 12 20 34 47 49\n"; // myfile << "09 13 22 38 45 49\n";<----------ya con esto no va ;) // myfile.close(); // } // else cout << "\n Incapaz de crear o abrir el fichero \n"; /**************************************************************************/ string line; ifstream myfile1 ("luis.txt"); if (myfile1.is_open()){ ofstream myfile3 ("luis2.txt"); <---------------------------------myfile3--el nombre no influye ? if (myfile3.is_open()){
|
|
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
me gustaria q me dijeran si aplique la herencia bien en este programa c++
Programación C/C++
|
eduardo17445
|
0
|
1,507
|
18 Noviembre 2012, 19:45 pm
por eduardo17445
|
|
|
¿Como hacer que los registros DS y ES apunten al Segmento de Codigo (CS)???
ASM
|
harry_the_blogger
|
7
|
3,558
|
22 Agosto 2014, 21:06 pm
por Eternal Idol
|
|
|
[Powershell] Pequeña función para comprobar si un dominio tiene registros MX
Scripting
|
fe80Grau
|
0
|
2,278
|
3 Septiembre 2014, 00:44 am
por fe80Grau
|
|
|
Como hacer caer registros en BD sql server usando C# MVC
.NET (C#, VB.NET, ASP)
|
Merian22
|
1
|
2,534
|
18 Diciembre 2014, 03:49 am
por Eleкtro
|
|
|
programa en c++ con registros ayudenme la verdad no se como se hace
Programación C/C++
|
rakimchess
|
1
|
1,990
|
11 Junio 2016, 18:51 pm
por AlbertoBSD
|
|