Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Optimizacion de codigo

Estas en el tema de Optimizacion de codigo en el foro de C/C++ en Foros del Web. Hola amigos mi problema es el siguiente: En mi trabajo para la Universidad me pidieron que use ficheros bueno, el problema radica en lo siguiente, ...
  #1 (permalink)  
Antiguo 09/12/2007, 16:58
 
Fecha de Ingreso: noviembre-2007
Mensajes: 6
Antigüedad: 16 años, 6 meses
Puntos: 0
Sonrisa Optimizacion de codigo

Hola amigos mi problema es el siguiente:

En mi trabajo para la Universidad me pidieron que use ficheros
bueno, el problema radica en lo siguiente, quisiera saber si existe alguna
funcion predeterminadade las librerias del C++ que cuente cuantas filas o columnas posee un fichero,
y si no existiera, talvez si ustedes me podrian guiar en como hacer una fucncion
que haga eso.

Aqui le muestro una que hice pero no cumple con los requisitos que mi docente pide

Código:
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"

struct datos
{
	char nombre[25];
	char apellido[25];
	int edad;
	float salario;
	float bono;
	float horastrab;
	float horasxtras;
	float totalg;
};



int conteo(FILE *archivo)//Esta funcion cuenta el numero de filas pero su defecto es que se pierde tiempo y entre mayor sea la cantidad de datos, mayor sera el tiempo perdido
{
int cont=0, edad;
float a,b,c,d;
char f[30], h[30];
	while ( !feof(archivo))
	{
		fscanf(archivo, " %f",&a);
		fscanf(archivo, " %f",&b);
		fscanf(archivo, " %f",&c);
		fscanf(archivo, " %f",&d);
		fscanf(archivo, " %d",&edad);
		fscanf(archivo, " %s",&f);
		fscanf(archivo, " %s\n",&h);
		cont++;
	}
	return cont;
}

int num()
{
	int num;
	printf("Ingrese la cantidad de datos nuevos  a ingresar:");
	scanf("%d", &num);
	return num;
}
void main()
{
	int llenado=0,a=0;
	int n=0;
	FILE *archivo;
	
		if((archivo=fopen("personal.txt", "r"))!=NULL)//Ve si ya existe un archivo.
		{
		a=conteo(archivo);
		llenado=1;
		fclose(archivo);
		}
		
		if(llenado==1)
		{ 
			n=num();
			archivo=fopen("personal.txt", "a");
			datos *vec;
			n=n+a;//Hago esta operacion por que el programa debe revisar si existe un archivo anterior, si existe debe de podersele agregar nuevos datos
			vec=new datos [n];
			//resultados(archivo,n) Funcion con la cual imprimo en mi programa original lo que me pidieron, ademas que en esa funcion se carga a la estructura de arriba los datos del archivo ya ademas es donde se actualiza los datos del archivo(agregando mas filas)
			fclose(archivo);
			delete vec;
		}
}
Un ejemplo del archivo "personal.txt" es como va:


200.000000 250.000000 2002.000000 2800.000000 18 perez guido
2.000000 10.000000 1.250000 500.000000 25 torres juan
2.000000 10.000000 1.250000 500.000000 25 soliz juan
2.000000 10.000000 1.250000 500.000000 25 torres pedro
2.000000 10.000000 1.250000 500.000000 25 torres juan
2.000000 10.000000 1.250000 500.000000 25 torres pablo
2.000000 10.000000 1.250000 500.000000 25 torres julio
2.000000 10.000000 1.250000 500.000000 25 torres judas
2.000000 10.000000 1.250000 500.000000 25 torres mateo



Como ven debo tener una funcion que me cuente las lineas para asi poder manejar mi vector con memoria dinamica y a su vez en ese vector(estructura) debo de cargar los datos del archivo.

Gracias de antemano por su ayuda
  #2 (permalink)  
Antiguo 09/12/2007, 17:59
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 10 meses
Puntos: 24
Re: Optimizacion de codigo

Te dejo un link que te puede ayudar:
http://www.experts-exchange.com/Prog..._20790269.html
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:00.