16,551
社区成员
发帖
与我相关
我的任务
分享
#include <string>
//字串
typedef std::basic_string <CHAR> AString;
class FileIO {
public:
FileIO() {
m_hFile = NULL;
}
virtual ~FileIO() {
Close();
}
BOOL Open(LPCTSTR lpszFileName, BOOL bWrite) {
if (bWrite) {
m_hFile = CreateFile(lpszFileName,
GENERIC_WRITE,
0,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);
}
else {
m_hFile = CreateFile(lpszFileName,
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
}
if (m_hFile != INVALID_HANDLE_VALUE) {
return TRUE;
}
else {
return FALSE;
}
}
void Close() {
if (m_hFile != INVALID_HANDLE_VALUE) {
CloseHandle(m_hFile);
m_hFile = INVALID_HANDLE_VALUE;
}
}
//
INT ReadLine(AString &sline) {
//预置作为读取缓存的字串类为空
sLine.erase();
CHAR ch;
DWORD dwBytes;
while (ReadFile(m_hFile, &ch, sizeof(CHAR), &dwBytes, NULL)) {
if (dwBytes == 0) {
if (sLine.size() > 0) {
return TIOERR_SUCCESS;
}
else {
return EOF;
}
}
else {
switch (ch) {
case 13:
break;
case 10:
return TIOERR_SUCCESS;
default:
sLine.append(1, ch);
}
}
}
return 1;
}
BOOL WriteLine(LPCTSTR lpszLine);//自己实现一下
private:
HANDLE m_hFile;
}