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

📄 line.cpp

📁 CEL代码的中间编译
💻 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 + -