filemaker implode数组

时间:2011-03-11 13:50:37

标签: filemaker

所以我要说我的计算是这个

Let (
    [
        $result[1] ="1";
        $result[2] ="!";
        $result[3] = "3";
        $result[4] = "4";
        $result[5] = "5";
        $result[6] = "6";
        $result[7] = "7";
        $result[8] = "8";
        $result[9] = "-";
        $result[10] = "10";
        $result[11] = "11";
        $result[12] = "12";
        $result[13] = "13";
        $result[14] = "14";
        $result[15] = "15";
        $result[16] = "!";
    ];  
    $result[1] & 
    $result[2] & 
    $result[3] & 
    $result[4] & 
    $result[5] & 
    $result[6] & 
    $result[7] & 
    $result[8] & 
    $result[9] & 
    $result[10] & 
    $result[11] & 
    $result[12] & 
    $result[13] & 
    $result[14] & 
    $result[15] &
    $result[16]
)

这是非常简单的我make和数组然后我想它返回数组作为字符串是否有更简单的方法来连接结果数组的值?

**示例自定义功能*** 试图使用@chuck的代码不确定我做错了什么我可以弄清楚如何上传文件所以这里有一些误差

enter image description here enter image description here enter image description here

2 个答案:

答案 0 :(得分:4)

这里有两个自定义函数,如果你可以假设一旦你得到数组中的空白值,你就到达了数组的末尾。我写得很快,只测试了一次,但也许它会为你完成这项工作。

ConcatArray( VarName ) = _ConcatArray( VarName; 1 )

这只是调用带有初始值的递归函数。

_ConcatArray( VarName; Iteration ) = Let(
  [
    Var = Evaluate( "$" & VarName & "[" & Iteration & "]" )
  ];

  Case(
    IsEmpty( Var );
    "";
    Var & _ConcatArray( VarName; Iteration + 1 )
  )
)

然后我在FileMaker中打开了数据查看器并使用此计算对其进行了测试。

Let (
    [
        $result[1] ="1";
        $result[2] ="!";
        $result[3] = "3";
        $result[4] = "4";
        $result[5] = "5";
        $result[6] = "6";
        $result[7] = "7";
        $result[8] = "8";
        $result[9] = "-";
        $result[10] = "10";
        $result[11] = "11";
        $result[12] = "12";
        $result[13] = "13";
        $result[14] = "14";
        $result[15] = "15";
        $result[16] = "!"
    ];  
    ConcatArray( "result" )
)

结果是1!345678-101112131415!

答案 1 :(得分:1)

您可以使用递归自定义函数执行此操作。指定结束范围和var名称作为参数,然后它可以使用递增的索引号重复调用自身,直到索引号等于结束范围。