Акции

Скидка до 40% на создание Бизнес-сайта или Интернет-магазина при заключении договора на поддержку и продвижение!
Подробнее

Новости

2013-09-05

Программирование на языке C. Функция fseek

Функция возвращает ноль при успешном ее выполнении. Однако поиск несуществующей области может и не сгенерировать ошибку. Всегда отслеживайте максимальное число записей в файле и примите меры для предотвращения поиска за пределами границ файла.

Несколько примеров помогут продемонстрировать возможности функции fseek(). Если переменная fop типа FILE * указывает на открытый файл записей типа T, то оператор

fseek(fop, sizeof(Т), SEEK_CUR);

переместит внутренний указатель файла с текущей записи на следующую. Оператор

fseek(f, -sizeof(1), SEEK_CUR);

переместит указатель файла на одну запись назад. Вызов функции fread() перемещает указатель файла вперед, поэтому после чтения одной записи с помощью функции fread() можно использовать предыдущий оператор для восстановления позиции файлового указателя, например, для того, чтобы перезаписать новую информацию в то же место.

Другой удобный оператор находит конец файла:

fseek(f, 0, SEEKEND);

Этот оператор вы можете использовать перед вызовом функции fwrite(), чтобы добавить новые записи в конец файла.

Данный код показывает, как позиционировать указатель файла, чтобы записать одно значение в файл, не затрагивая значений, стоящих до и после заданного. Запустите эту программу, а затем еще раз выполните программы. Как видите, операторы программы находят одиннадцатую запись и меняют ее значение с 10 на 99. Другие значения не затрагиваются. Кстати, если в настоящий момент вас интересует внедрение 1с бухгалтерия, обращайтесь на сайт 1s.msk.ru.

#include

#include



main()

{

FILE *fop;

int value = 99; /* новое значение записи */



fop = fopen( "int .dat ", "r+b");

if (!fop) {

puts ("Can't open int.dat");

exit(1);

}

printf("Writing %d to record #10\n", value);

fseek(fop, 10 * sizeof(int), SEEK_SET);

fwrite(&value, sizeof(int), 1, fop);

fclose(fop);

return 0;

}

Обратите внимание, что строка 9 открывает файл int.dat для чтения/записи в двоичном режиме - возможно, это самый распространенный способ открытия файла для обработки с произвольным доступом. Строка 15 вызывает функцию fseek() для позиционирования внутреннего указателя файла на одиннадцатое значение (запись с номером 10). Строка 16 вызывает функцию fwrite(), которая модифицирует указанное значение.

Источник

Все новости>>

Новости

Все новости...

Полезные материалы

© 2012 VediTa Генеральный партнер компания "НТО ИНТ"

телефон +7 (4752) 48-54-15

создание сайтов в Тамбове

Данный сайт носит информационный характер и ни при каких условиях не является публичной офертой, определяемой положениями Статьи 437 ГК РФ.