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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 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("將指令轉換成結點地址時出錯!請與開發商聯系。",
			"編譯出錯",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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲第一福利一区| 日本亚洲天堂网| 日韩片之四级片| 不卡的电视剧免费网站有什么| 亚洲午夜激情av| 国产精品私人影院| 91精品一区二区三区在线观看| 国产福利91精品一区二区三区| 婷婷久久综合九色综合伊人色| 国产精品国产三级国产aⅴ中文 | 久久先锋资源网| 欧美视频精品在线观看| 粉嫩高潮美女一区二区三区 | 蜜臀a∨国产成人精品| 亚洲色图.com| 中文字幕第一区| 精品国产亚洲在线| 91.麻豆视频| 欧美性xxxxxx少妇| 99久久99久久久精品齐齐| 久久97超碰国产精品超碰| 亚洲美女屁股眼交| 久久欧美中文字幕| av亚洲精华国产精华精| 极品少妇xxxx偷拍精品少妇| 亚洲国产欧美日韩另类综合| 久久久精品免费免费| 色综合久久久久久久久| 国产美女精品在线| 日韩在线一区二区| 亚洲色图都市小说| 欧美激情一区二区三区四区| 日韩三级免费观看| 欧美视频一区二| 成人亚洲一区二区一| 日本午夜精品一区二区三区电影| 中文字幕中文在线不卡住| 精品国产青草久久久久福利| 欧美中文字幕亚洲一区二区va在线 | 日韩欧美二区三区| 色婷婷综合久久久久中文一区二区| 国产一区二区三区在线观看免费| 肉肉av福利一精品导航| 一区二区高清视频在线观看| 久久男人中文字幕资源站| 在线播放日韩导航| 欧美日韩久久一区二区| 在线观看av一区| 95精品视频在线| 99久久精品国产毛片| 国产不卡视频一区二区三区| 国产资源精品在线观看| 国产尤物一区二区| 国内不卡的二区三区中文字幕| 欧美bbbbb| 午夜精品久久久久久久| 亚洲国产精品久久久男人的天堂| 亚洲精品国久久99热| 亚洲欧美另类在线| 亚洲综合在线观看视频| 一区二区三区在线免费视频| 亚洲美腿欧美偷拍| 亚洲高清不卡在线观看| 亚洲品质自拍视频| 亚洲欧美色图小说| 亚洲另类中文字| 亚洲综合视频网| 日韩中文欧美在线| 久久精品国产一区二区三区免费看| 日韩av电影免费观看高清完整版 | 亚洲欧洲成人av每日更新| 欧美一区二区三区免费大片| 欧美一区2区视频在线观看| 欧美大片在线观看一区| 精品国产欧美一区二区| 久久久久99精品国产片| 国产精品美女久久久久aⅴ| 国产精品国产三级国产aⅴ中文| 亚洲视频在线观看一区| 国产精品护士白丝一区av| 中文字幕av一区二区三区| 中文字幕不卡在线| 亚洲欧洲另类国产综合| 爽好多水快深点欧美视频| 美腿丝袜一区二区三区| 国产一区二区电影| 99精品视频在线免费观看| 欧美怡红院视频| 日韩一区二区三区av| 久久一区二区三区四区| 国产精品久久久久一区二区三区 | 日韩一区二区三区免费看| 久久色.com| 综合久久综合久久| 午夜一区二区三区视频| 激情综合色播五月| 99re热视频精品| 制服丝袜亚洲色图| 国产亚洲一区二区三区| 有坂深雪av一区二区精品| 青青草视频一区| 国产在线一区观看| 成人免费福利片| 欧美一区二区三区视频免费| 久久久三级国产网站| 国产经典欧美精品| 欧美性xxxxxxxx| 日本一区二区免费在线观看视频| 艳妇臀荡乳欲伦亚洲一区| 极品销魂美女一区二区三区| 色伊人久久综合中文字幕| 欧美xxxxxxxx| 一级中文字幕一区二区| 国产精品一区二区x88av| 欧美综合在线视频| 欧美国产日韩亚洲一区| 日韩在线观看一区二区| 国产在线不卡一区| 日韩欧美在线1卡| 亚洲自拍偷拍九九九| 国产高清精品网站| 91精品黄色片免费大全| 亚洲视频每日更新| 国产福利一区二区三区视频在线| 9191成人精品久久| 洋洋av久久久久久久一区| 成年人午夜久久久| 国产午夜精品美女毛片视频| 首页国产欧美日韩丝袜| 日本丶国产丶欧美色综合| 国产欧美日本一区视频| 老司机精品视频在线| 欧美日韩国产美女| 亚洲乱码中文字幕综合| 国产精品综合二区| 欧美不卡一区二区| 日本中文字幕一区二区有限公司| 成人高清伦理免费影院在线观看| 欧美一级淫片007| 亚洲电影中文字幕在线观看| 欧美在线不卡一区| 亚洲精品伦理在线| 一本大道综合伊人精品热热| 国产校园另类小说区| 亚洲情趣在线观看| 91在线观看免费视频| 国产精品天美传媒沈樵| 国产成人h网站| 国产三级精品视频| 国产激情一区二区三区四区| 欧美精品一区二区三区视频| 亚洲高清视频的网址| 欧美视频一区二| 天天综合天天综合色| 欧美日韩国产123区| 香蕉成人伊视频在线观看| 欧美三级视频在线观看| 亚洲高清视频中文字幕| 欧美精品久久久久久久多人混战 | 日韩免费成人网| 日韩av中文字幕一区二区三区 | 久久女同互慰一区二区三区| 极品美女销魂一区二区三区| 精品久久五月天| 激情都市一区二区| 久久久精品中文字幕麻豆发布| 国产电影精品久久禁18| 国产精品午夜免费| 久久亚洲私人国产精品va媚药| 久久精品久久久精品美女| 久久综合网色—综合色88| 国产成人精品免费网站| 国产精品乱码久久久久久| 福利91精品一区二区三区| 亚洲欧美视频在线观看视频| 欧美日韩另类国产亚洲欧美一级| 亚洲va欧美va人人爽午夜| 欧美一区二区日韩一区二区| 久久国产精品露脸对白| 欧美成人一级视频| 激情久久五月天| 亚洲精选一二三| 欧美久久久影院| 精品一区二区影视| 综合亚洲深深色噜噜狠狠网站| 欧美三级蜜桃2在线观看| 蜜臀va亚洲va欧美va天堂| 国产三级一区二区三区| 91久久精品一区二区三| 免费看日韩精品| 亚洲国产精品成人综合色在线婷婷| 色94色欧美sute亚洲线路一久| 日韩1区2区3区| 国产精品国产三级国产普通话蜜臀| 日韩欧美一区二区久久婷婷| 久久久亚洲午夜电影| 欧美最猛性xxxxx直播| 亚洲高清免费视频| 国产精品久久久一区麻豆最新章节| 欧美网站一区二区|