我是写了一个数字处理的软件。
功能:
要求除去编辑框中和设置中的个位数,和十位数相同的数字。我自己输入数字可以实现,但是当我从记事本里面复制一段数字进编辑框就成了这个样子了,软件运行就不对了,这样还怎么用GetAt()获取字符?下面这是我处理数字的代码:UpdateData(TRUE);
m_nNum2 = m_strNum1.GetLength();
Shi = m_nShi + '0';
Ge = m_nGe + '0';
CString str = m_strNum1;
while((m_nNum2)>=0)
{
if (' ' == m_strNum1.GetAt(0) || 0x0d == m_strNum1.GetAt(0))
{
m_strNum1 = m_strNum1.Right(m_nNum2-1);
m_nNum2 -= 1;
}
else
{
if (m_strNum1.GetAt(0) < '0' || m_strNum1.GetAt(0) > '9'||m_strNum1.GetAt(1) < '0' || m_strNum1.GetAt(1) > '9')
{
m_strNum1 = str;
m_strNum2 = _T("警告:输入的数据有误");
UpdateData(FALSE);
return;
}
else
{
if (Shi == m_strNum1.GetAt(0) || Ge == m_strNum1.GetAt(1))
{
m_strNum1 = m_strNum1.Right(m_nNum2-3);
m_nNum2 -= 3;
}
else
{
m_strNum2 += m_strNum1.Left(3);
m_strNum1 = m_strNum1.Right(m_nNum2-3);
m_nNum2 -= 3;
}
}
}
}
m_strNum1 = str;
UpdateData(FALSE);
功能:
要求除去编辑框中和设置中的个位数,和十位数相同的数字。我自己输入数字可以实现,但是当我从记事本里面复制一段数字进编辑框就成了这个样子了,软件运行就不对了,这样还怎么用GetAt()获取字符?下面这是我处理数字的代码:UpdateData(TRUE);
m_nNum2 = m_strNum1.GetLength();
Shi = m_nShi + '0';
Ge = m_nGe + '0';
CString str = m_strNum1;
while((m_nNum2)>=0)
{
if (' ' == m_strNum1.GetAt(0) || 0x0d == m_strNum1.GetAt(0))
{
m_strNum1 = m_strNum1.Right(m_nNum2-1);
m_nNum2 -= 1;
}
else
{
if (m_strNum1.GetAt(0) < '0' || m_strNum1.GetAt(0) > '9'||m_strNum1.GetAt(1) < '0' || m_strNum1.GetAt(1) > '9')
{
m_strNum1 = str;
m_strNum2 = _T("警告:输入的数据有误");
UpdateData(FALSE);
return;
}
else
{
if (Shi == m_strNum1.GetAt(0) || Ge == m_strNum1.GetAt(1))
{
m_strNum1 = m_strNum1.Right(m_nNum2-3);
m_nNum2 -= 3;
}
else
{
m_strNum2 += m_strNum1.Left(3);
m_strNum1 = m_strNum1.Right(m_nNum2-3);
m_nNum2 -= 3;
}
}
}
}
m_strNum1 = str;
UpdateData(FALSE);
UpdateData(TRUE); 编辑框中字符串在m_strNum1 中是怎么存放的?
复制进去的字符串里面是这样存放的:
比如:
12 34 56\r\n
32 54 65\r\n
43 76 89
所以判断\r\n就可以了。