请教一个排序问题 小弟做了个样品添加的程序,每次加一个样品,编号就加一,比如B1,B2......BN。可是当其中一些编号被修改清除后,再添加样品时,应该能够填充以前被清除的一些编号,比如原来 B1 ,B2, ,,,B6,再添加时编号应该是B3.我编了几个都不理想,用数组操作,谁以前做过类似的程序,请给个成熟的思路,谢谢大家 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以声明一个数组,让每个元素的值对应你的编号下标,比如B(0)=0,B(1)=1......B(N)=N。在修改编号的时候,可以为对应的元素赋一个无意义的值,比如-1。在添加的时候,从数组的第一个元素开始逐个判断,找到值为-1的就可以了。如果没有找到,就可以redim了。 这个我也想过,可是我的样品很多,而且还有很多不同的样品,就得定义多个数组A(),B(),C()....会占用很大的内存吧,而且中间被修改的地方再添加的时候可能是其他类的样品,就不能按照同一个数组进行操作。 声明一个2维数组 0存ID 1 存状态 在每次存储时 查询已有的所有数组 速度非常快的 还有 会占用很大的内存吧好像不会 我的程序 时结构体加N个数组 都不慢 自定义类型:type MyProduct PID as long IsEpt as booleanend type声明数组:dim arrProduct() as MyProduct 这个我也想过,可是我的样品很多,而且还有很多不同的样品,就得定义多个数组A(),B(),C()....会占用很大的内存吧,而且中间被修改的地方再添加的时候可能是其他类的样品,就不能按照同一个数组进行操作。------------------------------------------------------------------添加不同样品肯定需要操作不同的数组,至于是A还是B还是C,你自己应该很清楚啊。定义类型也是可以的,如果样品多,用自定义类型更好。 就像TAB 顺序一样,不过我的不是只一个顺序,根据不同的样品类型,有不同的顺序,一个顺序里可能被改为其他的类型的顺序,挂个数据库可能太繁琐了吧 先把你的数组按照顺序号排序i1=最小顺序值for i2=最小顺序值 to 最大顺序值 if i1<>i2 then i1就是你要的顺序号 i1=i1+1next 呵呵,我也是这样做的阿,我是用do while 做的,就是需要很多判断,有一点没想到就会死机,用for 我不能确定最大值。exit for 好像不能跳出多重循环,不行就用goto 了。 vb重命名文件报错:在重命名时不能指定别的文件夹或磁盘 程序第2次打开时,怎么把第1次打开的激活,如同金山词霸一样 如何才能监视进程的创建 ACCESS数据库自增字段问题 如何在dataReport中,用代码动态的加入图片 判断当前是否连接到网上 TEXT文本框用粘贴命令贴进一些数字,这些数字中可能包含有回车键如何过滤掉所有的回车键。在线等待。。 密码登陆(快急死我了,5555) 绝对是个问题!!!!!!!! 我的电脑上VB保存文件时为什么出乱码? winsock udp发送完数据,马上等待回答信息,有问题。 请教:在textbox中取文本并分离的问题
在修改编号的时候,可以为对应的元素赋一个无意义的值,比如-1。在添加的时候,从数组的第一个元素开始逐个判断,找到值为-1的就可以了。如果没有找到,就可以redim了。
会占用很大的内存吧,而且中间被修改的地方再添加的时候可能是其他类的样品,就不能按照同一个数组进行操作。
在每次存储时 查询已有的所有数组 速度非常快的 还有
会占用很大的内存吧好像不会 我的程序 时结构体加N个数组 都不慢
type MyProduct
PID as long
IsEpt as boolean
end type
声明数组:
dim arrProduct() as MyProduct
会占用很大的内存吧,而且中间被修改的地方再添加的时候可能是其他类的样品,就不能按照同一个数组进行操作。
------------------------------------------------------------------
添加不同样品肯定需要操作不同的数组,至于是A还是B还是C,你自己应该很清楚啊。
定义类型也是可以的,如果样品多,用自定义类型更好。
被改为其他的类型的顺序,挂个数据库可能太繁琐了吧
i1=最小顺序值
for i2=最小顺序值 to 最大顺序值
if i1<>i2 then i1就是你要的顺序号
i1=i1+1
next