ADD FILES

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

ADD FILES

Ron0z
The manual states "ADD FILES combines cases from 2 up to 50 open data sets or
external IBM SPSS Statistics data files."  Wondering if 50 is an initial
default configuration and that perhaps the max of 50 can be changed, if
anyone knows if that's possible.



--
Sent from: http://spssx-discussion.1045642.n5.nabble.com/

=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD
Reply | Threaded
Open this post in threaded view
|

Re: ADD FILES

Jon Peck
The limit of 50 cannot be increased, but using a little Python programmability, the logic to make extra merge passes transparently can be implemented.

On Mon, Mar 5, 2018 at 9:22 PM Ron0z <[hidden email]> wrote:
The manual states "ADD FILES combines cases from 2 up to 50 open data sets or
external IBM SPSS Statistics data files."  Wondering if 50 is an initial
default configuration and that perhaps the max of 50 can be changed, if
anyone knows if that's possible.



--
Sent from: http://spssx-discussion.1045642.n5.nabble.com/

=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD
--
Jon K Peck
[hidden email]

===================== To manage your subscription to SPSSX-L, send a message to [hidden email] (not to SPSSX-L), with no body text except the command. To leave the list, send the command SIGNOFF SPSSX-L For a list of commands to manage subscriptions, send the command INFO REFCARD
Reply | Threaded
Open this post in threaded view
|

Re: ADD FILES

Rick Oliver
In reply to this post by Ron0z
AFAIK, there is no way to change the maximum -- but that is the maximum for a single ADD FILES command. So, just use multiple ADD FILES commands.

On Mon, Mar 5, 2018 at 10:22 PM, Ron0z <[hidden email]> wrote:
The manual states "ADD FILES combines cases from 2 up to 50 open data sets or
external IBM SPSS Statistics data files."  Wondering if 50 is an initial
default configuration and that perhaps the max of 50 can be changed, if
anyone knows if that's possible.



--
Sent from: http://spssx-discussion.1045642.n5.nabble.com/

=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD

===================== To manage your subscription to SPSSX-L, send a message to [hidden email] (not to SPSSX-L), with no body text except the command. To leave the list, send the command SIGNOFF SPSSX-L For a list of commands to manage subscriptions, send the command INFO REFCARD
Reply | Threaded
Open this post in threaded view
|

Re: ADD FILES

Ron0z
I don't know Python, but using multiple ADD FILES is a nice idea.



--
Sent from: http://spssx-discussion.1045642.n5.nabble.com/

=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD
Reply | Threaded
Open this post in threaded view
|

Re: ADD FILES

Javier Figueroa
here I make the union of more than 50 files using twice the command ADD FILES, I hope it serves you.

Note: the path and files are for examples (you have to modify them according to your needs)


ADD FILES /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_7_2.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_8_2.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_10_7.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_1.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_2.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_3.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_4.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_5.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_6.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_7.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_8.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_9.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_10.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_12_2.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_1.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_2.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_3.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_4.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_5.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_6.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_7.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_8.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_9.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_10.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_1.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_2.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_3.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_4.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_5.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_6.sav'.

SAVE OUTFILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\Muestra_Donante_Terrestre_Septiembre.sav'
  /COMPRESSED.

ADD FILES FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\Muestra_Donante_Terrestre_Septiembre.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_7.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_8.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_9.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_10.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_15_2.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_16_1.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_16_3.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_16_5.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_17_1.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_17_2.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_17_4.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_17_5.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_17_6.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_17_7.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_17_8.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_17_9.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_17_10.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_18_1.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_18_6.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_18_7.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_18_8.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_18_9.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_18_10.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_19_1.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_19_3.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_19_5.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_19_6.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_19_7.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_19_8.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_19_9.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_20_4.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_20_5.sav'.

SAVE OUTFILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\Muestradonanteterrestre.sav'
  /COMPRESSED.

2018-03-06 14:43 GMT-06:00 Ron0z <[hidden email]>:
I don't know Python, but using multiple ADD FILES is a nice idea.



--
Sent from: http://spssx-discussion.1045642.n5.nabble.com/

=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD



--
Javier Figueroa
Procesamiento y Análisis de bases de datos
Cel: 5927-4748 / 4970-1940
Casa: 2289-0184

