初学者,那位大侠能帮我看看为什么显示不了

我想实现的是一个知道指针的字符串".#..#.#...#."的分隔(以#号分隔的,每个#之间的字符不等长)把每个#号前的字符分别显示到4个edit控件编辑框里面

我是用两个函数实现的 一个是dispach 负责拆分字符串,存到buffer中.另一个是display负责显示

下面是我的代码,显示不出来,请大侠指点,谢谢!!
void CMy30Dlg::dispach()
{
CString str = "a#bc#dfgh#e";
int Len = str.GetLength();
int Len1;
char buffer[200],*p;
p=buffer;
while (Len1=str.Find("#"))
{
char *p=(LPSTR)(LPCTSTR)str.Left(Len1);
str=str.Right(Len-Len1-1);
Len=str.GetLength();

}//每次循环得到的字符串都保存在了buffer里面
}

void CMy30Dlg::display()
{
int i=1 ;
char ch1[10],ch2[10],ch3[10],ch4[10],*t1,*t2,*t3,*t4;
t1 = ch1;
t2 = ch2;
t3 = ch3;
t4 = ch4;
CString m_char,m_disp;
char *p = (LPSTR)(LPCTSTR)m_disp;
m_char = "/0";

while (!m_char.IsEmpty()&&(i<5))
{
int index = m_disp.Find(m_char);
m_disp= m_disp.Right(m_disp.GetLength()-index-1);
char *t1=(LPSTR)(LPCTSTR)m_disp;
i++;
}
m_fre = *t1;
m_bw = *t2;
m_sen = *t3;
m_hop= *t4;
UpdateData(false);

}
[1142 byte] By [smile0403-虚心请教每一天] at [2008-1-9]
# 1
写得好复杂!
下面的代码将分解后的结果存放再strtemp数组中.
CString str = "a#bc#dfgh#e";
CString strtemp[4];
int nFind = 0;
int i=0;
for (;nFind != -1;)
{
nFind = str.Find("#",0);
if(nFind != -1)
{
strtemp[i++] = str.Left(nFind);
str= str.Mid(nFind + 1);
}
else
{
strtemp[i++] = str;
}

}
wenbaby-雯贝贝 at 2007-10-19 > top of Msdn China Tech,VC/MFC,基础类...
# 2
{
char *p=(LPSTR)(LPCTSTR)str.Left(Len1);
str=str.Right(Len-Len1-1);
Len=str.GetLength();

}//每次循环得到的字符串都保存在了buffer里面
}
?你哪有把得到的字符串都保存在了buffer里面的代码呀
sokewoniu-缩壳蜗牛 at 2007-10-19 > top of Msdn China Tech,VC/MFC,基础类...
# 3
看看MSDN中CString的Tokenize方法的例子吧,要简单些:
//typedef CStringT< TCHAR, StrTraitATL< TCHAR > > CAtlString;
CAtlString str( "%First Second#Third" );
CAtlString resToken;
int curPos= 0;

resToken= str.Tokenize("% #",curPos);
while (resToken != "")
{
printf("Resulting token: %s\n", resToken);
resToken= str.Tokenize("% #",curPos);
};
superarhow-苏泊尔耗 at 2007-10-19 > top of Msdn China Tech,VC/MFC,基础类...
# 4
汗~~ :(
刚刚学 惭愧

那我第二个函数能实现显示在四个edit框中么 谢谢!!
# 5
假如你所要显示的内容放在字符串string里,
CString string=".....";
CWnd *pWnd;
pWnd=this->GetDlgItem(IDC_EDIT1);
pWnd->SetWindowText(string);
通过上面几行就可以把一个字符串显示到Edit里了。
# 6
那如果我的字符串是放在一个数组中的呢 比如就是temp[4]
我要把每一个里面的字符同时显示在4个edit中,该怎么办呢

我显示不出来,代码不报错,肯定是我方法不对

谢谢!
# 7
用一个MFC未公开函数AfxExtractSubString来搞定字符串分割
CString str = "a#bc#dfgh#e";
CString str1,str2,str3,str4;
AfxExtractSubString(str1,str,0,'#');//str1="a"
AfxExtractSubString(str2,str,1,'#');//str2="bc"
AfxExtractSubString(str3,str,2,'#');//str3="dfgh"
AfxExtractSubString(str4,str,3,'#');//str4="e"
# 8
这两个~~
=============
用一个MFC未公开函数AfxExtractSubString来搞定字符串分割
CString str = "a#bc#dfgh#e";
CString str1,str2,str3,str4;
AfxExtractSubString(str1,str,0,'#');//str1="a"
AfxExtractSubString(str2,str,1,'#');//str2="bc"
AfxExtractSubString(str3,str,2,'#');//str3="dfgh"
AfxExtractSubString(str4,str,3,'#');//str4="e"

CString string=".....";
CWnd *pWnd;
pWnd=this->GetDlgItem(IDC_EDIT1);
pWnd->SetWindowText(string);

shl6894-越学越无知 at 2007-10-19 > top of Msdn China Tech,VC/MFC,基础类...
# 9
谢谢!
谢谢各位!