以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 将一列的字符串全排列 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=87304) |
-- 作者:lur320 -- 发布时间: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)) 以上是我的代码,借鉴了部分狐表大大提供的全排列代码。 但是在赋值阶段总是提示“未将对象引用设置到对象的实例。” 即使将全排列部分注释掉也是如此 |
-- 作者:大红袍 -- 发布时间: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 -- 发布时间:2016/7/7 21:00:00 -- 。。。 为毛这种搭配总是猜不透。。。好几次了 记得有一次就是e.datarow可以用在findrow里面。。。 Dim wz As Integer = Tables("订单").FindRow(e.DataRow) |
-- 作者:lur320 -- 发布时间:2016/7/7 21:03:00 -- 就是arr(x)里面的X可以用行的index。而不能直接用数字。。。 |
-- 作者:大红袍 -- 发布时间:2016/7/7 23:49:00 -- 以下是引用lur320在2016/7/7 21:03:00的发言:
就是arr(x)里面的X可以用行的index。而不能直接用数字。。。
肯定可以直接用数字。但是这个数字,必须在0到arr元素个数-1这个范围内。 |
-- 作者:lur320 -- 发布时间: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 -- 发布时间:2016/7/8 8:55:00 -- 此主题相关图片如下:capture.png |
-- 作者:大红袍 -- 发布时间:2016/7/8 9:40:00 -- 要定义数组的数量
Dim arr(Tables("表A").Rows.count-1) As String
http://www.foxtable.com/webhelp/scr/0216.htm
|
-- 作者:lur320 -- 发布时间: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。再定义好数组的数量后就没有报错了
|