当前位置:编程学习 > VB >>

从vb里读取了一个excel文件,分离字符串,做判断处理,求达人的算法想法

我在vb里读取了一个excel文件,这个excel文件有若干行和列组成,其中有一列数据是这样组成的:
(1)  1 x a,2 x b
(2)  1 x b
(3)  2 x a
(4)  1 x a
(5)  1 x c
(6)  1 x b
(7)  1 x c,1 x b
...
若干行。这个一列的数据是这样的,1 x a代表a物品有1件,同一行中可能会有多个品种。比如第(1)行和第(7)行,现在要求是这样:当读到一行,分离出物品和数量,这个物品在数据库里有对应的库存数。举例:假如物品a剩余库存数有3。b剩余库存数有4,C剩余库存数有2。那么根据要求,第(1)行是可以的,第(2)也是可以的,第(3)行也可以,第(4)行不可以,第(5)行可以,第(6)行可以,第(7)不可以。因为第(7)行c的数量是满足的,但b的库存数已经不足了,所以不可以。关于这个可以和不可以,在判断到的某行的列的单元格里标记yes或者no。
我目前已经做了,读入excel,分离物品和数量,如果从数据库里每次操作,来回读写效率低下。如果想使尽可能少的访问数据库,面上如何解决。1 x a,每读一行,分离出x前的数字,当到下一行了,还要继续。 --------------------编程问答-------------------- 以你的示例进行分析 先读数据库。得到以下数据
Array(a)=3
Array(b)=4
Array(c)=2
'''''
读第一行后
Array(a)=3-1=2
Array(b)=4-2=2
Array(c)=2
读第二行后
Array(a)=2
Array(b)=2-1=1
Array(c)=2
读第三行后
Array(a)=2-2=0
Array(b)=1
Array(c)=2
读第四行后
Array(a)=0<1失败
Array(b)=1
Array(c)=2
.....
..... --------------------编程问答-------------------- 有没有切实可行的办法。 --------------------编程问答-------------------- 用Split函数? --------------------编程问答-------------------- --------------------编程问答-------------------- 请人继续指点! --------------------编程问答-------------------- 2楼思路可行。先从数据库读出库存,然后逐行内存中计算处理。 --------------------编程问答-------------------- 供参考:

Private Sub Command1_Click()
Dim dic As Object, arr, brr() As String, v() As String, t() As String, i As Long, j As Long
Set dic = CreateObject("scripting.dictionary")
dic("a") = 3
dic("b") = 4
dic("c") = 2
arr = Array("1 x a,2 x b", "1 x b", "2 x a", "1 x a", "1 x c", "1 x b", "1 x c,1 x b")
ReDim brr(UBound(arr))
For i = 0 To UBound(arr)
v = Split(arr(i), ",")
brr(i) = True
For j = 0 To UBound(v)
t = Split(v(j), "x")
 brr(i) = brr(i) And (Val(Trim(t(0))) <= dic(Trim(t(1))))
dic(Trim(t(1))) = dic(Trim(t(1))) - Val(Trim(t(0)))
Next
Next
MsgBox Join(brr, ",")
End Sub
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,