Позиционирование
Позиционирование
Чтобы переместить указатель текущей позиции файла в новое положение, можно воспользоваться одним из следующих методов класса CFile – Seek, SeekToBegin, SeekToEnd. В состав класса CFile также входят методы, позволяющие установить и изменить длину файла – GetLength, SetLength.
Когда вы открываете файл, указатель текущей позиции файла находится в самом начале файла. Когда вы читаете данные из файла, этот указатель перемещается в конец файла и указывает на данные, которые будут получены очередной операцией чтения из файла.
Чтобы переместить указатель текущей позиции файла в любое место, можно воспользоваться универсальным методом Seek. Он позволяет переместить указатель на определенное число байт относительно начала, конца файла или текущей позиции указателя:
virtual LONG Seek(LONG lOff, UINT nFrom) throw(CFileException);
Параметр lOff определяет число байт, на которое надо переместить указатель текущей позиции файла. Параметр lOff может быть положительной или отрицательной величиной. Если lOff больше нуля, то указатель смещается в сторону конца файла, если lOff меньше нуля, то указатель смещается в начало файла.
Параметр nFrom определяет, относительно чего задано это смещение. В качестве nFrom можно указать три различные константы, также определенные в классе CFile:
Константа Параметр lOff задает смещение относительно CFile::begin Начала файла CFile::current Текущей позиции файла CFile::end Конца файлаВ случае успешного перемещения указателя файла в новую позицию метод Seek возвращает новое смещение указателя относительно начала файла. Если новая позиция указателя задана неправильно, например, вы пытаетесь переместить указатель в позицию перед началом файла, вызывается исключение.
Чтобы переместить указателя файла в начало или конец файла, наиболее удобно использовать специальные методы. Метод SeekToBegin перемещает указатель в начало файла, а метод SeekToEnd – в его конец. Приведем прототип метода SeekToBegin:
void SeekToBegin() throw(CFileException);
Фактически вызов метода SeekToBegin эквивалентен вызову метода Seek с параметром lOff, содержащим нуль и параметром nFrom, содержащим константу CFile::begin.
Метод SeekToEnd имеет почти такой же прототип как метод SeekToBegin, но перемещает указатель в конец файла:
DWORD SeekToEnd() throw(CFileException);
Метод SeekToEnd возвращает длину файла в байтах. Если вам надо определить длину открытого файла, совсем не обязательно перемещать его указатель. Можно воспользоваться методом GetLength. Этот метод также возвращает длину открытого файла в байтах:
virtual DWORD GetLength() const throw(CFileException);
Метод SetLength позволяет изменить длину открытого файла:
virtual void SetLength(DWORD dwNewLen) throw(CFileException);
Параметр dwNewLen задает новую длину файла в байтах. Метод SetLength может увеличить или уменьшить размер файла. Если новая длина файла меньше чем его текущая длина, то последние байты файла теряются. Если вы увеличиваете размер файла, то значение последних байт неопределенно.
Вы можете определить текущую позицию указателя файла с помощью метода GetPosition. Возвращаемое методом GetPosition 32-разрядное значение определяет смещение указателя от начала файла:
virtual DWORD GetPosition() const throw(CFileException);
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Перспектива: масштабирование и позиционирование
Перспектива: масштабирование и позиционирование С газонокосилкой мы сделаем две вещи:1) увеличим ее с помощью преобразования;2) сдвинем ее вниз и вправо.Эти два изменения в сочетании с переходом создадут эффект приближения газонокосилки в сторону зрителя
Позиционирование перемещаемого объекта
Позиционирование перемещаемого объекта Перемещаемый объект – это блок, который смещается по строке в левую или правую сторону. Свойство float определяет, будет ли блок перемещен влево, вправо или вообще не будет перемещен. Оно может устанавливаться для элементов,
Фиксированное позиционирование
Фиксированное позиционирование Фиксированное позиционирование – разновидность абсолютного позиционирования. Единственным его отличием является то, что контейнер определяется областью просмотра. Для устройств без разбивки фиксированные блоки не перемещаются при
Глава 8. Позиционирование сообщества
Глава 8. Позиционирование сообщества Прежде чем начать продвижение сообщества в ВКонтакте, нужно определиться, для решения каких задач вы его создаете и как будете позиционировать.Основных способов позиционирования сообщества три:1) позиционирование по
1.1. Поиск и позиционирование компонентов
1.1. Поиск и позиционирование компонентов Прежде чем приступить к работе, вам необходимо запустить редактор автоматизированного проектирования электросхем SCHEMATICS из Windows 95/98/NT. На рис. 1.1 показан стартовый экран Windows 95/98/NT с указанием пути к редактору проектирования
15.2. Поиск, позиционирование и проводной монтаж компонентов
15.2. Поиск, позиционирование и проводной монтаж компонентов По ходу изучения этого раздела вы будете чертить схему, изображенную на рис. 9.13, и убедитесь в том, что редакторы CAPTURE и SCHEMATICS практически не отличаются друг от друга по своим функциям.Шаг 8 Активизируйте окно
Динамическое позиционирование элементов управления Windows Forms
Динамическое позиционирование элементов управления Windows Forms Чтобы завершить эту главу, давайте рассмотрим несколько подходов, которые можно использовать для управления размещением элементов управления в форме. Если при создании типа Form вы предполагаете, что элементы