ACCEPT /COLUMN
Keywords: sic

Next: ACCEPT /FORMAT Up: ACCEPT Previous: ACCEPT /BINARY Contents Index

###
ACCEPT /COLUMN

            [SIC\]ACCEPT Var_1 [Var_2 [...] /COLUMN File_Name [Separator] [/FOR-
        MAT String] [/LINE L1 [L2]]

        Read  ONE or SEVERAL 1-Dimensional variables in a flexible format from a
        formatted file File_Name. Each variables can be of any  length,  from  0
        (scalar) to N. They are filled by reading each associated column, start-
        ing from first line. Data is read in as many lines as required.  If  end
        of file is reached in the meantime, an error is raised.

        Characters after a "!" are considered as comments and are ignored. Blank
        or full comment lines (starting with a "!") are  skipped.  The  starting
        line number can be selected with /LINE option.

        A * as an argument of the ACCEPT command indicates a dummy variable used
        to skip a column in the input file. For example, the command
            ACCEPT A * B C /COLUMN TEST.DAT
        reads A,B and C from columns 1,3 and 4 of file TEST.DAT, since the * in-
        dicates to skip the second column.

        Option /FORMAT can also be used to specify a fixed Fortran-like format.

        By  default,  the  format is the equivalent of the Fortran list-directed
        (*) format. In this format, character strings must be  included  between
        quotes. The default can be changed by specifying a separator as a second
        argument of option /COLUMN. The separator can be " " ( which gives a be-
        haviour  like  the  COLUMN command of GreG), or any other character. For
        example, specifying "\;" as a separator can  allow  to  read  CSV  files
        (e.g. Excel data files).

        Example of list-directed read (note the quotes are taken into account):
            SIC> type test.dat
            123 "Hello, world!" 3.14
            SIC> define integer i
            SIC> define character c*16
            SIC> define real r
            SIC> accept i c r /column test.dat
            SIC> exa i c r
            I               =          123           ! Integer GLOBAL
            C               = Hello, world!          ! Character*16 GLOBAL
            R               =    3.140000            ! Real    GLOBAL
        In most cases, a list-directed is equivalent to use space as
        separator. Only when quotes or blanks in strings are involved makes a
        difference.

        Example of blank-separated read (in this case, providing the blank
        separator or not makes no difference):
            SIC> type test.dat
            123 Hello 3.14
            SIC> accept i c r /column test.dat " "
            SIC> exa i c r
            I               =          123           ! Integer GLOBAL
            C               = Hello                  ! Character*16 GLOBAL
            R               =    3.140000            ! Real    GLOBAL

        Example  of blank-separated read (in this case, the blank separator MUST
        be given):
            SIC> type test.dat
            123 1.23" 4.56"
            SIC> define character l*12 m*12
            SIC> accept i l m /column test.dat " "
            SIC> exa i l m
            I               =          123           ! Integer GLOBAL
            L               = 1.23"                  ! Character*12 GLOBAL
            M               = 4.56"                  ! Character*12 GLOBAL