YSTest  PreAlpha_b400_20130424
The YSLib Test Project
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义  
YSLib::TextFile类 参考

文本文件类。 更多...

#include <yftext.h>

类 YSLib::TextFile 继承关系图:
YSLib::TextFile 的协作图:

Public 成员函数

 TextFile (const_path_t, std::ios_base::openmode=std::ios_base::in, Text::Encoding=Text::CS_Default)
 构造:使用指定文件名、编码和模式初始化文本文件对象。
 
 TextFile (const String &)
 构造:使用指定文件名初始化只读文本文件对象。
 
string GetBOM () const
 取 BOM 字符串。
 
u8 GetBOMSize () const ynothrow
 取 BOM 大小。
 
size_t GetTextSize () const ynothrow
 取文本区段大小。
 
size_t GetTextPosition () const ynothrow
 取文件指针关于文本区段的位置。
 
size_t CheckBOM (Text::Encoding &)
 检查文件头是否有 BOM(Byte Order Mark) ,若有则据此判断编码。
 
void Locate (u32) const
 定位:设置文件读位置。
 
void Rewind () const
 设置文件读位置为文本区段头。
 
template<typename _tChar , typename... _tParams>
Text::ConversionResult ReadChar (_tChar &c, _tParams &&...args) const
 按自身编码读取 Unicode 字符。
 
template<typename... _tParams>
Text::ConversionResult SkipChar (_tParams &&...args) const
 按自身编码读取但不保存 Unicode 字符。
 
bool Truncate (size_t) const override
 截断文本。
 
- Public 成员函数 继承自 YSLib::File
 File ()
 构造。
 
 File (const_path_t, const char *="rb")
 构造:使用指定文件路径初始化对象。
 
 File (const_path_t, std::ios_base::openmode)
 
 File (const String &, const ucs2_t *=u"rb")
 
 File (const String &, std::ios_base::openmode)
 
virtual ~File ()
 析构。
 
bool operator! () const ynothrow
 判断无效性。
 
 operator bool () const ynothrow
 判断有效性。
 
FILE * GetPtr () const ynothrow
 取文件指针。
 
size_t GetSize () const ynothrow
 取文件大小。
 
ptrdiff_t GetPosition () const ynothrow
 取文件指针的位置,返回值语义同 std::ftell 。
 
int Seek (ptrdiff_t offset, int whence) const
 设置文件指针位置。
 
int CheckEOF () const
 检测文件结束符。
 
void Close ()
 关闭文件。
 
int Flush () const
 刷新流。
 
size_t Read (void *ptr, size_t size=1U, size_t nmemb=1U) const
 连续读 nmemb 个大小为 size 文件块到 ptr 中。
 
void Rewind () const
 文件指针返回到文件头,语义同 std::rewind 。
 
size_t Write (void *ptr, size_t size=1U, size_t nmemb=1U) const
 连续写 nmemb 个大小为 size 文件块到 ptr 中。
 
bool Open (const_path_t, const char *="rb")
 以指定方式打开指定路径的文件。
 
bool Open (const_path_t, std::ios_base::openmode)
 
bool Open (const String &, const ucs2_t *=u"rb")
 
bool Open (const String &, std::ios_base::openmode)
 

Public 属性

Text::Encoding Encoding
 编码。
 

Private 属性

size_t bl
 BOM 大小。
 

详细描述

文本文件类。

在文件 yftext.h54 行定义.

构造及析构函数说明

YSLib::TextFile::TextFile ( const_path_t  ,
std::ios_base::openmode  = std::ios_base::in,
Text::Encoding  = Text::CS_Default 
)
explicit

构造:使用指定文件名、编码和模式初始化文本文件对象。

注解
当打开文件大小为零且以可写方式打开时按编码写入 BOM 。
自从
build 341
YSLib::TextFile::TextFile ( const String &  )
explicit

构造:使用指定文件名初始化只读文本文件对象。

自从
build 305

成员函数说明

size_t TextFile::CheckBOM ( Text::Encoding &  cp)

检查文件头是否有 BOM(Byte Order Mark) ,若有则据此判断编码。

返回
BOM 的长度(字节数)。
自从
build 273

在文件 yftext.cpp126 行定义.

参考 YSLib::BOM_UTF_16BE,YSLib::BOM_UTF_16LE,YSLib::BOM_UTF_32BE,YSLib::BOM_UTF_32LE,YSLib::BOM_UTF_8,YSLib::File::GetSize(),YSLib::File::Read(),Rewind(),CHRLib::CharSet::UTF_16BE(),CHRLib::CharSet::UTF_16LE(),CHRLib::CharSet::UTF_32BE(),CHRLib::CharSet::UTF_32LE() , 以及 CHRLib::CharSet::UTF_8().

函数调用图:

string TextFile::GetBOM ( ) const

取 BOM 字符串。

后置条件
Rewind()
自从
build 341

在文件 yftext.cpp114 行定义.

参考 GetBOMSize(),YSLib::File::GetPtr() , 以及 YSLib::File::Rewind().

函数调用图:

u8 YSLib::TextFile::GetBOMSize ( ) const
inline

取 BOM 大小。

在文件 yftext.h89 行定义.

参考自 GetBOM() , 以及 Truncate().

这是这个函数的调用关系图:

size_t YSLib::TextFile::GetTextPosition ( ) const
inline

取文件指针关于文本区段的位置。

在文件 yftext.h92 行定义.

size_t YSLib::TextFile::GetTextSize ( ) const
inline

取文本区段大小。

在文件 yftext.h90 行定义.

void TextFile::Locate ( u32  pos) const

定位:设置文件读位置。

自从
build 273

在文件 yftext.cpp165 行定义.

参考 YSLib::File::Seek().

函数调用图:

template<typename _tChar , typename... _tParams>
Text::ConversionResult YSLib::TextFile::ReadChar ( _tChar &  c,
_tParams &&...  args 
) const
inline

按自身编码读取 Unicode 字符。

自从
build 273

在文件 yftext.h122 行定义.

参考 YSLib::File::GetPtr() , 以及 CHRLib::MBCToUC().

函数调用图:

void TextFile::Rewind ( ) const

设置文件读位置为文本区段头。

在文件 yftext.cpp171 行定义.

参考 YSLib::File::Seek().

参考自 CheckBOM() , 以及 operator>>().

函数调用图:

这是这个函数的调用关系图:

template<typename... _tParams>
Text::ConversionResult YSLib::TextFile::SkipChar ( _tParams &&...  args) const
inline

按自身编码读取但不保存 Unicode 字符。

自从
build 273

在文件 yftext.h133 行定义.

参考 YSLib::File::GetPtr() , 以及 CHRLib::MBCToUC().

函数调用图:

bool TextFile::Truncate ( size_t  size) const
overridevirtual

截断文本。

参见
File::Truncate
自从
build 341

重载 YSLib::File .

在文件 yftext.cpp177 行定义.

参考 GetBOMSize() , 以及 YSLib::File::Truncate().

函数调用图:

类成员变量说明

size_t YSLib::TextFile::bl
private

BOM 大小。

在文件 yftext.h57 行定义.

Text::Encoding YSLib::TextFile::Encoding

编码。

警告
修改编码可能会造成读取错误。
自从
build 290

在文件 yftext.h65 行定义.

参考自 ReadConfiguration().


该类的文档由以下文件生成: