Лекція 14. Функції обміну з потоками
5. Довільний доступ до потоку
У наведених вище прикладах потоки використовувалися як файли послідовного доступу. Операції читання або записи в потік починалися з поточної позиції потоку, яка визначається внутрішнім покажчиком потоку. При відкритті покажчик показує на початок потоку в режимі "r" і "w", і на кінець потоку в режимі "a".
Після виконання певної операції обміну покажчик змінюється й рівняється нової поточної позиції потоку. Наприклад, якщо з потоку прочитано 1 символ, то покажчик збільшується на 1.
Але існує можливість позиціонувати покажчик на будь-яку позицію в потоці, тобто реалізувати прямий доступ до файлу. Існує п'ять функцій для позиціонування покажчика потоку:
1. ftell(point) - передає поточну позицію покажчика потоку.
2. fgetpos(point, long) – передає поточну позицію покажчика потоку, передає 0, якщо визначення відбулося правильно й -1 інакше.
3. fsetpos(point, long) – установлює відповідну позицію покажчика потоку.
4. fseek(fp, count, start);, установлення покажчика на будь-яку позицію покажчика потоку, де fp - покажчик на файл; count - кількість байт типу long, визначає абсолютну або відносну позицію у файлі; start - типу int, з якої позиції потрібно відраховувати кількість байт count.
5. rewind (fp) перейти на початок файлу, аналогічна fseek (fp, 0L, SEEK_SET).
Якщо потік відкрито для додавання (режим "а", "а+"), тоді запис завжди здійснюється в кінець файлу. Тобто хоч відповідними функціями можна знайти потрібну позицію, але при спробі запису покажчик попередньо буде встановлений на кінець файлу. Відзначені функції організації прямого доступу не можна застосовувати до стандартних файлів в текстовому форматі.
Шрифти
Розмір шрифта
Колір тексту
Колір тла
Кернінг шрифтів
Видимість картинок
Інтервал між літерами
Висота рядка
Виділити посилання
Вирівнювання тексту
Ширина абзацу