亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? muldoc.cpp

?? PLC 編譯器 VC++ SOURCE CODE
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// MULDoc.cpp : implementation of the CMULDoc class
//

#include "stdafx.h"
#include "MUL.h"
#include "Syntax.h"
#include "MULDoc.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern int MaxRows;
extern int MaxCols;
/////////////////////////////////////////////////////////////////////////////
// CMULDoc

IMPLEMENT_DYNCREATE(CMULDoc, CDocument)

BEGIN_MESSAGE_MAP(CMULDoc, CDocument)
	//{{AFX_MSG_MAP(CMULDoc)
	ON_COMMAND(ID_COMPILE_INSTR, OnCompileInstr)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMULDoc construction/destruction

CMULDoc::CMULDoc()
{
	// TODO: add one-time construction code here
	err_dlg=NULL;
	Rows=0;
	Cols=0;
}

CMULDoc::~CMULDoc()
{
	Code_Array.RemoveAll();
	Addr_Array.RemoveAll();
	Name_Array.RemoveAll();
}

BOOL CMULDoc::OnNewDocument()
{
	if (!CDocument::OnNewDocument())
		return FALSE;

	// TODO: add reinitialization code here
	// (SDI documents will reuse this document)

	return TRUE;
}



/////////////////////////////////////////////////////////////////////////////
// CMULDoc serialization

void CMULDoc::Serialize(CArchive& ar)
{
	// CEditView contains an edit control which handles all serialization
	((CEditView*)m_viewList.GetHead())->SerializeRaw(ar);
}

/////////////////////////////////////////////////////////////////////////////
// CMULDoc diagnostics

#ifdef _DEBUG
void CMULDoc::AssertValid() const
{
	CDocument::AssertValid();
}

