楼主: iRoss2007
3060 7

[问答] 求教!%do中能否设置字符型的下标变量? [推广有奖]

  • 0关注
  • 6粉丝

硕士生

80%

还不是VIP/贵宾

-

威望
0
论坛币
27691 个
通用积分
3.2888
学术水平
9 点
热心指数
11 点
信用等级
8 点
经验
6866 点
帖子
127
精华
0
在线时间
244 小时
注册时间
2008-12-3
最后登录
2022-9-4

楼主
iRoss2007 在职认证  学生认证  发表于 2012-3-24 15:13:34 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
小弟在编写一个宏循环中遇到了一个困难,先上程序!

%macro a(v1=);
    ……
%mend;

%macro loop;
    %do i='t1','t2','t3';
        %macro a(&i.);
    %end;
%mend;

%loop;

当调用%loop时,系统提示‘ERROR: 在 %DO 语句中未找到期望的 %TO,系统将编译哑宏’;

请问,%do循环必须要配合%to吗?如果循环下标是指定的若干个字符,该如何做?多谢论坛中的大侠!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:字符型 Macro Error loop do循环 ERROR 程序 如何

文(伪)科(码)男(农), 弹幕爱好者,微软脑残粉,萧亚轩脑残

沙发
iRoss2007 在职认证  学生认证  发表于 2012-3-24 15:31:18
没有人回答吗?自己顶!
文(伪)科(码)男(农), 弹幕爱好者,微软脑残粉,萧亚轩脑残

藤椅
priss111 发表于 2012-3-24 15:56:34
试试下面的code.

%macro loop;
  %do i=1 %to 3 %by 1;
  %put &t.;
    %do %while( &t.=t&i.);
        %macro a(&t.);
    %end;
   %end;
%mend;

%loop;
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
epoh + 3 + 3 + 3 热心帮助其他会员

总评分: 学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

板凳
iRoss2007 在职认证  学生认证  发表于 2012-3-24 16:11:39
嗯,priss111提出的解决方法的确可以,但如果我的循环下标是不规则的,不包含数字的字符,比如f,i,o,p这四个字符,又该如何做的?
文(伪)科(码)男(农), 弹幕爱好者,微软脑残粉,萧亚轩脑残

报纸
iRoss2007 在职认证  学生认证  发表于 2012-3-24 21:10:12
自己再顶一下
文(伪)科(码)男(农), 弹幕爱好者,微软脑残粉,萧亚轩脑残

地板
bobguy 发表于 2012-3-25 05:06:06
iRoss2007 发表于 2012-3-24 16:11
嗯,priss111提出的解决方法的确可以,但如果我的循环下标是不规则的,不包含数字的字符,比如f,i,o,p这 ...
There are many ways. Here is an example to illustrate the idea.

950  %macro loop(varlist=);
1951  %let n= %eval(%sysfunc(countc(%cmpres(&varlist),%str( )))+ (%length(&varlist)>0) );
1952
1953  %do i = 1 %to &n;
1954       %let cur_var=%scan(&varlist,&i);
1955       %put >>>&i &cur_var<<<;
1956
1957   %end;
1958
1959  %mend;
1960
1961  %loop(varlist=a b E f G)
>>>1 a<<<
>>>2 b<<<
>>>3 E<<<
>>>4 f<<<
>>>5 G<<<
已有 1 人评分热心指数 收起 理由
iRoss2007 + 1 热心帮助其他会员

总评分: 热心指数 + 1   查看全部评分

7
iRoss2007 在职认证  学生认证  发表于 2012-3-25 21:02:46
多谢bobguy!
文(伪)科(码)男(农), 弹幕爱好者,微软脑残粉,萧亚轩脑残

8
chendonghui1987 发表于 2012-3-28 11:30:32
没看懂题目

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-6 13:44