Foxtable(狐表)用户栏目专家坐堂 → 将一列的字符串全排列


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

主题:将一列的字符串全排列

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


加好友 发短信
等级:五尾狐 帖子:1027 积分:8942 威望:0 精华:0 注册:2015/8/12 16:28:00
将一列的字符串全排列  发帖心情 Post By:2016/7/7 20:26:00 [只看该作者]

Dim arr() As String

Dim a,ind As Integer
a= Tables("表A").Find("", 0, 0, False, True, True)
For ind = 0 To a-1
arr(Ind) =Tables("表A").Rows(ind)("第一列")
Next ind
'
''求排列
'Dim lst_Permutation As List(Of String()) = PermutationAndCombination(Of String).GetPermutation(arr)
'
'Dim s1 As String = ""
'For Each ary As String() In lst_Permutation
   's1 &= ary(0) & ary(1) & ary(2) & ary(3)  & ary(4)
'Next
MessageBox.Show(arr(1))

以上是我的代码,借鉴了部分狐表大大提供的全排列代码。
但是在赋值阶段总是提示“未将对象引用设置到对象的实例。”
即使将全排列部分注释掉也是如此


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/7 20:41:00 [只看该作者]

Dim arr(Tables("表A").Rows.count-1) As String
For Each r As Row In Tables("表A").Rows
    arr(r.Index) = r("第一列")
Next

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


加好友 发短信
等级:五尾狐 帖子:1027 积分:8942 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2016/7/7 21:00:00 [只看该作者]

。。。
为毛这种搭配总是猜不透。。。好几次了
记得有一次就是e.datarow可以用在findrow里面。。。

Dim wz As Integer = Tables("订单").FindRow(e.DataRow)


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


加好友 发短信
等级:五尾狐 帖子:1027 积分:8942 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2016/7/7 21:03:00 [只看该作者]

就是arr(x)里面的X可以用行的index。而不能直接用数字。。。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/7 23:49:00 [只看该作者]

以下是引用lur320在2016/7/7 21:03:00的发言:
就是arr(x)里面的X可以用行的index。而不能直接用数字。。。

 

肯定可以直接用数字。但是这个数字,必须在0到arr元素个数-1这个范围内。


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


加好友 发短信
等级:五尾狐 帖子:1027 积分:8942 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2016/7/8 8:53:00 [只看该作者]

以下是引用大红袍在2016/7/7 23:49:00的发言:

 

肯定可以直接用数字。但是这个数字,必须在0到arr元素个数-1这个范围内。

For ind = 0 To a-1
arr(Ind) =Tables("表A").Rows(ind)("第一列")
.......
MessageBox.Show(arr(1))
 
 
那么为什么这里按照这样赋值不行?
最后arr(1)总是没有值
 

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


加好友 发短信
等级:五尾狐 帖子:1027 积分:8942 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2016/7/8 8:55:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:capture.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/8 9:40:00 [只看该作者]

要定义数组的数量

 

Dim arr(Tables("表A").Rows.count-1) As String

 

http://www.foxtable.com/webhelp/scr/0216.htm

 


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


加好友 发短信
等级:五尾狐 帖子:1027 积分:8942 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2016/7/8 20:30:00 [只看该作者]

Dim a,ind As Integer
a= Tables("表A").Find("", 0, 0, False, True, True)
Dim arr(a-1) As String
For ind = 0 To a-1
arr(Ind) =Tables("表A").Rows(ind)("第一列")
Next ind

我更新了下代码,加入判断空行的数字a。再定义好数组的数量后就没有报错了

 回到顶部