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
36
37
* Удаление кавычек по краям строковой переменной.

* Данные (в переменной v1) заключены в двойные кавычки.
* Задача удалить кавычки с обоих концов.
* Автор: rlevesque@videotron.ca.

*********** Метод 1.

*### Первый случай: данные внутри кавычек являются числами. 
* Тогда конвертируем заключенные в кавычки значения (из переменной v1) в числовые значения переменной v3:.

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

*Обратите внимание, второй аргумент функции RINDEX  - двойная кавычка, заключенная в две одинарные.

*### Второй случай: данные внутри кавычек строковые.
* Если  v1 - строковая переменная с кавычками, избавиться от них можно так:
* (длина новой переменной v4 будет на 2 байта короче длины v1).

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


************* Метод 2.

* Удаление начальных и конечных кавычек из строк (несколько переменных за раз).
* Более общий метод, чем №1, поскольку удаляет как двойные, так и одинарные кавычки.

* перечислите нужные для обработки переменные после знака равенства в следующей строке.
DO REPEAT vname=name sex city.
* Обратите внимание: в следующей команде #len содержит число символов между двумя кавычками.
* Этот метод можно использовать для удаления ЛЮБЫХ ненужные символов в начале и конце строки.

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