===================== To manage your subscription to SPSSX-L, send a message to [hidden email] (not to SPSSX-L), with no body text except the command. To leave the list, send the command SIGNOFF SPSSX-L For a list of commands to manage subscriptions, send the command INFO REFCARD
Reply | Threaded
Open this post in threaded view
|

Re: ADD FILES

Jon Peck
For your amusement, here is a Python program that will do ADD FILES for an unlimited number of files.  I didn't code any of the ADD FILES options, but it does support file handles.  Many variations are possible.

A big difficulty with many files to merge is specifying all the files.  This code assumes that the set of files to add is specified by a wildcard expression, e.g., "c:/data/*.sav" and adds all files matching that to the active file.

The example uses a file handle.  It is written in two begin/end program blocks.  For production purposes, one would normally save the first program as a separate module and just include it with an import statement in the equivalent of the second block.

The code merges files as many as possible on each data pass but will use multiple ADD FILES if necessary.

Code notes: the glob.glob function produces a list of all files matching the wildcard.
The spssaux.FileHandles class resolves any defined file handles defined in Statistics.
The two lines
files = filelist[0:n]
filelist = filelist[n:]
iteratively break off as many filespecs as possible each time through the loop.


file handle loc /name="c:/temp".

begin program.
import glob, spss, spssaux

MAXF = 49
def addfiles(wildcard):
    """execute ADD FILES on all files matching wildcard

    wildcard is a file path expression
    The active file is included
    paths must be written with / as the delimiter even on Windows"""
    
    fh = spssaux.FileHandles()
    filelist = glob.glob(fh.resolve(wildcard))
    filecount = len(filelist)
    while filecount > 0:
        n = min(filecount, MAXF)
        files = filelist[0:n]
        filelist = filelist[n:]
        filecount = len(filelist)
        cmd = ["ADD FILES /FILE=*"]
        cmd.extend(['/FILE="%s"' % fh.resolve(item) for item in files])
        spss.Submit(cmd)
end program.

begin program.
addfiles("loc/*.sav")
end program.

On Tue, Mar 6, 2018 at 2:15 PM, Javier Figueroa <[hidden email]> wrote:
here I make the union of more than 50 files using twice the command ADD FILES, I hope it serves you.

Note: the path and files are for examples (you have to modify them according to your needs)


ADD FILES /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_7_2.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_8_2.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_10_7.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_1.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_2.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_3.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_4.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_5.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_6.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_7.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_8.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_9.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_10.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_12_2.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_1.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_2.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_3.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_4.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_5.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_6.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_7.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_8.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_9.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_10.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_1.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_2.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_3.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_4.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_5.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_6.sav'.

SAVE OUTFILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\Muestra_Donante_Terrestre_Septiembre.sav'
  /COMPRESSED.

ADD FILES FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\Muestra_Donante_Terrestre_Septiembre.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_7.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_8.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_9.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_10.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_15_2.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_16_1.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_16_3.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_16_5.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_17_1.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_17_2.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_17_4.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_17_5.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_17_6.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_17_7.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_17_8.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_17_9.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_17_10.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_18_1.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_18_6.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_18_7.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_18_8.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_18_9.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_18_10.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_19_1.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_19_3.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_19_5.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_19_6.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_19_7.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_19_8.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_19_9.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_20_4.sav'
/FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_20_5.sav'.

SAVE OUTFILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\Muestradonanteterrestre.sav'
  /COMPRESSED.

2018-03-06 14:43 GMT-06:00 Ron0z <[hidden email]>:
I don't know Python, but using multiple ADD FILES is a nice idea.



--
Sent from: http://spssx-discussion.1045642.n5.nabble.com/

=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD



--
Javier Figueroa
Procesamiento y Análisis de bases de datos
Cel: 5927-4748 / 4970-1940
Casa: 2289-0184

===================== To manage your subscription to SPSSX-L, send a message to [hidden email] (not to SPSSX-L), with no body text except the command. To leave the list, send the command SIGNOFF SPSSX-L For a list of commands to manage subscriptions, send the command INFO REFCARD



--
Jon K Peck
[hidden email]

===================== To manage your subscription to SPSSX-L, send a message to [hidden email] (not to SPSSX-L), with no body text except the command. To leave the list, send the command SIGNOFF SPSSX-L For a list of commands to manage subscriptions, send the command INFO REFCARD
Reply | Threaded
Open this post in threaded view
|

