DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DACsvStream.h
1#ifndef DACSVSTREAM_H
2#define DACSVSTREAM_H
3class QTextStream;
4class QFile;
5#include "DAUtilsAPI.h"
6#include <QString>
7
8namespace DA
9{
15class DAUTILS_API DACsvStream
16{
17 DA_DECLARE_PRIVATE(DACsvStream)
18public:
19 DACsvStream(QTextStream* txt);
20 DACsvStream(QFile* txt);
21 virtual ~DACsvStream();
22 // 转换为标识csv字符
23 static QString toCsvString(const QString& rawStr);
24 // 把一行要用逗号分隔的字符串转换为一行标准csv字符串
25 static QString toCsvStringLine(const QStringList& sectionLine);
26 // 解析一行csv字符
27 static QStringList fromCsvLine(const QString& lineStr);
28 // 写入
29 DAUTILS_API friend DACsvStream& operator<<(DACsvStream& csv, const QString& str);
30 DAUTILS_API friend DACsvStream& operator<<(DACsvStream& csv, short d);
31 DAUTILS_API friend DACsvStream& operator<<(DACsvStream& csv, unsigned short d);
32 DAUTILS_API friend DACsvStream& operator<<(DACsvStream& csv, int d);
33 DAUTILS_API friend DACsvStream& operator<<(DACsvStream& csv, unsigned int d);
34 DAUTILS_API friend DACsvStream& operator<<(DACsvStream& csv, long d);
35 DAUTILS_API friend DACsvStream& operator<<(DACsvStream& csv, unsigned long d);
36 DAUTILS_API friend DACsvStream& operator<<(DACsvStream& csv, qlonglong d);
37 DAUTILS_API friend DACsvStream& operator<<(DACsvStream& csv, qulonglong d);
38 DAUTILS_API friend DACsvStream& operator<<(DACsvStream& csv, double d);
39 DAUTILS_API friend DACsvStream& operator<<(DACsvStream& csv, float d);
40 // 读取
41 DAUTILS_API friend DACsvStream& operator>>(DACsvStream& csv, QStringList& d);
42 // 另起一行
43 void newLine();
44 // 获取输入输出流
45 QTextStream* streamPtr() const;
46 QTextStream& stream();
47 const QTextStream& stream() const;
48 // 读取并解析一行csv字符串
49 QStringList readCsvLine();
50 // 判断是否到文件末端
51 bool atEnd() const;
52 void flush();
53
54private:
55 static int advquoted(const QString& s, QString& fld, int i);
56 static int advplain(const QString& s, QString& fld, int i);
57};
58typedef DACsvStream& (*DACsvWriterFunction)(DACsvStream&);
59
60inline DACsvStream& operator<<(DACsvStream& s, DACsvWriterFunction f)
61{
62 return (*f)(s);
63}
64DAUTILS_API DACsvStream& endl(DACsvStream& s);
65
66} // end namespace DA
67
68#endif // QCSVSTREAM_H
写csv文件类支持
Definition DACsvStream.h:16
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44
DACsvStream & endl(DACsvStream &s)
endl
Definition DACsvStream.cpp:318