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

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

?? muldoc.cpp

?? PLC 編譯器 VC++ SOURCE CODE
?? CPP
?? 第 1 頁 / 共 2 頁
字號(hào):
						Info_Temp.name=-1;					
					if (Info_Temp.code==20 || Info_Temp.code==21)
						Info_Temp.addr=Addr_Array.Add(code);
					else if (addr.GetAt(0)!=';' && addr!="")
							Info_Temp.addr=Addr_Array.Add(addr);
						else 
							Info_Temp.addr=-1;

					Code_Array.Add(Info_Temp);
				}
				if (errFlag)
				{
					errmsg.Format("第%d行語句錯(cuò)誤!\r\n",count);
					errMessage+=errmsg;
					result=1;
				}
			}
			code="";
			addr="";
			name="";
			count++;
		}
		fclose( stream ); 
		if (!(lcount==0 && bcount==0) && lcount!=bcount+1)
		{
			result=1;
			errmsg.Format("程序中LD,ANB不匹配!");
			errMessage+=errmsg;
		}
	}
	if (result==0)
		result=CodeToSeat();
	return result;
}

int CMULDoc::Compile(CString &errMessage)
{
	int errflag;
	int HORcount;
	int next;
	int row;
	int col;
	int insertflag;
	CString str;
	IOPOINT *point;
	IOPOINT *temp;
	CPoint point_seat;
	CPoint curbegin;
	CPoint curend;
	CPoint prebegin;
	CPoint preend;
	POINTINFO code_info;
	CString errmsg;
	errflag=0;
	errflag=preCompile(errMessage);
	if (errflag)
		return errflag;

	CPoint cpoint=GetRowCol();
	if (cpoint.x>::MaxRows || cpoint.y>::MaxCols)
	{
		errflag=1;
		errmsg.Format("程序太大,頁面畫不下!\r\n\r\n頁面最大可畫100行梯形圖,\r\n每行16個(gè)元器件!\r\n\r\n請(qǐng)將程序分解后再編譯!");
		errMessage+=errmsg;
		return errflag;
	}
	Rows=cpoint.x;
	Cols=cpoint.y;
	m_mPlc.newfile();
	m_mPlc.SetRowCol(Rows,Cols);
	for (int i=0;i<m_nCodecount;i++)
	{
		insertflag=1;
		code_info=Code_Array.GetAt(i);
		point_seat=seat.GetAt(i);
		row=point_seat.x;
		col=point_seat.y;
		switch(code_info.code)
		{
		case 1:
			point=new LD;
			point->setcode("LD");
			point->setflag(1);
			point->setwhere(row,col);
			break;
		case 2:
			point=new LDI;
			point->setcode("LDI");
			point->setflag(2);
			point->setwhere(row,col);
			break;
		case 3:
		case 4:
			next=FindPort(i-1,curbegin,curend);
			if (curend.y>curbegin.y)
			{
				HORcount=curend.y-curbegin.y;
				AddHOR(row,col+1,HORcount);
				if (col>0)
					AddERECT(row,col-1);
				AddERECT(row,curend.y);
				if (code_info.code==3)
				{
					point=new LD;
					point->setcode("LD");
					point->setflag(1);
				}
				else
				{
					point=new LDI;
					point->setcode("LDI");
					point->setflag(2);
				}
				point->setwhere(row,col);
			}
			else
			{
				point=new OR;
				point->setcode("OR");
				point->setflag(3);
				point->setwhere(row,col);
				if (col>0)
				{
					temp=new ERECT;
					temp->setfiveflag(5);
					temp->setcode("ERECT");
					temp->setwhere(row,col-1);
					m_mPlc.insert_point(temp);
				}
				if (col<Cols)
				{
					temp=new ERECT;
					temp->setfiveflag(5);
					temp->setcode("ERECT");
					temp->setwhere(row,col);
					m_mPlc.insert_point(temp);
				}
			}
			break;
		case 5:
			point=new LD;
			point->setcode("LD");
			point->setflag(1);
			point->setwhere(row,col);
			//MakeUpHOR(row,col-1);
			break;
		case 6:
			point=new LDI;
			point->setcode("LDI");
			point->setflag(2);
			point->setwhere(row,col);
			//MakeUpHOR(row,col-1);
			break;
		case 8:
			insertflag=0;
			next=FindPort(i-1,curbegin,curend);
			next=FindPort(next-1,prebegin,preend);
			curend.x=curbegin.x;
			preend.x=prebegin.x;
			if (preend.y>curend.y)
			{
				HORcount=preend.y-curend.y;
				AddHOR(curend.x,curend.y+1,HORcount);
				curend.y=preend.y;
			}
			else if (curend.y>preend.y)
			{
				HORcount=curend.y-preend.y;
				AddHOR(preend.x,preend.y+1,HORcount);
			}
			if (curbegin.y>0)
				AddERECT(curbegin.x,curbegin.y-1);
			AddERECT(curend.x,curend.y);
			break;
		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:
			if (i<(m_nCodecount-1) && Code_Array.GetAt(i+1).code>0)
			{
				temp=new ERECT;
				temp->setcode("ERECT");
				temp->setfiveflag(5);
				temp->setwhere(row+1,col-1);
				m_mPlc.insert_point(temp);
			}
			while (col<Cols-1)
			{
				temp=new HOR;
				temp->setcode("HOR");
				temp->setflag(6);
				temp->setwhere(row,col);
				m_mPlc.insert_point(temp);
				col++;
			}
			if (code_info.code==9)
			{
				point=new OUTPOINT;
				point->setcode("OUT");
				point->setflag(7);
			}
			else
			{
				point=new ADDTION;
				switch(code_info.code)
				{
				case 10:
					point->setcode("SET");
					point->setflag(8);
					break;
				case 11:
					point->setcode("RST");
					point->setflag(18);
					break;
				case 12:
					point->setcode("S");
					point->setflag(9);
					break;
				case 13:
					point->setcode("R");
					point->setflag(19);
					break;
				case 14:
					point->setcode("MC");
					point->setflag(10);
					break;
				case 15:
					point->setcode("MCR");
					point->setflag(11);
					break;
				case 18:
					point->setcode("PLS");
					point->setflag(14);
					break;
				case 19:
					point->setcode("END");
					point->setflag(15);
					break;
				case 20:
					point->setflag(12);
					break;
				case 21:
					point->setflag(13);
					break;
				default:
					break;
				}
			}
			point->setwhere(row,col);
			break;
		default:
			insertflag=0;
		}
		if (insertflag)
		{
			if (code_info.addr>=0)
			{
				str=Addr_Array.GetAt(code_info.addr);
				point->setaddr(str);
				if (point->testaddr())
				{
					errflag=1;
					point->setaddr("");
					errmsg.Format("第 %d 行語句的地址不對(duì)!\r\n",i+1);
					errMessage+=errmsg;
				}
				else if (point->getflag()==12 || point->getflag()==13)
				{
					point->setcode(str);
					point->setaddr("");
				}
			}
			if (code_info.name>=0)
			{
				str=Name_Array.GetAt(code_info.name);
				point->setname(str);
			}
			m_mPlc.insert_point(point);
		}
	}
	return errflag;
}

