主题:  还有一个数组的实际问题

mlzboy

职务:普通成员
等级:2
金币:2.0
发贴:317
#12004/4/13 7:52:34
问题如下:
dim class_e
class_e="机械023|机械022|机械021|机械011"
'我想删除其中的任意一个,如机械022这个根据传递过来的变量temp决定,然后使
new_class_e="机械023|机械021|机械011"(假设temp传过来的值是——>机械022)

我想是得用split(),ubound(),join(),以及for next循环,但是编出来是有错,望高手指点



mlzboy

职务:普通成员
等级:2
金币:2.0
发贴:317
#22004/4/13 7:59:00
代码如下:
array_class_e=split(class_e,"|")
for i=0 to ubound(array_class_e))
if array_class_e(i)=temp then exit for
next

dim array_class_e_2()
for j=0 to ubound(array_class_e)
if j<i then array_class_e_2(j)=array_class_e(j)
if j=i and i<ubound(array_class_e) then array_class_e_2(j)=array_class_e(i+1)
if j=i and i=ubound(array_class_e) then exit for
next

new_class_e=join(array_class_e_2(),"|")
好像在逻辑上也有错误,请指点





mlzboy

职务:普通成员
等级:2
金币:2.0
发贴:317
#32004/4/13 9:49:04
我修改了一下,不知道这样可不可以
array_class_e_2=filter(array_class_e,temp,false)
new_class_e=join(array_class_e_2,"|")



爱多媒体爱生活

职务:普通成员
等级:2
金币:1.0
发贴:303
#42004/4/13 11:46:21
你的项目的字符串长度都一样那不用数组也可以吧!!
先找子串在字符串中的位置,起始位,再用起始位+相同的长度.
如:
class_e="机械023|机械022|机械021|机械011"
传过来是temp="机械022"
那你可以先找出temp在class_e中的起始位和结束位.
再用相应的截取函数来得到两端的字串再加起来.
总之就是这样截取就可以啦!不用数组的!
我的思路就是这样啦!!



mlzboy

职务:普通成员
等级:2
金币:2.0
发贴:317
#52004/4/13 12:20:30
520media在上个帖子中说
引用:
你的项目的字符串长度都一样那不用数组也可以吧!!
先找子串在字符串中的位置,起始位,再用起始位+相同的长度.
如:
class_e="机械023|机械022|机械021|机械011"
传过来是temp="机械022"
那你可以先找出temp在class_e中的起始位和结束位.
再用相应的截取函数来得到两端的字串再加起来.
总之就是这样截取就可以啦!不用数组的!
我的思路就是这样啦!!

我的长度不是定的啊



绿茶

职务:普通成员
等级:8
金币:10.0
发贴:19267
#62004/4/13 17:20:47
用replace()替换
然后数组重排,这时替换掉的位置应该是空的,所以遇到值为空的地方,就跳转继续



绿茶

职务:普通成员
等级:8
金币:10.0
发贴:19267
#72004/4/15 14:39:18
示例:
rem ===当有手机时===
if rsc>0 then
	mobile = rs.getString(2,,,",","")
	mobile = left(trim(mobile),len(mobile)-1)
'
	rem ===确定最大抽奖用户数===
	if num = "" then num = 10
	num = cint(num)
	if num >= rsc then
		num = rsc
		m_cj = norm(mobile)
	else
		m_cj = cjset(mobile,num)
	end if
	'rw mobile & "<br>"
	'rw m_cj & "<br>"
else
	num = 0
	m_cj = ""
	response.write "<script language=javascript>"
	response.write "alert('无用户符合此条件');"
	response.write "history.back();"
	response.write "</script>"
end if
'rend

rem ===删除指定手机号===
function del_rm(m,m_str)
	dim m1,m2,l,i
	m1 = replace(m_str,m,"")
	m1 = split(m1,",")
	l = ubound(m1)
	for i=0 to l
		if m1(i)<>"" then
			if m2 = "" then
				m2 = m1(i)
			else
				m2 = m2 & "," & m1(i)
			end if
		end if
	next
	del_rm = m2
end function

rem ===删除重复手机号,取唯一手机值===
function norm(m)
	dim m1,m2
	m2 = ""
	if len(m)>=11 then
		m1 = left(m,11)
		m2 = m1
		m = del_rm(m1,m)
		do until len(m)<11
			m1 = left(m,11)
			m2 = m2 & "," & m1
			m = del_rm(m1,m)
		loop
	end if
	norm = m2
end function