I would be most grateful if someone could help me to identfify empty strings when the missing function seems not capable of doing this. In my program, a text file is read, the resulting strings are divided into parts, and the missing function is applied to identify non-empty parts. However, empty parts are not always recognized and rows are erroneously kept in the data. Program is run in SAS EG 8.2. filename in "C:\Temp\Data to read.txt";
data work.data
(keep=Text);
infile in lrecl=200 dsd truncover;
input
@ 1 FirstChar $ 1.
@ 1 Text $ 200.
;
if 'A' <= firstChar <= 'Z' or firstChar in('1', '2');
if firstChar not in (' ', '-', '©');
run;
data work.Data2;
length Text Text2 $ 200 ProductCode $ 6 Comment $ 200 ;
set work.data;
if _N_ = 1
then
do;
retain produktkod_re;
regexp = "/[A-Z][A-Z]\d\d\d\d/";
produktkod_re = prxparse(regexp);
end;
/* Identify product code */
if prxmatch(produktkod_re, Text)
then
do;
which_format = prxparen(produktkod_re);
call prxposn(produktkod_re, which_format, pos, len);
/* Text2 contains everything from Text except what is before product code */
Text2 = substr(Text, pos);
ProductCode = substr(Text2, 1, 6);
/* Comment contains everything efter product code */
Comment = substr(Text2, 7);
end;
/* Exclude all lines where comment is missing */
if not missing(Comment);
run;
... View more