菜鸟问题:字符串的小问题?
为了判断AnsiString型的Temp->Class是否在ComboBox2中出现过,我使用了如下代码:
for (i=0;i<ComboBox2->Items->Count;i++)
{
//下面的判断有错
if (ComboBox2->Items->Text[i]==Temp->Class)
j=TRUE;
}
在运行到判断的行时,系统报错。“Project Project1.exe raised exception class EAccessViolation with message ´Access violation at address 400089C8 in module ´VCL50.BPL´. Read of address 83AC2603´”
我查询帮助得知,Items为TString型,与Temp->Class类型不符。Text[i]的值比我预计的多了个"\r\n"。不知如何解决,望各位指教!
问题点数:20、回复次数:6Top
1 楼lxpbuaa(桂枝香在故国晚秋)回复于 2001-12-03 22:52:18 得分 5
我不知道你的Temp是什么类型?
不过按照你的要求:为了判断AnsiString型的Temp->Class是否在ComboBox2中出现过
你的
if (ComboBox2->Items->Text[i]==Temp->Class)
应该是写错了,应该改为:
if (ComboBox2->Items->Strings[i]==Temp->Class)Top
2 楼wyb_45(小兵)回复于 2001-12-04 08:37:27 得分 3
是不是Temp->ClassNameTop
3 楼kingfish(工作很忙,很少来csdn...)回复于 2001-12-04 08:53:50 得分 9
可以这么做:
AnsiString s="kingfish";
if(ComboBox1->Items->IndexOf(s)==-1)
//s not in the string list
Top
4 楼Wingsun(孙春阳)回复于 2001-12-04 08:58:49 得分 3
是啊!为何不使用IndexOf函数呢?
而且也不知道你的Temp是什么类型的Class又返回什么数据类型,而且你的Temp有效吗?Top
5 楼cool222(坚持到底)回复于 2001-12-04 12:32:43 得分 0
我的Temp类型是一个自定义的类,Class是其中的一个AnsiString型成员。
用IndexOf可以吗?我先试试再来给分。Top
6 楼cool222(坚持到底)回复于 2001-12-05 12:04:21 得分 0
好了,现在加分Top




