Файловая система – класс CStdioFile
Файловая система – класс CStdioFile
Если вы привыкли пользоваться функциями потокового ввода/вывода из стандартной библиотеки трансляторов Си и Си++, обратите внимание на класс CStdioFile , наследованный от базового класса CFile. Этот класс позволяет выполнять буферизованный ввод/вывод в текстовом и двоичном режиме.
CStdioFile?CFile?CObject
В текстовом режиме выполняется специальная обработка символов возврата каретки и перевода строки. Когда в файл, открытый в текстовом режиме, записывается символ перевода строки (код 0x0A), он преобразуется в два символа – символ перевода строки (код 0x0A) и символ возврата каретки (код 0x0D). И наоборот, когда из файла считывается пара символов перевода строки и возврата каретки, они преобразуются в один символ перевода строки.
Для объектов класса CStdioFile можно вызывать все методы его базового класса CFile, кроме методов Duplicate, LockRange и UnlockRange. Напомним, что класс CMemFile, также наследованный от базового класса CFile, тоже работает с этими методами.
В класс CStdioFile входит элемент данных m_pStream, который содержит указатель на открытый файл. Если объект CStdioFile создан, но файл либо еще не открыт, либо закрыт, тогда m_pStream содержит константу NULL.
Класс CStdioFile имеет три различных конструктора. Первый конструктор класса CStdioFile не имеет параметров:
CStdioFile();
Этот конструктор только создает объект класса, но не открывает никаких файлов. Чтобы открыть файл, надо вызвать метод Open базового класса CFile.
Второй конструктор класса CStdioFile можно вызывать, если файл уже открыт и вам надо создать новый объект класса и связать с ним открытый файл:
CStdioFile(FILE* pOpenStream);
Этот конструктор можно использовать, если файл был открыт стандартной функцией fopen.
Параметр pOpenStream должен содержать указатель на файл, полученный вызовом стандартной функции fopen.
Третий, последний конструктор можно использовать, если надо создать объект класса CStdioFile, открыть новый файл и связать его с только что созданным объектом:
CStdioFile(LPCTSTR lpszFileName, UINT nOpenFlags) throw(CFileException);
Если указанный файл не может быть открыт, вызывается исключение CFileException.
Параметр lpszFileName должен содержать указатель на строку с именем файла. Можно указать полный путь файла, а не только его имя. Параметр nOpenFlags определяет режим, в котором будет открыт файл. Возможные значения этого параметра были описаны ранее (см. Метод Open класса CFile).
Для чтения и записи в текстовый файл класс CStdioFile включает два новых метода ReadString и WriteString. Метод ReadString позволяет прочитать из файла строку символов, а метод WriteString – записать.
Метод ReadString имеет две формы. Первая используется для чтения строк из файла в буфер памяти, а вторая для чтения строк и записи их в объект класса CString.
Вот описание первой формы метода ReadString:
virtual LPTSTR ReadString(LPTSTR lpsz, UINT nMax) throw(CFileException);
Из открытого файла считывается текстовая строка и записывается в буфер lpsz. Считается, что строка файла оканчивается символами перевода строки и возврата каретки. В конец строки, записанной в буфер lpsz, заносится символ двоичного нуля ().
Максимальное количество считываемых символов определяется параметром nMax. Если в строке файла больше, чем nMax – 1 байт, то остальные символы не будут прочитаны. Метод ReadString возвращает указатель на прочитанную строку или NULL, если достигнут конец файла.
Вторая форма метода ReadString не намного отличается от первой. Вместо двух параметров lpsz и nMax указывается один параметр rString, указывающий на объект класса CString, в который будет записана строка, прочитанная из файла:
BOOL ReadString(CString& rString) throw(CFileException);
Еще одно отличие второй формы метода ReadString заключается в типе возвращаемого им значения. Если достигнут конец файла, то вторая форма метода ReadString возвращает константу FALSE.
Для записи в файл текстовой строки предназначен метод WriteString:
virtual void WriteString(LPCTSTR lpsz) throw(CFileException);
В качестве параметра lpsz этого метода надо указать адрес буфера с текстовой строкой, закрытой символом . Символ не записывается в файл. Если в текстовой строке lpsz есть символы перевода строки, они записываются как пара символов возврата каретки и перевода строки.
Метод WriteString может вызвать исключение, если во время записи в файл произойдет ошибка, например переполнение диска.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Файловая система
Файловая система Файловая система – это правила, определяющие, каким образом будет организовано хранение данных на дисках. Поскольку данные хранятся в виде файлов, файловая система определяет их формат – максимально возможные размер, длину имени и другие
1.3.1 Файловая система
1.3.1 Файловая система Файловая система UNIX характеризуется:• иерархической структурой,• согласованной обработкой массивов данных,• возможностью создания и удаления файлов,• динамическим расширением файлов,• защитой информации в файлах,• трактовкой периферийных
3.1. Файловая система
3.1. Файловая система Прежде чем перейти к настройкам системы, нам нужно познакомиться поближе с файловой системой Linux. О структуре мы уже немного поговорили в разд. 2.3, когда разбивали жесткий диск. В табл. 2.1 были перечислены разделы, которые можно создать в Linux, а это не что
7.2.2.1. Корневая файловая система и система инициализации
7.2.2.1. Корневая файловая система и система инициализации Итак, вы выбрали загрузку Linux. Загрузчик GRUB загрузит ядро, а затем передаст ему параметры и управление. Подробновесь процесс загрузки ядра рассматриваться здесь не будет. Вам достаточно знать следующее: ядру при
Файловая система
Файловая система Теперь рассмотрим несколько команд rundll32.exe, предназначенных для работы с файловой системой Windows. С их помощью можно как создавать файлы, так и удалять уже созданные файлы и каталоги Windows, но нельзя указать содержимое
Файловая система
Файловая система Настройки файловой системы являются критически важными для оптимизации скорости работы компьютера. Как правило, если параметры реестра, описывающие работу файловой системы, не оптимизированы, то возможно снижение скорости работы компьютера на 10-70%. Все
Файловая система
Файловая система Теперь скажем несколько слов о содержимом файловой системы Windows. Как правило, здесь также есть над чем поработать, особенно если места на жестком диске мало. Автор лишь приведет определенные пути к каталогам и ветви реестра, а вы сами решайте, нужны ли они
Файловая система
Файловая система С помощью этого раздела можно указать права доступа к различным каталогам файловой системы Windows XP. Чтобы указать права доступа к каталогу, необходимо сначала добавить в раздел Файловая система путь к каталогу. Для этого необходимо в контекстном меню
Файловая система
Файловая система Для доступа к файловой системе используется следующий вызов: Set имя_объекта = CreateObject("Scripting.FileSystemObject"). Объект поддерживает следующие методы.? BuildPath("путь к каталогу", "название файла") — создает путь на основе указанного пути к каталогу и имени файла. Иными
Файловая система (класс CFile)
Файловая система (класс CFile) Библиотека MFC включает класс для работы с файловой системой компьютера. Он называется CFile и также наследуется от базового класса CObject. Непосредственно от класса CFile наследуются еще несколько классов – CMemFile, CStdioFile, CSocketFile.При работе с файловой
Файловая система – класс CFile
Файловая система – класс CFile Библиотека MFC включает класс CFile, предназначенный для обеспечения работы с файлами. Он позволяет упростить использование файлов, представляя файл как объект, который можно создать, читать, записывать и т. д. Класс CFile наследуется
Файловая система – классы CMemFile и CStdioFile
Файловая система – классы CMemFile и CStdioFile В библиотеку MFC входит класс CMemFile , наследуемый от базового класса CFile. Класс CMemFile представляет файл, размещенный в оперативной памяти. Вы можете работать с объектами класса CMemFile также, как с объектами класса CFile. Отличие заключается в
6.6.2. Файловая система FAT
6.6.2. Файловая система FAT Файловая система FAT используется ОС MS DOS и ОС Windows для упорядочения файлов и управления ими. В основу данной файловой системы положена таблица размещения FAT (File Allocation Table), которая представляет собой структуру данных, создаваемую ОС при
6.6.2.1. Файловая система FAT 16
6.6.2.1. Файловая система FAT 16 Файловая система FAT 16 поддерживается ОС MS DOS, Windows 95, Windows 98, Windows 2000, а также некоторыми версиями ОС UNIX.Цифра 16 в названии файловой системы указывает на число бит (двоичных разрядов), необходимых для хранения информации о номерах кластеров,
6.6.5. Файловая система UDF
6.6.5. Файловая система UDF Файловая система UDF (Universal Disk Format) разработана в соответствие со стандартом ISO 13346 и используется для размещения информации на CD– и DVD-накопителях, а также для обмена информации между ними. Файловая система UDF позволяет использовать CD и DVD как НЖМД,
Файловая система для SSD
Файловая система для SSD LinuxFormat, #169 (апрель 2013)За последние лет 10-15 мы неоднократно читали победные реляции об успехах в компьютерной области. Однако настоящим успехом последних лет можно считать только начало широкого распространения SSD-накопителей: впервые за всю историю