Re: ADD FILES

David Marso
Administrator
Very nice Jon,
Just for my amusement I wondered whether it was possible without python.
Our old friend 'the horrible hack' joins in on the fun with HOST and of
course DEFINE !ENDDEFINE.
In real life I would probably adapt Jon's python approach ;-)
==

DEFINE !CreateFiles (Start !TOKENS(1)/Stop !TOKENS(1)/ NCases
!TOKENS(1)/NVars !TOKENS(1) /Root !TOKENS(1)/Path !CMDEND)
MATRIX.
!DO !F =!Start !TO !Stop
SAVE UNIFORM( !NCases,!NVars) /OUTFILE
!QUOTE(!CONCAT(!UNQUOTE(!Path),!Root,'_',!F,'.sav')).
!DOEND
END MATRIX.
!ENDDEFINE.

DEFINE !AddManyFiles(FilePath !CMDEND)
CD !FilePath.
HOST COMMAND=!QUOTE(!CONCAT('DIR *.sav >
',!UNQUOTE(!FilePath),'\temp.txt')).
DATA LIST FILE= !QUOTE(!CONCAT(!UNQUOTE(!FilePath),'\temp.txt')) / junk
(A39) data (A300).
SELECT IF CHAR.INDEX(data,".sav") GT 0.
ALTER TYPE data (AMIN).
COMPUTE data=CHAR.SUBSTR(data,1,CHAR.INDEX(data,".")-1).
COMPUTE ID=1.
MATCH FILES / FILE * /LAST=TAG /BY ID.
!LET !MacroFile=!QUOTE(!CONCAT(!UNQUOTE(!FilePath),'\Macro.sps'))
DO IF $CASENUM EQ 1.
WRITE OUTFILE !MacroFile /"DEFINE !FileList ()".
END IF.
WRITE OUTFILE !MacroFile / " "  data .
DO IF TAG EQ 1.
WRITE OUTFILE !MacroFile /"!ENDDEFINE.".
END IF.
EXECUTE.
INSERT FILE= !MacroFile .
!LET !Size =""
DATASET CLOSE ALL.
NEW FILE.
MATRIX.
SAVE MAKE(1,1,1) /OUTFILE *.
END MATRIX.
ADD FILES /FILE=*
!DO !F !IN (!EVAL(!FileList))
/FILE=!QUOTE(!CONCAT(!UNQUOTE(!FilePath),"\",!F,".sav"))
!LET !Size=!CONCAT(!Size,"x")
!IF (!LENGTH(!Size) !EQ 49) !THEN
.
ADD FILES /FILE *
!LET !Size=""
!IFEND
!DOEND
!ENDDEFINE.
SET MPRINT ON.


!CreateFiles Start=001 Stop=100 NCases =1000 NVars= 100 Root = MyFile Path=
'C:\TEMP\'.
!CreateFiles Start=101 Stop=200 NCases =1000 NVars= 100 Root = MyFile Path=
'C:\TEMP\'.

!AddManyFiles FilePath='C:\Temp'.


Jon Peck wrote

> For your amusement, here is a Python program that will do ADD FILES for an
> unlimited number of files.  I didn't code any of the ADD FILES options,
> but
> it does support file handles.  Many variations are possible.
>
> A big difficulty with many files to merge is specifying all the files.
> This code assumes that the set of files to add is specified by a wildcard
> expression, e.g., "c:/data/*.sav" and adds all files matching that to the
> active file.
>
> The example uses a file handle.  It is written in two begin/end program
> blocks.  For production purposes, one would normally save the first
> program
> as a separate module and just include it with an import statement in the
> equivalent of the second block.
>
> The code merges files as many as possible on each data pass but will use
> multiple ADD FILES if necessary.
>
> Code notes: the glob.glob function produces a list of all files matching
> the wildcard.
> The spssaux.FileHandles class resolves any defined file handles defined in
> Statistics.
> The two lines
> files = filelist[0:n]
> filelist = filelist[n:]
> iteratively break off as many filespecs as possible each time through the
> loop.
>
>
> file handle loc /name="c:/temp".
>
> begin program.
> import glob, spss, spssaux
>
> MAXF = 49
> def addfiles(wildcard):
>     """execute ADD FILES on all files matching wildcard
>
>     wildcard is a file path expression
>     The active file is included
>     paths must be written with / as the delimiter even on Windows"""
>
>     fh = spssaux.FileHandles()
>     filelist = glob.glob(fh.resolve(wildcard))
>     filecount = len(filelist)
>     while filecount > 0:
>         n = min(filecount, MAXF)
>         files = filelist[0:n]
>         filelist = filelist[n:]
>         filecount = len(filelist)
>         cmd = ["ADD FILES /FILE=*"]
>         cmd.extend(['/FILE="%s"' % fh.resolve(item) for item in files])
>         spss.Submit(cmd)
> end program.
>
> begin program.
> addfiles("loc/*.sav")
> end program.
>
> On Tue, Mar 6, 2018 at 2:15 PM, Javier Figueroa &lt;

> figueroa.fi@

> &gt;
> wrote:
>
>> here I make the union of more than 50 files using twice the command ADD
>> FILES, I hope it serves you.
>>
>> Note: the path and files are for examples (you have to modify them
>> according to your needs)
>>
>>
>> ADD FILES /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\
>> Terre\2016_9_7_2.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_8_2.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_10_7.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_1.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_2.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_3.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_4.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_5.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_6.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_7.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_8.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_9.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_11_10.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_12_2.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_1.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_2.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_3.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_4.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_5.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_6.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_7.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_8.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_9.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_13_10.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_1.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_2.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_3.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_4.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_5.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_6.sav'.
>>
>> SAVE OUTFILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\
>> Terre\Muestra_Donante_Terrestre_Septiembre.sav'
>>   /COMPRESSED.
>>
>> ADD FILES FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\
>> Terre\Muestra_Donante_Terrestre_Septiembre.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_7.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_8.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_9.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_14_10.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_15_2.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_16_1.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_16_3.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_16_5.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_17_1.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_17_2.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_17_4.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_17_5.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_17_6.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_17_7.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_17_8.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_17_9.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_17_10.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_18_1.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_18_6.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_18_7.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_18_8.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_18_9.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_18_10.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_19_1.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_19_3.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_19_5.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_19_6.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_19_7.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_19_8.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_19_9.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_20_4.sav'
>> /FILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\Terre\2016_9_20_5.sav'.
>>
>> SAVE OUTFILE='Y:\ETI\Conteos\Elevacion\2016\Septiembre\
>> Terre\Muestradonanteterrestre.sav'
>>   /COMPRESSED.
>>
>> 2018-03-06 14:43 GMT-06:00 Ron0z &lt;

> ronald.crichton@.edu

> &gt;:
>>
>>> I don't know Python, but using multiple ADD FILES is a nice idea.
>>>
>>>
>>>
>>> --
>>> Sent from: http://spssx-discussion.1045642.n5.nabble.com/
>>>
>>> =====================
>>> To manage your subscription to SPSSX-L, send a message to
>>>

> LISTSERV@.UGA

>  (not to SPSSX-L), with no body text except the
>>> command. To leave the list, send the command
>>> SIGNOFF SPSSX-L
>>> For a list of commands to manage subscriptions, send the command
>>> INFO REFCARD
>>>
>>
>>
>>
>> --
>>
>> *Javier FigueroaProcesamiento y Análisis de bases de datos*
>> *Cel: 5927-4748 / 4970-1940*
>>
>>
>> *Casa: 2289-0184*
>> ===================== To manage your subscription to SPSSX-L, send a
>> message to

> LISTSERV@.UGA

>  (not to SPSSX-L), with no body text
>> except the command. To leave the list, send the command SIGNOFF SPSSX-L
>> For
>> a list of commands to manage subscriptions, send the command INFO REFCARD
>>
>
>
>
> --
> Jon K Peck

> jkpeck@

>
> =====================
> To manage your subscription to SPSSX-L, send a message to

> LISTSERV@.UGA

>  (not to SPSSX-L), with no body text except the
> command. To leave the list, send the command
> SIGNOFF SPSSX-L
> For a list of commands to manage subscriptions, send the command
> INFO REFCARD





-----
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
--
Sent from: http://spssx-discussion.1045642.n5.nabble.com/

=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"