Глава 12. Библиотечные функции Borland C++

NameRecord.RecNo = (ftell(fHandle)/sizeof(NAMES)) ;

fwrite(SNameRecord, sizeof(NAMES), 1, fHandle);

strcpy(NameRecord.FirstName,"Jim");

NameRecord.RecNo = (ftell(fHandle)/sizeof(NAMES)) ;

fwritef&NameRecord, sizeof(NAMES), 1, fHandle);

strcpy(NameRecord.FirstName,"David") ;

NameRecord.RecNo = (ftell(fHandle)/sizeof(NAMES)) ;

fwrite(SNameRecord, sizeof(NAMES), 1, fHandle);

strcpy(NameRecord.FirstName,"Chip");

NameRecord.RecNo = (ftell(fHandle)/sizeof(NAMES)) ;

fwrite(SNameRecord, sizeof(NAMES), 1, fHandle);

strcpy(NameRecord.FirstName,"Cheryl") ;

NameRecord.RecNo = (ftell(fHandle)/sizeof(NAMES)) ;

fwrite (SNameRecord, sizeof (NAMES) , 1, fHandle).;

// Переставить файловый указатель на начало файла fseek(fHandle, 0, SEEK_SET); «

// Циклический запрос пользователю

// на ввод номера записи от 0 до 4

// и вывод информации из соответствующей записи

do

{

printf("\n%s\n", "Enter a number from 0 to 4");

printf("%s\n", "Any other key to exit");

ch = getch() ;

if (ch >= '0' && ch <= '4') {

fseek(fHandle, (ch-48) * sizeof(NAMES), SEEK_SET) ;

fread(&NameRecord, sizeof(NAMES), 1, fHandle);

printf("\n%s%d","Record Number ", NameRecord.RecNo);

printf("\n%s%s\n","Name in Record ",NameRecord-. FirstName);

) else

break;

} while (1);

printf("\nTerminating.....\n") ;

// Закрыть файл fclose ( fHandle) ;

return (0) ;

}

Использование файлов с произвольным доступом открывает широкие возможности для ускорения обращения к хранящейся в файле информации. На рис. 12.3 показана картина, получившаяся при выполнении программы 12.10.

ю*