void CMULDoc::Dump(CDumpContext& dc) const
{
	CDocument::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMULDoc commands

void CMULDoc::ArrayInit()
{
	Code_Array.RemoveAll();
	Addr_Array.RemoveAll();
	Name_Array.RemoveAll();
}


CPoint CMULDoc::transfer()
{
	int x,y;
	int maxx,maxy;
	int start;
	int j;
	POINTINFO temp;
	CPoint result;
	CPoint value;

	x=0;
	y=0;
	maxx=0;
	maxy=0;
	
	seat.SetAt(m_nstep,CPoint(y,x));
	m_nstep++;
	while (m_nstep<m_nCodecount)
	{
		temp=Code_Array.GetAt(m_nstep);
		switch(temp.code)
		{
		case 0:
			seat.SetAt(m_nstep,CPoint(-3,-3));
			m_nstep++;
			return (CPoint(y,maxy));
		case 1:
		case 2:
			start=m_nstep;
			result=transfer();
			if (m_nstep>=m_nCodecount)
				return (CPoint(y,maxy));
			if (Code_Array.GetAt(m_nstep).code==7) 
			{
				maxx++;
				for (j=start;j<m_nstep;j++)
				{
					value=seat.GetAt(j);
					if (value.y!=-1 && value.y!=-2)
					{
						value.y+=maxx;
						value.x+=y;
						seat.SetAt(j,value);
					}
				}
				maxx+=result.x;
				if (maxy<result.y)
					maxy=result.y;
			}
			if (Code_Array.GetAt(m_nstep).code==8)
			{
				maxy++;
				for (j=start;j<m_nstep;j++)
				{
					value=seat.GetAt(j);
					if (value.x!=-1 && value.x!=-2)
					{
						value.x+=maxy;
						seat.SetAt(j,value);
					}
				}
				maxy+=result.y;
				if (maxx<result.x)
					maxx=result.x;
			}
			break;
		case 3:
		case 4:
			maxy++;
			seat.SetAt(m_nstep,CPoint(maxy,x));
			break;
		case 5:
		case 6:
			maxx++;
			seat.SetAt(m_nstep,CPoint(y,maxx));
			break;
		case 7:
			seat.SetAt(m_nstep,CPoint(-1,-1));
			return(CPoint(maxx,maxy));
		case 8:
			seat.SetAt(m_nstep,CPoint(-2,-2));
			return(CPoint(maxx,maxy));
		case 9:
		case 10:
		case 11:
		case 12:
		case 13:
		case 14:
		case 15:
		case 16:
		case 17:
		case 18:
		case 19:
		case 20:
		case 21:
			seat.SetAt(m_nstep,CPoint(y,maxx+1));
			y++;
			break;
		default:
			break;
		}
		m_nstep++;
	}
	return (CPoint(y,maxy));
}

int CMULDoc::CodeToSeat()
{
	CString str;
	int errflag;
	int j;
	seat.RemoveAll();
	m_nCodecount=Code_Array.GetSize();
	for (j=0;j<m_nCodecount;j++)
		seat.Add(CPoint(0,0));

	errflag=0;
	try{

		CPoint result;
		CPoint temp;
		m_nstep=0;
		int row=0;
		int startpoint;
		while (m_nstep<m_nCodecount)
		{
			startpoint=m_nstep;
			result=transfer();
			for (int j=startpoint;j<m_nstep;j++)
			{
				temp=seat.GetAt(j);
				if (temp.x!=-1 && temp.x!=-2 && temp.x!=-3)
				temp.x+=row;
				seat.SetAt(j,temp);
			}
			if (result.x>result.y)
				row+=result.x;
			else
				row+=result.y+1;
		}
	}
	catch(...)
	{
		errflag=1;
		POSITION pos=this->GetFirstViewPosition();
		CView * pView=this->GetNextView(pos);
		pView->MessageBox("將指令轉(zhuǎn)換成結(jié)點(diǎn)地址時(shí)出錯(cuò)!請與開發(fā)商聯(lián)系。",
			"編譯出錯(cuò)",MB_ICONERROR|MB_OK);
	}
/*	for (j=0;j<m_nCodecount;j++)
	{
		CPoint point;
		point=seat.GetAt(j);
		str.Format("row=%d\ncol=%d",point.x,point.y);
		AfxMessageBox(str);
	}*/
	return errflag;
}

CPoint CMULDoc::GetRowCol()
{
	int rows;
	int cols;
	CPoint temp;
	rows=10;
	cols=12;
	for (int i=0;i<seat.GetSize();i++)
	{
		temp=seat.GetAt(i);
		if (temp.x+1>rows)
			rows=temp.x+1;
		if (temp.y+1>cols)
			cols=temp.y+1;
	}
	return (CPoint(rows,cols));
}

void CMULDoc::AddERECT(int row, int col)
{
	IOPOINT *point;
	do
	{
		point=new ERECT;
		point->setfiveflag(5);
		point->setcode("ERECT");
		point->setwhere(row,col);
		m_mPlc.insert_point(point);
		row--;
	}while(row>0 && (!m_mPlc.testpoint(row,col) 
		|| (m_mPlc.testpoint(row,col) 
		&& m_mPlc.getpoint(row,col)->getflag()==0
		&& m_mPlc.getpoint(row,col)->getfiveflag()!=5)));
}

void CMULDoc::AddHOR(int row, int col, int count)
{
	IOPOINT *point;
	for (int i=0;i<count;i++)
	{
		point=new HOR;
		point->setflag(6);
		point->setcode("HOR");
		point->setwhere(row,col+i);
		m_mPlc.insert_point(point);
	}
}

int CMULDoc::FindPort(int i,CPoint &point1, CPoint &point2)
{
	int count;
	POINTINFO temp;
	CPoint point_temp;
	count=0;
	point2=CPoint(0,0);
	while (count!=1)
	{
		temp=Code_Array.GetAt(i);
		if (temp.code==7 || temp.code==8)
			count--;
		else
		{
			point_temp=seat.GetAt(i);
			if (point_temp.y>point2.y)
				point2=point_temp;
		}
		if (temp.code==1 || temp.code==2)
			count++;
		i--;
	}
	point1=seat.GetAt(++i);
	return i;
}

int CMULDoc::preCompile(CString &errMessage)
{
	CString CodeSet[20]={
		";***","LD","LDI","OR","ORI","AND","ANI","ANB","ORB","OUT",
		"SET","RST","S","R","MC","MCR","CJP","EJP","PLS","END"};

	char  line[255];
	CString code;
	CString addr;
	CString name;
	FILE  *stream;
	CString fname;
	int result;


	ArrayInit();
	result=0;

	fname=this->GetPathName();
	if( (stream = fopen( fname, "r" )) != NULL )  
	{
		POINTINFO Info_Temp;
		BOOL HaveFlag;
		BOOL errFlag;
		CString errmsg;
		int count=1;
		int lcount=0;
		int bcount=0;
		int dcount=0;
		int i;

		while( fgets( line, 250, stream ) != NULL)         
		{
			HaveFlag=TRUE;
			errFlag=FALSE;

			code.GetBuffer(255);
			addr.GetBuffer(255);
			name.GetBuffer(255);

			sscanf(line,"%s %s %s",code,addr,name);

			code.ReleaseBuffer(4);
			addr.ReleaseBuffer(4);
			name.ReleaseBuffer(9);
 
			if (code!="")
			{
				code.MakeUpper();
				for (i=0;i<20;i++)
				{
					if (code==CodeSet[i]) 
					{
						Info_Temp.code=i;
						if (i==1 || i==2)
							lcount++;
						if (i==7 || i==8)
							bcount++;
						if (i==0)
						{	
							dcount++;

							if (!(lcount==0 && bcount==0) && lcount!=bcount+1)
							{
								result=1;
								errmsg.Format("第 %d 程序段LD,ANB不匹配!",dcount);
								errMessage+=errmsg;
							}
							lcount=0;
							bcount=0;
						}
						break;
					}
				}
				if (i==20)
				{
					if (code.GetAt(0)=='K')
						Info_Temp.code=20;
					else if (code.GetAt(0)=='F')
						Info_Temp.code=21;
					else if (code.GetAt(0)!=';')
					{
						HaveFlag=FALSE;
						errFlag=TRUE;
					}
					else 
						HaveFlag=FALSE;
				}
				if (HaveFlag)
				{
					if (name!="")
					{
						name=name.Right(name.GetLength()-1);
						name.TrimRight();
					}
					if (name!="")
						Info_Temp.name=Name_Array.Add(name);
					else

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99精品一区二区三区三区| 成人精品国产一区二区4080| 欧美日韩一卡二卡三卡| 亚洲一区二区在线观看视频| 色国产综合视频| 一区二区三区在线免费视频| 欧洲精品一区二区| 日韩成人精品在线观看| 欧美精品一区二区在线观看| 国产精品一区一区| 国产精品国产三级国产aⅴ中文| 91啪九色porn原创视频在线观看| 亚洲国产精品一区二区www| 4438x亚洲最大成人网| 国内精品国产成人国产三级粉色 | 91精品国产综合久久久蜜臀粉嫩| 成人精品国产一区二区4080 | 91免费国产在线观看| 精品一二三四区| 日本欧美加勒比视频| 午夜视频一区在线观看| 26uuu久久天堂性欧美| 99久久久国产精品免费蜜臀| 日本在线不卡视频| 亚洲一二三区在线观看| 最好看的中文字幕久久| 日韩欧美一二区| 成人国产在线观看| 国产福利一区二区三区视频| 夜夜嗨av一区二区三区网页| 亚洲欧洲国产专区| 日韩女优视频免费观看| 欧美一区二区国产| 99精品欧美一区二区三区小说| 黄一区二区三区| 国精品**一区二区三区在线蜜桃| 久久精品国产在热久久| 夜夜嗨av一区二区三区中文字幕| 国产精品久久久久久妇女6080| 日本一区二区免费在线观看视频| 欧美日韩国产首页在线观看| 成人免费看片app下载| 亚洲国产日产av| 亚洲黄色尤物视频| 国产欧美日韩另类一区| 久久精品一区蜜桃臀影院| 91丨porny丨中文| 色噜噜偷拍精品综合在线| 精品国精品国产尤物美女| 精品精品欲导航| 婷婷综合在线观看| 夜夜亚洲天天久久| 石原莉奈在线亚洲二区| 国产精品国产自产拍高清av王其| 国产欧美精品在线观看| 中文字幕中文字幕一区| 一区在线观看视频| 美女爽到高潮91| 欧美视频在线一区二区三区| 国产欧美日产一区| 色婷婷久久久久swag精品| 国产欧美日韩精品一区| 色婷婷av一区二区三区软件| 亚洲6080在线| 欧美日韩一区二区在线视频| 久久精品国产免费| 综合网在线视频| 日韩一区二区三| 奇米色一区二区| 欧美一区二区三区在线电影| 国产成人午夜片在线观看高清观看| 国产精品久久久爽爽爽麻豆色哟哟 | 中文字幕在线观看一区| 欧美酷刑日本凌虐凌虐| 日韩在线a电影| 欧美韩国日本不卡| www.色精品| 国产精品视频yy9299一区| 成人综合在线视频| 日本亚洲一区二区| 亚洲人xxxx| 在线成人午夜影院| 91同城在线观看| 韩国精品在线观看| 亚洲成人激情自拍| 国产三级精品视频| 欧美日韩一区二区三区免费看| 成人小视频免费在线观看| 久久精品久久综合| 亚洲激情网站免费观看| 久久先锋影音av鲁色资源网| 欧美日韩在线播放一区| 91免费在线视频观看| 国产激情一区二区三区桃花岛亚洲| 无吗不卡中文字幕| 一区二区欧美精品| 亚洲人成小说网站色在线| 中文字幕欧美区| 国产亚洲婷婷免费| 久久免费电影网| 色一情一伦一子一伦一区| 成人激情图片网| 国产精品系列在线播放| 日韩vs国产vs欧美| 视频在线在亚洲| 午夜成人免费电影| 亚洲一区二区视频在线| 亚洲宅男天堂在线观看无病毒| 综合久久给合久久狠狠狠97色 | 欧美一区二区三区免费观看视频 | 中文字幕av资源一区| 久久毛片高清国产| 久久久国产综合精品女国产盗摄| 欧美一区二区三区的| 91精品蜜臀在线一区尤物| 在线不卡一区二区| 日韩欧美你懂的| 精品乱码亚洲一区二区不卡| 欧美精品一区二| 久久综合久久综合九色| 国产色综合久久| 国产精品久久看| 亚洲人xxxx| 一区二区三区 在线观看视频| 亚洲成人福利片| 免费日韩伦理电影| 激情久久久久久久久久久久久久久久| 日产国产高清一区二区三区| 免费成人在线视频观看| 国产精品一区二区免费不卡| 成人app网站| 99视频超级精品| 色久优优欧美色久优优| 91麻豆精品国产自产在线观看一区| 91精品国产综合久久精品app | 蜜臀久久99精品久久久久久9| 日韩成人午夜精品| 国产乱码精品1区2区3区| 成人h精品动漫一区二区三区| 99re热视频精品| 欧美群妇大交群的观看方式| 精品久久久久久久久久久久久久久久久 | 天堂成人国产精品一区| 另类专区欧美蜜桃臀第一页| 成人高清在线视频| 在线视频观看一区| 欧美高清视频在线高清观看mv色露露十八| 欧美一级二级在线观看| 国产视频视频一区| 午夜在线电影亚洲一区| 国模套图日韩精品一区二区| 99久久久精品免费观看国产蜜| 91麻豆精品国产91| 国产精品女主播av| 免费av成人在线| 成人国产在线观看| 日韩欧美在线影院| 日韩一区在线播放| 精品一区二区三区香蕉蜜桃| 色综合久久99| 国产午夜精品一区二区三区嫩草| 亚洲一级二级三级| 成人美女视频在线观看18| 欧美丰满一区二区免费视频| 国产精品视频免费| 人人狠狠综合久久亚洲| 99久久免费视频.com| 精品毛片乱码1区2区3区| 亚洲一区二区欧美激情| 国产激情视频一区二区三区欧美 | 亚洲成av人片在www色猫咪| 国产成人免费av在线| 67194成人在线观看| 亚洲乱码国产乱码精品精可以看| 国产一区不卡视频| 亚洲成人av电影在线| 99精品视频一区二区三区| 久久亚区不卡日本| 久久精品国产澳门| 91精品国产入口在线| 亚洲自拍偷拍av| 色久优优欧美色久优优| 中文字幕制服丝袜成人av | 亚洲欧美综合网| 国产91露脸合集magnet| 91免费观看在线| 久久亚洲影视婷婷| 国产真实乱子伦精品视频| 久久综合色婷婷| 久久99国产精品免费网站| 91精品视频网| 日韩中文字幕麻豆| 欧美丰满嫩嫩电影| 日韩成人dvd| 欧美一个色资源| 日韩电影在线免费看| 欧美疯狂做受xxxx富婆| 日韩精品高清不卡| 91精品免费在线| 久久99热国产|