请教:在ASP中对字符进行判断后输出(解决后100分全给)

zjg791015 2007-09-04 11:32:40
本人在写一个相当于签到的应用,具体如下:
1、数据库里有2个字段,qiandao和qiandaojilu;
2、qiandao里记录了应该要签到的人员,并用逗号分隔(如:张三,李四);
3、qiandaojilu里记录了已经签到的人员,并用逗号分隔(同上);
4、在Web里有两行,一行显示应签到人员(qiandao),另一行显示实际签到人员(qiandaojilu);
5、问题出来了:我想对这两个字段里的字符进行判断,然后把没有签到(或已经签到)的人员用红色显示出来。显示在应签到人员(qiandao)这一行中,或者另取一行也行(新增未签到人员一行)

请高手给予指导,我被自己绕晕了,还好现在能清楚的写出应用目的来。
...全文
188 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hunshihaichong 2007-09-04
  • 打赏
  • 举报
回复
改正:
sql="SELECT qiandao,qiandaojilu FROM TABLENAME"
rs.open sql,conn,1,1
if not (rs.eof and rs.bof) then
str1=rs("qiandao")
str2=rs("qiandaojilu")
end if
rs.close
set rs=nothing

arr1=split(str1,",")'实签到

'找未签到
for i=0 to ubound(arr1)-1
if Instr(1,str2,arr1(i))=0 then
strN=strN&"-"&arr1(i)
end if
next
Response.Write "未签到人员:"&strN
hunshihaichong 2007-09-04
  • 打赏
  • 举报
回复
sql="SELECT qiandao,qiandaojilu FROM TABLENAME"
rs.open sql,conn,1,1
if not (rs.eof and rs.bof) then
str1=rs("qiandao")
str2=rs("qiandaojilu")
end if
rs.close
set rs=nothing

arr1=split(str1,",")'实签到

'找未签到
for i=0 to ubound(arr1)-1
if Instr(1,str2,arr1(i))<>0 then
strN=strN&"-"&arr1(i)
end if
next
Response.Write "未签到人员:"&strN
toury 2007-09-04
  • 打赏
  • 举报
回复
sql="SELECT qiandao,qiandaojilu FROM TABLENAME"
rs.open sql,conn,1,1
if not (rs.eof and rs.bof) then
str1=rs(0)
str2=rs(1)
end if
rs.close
set rs=nothing

arr1=split(str1,",")'实签到
arr2=split(str2,",")'应签到

'找未签到
strN=""
for i=0 to ubound(arr2)
for j=0 to ubound(arr1)
if arr1(j)<>arr2(i) then
if strN="" then strN=arr2(i) else strN=strN&","&arr2(i)
end if
exit for
next
next
Response.Write "未签到人员:"&strN
zjg791015 2007-09-04
  • 打赏
  • 举报
回复
谢谢各位的帮助,十分感谢!
我就是字符串函数用得少,真是晕啊;多谢“害虫”的最后一次修改,成功了!
hunshihaichong 2007-09-04
  • 打赏
  • 举报
回复
<%
dim str1,str2,strN
str1="aa,cc,dd" '已到
str2="aa,bb,cc,dd,ee,ff" '全部名单

arr=split(str2,",")

for i=0 to ubound(arr)
if Instr(1,str1,arr(i))=0 then
strN=strN&arr(i)&","
end if
next

Response.Write str1&"<br>"
Response.Write str2&"<br>"
Response.Write "未签到人员:"&Left(strN,len(strN)-1)
%>

复制试试
zjg791015 2007-09-04
  • 打赏
  • 举报
回复
for i=0 to ubound(arr1)-1
if Instr(1,","&str2&",",","&arr1(i)&",")=0 then
strN=strN&"-"&arr1(i)
end if
next
Response.Write "未签到人员:"&strN

这一段还不对,strN里没有数据;我测试了str1和str2,里面的数据都正确了。
北京不不 2007-09-04
  • 打赏
  • 举报
回复
上面老兄都讲了.有什么特别的要求不.
香椿炒鸡蛋 2007-09-04
  • 打赏
  • 举报
回复
取出两个字段的内容以后,按逗号分割循环比较就可以了,要想更快一些,采用2分法或其他算法
xiaolei1982 2007-09-04
  • 打赏
  • 举报
回复
以上两个方法都行,但是害虫的写法感觉应该
?
改正:
sql="SELECT qiandao,qiandaojilu FROM TABLENAME"
rs.open sql,conn,1,1
if not (rs.eof and rs.bof) then
str1=rs("qiandao")
str2=rs("qiandaojilu")
end if
rs.close
set rs=nothing

arr1=split(str1,",")'实签到

'找未签到
for i=0 to ubound(arr1)-1
if Instr(1,","&str2&",",","&arr1(i)&",")=0 then
strN=strN&"-"&arr1(i)
end if
next
Response.Write "未签到人员:"&strN
这样避免“害虫”和“害虫虫”两个名字

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