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

📄 scannerdlg.cpp

📁 操作系统课程设计:段页式存储地址管理 需要的就下吧
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	CVocabulary bu;
	int p=bu.GetCode(strToken);  
	return p;
}
int CScannerDlg::InsertId()  
{
	for(int i=0;i<50;i++)
	{
		if(strToken==Identifier[i])
		{  	
			strToken="";
			break ;
		}
		if(Identifier[i]=="")
		{
			Identifier[i]=strToken;
			strToken="";
			break ;
		}
	}

	return i;
}
int CScannerDlg::InsertConst()   //常数
{
	for(int i=0;i<50;i++)
	{
		if(Const[i]==strToken)
		{
			strToken="";
			return i;
		}
		if(Const[i]=="")
		{
			Const[i]=strToken;
			strToken="";
			return i;
		}
	}
	return i;
}
int CScannerDlg::InsertSymbol()
{
	CVocabulary bu;
	for(int i=51;i<87;i++)
	{
	   if(ch==bu.Vocabulary[i])
	   {
		   Symbol[i-50]=1;
		   break;
	   }
	}
	return i;
}

void CScannerDlg::ShowOut()
{
    m33=0; m10="1A";
	m7=1;  m11="14";
	m8=2;  m12="B3";
	m9=3;  m13="4C";
	m18=0; m14=0;
	m19=1; m15=10;
	m20=2; m16=20;
	m21=3; m17=30;

	m22=10; m23=10; m26=0;
	m24=10; m25=10; m28=6;
	UpdateData(false);
	m_result+="----(段0)关键字段----";
	m_result+="\r\n";
	CVocabulary bu;
	int n1=0;
	for(int i=1;i<39;i++)
	{   
		
		if(PrimaryKey[i]==1)
		{	
			m_result+=bu.Vocabulary[i];
            n1+=1;
            m_result+="\r\n";			
		}
	}
	m1=n1;
	UpdateData(false);
	m_result+="----(段1)符号段----";
	m_result+="\r\n";
	int n2=0;
	for(i=51;i<86;i++)
	{
		
		if(Symbol[i-50]==1)
		{
			m_result+=bu.Vocabulary[i];
			n2+=1;
			m_result+="\r\n";
            
		}
	}
	m2=n2;
	UpdateData(false);
	m_result+="----(段2)标识段-----";
	m_result+="\r\n";
	int n3=0;
	for(i=0;i<50;i++)
	{
		
		if(Identifier[i]!="")
		{
		    m_result+=Identifier[i];
			n3+=1;
			m_result+="\r\n";
			
		}
	}
	m3=n3;
	UpdateData(false);
	m_result+="-----(段3)常数段----";
	m_result+="\r\n";
	int l=0;
	int n4=0;
	for(i=0;i<50;i++)
	{
		
		m_result+=Const[i];
		        n4=+1;
			    m_result+="\r\n";
		
	}
	m4=n4;
	UpdateData(false);
}

void CScannerDlg::OnSave() 
{
	// TODO: Add your control notification handler code here
	if(this->strToken.IsEmpty())
	{
		CFileDialog fd(false);
		fd.m_ofn.lpstrTitle="请选择你要打开的文件";  //标题
		fd.m_ofn.lpstrInitialDir="C:\Documents and Settings\Administrator\桌面:\\";            //初始目录
		if(fd.DoModal())
		{
			strToken=fd.GetPathName();
		}
			
	}

	CFile sf;
	if(sf.Open(this->strToken,CFile::modeWrite|CFile::modeCreate))
	{
		UpdateData();
		char buf[200]={0};
		GetDlgItem(IDC_EDIT_SOURCE)->GetWindowText(buf,200);
		sf.Write(buf,strlen(buf));
		sf.Close();
		MessageBox("保存成功","保存文件",MB_ICONINFORMATION);
	}	
}

void CScannerDlg::OnOpen() 
{
	// TODO: Add your control notification handler code here
	CFileDialog fd(true);
	fd.m_ofn.lpstrTitle="请选择你要打开的文件";  //标题
	fd.m_ofn.lpstrInitialDir="C:\Documents and Settings\Administrator\桌面:\\";            //初始目录
	if(fd.DoModal())
	{
		strToken=fd.GetPathName();
		
		CStdioFile sf;
		CString str;
		if(sf.Open(strToken.GetBuffer(0),CFile::modeRead))
		{
			CString  strTemp;
			while(sf.ReadString(strTemp))
			{
				str+=strTemp;
				str+="\r\n";
			}	
			SetDlgItemText(IDC_EDIT_SOURCE,str);
			
			sf.Close();
		}
	}
}

