You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AppFlow/FITK_Interface/FITKInterfaceIO/FITKAbstractTextReader.h

124 lines
3.2 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/**
*
* @file FITKAbstractTextReader.h
* @brief 读取文本文件类
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-03-29
*
*/
#ifndef _FITKABSTRACTTEXTREADER_H__
#define _FITKABSTRACTTEXTREADER_H__
#include "FITKAbstractIO.h"
#include <QStringList>
namespace Interface
{
/**
* @brief 读取文本文件
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-03-29
*/
class FITKInterfaceIOAPI FITKAbstractTextReader :public FITKAbstractIO
{
public:
explicit FITKAbstractTextReader() = default;
virtual ~FITKAbstractTextReader() = default;
/**
* @brief 加载文件
* @return true
* @return false
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-03-29
*/
bool loadFile();
/**
* @brief 读取行
* @return QString
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-03-29
*/
virtual QString readLine();
/**
* @brief 发送百分比
* param p -1为自动计算否则直接发送百分比 0-100
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-03-29
*/
void sendCurrentPercent(int p = -1);
/**
* @brief 回退一行
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-03-29
*/
virtual void backLine();
/**
* @brief 下一行的值
* @return QString
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-03-29
*/
virtual QString nextLine();
/**
* @brief 上一行的值
* @return QString
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-03-29
*/
virtual QString previousLine();
/**
* @brief 是否结束
* @return true
* @return false
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-03-29
*/
bool atEnd();
/**
* @brief 当前行号获取从1开始
* @return int
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-03-29
*/
int getCurrentLineNum();
/**
* @brief 获取当前行
* @return QString
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-03-29
*/
QString getCurrentLine();
protected:
/**
* @brief 获取第index行
* @param[i] index 行索引
* @return QString
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-03-29
*/
QString getLine(int index);
private:
/**
* @brief 当前行标记
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-03-29
*/
int _currentLine{ 0 };
/**
* @brief 总行数
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-03-29
*/
int _totalLine{ -1 };
/**
* @brief 全部字符
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-03-29
*/
QByteArrayList _totalContext{};
};
}
#endif