#include< stdio.h >
#include< string.h >
#include< malloc.h >
// Modo de almacenar cadena en un archivo.
// -----------------------------
// 1 - Largo de cadena.
// 2 - Cadena.
/* mian :*/
void main()
{
//*************************************************************************************
//*************************************************************************************
// ESCRIBIENDO....
//*************************************************************************************
//*************************************************************************************
char Cadena[1024];
short Largo;
FILE * file;
// abrimos un archivo nuevo para escribirlo - modo binario.
file = fopen( "c:\test.txt", "wb" );
//------------------------>
// registro1...
//------------------------>
strcpy( Cadena, "Esto es una prueba..." ); // nuestra cadena a almacenar.
Largo = strlen( Cadena ) + 1; // largo de nuestra cadena + terminacion null = 0.
// Guardando en un archivo...
fwrite( &Largo, 1, sizeof(short), file ); // largo de cadena..
fwrite( Cadena, 1, Largo, file ); // cadena.
//------------------------>
// registro2...
//------------------------>
strcpy( Cadena, "Hola mundo..." ); // nuestra cadena a almacenar.
Largo = strlen( Cadena ) + 1; // largo de nuestra cadena + terminacion null = 0.
// Guardando en un archivo...
fwrite( &Largo, 1, sizeof(short), file ); // largo de cadena..
fwrite( Cadena, 1, Largo, file ); // cadena.
// cerrando archivo escritura...
fclose( file );
//*************************************************************************************
//*************************************************************************************
// LEYENDO....
//*************************************************************************************
//*************************************************************************************
char * tmp;
// abrimos el archivo para leerlo - modo binario.
file = fopen( "c:\test.txt", "rb" );
//------------------------>
// registro1...
//------------------------>
// leemos el largo del texo...
fread( &Largo, 1, sizeof(short), file ); // largo de cadena..
tmp = (char *)malloc( Largo ); // creamos una variable ajustada al largo de cadena - con malloc o con new.
fread( tmp, 1, Largo, file ); // leemos la cadena
// mostrando en pantalla...
printf( "
Largo = %i
", Largo );
printf( "Cadena = %s
", tmp );
free( tmp ); // liberamos variable anterior - free - delete.
//------------------------>
// registro2...
//------------------------>
// leemos el largo del texo...
fread( &Largo, 1, sizeof(short), file ); // largo de cadena..
tmp = new(char[Largo]); // c++ creamos una variable ajustada al largo de cadena - con new.
fread( tmp, 1, Largo, file ); // leemos la cadena
// mostrando en pantalla...
printf( "
Largo = %i
", Largo );
printf( "Cadena = %s
", tmp );
delete [] tmp; // c++ liberamos variable anterior - delete.
// cerrando archivo de lectura...
fclose( file );
}