forked from pi1ot/webapplib
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwaTextFile.h
59 lines (42 loc) · 1.03 KB
/
waTextFile.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/// \file waTextFile.h
/// 固定分隔符文本文件读取解析类头文件
/// 读取解析固定分隔符文本文件
/// 依赖于 webapp::String
#ifndef _WEBAPPLIB_TEXTFILE_H_
#define _WEBAPPLIB_TEXTFILE_H_
#include <cstdio>
#include "waString.h"
using namespace std;
/// Web Application Library namaspace
namespace webapp {
/// 固定分隔符文本文件读取解析类
class TextFile {
public:
/// 默认构造函数
TextFile():_fp(0), _line(0), _len(0)
{};
/// 参数为文本文件名的构造函数
TextFile( const string &file )
:_fp(0), _line(0), _len(0) {
this->open( file );
}
/// 析构函数
~TextFile() {
this->close();
}
/// 打开文本文件
bool open( const string &file );
/// 关闭文本文件
void close();
/// 读取下一行
bool next_line( string &line );
/// 读取下一行并按分隔符拆分字段
bool next_fields( vector<String> &fields, const string &split="\t", const int limit=0 );
////////////////////////////////////////////////////////////////////////////
private:
FILE *_fp;
char *_line;
size_t _len;
};
} // namespace
#endif //_WEBAPPLIB_TEXTFILE_H_