我从导入SAS的另一个数据库中获得了一滴数据。数据块有多行以标记开头。我能够编写一段代码来查找每个标签并将它们附加到表列中。问题是,其中一个标签包含多行数据(由回车/换行分隔),我不在乎第一行。我只想将第二行数据添加到表列中(下面的示例:NADR :)。有人可以告诉我如何修改此代码行以仅查找第二行吗?
示例:
:NADR:SE12345
高级自动
:DF1:10/7/2018
代码:
大小写当find(t1.Blob,“:NADR:”)> 0时,Strip(Substr(Substr(t1.Blob,find(t1.Blob,“:NADR:”)+ 6,300),1,find( Substr(t1.Blob,find(t1.Blob,“:NADR:”)+ 6,300),“:”)-1))以名称结尾
谢谢。
答案 0 :(得分:0)
也许您可以分别导入每一行,然后仅删除不需要标签的行。例如:
if find(t1.Blob,":NADR:") > 0 then delete;
带有“ Advanced Auto”的行是它自己的记录。除非有关您的数据结构的其他规定不允许这样做。
答案 1 :(得分:0)
使用scan
功能获取部分文本。此示例演示了如何使用两个不同的十六进制字符(即cr和lf)作为部分定界符。
part2 = scan(blob,2,'0a0d'x);
默认行为是将文本中任何顺序的连续定界符视为单个定界符。 m
的第四个参数(上面未使用)中的scan
修饰符可以更改该行为。