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
38
/* ВОПРОС: для импорта в некоторую программу мне надо конвертировать файл SPSS
в ASCII-файл, где столбцы разделены запятой и пробелом. Кроме этого, для каждого покупателя первая
строка в файле должна содержать его номер (Buoy_ID), а последняя строка - слово "End". */.

* ОТВЕТ. Автор: rlevesque@videotron.ca.

DATA LIST LIST /Buoy_ID Buoy_Obs Lat Long.
BEGIN DATA
1 1 1 1.234
1 2 2 22.3561
1 3 3 3
2215 10.2521 4 4
2215 2 5 5
2215 3 625.3265 6
2215 4 7 7
END DATA.
LIST.

* Если файл ещё не отсортирован по переменной Buoy_ID, снимите комментарий (*)
со следующей строки.
*SORT CASES BY Buoy_ID.
MATCH FILES FILE=* /BY Buoy_ID /FIRST=first /LAST=last.

STRING outvar(A80).
* Используйте свой формат записи: измените числа 10, 8 и 4 в следующей строке
так, как вам нужно.
COMPUTE outvar=CONCAT(LTRIM(STRING(Buoy_Obs,F10.0)),", ",LTRIM(RTRIM(STRING(Lat,F8.4))),", ",LTRIM(STRING(Long,F8.4))).
VECTOR d(3F8.0).
DO IF first.
WRITE OUTFILE='c:\\temp\\tmp.txt'  TABLE/ Buoy_ID.
WRITE OUTFILE='c:\\temp\\tmp.txt'  TABLE/ outvar.
ELSE IF ~last.
WRITE OUTFILE='c:\\temp\\tmp.txt'  TABLE/ outvar.
ELSE IF last.
WRITE OUTFILE='c:\\temp\\tmp.txt'  TABLE/ outvar.
WRITE OUTFILE='c:\\temp\\tmp.txt'  TABLE/ "End".
END IF.
EXECUTE.