UTNianos

Versión completa: ayuda con el type de tp
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Buenas gente, estoy haciendo un tp que nos mandó el prof. bianchi para las vacaciones (un copado...=D) y en una parte dice esto:
Cita:Archivo de habitaciones (Ordenado por código de habitación)
1. Código de habitación (3 dígitos)
2. Estado (O/L) carácter
3. Tipo (byte)
4. Fecha de ocupación (ddmmaa)
para eso yo hice este registro para el archivo:


TrHabitaciones = record
codh: word;
est: char;
tipo: byte;
fechao: longint;
end;


queria saber si alguno q la tenga clara me podría decir si esta bien hecho el record pq cuando lo quiero pasar a un archivo de texto me tira bien las cosas hasta la parte del tipo y ya ni idea q ponerle wall
saludos
Ese es todo tu type?

Pasalo completo, así lo vemos mejor; capaz el problema esté en el resto del type.

De todas maneras, hay algo que está medio maso:

El último campo del registro, antes del "end;" no va con punto y coma
Para ese archivo, es todo el type. Este es el enunciado:
Cita:Un gran Hotel en zona turística con 50 habitaciones necesita controlar su actividad, para ello posee dos archivos:
Archivo de habitaciones (Ordenado por código de habitación)
1. Código de habitación (3 dígitos)
2. Estado (O/L) carácter
3. Tipo (byte)
4. Fecha de ocupación (ddmmaa)
Archivo de movimientos (cronológico)
1. Código de habitación
2. Fecha del movimiento (ddmmaa)
3. Hora de Movimiento (byte)
4. Código de movimiento (I o S)
Archivo de cierre habitación
1. Código de habitación
2. Fecha del cierre (ddmmaa)
3. Hora de cierre.
4. Días ocupados
Se pide:
A. Actualizar el archivo de habitaciones.
B. Generar archivo de cierre, ordenado por fecha con un registro por cada liberación de una habitación. Ver diseño.
C. Informar una vez por cada día de movimiento la cantidad de habitaciones libres.


Notas:
Puede haber varios movimientos por dia.
El periodo analizado es dentro del mismo año.
El código de habitación no es consecutivo (el numero formado por piso habitación dentro del piso)
Si se retira luego de las 10 hs se considera un dia mas de ocupación.
Nadie se hospeda mas de 25 dias.
No hay errores en la información.

y este es mi código por ahora:


program TP;
uses crt;
type
TrHabitaciones = record
codh: word;
est: char;
tipo: byte;
fechao: longint;
end;
TrMovimientos = record
codh: word;
fecham: longint;
horam: byte;
codm: char;
end;
TrCierre = record
codh: word;
fechac: longint;
horac: byte;
dias: byte;
end;
TH = file of TrHabitaciones;
var
hab: TH;
rhab: TrHabitaciones;
salida: text;
begin
assign(hab, 'HotelH12.DAT');
assign(salida, 'salida.txt');
reset(hab);
rewrite (salida);
while (not eof(hab)) do
begin
read(hab,rhab);
write(salida,'Código: ',rhab.codh,'':3);
write(salida,'Estado: ',rhab.est,'':3);
write(salida,'Tipo: ',rhab.tipo,'':3);
writeln(salida,'Fecha: ',rhab.fechao,'':3);
end;
close (hab);
close (salida);
end.



Lo que pasa es que quería aunque sea tener el primer archivo en un txt así podía ver si lo estaba haciendo bien, pero ni siquiera me sale jaja
Bien

Te estás comiendo un pequeño detalle.
En el type estás definiendo los tipos de registros, pero no estás definiendo los tipos de archivo
Es decir, seguramente tengas un archivo de Habitaciones, que tiene registros del tipo TrHabitaciones

Entonces tenés que hacer el type para el TrHabitaciones, y después declarar un tipo de archivo de habitaciones que contenga esos registros.

O sea (deberías agregar esto debajo de la definición de los registros en el Type):


ArcHabit = File of TrHabitaciones;


Y así con los demás archivos
Pero no es lo mismo que el TH q hice? tmb por ahí esta mal el archivo q pasó el profesor xD
Mmm, no me scrolleaba lo que estaba en el tag code.. Confused

Le sacaste los punto y coma que te dije que estaban de más?

Porque en lo que copiaste, siguen estando.

Como primera medida deberías hacer eso.
sisi en el que tengo en la máquina se lo saque, para mi esta mal el type, voy a ir probando con distintos tipos hasta que salga jaja
Yo esos punto y coma los ponía siempre...de hecho me acabo de fijar en TPs viejos y lo pongo así:


tipo=record
campo1:tipo1;
campo2:tipo2;
.......
campoN:tipoN;
end;

Lo miré muy por arriba (después lo miro mejor) y en mi compilador me tira un error de linkeo (yo le agregué una linea más para que me imprima por pantalla)
Pero sin esa línea (es decir, tal cual lo pusiste) me lo compilaba

Qué error te tira?
Ese es un problema, cuando lo compilo no me tira error y me crea el archivo de salida, pero me lo crea con un formato erróneo.
Listo, hable con el profesor y me paso de nuevo el archivo, parece q se había dañado o bajado mal... gracias a todos por la ayuda
saludos
URLs de referencia