📄 line.cpp
字号:
// Line.cpp: implementation of the CLine class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "CREATOR.h"
#include "Line.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CLine::CLine()
{iCount=0;
line.Empty();
}
CLine::CLine(CString outstring)
{line=outstring;
iCount=GetiCount();
}
CLine::~CLine()
{
}
int CLine::GetiCount()//计算iCount
{int i=1;
CString copyline;
copyline=' '+line+' ';
iCount=0;
if(line.IsEmpty()) {iCount=0;return iCount;};//虽然没有else,但是达到了else的效果
while(i<copyline.GetLength())
{char ch=copyline.GetAt(i);
if(Iswordcharx(copyline.GetAt(i-1))&&!Iswordcharx(copyline.GetAt(i)))
iCount++;
i++;
}
return iCount;
}
CString CLine::DrawWord(int n)//获得第n个单词
{ if(n>iCount||n==0) return "";
int i=1,flag=0;//flag记录这一行的第几个单词
CString copyline,string;
copyline=' '+line+' ';
while(flag<n)
{
if(!Iswordcharx(copyline.GetAt(i-1))&&Iswordcharx(copyline.GetAt(i)))
{flag++;
if(flag!=n) {i++;continue;}
else
{
while(Iswordcharx(copyline.GetAt(i)))
{string+=copyline.GetAt(i++);};
break;
}
}
i++;
}
return string;
}
CString CLine::DrawWord(CString mystring, int n)
{CLine mycline(mystring);
if(n>mycline.GetiCount()||n==0) return "";
int i=1,flag=0;
CString copyline,string;
copyline=' '+mystring+' ';
/////***************************
while(flag<n)
{
if(!Iswordcharx(copyline.GetAt(i-1))&&Iswordcharx(copyline.GetAt(i)))
{flag++;
if(flag!=n) {i++;continue;}
else
{
while(!Iswordchar(copyline.GetAt(i)))
{string+=copyline.GetAt(i++);};
break;
}
}
i++;
}
return string;
}
BOOL CLine::IsTheEnd()//整个代码的最后一行
{GetiCount();
CString temp=DrawWord(1);
if(DrawWord(1)=="END")
return TRUE;
else return FALSE;
}
void CLine::InputLine(CString string)
{line=string;
iCount=GetiCount();
}
CString CLine::outline()
{return line;
}
CString CLine::GetAllString()
{return line;
}
BOOL CLine::operator ==(CString string)
{if(line==string)return TRUE;
else return FALSE;
}
void CLine::Empty()
{line.Empty();
iCount=0;
}
BOOL CLine::Iswordchar(char ch)
{if(isalpha(ch)||isdigit(ch)||ch=='_') return TRUE;
return FALSE;
}
BOOL CLine::Iswordcharx(char ch)
{if(isdigit(ch)||isalpha(ch)||ch=='_'||ch=='['||ch==']'||ch=='-') return TRUE;
else return FALSE;
}
CString CLine::DrawWordX(int n)
{if(n>iCount||n==0) return "";
int i=1,flag=0;//flag记录这一行的第几个单词
CString copyline,string;
copyline=' '+line+' ';
while(flag<n)
{
if(!Iswordcharx(copyline.GetAt(i-1))&&Iswordcharx(copyline.GetAt(i)))
{flag++;
if(flag!=n) {i++;continue;}
else
{
while(Iswordcharx(copyline.GetAt(i)))
{string+=copyline.GetAt(i++);};
break;
}
}
i++;
}
return string;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -