如何创建包含行尾控制字符的 SAS 固定格式输出?

发布于 2024-11-18 01:46:18 字数 278 浏览 3 评论 0原文

我正在使用 SAS 的 FILE 语句输出具有固定格式 (RECFM=F) 的文本文件。 我希望每一行都以行尾控制字符结尾,例如换行符/回车符。我尝试了 FILE 语句的选项 TERMSTR=CRLF 但仍然在输出文件中没有看到行尾控制字符。 我想我可以使用 PUT 语句插入所需的换行符和回车控制字符,但更喜欢更简洁的方法。对 FILE 语句的期望是否合理? (输出固定格式数据是合理的期望吗?) (平台:Windows v6.1.7600、SAS for Windows v9.2 TS Level 2M3 W32_VSPRO 平台)

I am using SAS's FILE statement to output a text file having fixed format (RECFM=F).
I would like each row to end in a end-of-line control character(s) such as linefeed/carriage return. I tried the FILE statement's option TERMSTR=CRLF but still I see no end-of-line control characters in the output file.
I think I could use the PUT statement to insert the desired linefeed and carriage return control characters, but would prefer a cleaner method. Is it a reasonable thing to expect of the FILE statement? (Is it a reasonable expectation for outputting fixed format data?)
(Platform: Windows v6.1.7600, SAS for Windows v9.2 TS Level 2M3 W32_VSPRO platform)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

少女的英雄梦 2024-11-25 01:46:18

您真的需要使用RECFM=F吗?您仍然可以使用 V 获得固定长度的输出:

data _null_;
  file 'c:\temp\test.txt' lrecl=12 recfm=V;

  do i=1 to 5;
    x=rannor(123);
    put @1 i @4 x 6.4;
  end;
run;

通过指定数据的去向(@1@3)和格式(6.4) 与 lrecl 一起,您将获得固定长度的输出。

可能有解决方法,但我相信 SAS 不会输出固定格式的行结束符。

Do you really need to use RECFM=F? You can still get fixed length output with V:

data _null_;
  file 'c:\temp\test.txt' lrecl=12 recfm=V;

  do i=1 to 5;
    x=rannor(123);
    put @1 i @4 x 6.4;
  end;
run;

By specifying where you want the data to go (@1 and @3) and the format (6.4) along with lrecl you will get fixed length output.

There may be a work-around, but I believe SAS won't output a line-ending with the Fixed format.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文