Використання функції сі fseek
Читання з файлу здійснюється послідовно, тобто після виконання чергової операції зчитування курсор буде встановлений на наступний непрочитанный символ. Змінити положення покажчика можна за допомогою функції fseek(). Вона використовується для переміщення вказівника файлу в певну позицію. Функція fseek() задана в стандартній бібліотеці мови Сі — stdio.h, тому на початку програми, в якій функція буде використовуватися, повинно бути декларація: #include .
Значення параметра pos одно SEEK_SET — зміщення буде визначатися відносно початку файлу. При значенні рівному SEEK_CUR зміщення вважається від поточної позиції курсору. Якщо він має значення SEEK_END, отже, зміщення буде відраховуватися від кінця файлу. Функція сі fseek повертає нуль у разі успішного переміщення покажчика і будь-яке ненульове значення, якщо вона не змогла виконати потрібну дію, наприклад, у разі виходу покажчика за кордону файлу. Значення, що повертається, буде дорівнювати EBADF при передачі у функцію невірного покажчика файлу, EINVAL у разі неприпустимого значення аргументу або ESPIPE при помилці в параметрі offset, наприклад, вихід за межі файлу.
Програма
Опис
Підключаємо стандартну бібліотеку мови С stdio.h Задаємо файлову змінну Відкриваємо файл на читання Переміщаємо курсор на 7 байт вперед від поточного положення (оскільки ми тільки відкрили файл, курсор знаходиться на початку) Друкуємо поточне положення курсору за допомогою функції ftell() Закриваємо файл
Крім розглянутої, є і інші функції для роботи з покажчиком, наприклад: Rewind() - використовується для установки курсору в початок файлу. Ftell() - повертає положення покажчика в даний момент. Feof() - служить для ідентифікації кінця файлу. При досягненні кінця файлу значення функції буде дорівнює true.
Опис функції fseek в сі
Int fseek(FILE *FilePointer, long offset, int pos) - функцію передаються такі аргументи: FILE *FilePointer - вказівник на об'єкт FILE. До використання функції необхідно відкрити файл за допомогою функції fopen(). Offset — через даний аргумент у функцію передається, на скільки байт повинен бути зміщений покажчик. Тип довге ціле (long int). Позитивне значення параметра означає зміщення вправо, а негативне вліво. Pos — визначає позицію, з якої додається зсув. Тип даного аргументу ціле (int). Параметр pos визначає відправну точку, від якої буде відраховуватися зміщення. Він може приймати три значення - 012 які рівносильні символьним константам SEEK_SET(0), SEEK_CUR(1) і SEEK_END(2):Значення параметра pos одно SEEK_SET — зміщення буде визначатися відносно початку файлу. При значенні рівному SEEK_CUR зміщення вважається від поточної позиції курсору. Якщо він має значення SEEK_END, отже, зміщення буде відраховуватися від кінця файлу. Функція сі fseek повертає нуль у разі успішного переміщення покажчика і будь-яке ненульове значення, якщо вона не змогла виконати потрібну дію, наприклад, у разі виходу покажчика за кордону файлу. Значення, що повертається, буде дорівнювати EBADF при передачі у функцію невірного покажчика файлу, EINVAL у разі неприпустимого значення аргументу або ESPIPE при помилці в параметрі offset, наприклад, вихід за межі файлу.
Приклад
Програма
Опис
#include
int main()
{
FILE *fp;
fp = fopen("test.txt", "r");
fseek(fp, 7 SEEK_CUR);
printf("%ld", ftell(fp));
fclose(fp);
return 0;
}
Підключаємо стандартну бібліотеку мови С stdio.h Задаємо файлову змінну Відкриваємо файл на читання Переміщаємо курсор на 7 байт вперед від поточного положення (оскільки ми тільки відкрили файл, курсор знаходиться на початку) Друкуємо поточне положення курсору за допомогою функції ftell() Закриваємо файл
Крім розглянутої, є і інші функції для роботи з покажчиком, наприклад: Rewind() - використовується для установки курсору в початок файлу. Ftell() - повертає положення покажчика в даний момент. Feof() - служить для ідентифікації кінця файлу. При досягненні кінця файлу значення функції буде дорівнює true.
Заключні зауваження
При роботі з даною функцією потрібно пам'ятати, вона працює тільки з потоковим введенням-виведенням. Також не слід забувати закривати файл функцією fclose().Цікаво по темі
Перевірка наявності файлу PHP file_exists
Широке застосування баз даних не позбавило звичайну файлову систему значення. Запис і читання файлів як і раніше займають значиме місце в
Функція strpos в PHP: визначення позиції підрядка
Пошук входження підрядка в рядок за допомогою функції PHP strpos(). Типи вхідних і вихідних параметрів, приклади і тонкощі використання. Схожі
Читання файлу функцією file get content PHP
Читання вмісту файлу цілком - природна операція, і в багатьох випадках краще рішення - використання функції file_get_contents на PHP.