void CMULDoc::MakeUpHOR(int row, int col)
{
	int count;
	IOPOINT *point;
	count=0;
	while(col>0)
	{
		point=m_mPlc.getpoint(row,col);
		if (point==NULL || point->getflag()==0)
			count++;
		else
			break;
		col--;
	}
	AddHOR(row,col,count);
}

void CMULDoc::OnCompileInstr() 
{
	// TODO: Add your command handler code here
	CFile LadFile;
	int errflag;
	CString pathname=this->GetPathName();
	if (pathname=="")
	{
		AfxMessageBox("請(qǐng)先保存文件,再進(jìn)行編譯!");
		return ;
	}
	this->OnSaveDocument(pathname);
	CString fname=pathname+this->GetTitle();
	int i=fname.Find('.');
	if (i!=-1)
		fname=fname.Mid(0,i);
	fname+=".lad";
	if (!LadFile.Open(fname,CFile::modeCreate|CFile::modeWrite))
		AfxMessageBox("Unable to open file");
	else
	{
		CArchive LadArchive(&LadFile,CArchive::store);
		CString compilemsg;
		try{
			if ((errflag=Compile(compilemsg))==0)
				compilemsg.Format("編譯成功!");
			if (err_dlg)
			{
				err_dlg->Refresh(compilemsg);
				err_dlg->ShowWindow(SW_RESTORE);
			}
			else
			{
				err_dlg=new CSyntax(compilemsg,AfxGetMainWnd());
				err_dlg->CenterWindow();
				err_dlg->ShowWindow(SW_SHOW);
			}
			
			err_dlg->UpdateData(FALSE);
		}
		catch(...)
		{
			POSITION pos=this->GetFirstViewPosition();
			CView * pView=this->GetNextView(pos);
			pView->MessageBox("PLC程序編寫錯(cuò)誤!\n可能有邏輯錯(cuò)誤!","編譯出錯(cuò)",MB_ICONERROR|MB_OK);
		}

		if (!errflag)
		{
			CIO *point;
			IOPOINT *temp;
			CObArray m_pointArray;

			try{
				if (m_pointArray.GetSize()>0)
				{
					int total=m_pointArray.GetSize();
					for (int j=0;j<total;j++)
						delete m_pointArray.GetAt(j);
					m_pointArray.RemoveAll();
				}
				point=new CIO;
				point->name="";
				point->addr="";
				point->code="";
				point->Rows=Rows;
				point->Cols=Cols;
				point->flag=0;
				point->fiveflag=0;
				point->xpoint=0;
				point->ypoint=0;
				m_pointArray.Add(point);
				for (int i=0;i<Rows;i++)
					for(int j=0;j<Cols;j++)
					{
						if (m_mPlc.testpoint(i,j))
						{
							CString str;
							point=new CIO;
							temp=m_mPlc.getpoint(i,j);
							temp->getname(&str);
							point->name=str;
							temp->getaddr(&str);
							point->addr=str;
							temp->getcode(&str);
							point->code=str;
							point->Rows=Rows;
							point->Cols=Cols;
							point->flag=temp->getflag();
							point->fiveflag=temp->getfiveflag();
							point->xpoint=temp->getxpoint();
							point->ypoint=temp->getypoint();
							m_pointArray.Add(point);
						}
					}
				m_pointArray.Serialize(LadArchive);
				LadArchive.Flush();
				LadArchive.Close();
			}
			catch(...)
			{
				POSITION pos=this->GetFirstViewPosition();
				CView * pView=this->GetNextView(pos);
				pView->MessageBox("LAD文件建立錯(cuò)誤!","編譯出錯(cuò)",MB_ICONERROR|MB_OK);
			}
		}
	}
}




