首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >infile dlm='@@',但电子邮件地址被截断

infile dlm='@@',但电子邮件地址被截断
EN

Stack Overflow用户
提问于 2020-01-16 23:29:38
回答 2查看 63关注 0票数 0

我正在尝试使用:

代码语言:javascript
复制
infile dlm='@@' dsd missover; 

将SAS码复制到新位置,但它截断了电子邮件地址(在SAS码中有一个电子邮件地址,例如abc@xyz.com ),并且只在新代码中显示用户名'ABC‘,并且'@xyz.com’部分被截断。

所以我排除了infile选项

代码语言:javascript
复制
dlm='@@' 

重新运行代码,并且正确读取了电子邮件地址,但是缺少一些常规行。

只是想知道如果一些小选项,我可以尝试正确地读取所有行,也正确地读取电子邮件地址。

谢谢!

举个例子:

代码语言:javascript
复制
*91,87,95 abc@xyz.com test hudpiwaHUOV0 
 97,,92% bmno[aej0i34hmbtgkoersw934bnrtui9sdobn vnbud9rw0aq598vnfjipa 
 njuio9rpep0snhtui9es000 
 from="mjerrt_thpian@wedoo.com" 
 fjsui123,1,1 0 ;

 data a;
 infile "/.../email.xlsx" 
   missover dsd lrecl=32767 firstobs=1;* dlm='@';     * delimiter = '@@';
   informat all $char50. ;
  input all $ ;
  pk=_n_;
 run;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-17 01:36:56

看起来您的数据使用空格作为分隔符。

让我们将示例文本转换为文件,这样我们就有了测试依据。

代码语言:javascript
复制
filename txt temp;
options parmcards=txt;
parmcards4;
*91,87,95 abc@xyz.com test hudpiwaHUOV0 
 97,,92% bmno[aej0i34hmbtgkoersw934bnrtui9sdobn vnbud9rw0aq598vnfjipa 
 njuio9rpep0snhtui9es000 
 from="mjerrt_thpian@wedoo.com" 
 fjsui123,1,1 0 ;
;;;;

现在我们可以读取文件并将其解析为单独的“单词”。

代码语言:javascript
复制
data parse ;
  infile txt dlm=' ' length=llen column=ccol ;
  lineno+1;
  do wordno=1 by 1 until(ccol>llen);
    length word $200 ;
    input word @ ;
    output;
  end;
run;

结果:

代码语言:javascript
复制
Obs    lineno    wordno    word

  1       1         1      *91,87,95
  2       1         2      abc@xyz.com
  3       1         3      test
  4       1         4      hudpiwaHUOV0
  5       2         1      97,,92%
  6       2         2      bmno[aej0i34hmbtgkoersw934bnrtui9sdobn
  7       2         3      vnbud9rw0aq598vnfjipa
  8       3         1      njuio9rpep0snhtui9es000
  9       4         1      from="mjerrt_thpian@wedoo.com"
 10       5         1      fjsui123,1,1
 11       5         2      0
 12       5         3      ;

如果您将DSD选项添加到INFILE语句中,您将获得更多的单词,因为相邻(或前导)的空格将表示一个空词。

票数 0
EN

Stack Overflow用户

发布于 2020-01-17 15:49:49

使用

代码语言:javascript
复制
infile 'email.xlsx' dlm='00'x;

如果你真的不需要分隔符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59772954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档