SAS..有一个包含两行数据的字符串,尝试只获取第二行数据



我有一个来自另一个数据库的数据块,我将其导入SAS。数据的blob有多行以标记开头。我能够编写一段代码来查找每个标记,并将它们附加到表列中。问题是,其中一个标签有多行数据(由回车/换行分隔(,我不在乎第一行。我只想将第二行数据添加到表列中(下面的示例:NADR:(。有人能告诉我如何修改这行代码以只查找第二行吗?

示例:

:NADR:SE12345

高级自动

:DF1:10/2018

代码:

案例当find(t1.Blob,":NADR:">

谢谢。

使用scan函数获取文本的部分。这个例子演示了使用两个不同的十六进制字符(cr&lf(作为零件分隔符。

part2 = scan(blob,2,'0a0d'x);

默认行为是,文本中任何顺序的连续分隔符都被视为单个分隔符。scan的第四个参数(上面没有使用(中的m修饰符可以更改该行为。

也许您可以单独导入每一行,然后删除带有不需要的标记的行。例如:

if find(t1.Blob,":NADR:") > 0 then delete;

而"高级自动"这句话就是它自己的记录。除非数据结构的其他方面不允许这样做。

最新更新