Dev - C++ - Mostrar Archivo

 
Vista:
Imágen de perfil de Willian
Val: 16
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Mostrar Archivo

Publicado por Willian (6 intervenciones) el 30/10/2016 02:08:44
Hola colegas, tengo un problema. y necesito de su ayuda:
En el programa que hice(sobre promotores que venden celulares) me dan un archivo con datos de ingreso y yo tengo que generar un archivo que guarte los datos validos y otro que guarde los datos erróneos, eso lo hice y me anda perfecto, lo hice en una función todo eso. Pero cuando quiero usar el archivo que genere de datos validos en el menú principal es como que no lo encuentra. Ahora les voy a dejar el código de la rutina, el main, Espero que me puedan ayudar muchas gracias. Nose si me olvide pasar algo por dirección como para que el main se entere de que ese archivo se encuentra en alguna dirección de memoria. intente de todo pero no pude resolverlo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
//El main...
 
int main(){
	FILE * Archprom=NULL;
	FILE * Archtel=NULL;
	FILE * DatosValidos=NULL;
	char op1[]="rb",op2[]="ab",op3[]="wb";
	bool pude=false, fin;
	int iposprom,ipostel;
	ty_regProm regP;
	ty_regTel regT;
	tyreg vecreg;
	tyfdm vecfdm[TOPEMES];
	tyvecprom vprom[PROMOTORES];
	tyvectel vtel[TELEFONOS];
	typago vecpago[PROMOTORES];
	CargarProm("Promotores.dat",regP,vprom,Archprom,pude,fin,op1);
	CargarTel("Telefonos.dat",regT,vtel,Archtel,pude,fin,op1);
	ValidoVentas(vtel,vprom,DatosValidos);
	mostrarArchVta("DatosValidos.dat");
       //Sigue pero lo que me interesa es lo que hace hasta donde puse mostrarArchVta.
 
 
 
//código de la rutina..
 
void ValidoVentas(tyvectel vtel[], tyvecprom vprom[], FILE *&DatosValidos){
	tyreg reg;
	FILE *ValVentas;
	//FILE *DatosValidos;
	FILE *DatosErroneos;
	bool cantVtasVal=false;
	bool fechaVal=false;
	bool pude=false;
	bool fin;
	bool abrirDatVal=false;
	bool abrirDatErr=false;
	int buscoProm=0;
	int buscoTel=0;
	char op1[]="rb";
	char op2[]="wb";
 
	abrirArch("ingresoVentas.dat",op1,ValVentas,pude);
	if(pude){
		abrirArch("DatosValidos.dat",op2,DatosValidos,pude);
		abrirDatVal=pude;
		abrirArch("DatosErroneos.dat",op2,DatosErroneos,pude);
		abrirDatErr=pude;
		if (abrirDatVal==true && abrirDatErr==true){
			int contador=0;
			leerArchVentas(ValVentas,reg,fin,pude);
			while(pude && !fin){
				buscoProm=fbusprom(vprom,PROMOTORES,reg.nomprom);
				buscoTel=fbustel(vtel,TELEFONOS,reg.desctel);
 
				if(reg.cantven>0){
					cantVtasVal=true;
				}
				else{
					cantVtasVal=false;
				}
				if (reg.ddm<31 || reg.ddm>1){
					fechaVal=true;
				}
				else{
					fechaVal=false;
				}
				if(buscoProm!=-1 && buscoTel!=-1 && cantVtasVal==true &&  fechaVal==true ){
					escribirArchVta(reg,DatosValidos);
				}
				else{
					escribirArchVta(reg,DatosErroneos);
				}
				leerArchVentas(ValVentas,reg,fin,pude);
 
			}
			cerrarArch(ValVentas);
		}
	}
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 661
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Mostrar Archivo

Publicado por agustin (522 intervenciones) el 30/10/2016 22:13:21
Esto en los parametros de la funcion chirria: FILE *&DatosValidos
Prueba con: FILE *DatosValidos
Lo que necesitas es un puntero a FILE y tu estas enviando un puntero a referencia de FILE.
PD: No te olvides de cerrar todos los archivos y mejor usar archivos temporales y si todo va bien sustituyes el bueno por el original y si algo falla por lo que sea, por ejemplo se va la luz, siempre tendrás el original intacto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Willian
Val: 16
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Mostrar Archivo

Publicado por Willian (6 intervenciones) el 31/10/2016 00:00:35
Ya pude solucionarlo era que me faltaba cerrar el archivo en la rutina. Muchas graciaaaas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar