📄 filereader.cpp
字号:
#include "StdAfx.h"
#include ".\filereader.h"
FileReader::FileReader(void)
{
file_end = 0;
line_end = 1;
read_position = 0;
line_position = 0;
strcpy(fileName, "phase.txt");
}
void FileReader::setBuffer(char *src)
{
strcpy(buffer, src);
}
char * FileReader::getBuffer()
{
return buffer;
}
void FileReader::setFileName(char *src)
{
strcpy(this->fileName, src);
}
char FileReader::getFirstChar()
{
if( this->IsLineEnd() )
return '\0';
char ch = this->buffer[read_position];
this->read_position ++;
if( buffer[read_position] == '\0' )
{
line_end = 1;
}
return ch;
}
int FileReader::getReadPosition()
{
return read_position;
}
void FileReader::forwardReadPosition(int num)
{
read_position += num;
if( read_position >= BUFFER_SIZE )
read_position = BUFFER_SIZE;
}
void FileReader::backwardReadPosition(int num)
{
read_position -= num;
if( read_position < 0 )
read_position = 0;
}
void FileReader::getFirstString(char *dst)
{
SkipBlank();
int temp = read_position;
while( (int)buffer[read_position] > 32)
{
read_position++;
}
int length = read_position - temp;
strncpy(dst, (const char *)&buffer[temp], length);
dst[length] = '\0';
SkipBlank();
if( buffer[read_position] == '\0' )
line_end = 1;
}
void FileReader::SkipBlank()
{
while( (int)buffer[read_position] <= 32 && buffer[read_position] != '\0')
{
read_position++;
}
}
int FileReader::getLineNumber()
{
return line_position + 1;//因为实际行号从1开始计算
}
int FileReader::IsEnd()
{
return file_end;
}
int FileReader::IsLineEnd()
{
return line_end;
}
void FileReader::CloseFile()
{
fileSource.close();
}
int FileReader::OpenFile()
{
fileSource.open(fileName);
if( fileSource == NULL)
{
return 0;
}
return 1;
}
void FileReader::ReadLine()
{
if(file_end == 1)
return;
if(fileSource != NULL)
{
fileSource.getline(buffer, BUFFER_SIZE);
line_end = 0;
line_position++;
read_position = 0;
if(fileSource.eof())
file_end = 1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -