⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ysfile.h

📁 电力故障信息采集,主要是针对南自的保护装置,这个程序用在Linux操作系统下
💻 H
字号:
#ifndef __YSFILE_H_#define __YSFILE_H_#include <dirent.h>#include <unistd.h>#include <stdio.h>#include "YsString.h"#include "YsList.h"class YsFile;typedef YsFile QFile;#ifndef  BYTE#define BYTE unsigned char#endiftypedef enum  _OPENMODE{	IO_Append,	IO_ReadOnly,	IO_ReadWrite,	IO_Translate,	IO_Truncate,	IO_WriteOnly} OpenMode;class YsFile{public:	YsFile();	YsFile(YsString fileName)  {m_fileName = fileName;m_fp=0;}	virtual ~YsFile();		YsString filename() {return m_fileName;};	void setFileName(YsString name) {m_fileName=name;};	void setName(YsString name);		bool close();	bool open(OpenMode mode);	bool remove();	bool rename(YsString newName);	bool exists();	bool copy(YsString newFile);	long readBlock(BYTE *pBuff, int maxSize);	long writeBlock(BYTE *pBuff, int size);	long writeBlock(BYTE *pBuff, unsigned char size)	{		return writeBlock(pBuff,(int)size);	}	long writeBlock(BYTE *pBuff, unsigned int size)	{		return writeBlock(pBuff,(int)size);	}	long writeBlock(BYTE *pBuff, char size)	{		return writeBlock(pBuff,(int)size);	}	long readLine(char *pBuff, int maxSize);	YsString readLine()	{		char buf[10241];		memset(buf,0,10241);		readLine(buf,10240);		YsString str=buf;		return str;	}	long size();	long write(BYTE *pBuff, int size)	{return writeBlock(pBuff,size);};	long write(char* pBuff, int size)     {return writeBlock((BYTE*)pBuff, size);};	FILE * getHandle()	{return m_fp;};	int at(int pos);	bool atEnd()	{		if(feof(m_fp) == 0)			return false;		else			return true;	}	YsString name()	{		if(m_fileName.findRev("/") < 0)			return "";		return m_fileName.right(m_fileName.length() - m_fileName.findRev("/"));	}		//static member	static bool copy(YsString fileName, YsString newFile);	static bool exists(YsString fileName);	static bool remove(YsString fileName);	static bool rename(YsString fileName,YsString newFile);private:	YsString m_fileName;	FILE *m_fp;	};class YsTextStream{    public:        YsTextStream(YsFile *pFile);        ~YsTextStream();		//operator		YsTextStream& operator<<(const YsString &str);		YsTextStream& operator<<(const char* pStr);				YsString readLine();		bool atEnd();	private:		YsFile *m_pFile;};typedef YsTextStream QTextStream;#include <limits.h>#include <unistd.h>class YsDir;typedef YsDir QDir;class YsDir{public:	YsDir()	{		m_fileList.setAutoDelete(true);	}	YsDir(YsString dirName)	{		m_sDirName = dirName;		m_fileList.setAutoDelete(true);	}	YsDir(YsString dirName, YsString nameFilter)	{		m_sDirName = dirName;		m_sFilter = nameFilter;	}	~YsDir()	{		m_fileList.clear();	}	bool rename(YsString oldName, YsString newName);	bool remove(YsString name);	bool exists(YsString name);	static void setCurrent(YsString dir);	YsString operator[](int index)	{		if(index > (int)m_fileList.count())			return "";		return *(m_fileList[index]);	}	int count()	{		m_fileList.clear();				DIR *dir;		struct dirent *ptr;		dir=opendir(m_sDirName.data());		while((ptr = readdir(dir)) != 0)		{			YsString str=m_sFilter;			str.replace("*","");			YsString *pStr=new YsString(ptr->d_name);						if(pStr->find(str) < 0)			{				delete pStr;				continue;			}			m_fileList.append(pStr);		}		closedir(dir);				return 0;	}	private:	YsString m_sDirName;	YsString m_sFilter;	CYsPtrList<YsString> m_fileList;public:	static YsString currentPath();	static YsString currentDirPath() {return currentPath();};};#endif /*__YSFILE_H_*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -