YSTest: YSLib::TextFile类 参考

YSTest PreAlpha_b400_20130424 The YSLib Test Project

- 首页
- 相关页面
- 模块
- 命名空间
- 类
- 文件

- 类列表
- 类索引
- 类继承关系
- 类成员

全部 类 命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义 组 页
Public 成员函数 | Public 属性 | Private 属性 | 所有成员列表
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.h 第 54 行定义.

## 构造及析构函数说明

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.cpp 第 126 行定义.

参考 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.cpp 第 114 行定义.

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

函数调用图:

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

inline

取 BOM 大小。

在文件 yftext.h 第 89 行定义.

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

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

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

inline

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

在文件 yftext.h 第 92 行定义.

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

inline

取文本区段大小。

在文件 yftext.h 第 90 行定义.

void TextFile::Locate | ( | u32 | pos | ) | const

定位：设置文件读位置。

自从
  build 273

在文件 yftext.cpp 第 165 行定义.

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

函数调用图:
template<typename _tChar , typename... _tParams>

Text::ConversionResult YSLib::TextFile::ReadChar | ( | _tChar & | c,
|  | _tParams &&... | args
| ) |  | const

inline

按自身编码读取 Unicode 字符。

自从
  build 273

在文件 yftext.h 第 122 行定义.

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

函数调用图:

void TextFile::Rewind | ( |  | ) | const

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

在文件 yftext.cpp 第 171 行定义.

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

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

函数调用图:

这是这个函数的调用关系图:
template<typename... _tParams>

Text::ConversionResult YSLib::TextFile::SkipChar | ( | _tParams &&... | args | ) | const

inline

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

自从
  build 273

在文件 yftext.h 第 133 行定义.

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

函数调用图:

bool TextFile::Truncate | ( | size_t | size | ) | const

overridevirtual

截断文本。

参见
  File::Truncate 。

自从
  build 341

重载 YSLib::File .

在文件 yftext.cpp 第 177 行定义.

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

函数调用图:

## 类成员变量说明

size_t YSLib::TextFile::bl

private

BOM 大小。

在文件 yftext.h 第 57 行定义.

Text::Encoding YSLib::TextFile::Encoding

编码。

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

自从
  build 290

在文件 yftext.h 第 65 行定义.

参考自 ReadConfiguration().

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

- yftext.h
- yftext.cpp