1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
* Data (variable v1) is enclosed in double quotes.
* Want to remove quotes en each side of data.
* rlevesque@videotron.ca.

***********Method 1.

*### First situation: the data inside the quote is a number. 
*convert the quote enclosed data (say variable v1) to the numeric variable as v3 follows.

COMPUTE v2=NUMBER(SUBSTR(v1,2,RINDEX(v1,'"')-2),F8.2).

*Note that the second argument of the RINDEX function is a " enclosed in 2 ' (2 single quotes).

*### Second situation: the data inside the quotes is a string.
*Assuming v1 is a string variable, get rid of the double quotes as follows:
* (The length of v4 must be at most 2 bytes smaller than the length of v1)

STRING v4(A8).
COMPUTE v4=SUBSTR(v1,2,RINDEX(v2,'"')-2).


************* Method 2.

* To remove beginning and ending quotes from string (many string variables).
* This is more general than method 1, since single and double quotes are automatically removed.

* list your variables after the = sign in the next line.
DO REPEAT vname=name sex city.
* Note: in next command, #len is the number of characters between the 2 quotes .
* this method can be used to delete ANY useless character at both the beginning and end of all values.

compute #len = rindex(vname,substr(vname,1,1))-2.
compute vname=substr(vname,2,#len).
END REPEAT.
execute.