1
« en: Domingo 29 de Junio de 2008, 05:58 »
Hola, estoy haciendo un programa para la facultad, y me surgio un problema, quiero saber como contar la cantidad de caracteres de una variable, probe con la funcin strln(), pero me da error de tipos. Lo q tngo es esto, Un registro de varios campos, quiero q me imprimia en pantalla los valores de los campos del registro, y quiero saber la cantidad de caracteres para imprimirlo ordenadamente dependiendo d la cantidad de caracteres q ocupa la palabra en la pantalla.
Les dejo el codigo para q mas o menos lo entiendan:
treg_emp= record
legajo: longint;
nombre: string[50];
fechaingreso: string[8];
domicilio_calle: string[50];
domicilio_localidad: string[15];
domicilio_provincia: string[15];
telefono: string[15];
dias_trabajo: t_dias_trabajo;
sueldo: real;
end;
Ese es el registro, y ahora les pongo los procedimientos
Procedure MostrarEncabezado;
Begin
Writeln ('____________________________________________________________________________________');
Writeln ('| Localidad | N§ Legajo | Nombre | Calle | Provincia | Subtotal |');
Writeln ('|___________|___________|______________|_________________|______________|__________|');
end;
Procedure Most_Listado ( Var A: T_Arch_Emp; Vec_Ind: T_ind; N: T_Rango);
Var
Reg: TReg_Emp;
I: T_Rango;
Aux: TReg_Ind;
Subtotal: real;
X: String[15];
Y: Longint;
J: String[50];
K: String[50];
L: String[15];
Begin
Reset (A);
MostrarEncabezado;
I:=1;
Subtotal:=0;
While (I <= N) do
Begin
Aux.Domicilio_Localidad:= Vec_Ind.Domicilio_localidad;
While (Aux.Domicilio_Localidad = Vec_Ind.Domicilio_Localidad) and (I<=N) do
Begin
Seek (A, Vec_Ind.PRR);
Read (A,Reg);
X:= Reg.Domicilio_Localidad;
Y:= Reg.Legajo;
J:= Reg.Nombre;
K:= Reg.Domicilio_Calle;
L:= Reg.Domicilio_Provincia;
Writeln ('| ',X,'| ':12-strlen(X),Y,'| ':15:strlen(Y),J,'| ',K,'| ',L,'| ',Subtotal,'| ');
Inc(I);
Subtotal:= Subtotal + Reg.Sueldo;
end;
Writeln (' ':63, Subtotal);
end;
end;
Ahi les deje los procedure, espero q entiendan cual es el problema q tngo, lo q me dice es q error de tipo... si saben como solucionarlo les agradesco...