Главная :: Программы для программирования :: wxWidgets :: Классы wxWidgets :: Класс wxFFile
Plug&Pray

Класс wxFFile

wxFFile реализовывает буферизованный файл Ввода/Вывода. Этот небольшой класс разработан таким образом, чтобы минимизировать издержки его использнования - в самом же деле, никаких издержек нет, но использование его автоматически повлечет за собой проверку на ошибки и сгладит все различия между платформами и компиляторами. Внутри него заключен FILE * указатель, используемый стандартной бибилиотекой Ввода/Вывода языка Си(также известной как stdio).

Подключение

#include <wx/ffile.h>

Функции класса

 
wxFile::wxFile
wxFile()

Конструктор по умолчанию

 
wxFFile(const char* filename, const char* mode = "r")

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

mode - Режим, в котором следует открыть файл, используя стандартные строки из Си. Укажите флаг "b", если вы работаете с бинарным файлом под Windows, или же результат может быть непредсказуемым, что обусловлено автоматическим конвертированием в текстовый файл.

 
wxFFile(FILE* fp)

Открывает файл с заданным указателем на файл, который уже открыт.

fp - существующий файловый дескриптор, такой как stderr.

 
wxFile::~wxFile
~wxFile()

Деструктор закроет файл.

 
wxFFile::Attach
void Attach(FILE* fp)

Закрепляет за объектом wxFFile существующий указатель.

Дескриптор должен быть уже открыт, он будет закрыт объектом wxFFile.

 
wxFFile::Close
bool Close()

Закрывает файл и возвращает по успешном завершении истину.

 
wxFFile::Detach
void Detach()

Отделяет указатель от объекта wxFFile - вызывающий ответственен за закрытие файла, если этот дескриптор открыт. IsOpened() вернет false после вызова Detach()

 
wxFFile::fp
FILE * fp() const

Возвращает указатель файла, ассоциирующийся с ним.

 
wxFFile::Eof
bool Eof() const

Возвращает true, если при попытке чтения был достигнут конец файла.

Следует помнить, что поведение дескриптора файла основано на классе wxFile и отличается, так как wxFile::EoF возвращает истину как только будет прочитан последний байт файла.

Следует также помнить, что функция работает только с открытыми файлами, с закрытыми она работать не будет.

 
wxFFile::Error

Возвращает истину, если при работе с файлом имела место ошибка. Аналогична стандартной функции ferror().

 
wxFFile::Flush
bool Flush()

Очищает файл и возвращает истину при успешном завершении.

 
wxFFile::GetKind
wxFileKind GetKind() const

Возвращает тип файла. Возможные значения:

 
enum wxFileKind
{
  wxFILE_KIND_UNKNOWN,
  wxFILE_KIND_DISK,     // файл, поддерживающий поиск условных смещений
  wxFILE_KIND_TERMINAL, // a tty - любой неителлектуальных терминал,
						// с которого может быть осуществлен доступ к рабочей станции
  wxFILE_KIND_PIPE      // a pipe - канал, служит для перенаправления 
						//потока вывода одной программы на вход другой
};
 
wxFFile::IsOpened
bool IsOpened() const

Возвращает истину, если файл открыт. Большинство методов этого класса может быть приминено только к открытым файлам.

 
wxFFile::Length
wxFileOffset Length() const

Возвращает длину файла.

 
wxFFile::Open
bool Open(const char* filename, const char* mode = "r")

Открывает файл в указанном режиме, возвращает истину, если операция прошла успешно.

 
wxFFile::Read
size_t Read(void* buffer, size_t count)

Считывает указанное число байт в буфер, возвращает фактическое число считанных байт.

 
wxFFile::ReadAll
bool ReadAll(wxString * str, wxMBConv& conv = wxConvUTF8)

Считывает полностью содержимое файла в строку. По умолчанию кодировка UTF-8. Возвращает истину при успешном завершении, иначе ложь.

 
wxFFile::Seek
bool Seek(wxFileOffset ofs, wxSeekMode mode = wxFromStart)

Установка головки чтения/записи в указанную позицию. ofs - смещение, mode - wxFromStart, wxFromEnd, wxFromCurrent.

 
wxFFile::SeekEnd
bool SeekEnd(wxFileOffset ofs = 0)

Двигает файловый указатель на указанное число байт относительно конца файла. Возвращает истину по успешном завершении.

 
wxFFile::Tell
wxFileOffset Tell() const

Возвращает текущее положение.

 
wxFFile::Write
size_t Write(const void* buffer, size_t count)

Пишет в файл указанное число байт из буффера. Возвращает количество записанных байт.

 
wxFFile::Write
bool Write(const wxString& s, wxMBConv& conv = wxConvUTF8)

Записывает содержимое строки в файл, возвращает иситну, если процедура была успешной.

Второй аргумент имеет значение лишь в Юникодных билдах wxWidgets, когда conv обычно переводит s в мультибайтовое представление.

Перевод: Сергей Воронков