06.05.2013 Views

CONTENIDO DE LA LECCIÓN 8

CONTENIDO DE LA LECCIÓN 8

CONTENIDO DE LA LECCIÓN 8

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

MIGUEL Á. TOLEDO MARTÍNEZ<br />

int main(void)<br />

{<br />

La línea creditoSalida.seekp( (cliente.numeroCuenta - 1 ) * sizeof(datoCliente) ); ubica el<br />

apuntador de posición colocar para el objeto creditoSalida en la localidad de bytes calculada<br />

por (cliente.numeroCuenta - 1 ) * sizeof(datoCliente). Debido a que el número de cuenta está<br />

entre 1 y 100, se resta 1 al número de cuenta cuando se calcula la localidad, en bytes, del<br />

registro. Por lo tanto, para el registro 1 el apuntador de posición de archivo se establece al byte<br />

0 del archivo. Observe que el objeto creditoSalida de ofstream se abre mediante el modo de<br />

apertura de archivo ios::ate. El apuntador de posición de archivo colocar se establece<br />

inicialmente al final del archivo, pero los datos se pueden escribir en cualquier lugar de él.<br />

LECTURA SECUENCIAL <strong>DE</strong> DATOS <strong>DE</strong>S<strong>DE</strong> UN ARCHIVO <strong>DE</strong> ACCESO ALEATORIO<br />

Ejemplo 7.28<br />

ofstream creditoSalida("credito.dat", ios::ate);<br />

if(!creditoSalida)<br />

{<br />

cerr > cliente.nombre >> cliente.balance;<br />

creditoSalida.seekp( (cliente.numeroCuenta - 1 ) * sizeof(datoCliente) );<br />

creditoSalida.write(reinterpret_cast(&cliente),<br />

sizeof(datoCliente));<br />

cout > cliente.numeroCuenta;<br />

}//Fin de while<br />

En las secciones anteriores creamos un archivo de acceso aleatorio y escribimos datos en ese<br />

archivo. En esta sección desarrollaremos un programa al que llamaremos: LECSEC.CPP, que<br />

lee el archivo de manera secuencial e imprime solamente los registros que contienen datos. Estos<br />

programas producen un beneficio adicional: los registros se encuentran ordenados.<br />

FUNDAMENTOS – <strong>LECCIÓN</strong> 7 7-48

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!