使用For

时间:2015-05-14 08:59:41

标签: foxpro visual-foxpro

所以我有13个二进制值,我称之为b_1 ... b_13,并且基于这些值,我想要将我称之为indic_j的东西设置为先前定义的名为inf_j的字符串,或者根本没有。是否可以在不使用13“If ...”语句的情况下执行此操作?我试过的是

inf_1 = "aaaaa"
inf_2 = "bbbbb"

...等等定义了13个infs,其中aaaaa,bbbbb等是我想要选择的表中列的名称

FOR j = 1 to 13

IF b_j = 1 THEN "indic_"+j = inf_j + ",";
ELSE "indic_"+j = ""
ENDIF
ENDFOR

此外,在此之前我还没有介绍任何名为indic_1,indic_2等的内容。这需要吗?谢谢!

编辑: 我的最终目标是将选定的列转移到excel。我没有使用预定列进行此类问题,但我不确定如何仅允许选定的列。

我尝试过使用13个IF语句,但是我的运算符/操作数类型不匹配。我的代码目前是

IIF(b_1 = 1, indic_1 = inf_1 + ",",indic_1 = "")
IIF(b_2 = 1, indic_1 = inf_2 + ",",indic_1 = "")
IIF(b_3 = 1, indic_1 = inf_3 + ",",indic_1 = "")

等13次,然后

SELECTIONRANG = indic_1 + indic_2 + indic_3 + indic_4 + indic_5 + indic_6 +indic_7 + indic_8 + indic_9 + indic_10 + indic_11 + indic_12 + indic_13
SELECTIONRANGE = LEFT(SELECTIONRANG,LEN(Selectionrang)-1)

1 个答案:

答案 0 :(得分:0)

您可以将变量名创建为字符串,并与&结合使用 为:

    column1 column2 column3
 1:     1.0       A      AA
 2:     1.1    <NA>    <NA>
 3:     1.2       B      BB
 4:     1.3    <NA>    <NA>
 5:     1.4    <NA>    <NA>
 6:     1.5       C      CC
 7:     1.6    <NA>    <NA>
 8:     1.7    <NA>    <NA>
 9:     1.8    <NA>    <NA>
10:     1.9       D      DD