void CScannerDlg::OnButton1() 
{
	// TODO: Add your control notification handler code here
	if(m33<m28)
	{        
        UpdateData(true);
		m32=m33+m26;
		m36=m10;
		UpdateData(false);
		if(m32==m18)        //查段表
		{
			if(m1<m22)
			{
                m27=m1+m14;    //查页表
                UpdateData(false);
			}
            else
            MessageBox("页越界!!!","越界中断",MB_ICONEXCLAMATION);
		    return;
		}
        if(m32==m19)
		{
			if(m1<m23)
			{
                m27=m1+m15;
                UpdateData(false);
			}
            else
            MessageBox("页越界!!!","越界中断",MB_ICONEXCLAMATION);
		    return;
		}
		if(m32==m20)
		{
			if(m1<m24)
			{
                m27=m1+m16;
                UpdateData(false);
			}
            else
            MessageBox("页越界!!!","越界中断",MB_ICONEXCLAMATION);
		    return;
		}
		if(m32==m21)
		{
			if(m1<m25)
			{
                m27=m1+m17;
                UpdateData(false);
			}
            else
            MessageBox("页越界!!!","越界中断",MB_ICONEXCLAMATION);
		    return;
		}
		else
           MessageBox("未找到!!!","越界中断",MB_ICONEXCLAMATION);
		    return;
	}
     else
            MessageBox("段越界!!!","越界中断",MB_ICONEXCLAMATION);
		    return;
}

void CScannerDlg::OnButton2() 
{
	// TODO: Add your control notification handler code here
	if(m7<m28)
	{
		UpdateData(true);
		m333=m7+m26;
		m37=m11;
		UpdateData(false);
		if(m333==m18)
		{
			if(m2<m22)
			{
                m29=m2+m14;
                UpdateData(false);
			}
            else
            MessageBox("页越界!!!","越界中断",MB_ICONEXCLAMATION);
		    return;
		}
        if(m333==m19)
		{
			if(m2<m23)
			{
                m29=m2+m15;
                UpdateData(false);
			}
            else
            MessageBox("页越界!!!","越界中断",MB_ICONEXCLAMATION);
		    return;
		}
		if(m333==m20)
		{
			if(m2<m24)
			{
                m29=m2+m16;
                UpdateData(false);
			}
            else
            MessageBox("页越界!!!","越界中断",MB_ICONEXCLAMATION);
		    return;
		}
		if(m333==m21)
		{
			if(m2<m25)
			{
                m29=m2+m17;
                UpdateData(false);
			}
            else
            MessageBox("页越界!!!","越界中断",MB_ICONEXCLAMATION);
		    return;
		}
		else
           MessageBox("未找到!!!","越界中断",MB_ICONEXCLAMATION);
		    return;
	}
     else
            MessageBox("段越界!!!","越界中断",MB_ICONEXCLAMATION);
		    return;
}

void CScannerDlg::OnButton3() 
{
	// TODO: Add your control notification handler code here
	if(m8<m28)
	{
        UpdateData(true);
		m34=m8+m26;
		m38=m12;
		UpdateData(false);
		if(m34==m18)
		{
			if(m3<m22)
			{
                m30=m3+m14;
                UpdateData(false);
			}
            else
            MessageBox("页越界!!!","越界中断",MB_ICONEXCLAMATION);
		    return;
		}
        if(m34==m19)
		{
			if(m3<m23)
			{
                m30=m3+m15;
                UpdateData(false);
			}
            else
            MessageBox("页越界!!!","越界中断",MB_ICONEXCLAMATION);
		    return;
		}
		if(m34==m20)
		{
			if(m3<m24)
			{
                m30=m3+m16;
                UpdateData(false);
			}
            else
            MessageBox("页越界!!!","越界中断",MB_ICONEXCLAMATION);
		    return;
		}
		if(m34==m21)
		{
			if(m3<m25)
			{
                m30=m3+m17;
                UpdateData(false);
			}
            else
            MessageBox("页越界!!!","越界中断",MB_ICONEXCLAMATION);
		    return;
		}
		else
           MessageBox("未找到!!!","越界中断",MB_ICONEXCLAMATION);
		    return;
	}
     else
            MessageBox("段越界!!!","越界中断",MB_ICONEXCLAMATION);
		    return;
}

void CScannerDlg::OnButton4() 
{
	// TODO: Add your control notification handler code here
	if(m9<m28)
	{
        UpdateData(true);
		m35=m9+m26;
		m39=m13;
		UpdateData(false);
		if(m35==m18)
		{
			if(m4<m22)
			{
                m31=m4+m14;
                UpdateData(false);
			}
            else
            MessageBox("页越界!!!","越界中断",MB_ICONEXCLAMATION);
		    return;
		}
        if(m35==m19)
		{
			if(m4<m23)
			{
                m31=m4+m15;
                UpdateData(false);
			}
            else
            MessageBox("页越界!!!","越界中断",MB_ICONEXCLAMATION);
		    return;
		}
		if(m35==m20)
		{
			if(m4<m24)
			{
                m31=m4+m16;
                UpdateData(false);
			}
            else
            MessageBox("页越界!!!","越界中断",MB_ICONEXCLAMATION);
		    return;
		}
		if(m35==m21)
		{
			if(m4<m25)
			{
                m31=m4+m17;
                UpdateData(false);
			}
            else
            MessageBox("页越界!!!","越界中断",MB_ICONEXCLAMATION);
		    return;
		}
		else
           MessageBox("未找到!!!","越界中断",MB_ICONEXCLAMATION);
		    return;
	}
     else
            MessageBox("段越界!!!","越界中断",MB_ICONEXCLAMATION);
		    return;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -