Intro de Base de Datos
Procedure Cargar(var pp: tPersonas; p: tNombre);
{Agrega una persona en el bloque actual o comienza un nuevo bloque al final del
archivo (no se buscaespacio libre). El bloque actual es el ultimo del archivo}
Var
tamReg: Byte;
tamReg: SE USA PARA GUARDAR LA LONGITUD DEL NUEVO NOMBRE QUE VAMOS A CARGAR EN
EL ARCHIVO
disponibles: Integer; {bytesdisponibles en un bloque, sin exceder el porc.
de carga}
CREO QUE ES REDUNDANCIA EXPLICAR PARA QUE SE USA ESTA VARIABLE YA QUE SU NOMBRE LO
DICE TODO, PERO PARA LOS QUE NO SABEN, LA FORMA EN QUE NOSMANEJAMOS EN ESTE
PROGRAMA CONSISTE EN TENER UNA EXTRUCTURA APARTE (EN ESTE CASO OTRO ARCHIVO) QUE
NOS VA INDICANDO LA CANTIDAD DE ESPACIOS LIBRES QUE TENEMOS EN CADA BLOQUE(QUE LO
TENEMOS EN OTROARCHIVO), EJEMPLO: LLAMAREMOS ARCH1 AL ARCHIVO DE BLOQUES,
ARCH2 AL ARCHIVO DE ESPACIOS LIBRES, ENTONCES DECIMOS QUE EL REGISTRO 0 DEL ARCH2
TIENE LA CANTIDAD DE ESPACIO LIBRE QUE TIENE EL BLOQUEQUE ESTA EN EL REGISTRO 0 DE
ARCH1
Begin
tamReg:=Length(p)+1; {longitud del nombre mas un byte por el prefijo de
longitud} LOS STRING LO PODEMOS VER COMO UN ARREGLO DE CARACTERES, QUE GUARDA EN
LAPOSICION 0 LA CANTIDAD DE CARACTERES QUE TIENE DICHO ARREGLO, ENTONCES CUANDO
USAMOS LA FUNCION DE length(unString) LO QUE HACE ES LEER EL VALOR QUE TIENE EN LA
POSICION 0, QUE TIENE LA CANTIDAD DECARACTERES DE DICHO ARREGLO SIN CONTAR LA
POSICION DE LA LONGITUD, EJEMPLO:
STR: STRING[30];
STR:=’HOLA’;
4
H
O
LENGTH(STR)=4;
L
A
PERO SI NOS FIJAMOS EL STRING EN SI TIENELONGITUD 5 POR QUE LA POSICION 0 VIENE
INCLUIDO, PERO QUE DICHA FUNCION ANTES MENSIONADA NO LO REFLEJA, ES POR ESO QUE LE
SUMA 1 A LA LONGITUD DEL STRING.disponibles:=pp.espLibreBloque-Round((1-PorcCarga)*CapacBloque);
pp.espLibleBloque TIENE ALMACENADO LA CANTIDAD DE ESPACIO LIBRE QUE TIENE EL ULTIMO
BLOQUE LEIDO, ESTE BLOQUE NUNCA SE LLENA(AL MOMENTO DE LA CARGA) AL 100%, SIEMPRE
SE DEJA...
Regístrate para leer el documento completo.