Foxtable(狐表)用户栏目专家坐堂 → 求助,分割完后的字符如何定位取值?


  共有3511人关注过本帖树形打印复制链接

主题:求助,分割完后的字符如何定位取值?

帅哥哟,离线,有人找我吗?
晕了快扶我
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1195 积分:7040 威望:0 精华:0 注册:2013/3/4 18:02:00
求助,分割完后的字符如何定位取值?  发帖心情 Post By:2013/8/15 16:12:00 [只看该作者]

一数据列中固定输入格式如下 ,数据格式为String

送扳手1个+螺丝刀2把|A*1+B*2   'A表示扳手的物料编码,B表示螺丝刀的物料编码

把这个字窜分割成

A

1

B

2

后,我需要用SQL语句调用物料编码取得各个物料的成本单价,代码如下

Dim Str1 As String = "送扳手1个+螺丝刀2把|A*1+B*2"
Dim V As Integer= Str1.IndexOf("|")
Dim str2 As String =str1.Remove(0,v+1)
Dim ss() As String = str2.Split("+")
For Each s1 As String In ss
    Dim s2() As String  = s1.Split("*")
    For Each s3 As String In s2
        'output.show(s3)
        Dim cmd As New SQLCommand
        cmd.C
        cmd.CommandText = "select 合计成本 from {产品资料主表} where 物料编码 = '" & 这里是一个分割出来的字符,也就是A & "'"
     Dim vv As Decimal = cmd.ExecuteScalar
e.DataRow("赠品价格") = VV* ..(这里是分割出来的第二个字符就是数量)  
    Next
Next

 

求助,标红的地方该怎么写呢?



 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/8/15 16:20:00 [只看该作者]

output.show(s3) 如果是你想要的值 直接拼接  S3 即可啊



 回到顶部
帅哥哟,离线,有人找我吗?
晕了快扶我
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1195 积分:7040 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/8/15 16:21:00 [只看该作者]

以下是引用Bin在2013-8-15 16:20:00的发言:
output.show(s3) 如果是你想要的值 直接拼接  S3 即可啊


关键是 S3我分割成了2个字符,要分别取值啊,第一个值是用在SQL里的,另一个值是数量,用来计算价格的


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/8/15 16:23:00 [只看该作者]

s2(0)  s2(1) 即可 没有必要循环它



 回到顶部
帅哥哟,离线,有人找我吗?
晕了快扶我
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1195 积分:7040 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/8/15 16:24:00 [只看该作者]

以下是引用Bin在2013-8-15 16:23:00的发言:
s2(0)  s2(1) 即可 没有必要循环它


...原来字符后面可以跟数字表示位置的啊,我试试


 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/8/15 16:32:00 [只看该作者]

Dim s As String = "送扳手1个+螺丝刀2把|A*1+B*2"
Dim s1 As String = s.Split("|")(1).Split("+")(0).split("*")(0) '扳手编号
Dim s2 As String = s.Split("|")(1).Split("+")(1).split("*")(0) '螺丝刀编号
Dim s3 As String = s.Split("|")(1).Split("+")(0).split("*")(1) '扳手数量
Dim s4 As String = s.Split("|")(1).Split("+")(1).split("*")(1) '螺丝刀数量
Output.Show(s1 & s2 & s3 & s4)

 回到顶部
帅哥哟,离线,有人找我吗?
晕了快扶我
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1195 积分:7040 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/8/15 16:40:00 [只看该作者]

以下是引用lsy在2013-8-15 16:32:00的发言:
Dim s As String = "送扳手1个+螺丝刀2把|A*1+B*2"
Dim s1 As String = s.Split("|")(1).Split("+")(0).split("*")(0) '扳手编号
Dim s2 As String = s.Split("|")(1).Split("+")(1).split("*")(0) '螺丝刀编号
Dim s3 As String = s.Split("|")(1).Split("+")(0).split("*")(1) '扳手数量
Dim s4 As String = s.Split("|")(1).Split("+")(1).split("*")(1) '螺丝刀数量
Output.Show(s1 & s2 & s3 & s4)

这方法灵活性不高啊,因为有可能还有C*3,D*4


 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/8/15 16:47:00 [只看该作者]

不是代码灵活性不高,是楼主的灵活性不高啊。

Dim s As String = "送扳手1个+螺丝刀2把|A*1+B*2"
只是楼主提供的一个例子,这个字符串从何而来,只有你一个人知道,而且可以是变量。

 

变量灵活性高不高?


 回到顶部
帅哥哟,离线,有人找我吗?
晕了快扶我
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1195 积分:7040 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/8/15 16:50:00 [只看该作者]

以下是引用lsy在2013-8-15 16:47:00的发言:

不是代码灵活性不高,是楼主的灵活性不高啊。

Dim s As String = "送扳手1个+螺丝刀2把|A*1+B*2"
只是楼主提供的一个例子,这个字符串从何而来,只有你一个人知道,而且可以是变量。

 

变量灵活性高不高?

这个没办法,这个程序是给统计淘宝的出库单的,所有的赠品都在备注里写的,淘宝的出库单格式是固定的,我没办法动,只能采取这种变通的方法,让操作员用固定的备注格式,我通过分割字符来取值


 回到顶部
帅哥哟,离线,有人找我吗?
晕了快扶我
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1195 积分:7040 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/8/15 16:53:00 [只看该作者]

单个赠品的价格算出来了,全部累加该如何写呢?状态不好,脑子混乱啊

Dim Str1 As String = "送扳手1个+螺丝刀2把|A*1+B*2"
Dim V As Integer= Str1.IndexOf("|")
Dim str2 As String =str1.Remove(0,v+1)
Dim ss() As String = str2.Split("+")
For Each s1 As String In ss
    Dim s2() As String  = s1.Split("*")
    Dim cmd As New SQLCommand
    cmd.C
    cmd.CommandText = "select 合计成本 from {产品资料主表} where 存货编码 = '" & S2(0) & "'"
    Dim vv As Decimal = cmd.ExecuteScalar
    Dim sl As Integer = Format(s2(1))
    Dim jg As Decimal = vv*sl ‘这个是每个赠品的价格,如何把所有赠品的价格都计算出来呢?就是赠品1+赠品2+赠品3+...
Next

 


 回到顶部
总数 13 1 2 下一页