[ Foro de Pascal ]

archivos...

20-May-2011 14:31
oscar gomez
1 Respuestas

Cordial saludo profesor nacho.

profesor tengo algunas dudas respecto a lo siguiente:

tengo un archivo llamado empleados el cual debo leer por teclado sus respectivos registros, y luego con este archivo que ya reside en disco y que es antiguo, debo realizar un reporte con sus mismos registros y ademas realizar un calculo que involucra a dos campos del registro de dicho archivo(empleados).

bien , inicialmente yo hago

type registro_almacen=record
  .... //campos del registro
  ....
var almacen:file of registro_almacen;
   reg:registro_almacen;
...

assign(empleados,'empleados.dat')
rewrite(empleados)
...
...         lectura de datos desde teclado
...    
   
close(ampleados)

bien apartir del archivo creado de la forma anterior empiezan mis dudas:

como se me pide un reporte con los mismos registros del archivo  anterior y ademas un calculo adicional, debo hacer nuevamente

assign(empleados,'empleados.dat') ???

y que debo hacer despues primero un

reset(empleados)
rewrite(empleados)

o al contrario, es decir primero
rewrite(empleados)
reset(empleados)

ahora para el calculo nuevo deberia declarar una variable adicional de tipo registro_almacen (ademas de la que ya he declarado que en mi caso es reg)o puedo seguir utilizando la misma? para efectos del reporte.
el calculo es el del sueldo que involucra las horas trabajadas y el valor de la hora ( que son datos del registro "registro_almacen"), es decir:

reg.sueldo:=reg.horastrabajadas*reg.valorhora;

o debo hacer porejemplo:

reg2.sueldo:=reg.horastrabajadas*reg.valorhora;

lo pregunto por que como inicialmente sueldo no se leyo como dato de entrada cuando se creo el archivo(antes del reporte), no se si se deba almacenar con una variable distinta a reg??? o si se sigue usando la misma para dicho calculo.

mil gracias por su ayuda.


22-May-2011 21:36
Antonio P.G.

Hola, Óscar.

Con respecto a lo del "assign", esta función crea un "link", digamos. Si no se creó este link con anterioridad en el programa, o si lo destruiste (porque ligaste la variable de tipo archivo a otro archivo), tendrás que hacer de nuevo la función. Si no, no.

El "rewrite". Si aplicas la función "rewrite" sobre un archivo, lo limpias. Asñi que, si lo que pretendes es leerlo, utiliza solamente "reset".

Por último, respecto a la creación de variables, no es necesario, es decir, se pueden usar las "antiguas".

(Creo que esto ya lo sabías, por el otro post más reciente, pero de todas formas respondo para que no quede colgado, jeje).

¡Ciao!






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)