Barite | Level 11

## Scan function

Hello Experts,

I would like to scan all the phrase after 5 space.

I have this code : Ligne2 = scan(ligne,5,'') , but as result I have only one word.

Do you know please, how to scan all phrase after 5st space ?

Thank you for your help !

3 REPLIES 3
Super User

## Re: Scan function

``````LIGNE2 = substr(ligne, 5);
``````

SUBSTR() will extract everything from the 5th character onwards.

SCAN() with 5, looks for 5th term with a delimiter (space). Given your stated requirements I think SUBSTR() is the correct function for you usage.

@SASdevAnneMarie wrote:

Hello Experts,

I would like to scan all the phrase after 5 space.

I have this code : Ligne2 = scan(ligne,5,'') , but as result I have only one word.

Do you know please, how to scan all phrase after 5st space ?

Thank you for your help !

Super User

## Re: Scan function

Please show us examples for the string you want to scan, and what you want to extract from them.

Super User

## Re: Scan function

@SASdevAnneMarie wrote:

Hello Experts,

I would like to scan all the phrase after 5 space.

I have this code : Ligne2 = scan(ligne,5,'') , but as result I have only one word.

Do you know please, how to scan all phrase after 5st space ?

Thank you for your help !

Scan does return ALL.  It returns the nTH term.

```1    data _null_;
2      line = 'one  two  three four five six seven';
3      line2 = scan(line,5,' ');
4      put (line line2) (=\$quote.);
5    run;

line="one  two  three four five six seven" line2="five"
```

If you want the result to be "five six seven" then use CALL SCAN() and SUBSTRN().

```6    data _null_;
7      line = 'one  two  three four five six seven';
8      call scan(line,5,position,length,' ');
9      line2=substrn(line,position);
10     put (line line2) (=\$quote.);
11   run;

line="one  two  three four five six seven" line2="five six seven"
```
Discussion stats
• 3 replies
• 188 views
• 2 likes
• 4 in conversation