?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人动漫精品| 亚洲444eee在线观看| 91国内精品野花午夜精品| 美女视频网站久久| 伊人婷婷欧美激情| 久久久精品免费观看| 8x8x8国产精品| 日本道色综合久久| 极品少妇xxxx精品少妇| 五月激情综合婷婷| 国产精品高清亚洲| 久久久久久**毛片大全| 在线不卡a资源高清| 91免费视频网| 丁香激情综合国产| 国内一区二区在线| 美国三级日本三级久久99| 亚洲免费观看视频| 国产精品色噜噜| 7777精品伊人久久久大香线蕉的 | 亚洲欧美激情小说另类| 精品久久久三级丝袜| 欧美色手机在线观看| a美女胸又www黄视频久久| 国产高清精品在线| 国模娜娜一区二区三区| 美女脱光内衣内裤视频久久影院| 一区二区三区鲁丝不卡| 国产精品护士白丝一区av| 国产欧美一区二区三区网站 | 午夜影院在线观看欧美| 一区二区三区中文在线观看| 欧美高清在线精品一区| 精品国内二区三区| 欧美男男青年gay1069videost| 欧洲另类一二三四区| www.综合网.com| 国产在线日韩欧美| 日本视频免费一区| 亚洲男人的天堂一区二区| 国产精品网站在线播放| 久久久精品中文字幕麻豆发布| 久久综合九色综合97婷婷| 日韩亚洲欧美在线| 欧美日韩激情一区二区| 欧美在线免费观看视频| 日本久久精品电影| 一本色道久久综合精品竹菊| 成人精品视频一区二区三区| 国产精品自在欧美一区| 精品一区二区三区在线播放视频 | 91传媒视频在线播放| 99久久国产综合精品女不卡| 成人综合激情网| 国产盗摄精品一区二区三区在线| 久久99久久精品| 免费人成网站在线观看欧美高清| 亚洲一区欧美一区| 一区二区视频在线看| 亚洲欧美色图小说| 亚洲最大色网站| 五月天精品一区二区三区| 天天影视色香欲综合网老头| 午夜欧美2019年伦理| 亚洲午夜免费电影| 亚洲综合色成人| 亚洲综合小说图片| 亚洲成a人在线观看| 日日夜夜免费精品| 奇米影视一区二区三区小说| 精品系列免费在线观看| 国产精品影视在线| 成人av集中营| 91黄色免费观看| 国产精品免费av| 国产欧美日韩中文久久| 中文字幕在线一区免费| 亚洲人成网站在线| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲一卡二卡三卡四卡五卡| 日韩高清一区在线| 国内精品免费**视频| youjizz久久| 欧美日韩一区二区三区高清| 91精品国产麻豆| 中文字幕欧美国产| 亚洲美腿欧美偷拍| 久久国产夜色精品鲁鲁99| 激情五月婷婷综合| 欧美日韩一级片在线观看| 欧美精品一区二区三区在线| 中文字幕成人网| 视频一区国产视频| 国产.欧美.日韩| 欧美亚洲综合另类| 欧美精品一区视频| 亚洲国产精品久久人人爱| 精品一区二区三区在线播放视频| 97精品国产露脸对白| 欧美一级生活片| 亚洲视频狠狠干| 久久国产综合精品| 91久久精品一区二区| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲午夜在线电影| 粉嫩在线一区二区三区视频| 欧美人成免费网站| 国产精品初高中害羞小美女文| 日韩国产精品91| 91日韩在线专区| 日韩一区二区三区四区五区六区| 国产欧美视频在线观看| 午夜婷婷国产麻豆精品| 成人午夜在线免费| 欧美一级高清片| 洋洋成人永久网站入口| 国产成人夜色高潮福利影视| 国产成人精品免费一区二区| 91精品国产高清一区二区三区蜜臀| 国产精品美女久久久久久久网站| 日本大胆欧美人术艺术动态| 色欧美88888久久久久久影院| 91精品国产高清一区二区三区蜜臀 | 日韩欧美国产综合一区| 亚洲精品日韩综合观看成人91| 国产综合色产在线精品| 欧美色图免费看| 国产精品二区一区二区aⅴ污介绍| 免费在线观看日韩欧美| 一道本成人在线| 国产精品久久免费看| 韩日av一区二区| 日韩一区二区麻豆国产| 亚洲午夜av在线| 国产丝袜欧美中文另类| 亚洲大片在线观看| 色综合久久久网| 国产精品久久久久久久蜜臀| 久久成人免费电影| 久久久精品2019中文字幕之3| 美女一区二区三区| 91精品啪在线观看国产60岁| 亚洲午夜免费视频| 欧美亚洲一区二区在线| 一区二区三区四区亚洲| 国产一区二区三区久久久| 欧美一区二区视频在线观看2020 | 91视频国产资源| 国产精品丝袜一区| 国产传媒一区在线| 久久尤物电影视频在线观看| 免费美女久久99| 日韩精品一区二区三区三区免费 | 国产不卡在线视频| 日本一区二区免费在线观看视频 | 欧美亚洲综合网| 日韩黄色小视频| 欧美一区二区三区在线视频| 视频一区国产视频| 日韩一区二区免费在线观看| 欧美aaa在线| 精品国产自在久精品国产| 成人久久18免费网站麻豆| 中文字幕综合网| 91极品视觉盛宴| 日韩美女视频一区| 69久久夜色精品国产69蝌蚪网| 亚洲成a人片在线不卡一二三区 | 高清日韩电视剧大全免费| 国产欧美一区二区精品秋霞影院 | 亚洲午夜一区二区三区| 日韩欧美卡一卡二| 国产精品影音先锋| 国产精品黄色在线观看| 在线观看一区二区精品视频| 视频在线观看一区二区三区| 国产福利视频一区二区三区| 在线视频国产一区| 首页国产欧美久久| 欧美精品一区二区三区四区| 成人国产精品免费| 亚洲日本免费电影| 欧美色综合网站| 狠狠色伊人亚洲综合成人| 国产欧美日韩不卡免费| 在线观看亚洲a| 蜜桃视频在线一区| 亚洲国产精品二十页| 91国产福利在线| 激情六月婷婷久久| 亚洲欧洲日韩综合一区二区| 欧美丰满少妇xxxxx高潮对白| 国内外精品视频| 亚洲精品乱码久久久久久| 日韩欧美中文一区| 成人开心网精品视频| 日韩精品乱码av一区二区| 国产精品蜜臀av| 在线观看不卡一区| 成人动漫一区二区三区|