3.1 Accessing Data Stored in an SDDS File

SDDS_TABLE SDDS_table;  
 
/* open the file and read the SDDS header */  
SDDS_InitializeInput(&SDDS_table, filename)  
 
/* see if arrays that are needed are present */  
if ((SDDS_CheckArray(&SDDS_table, array_I_need, NULL,  
                    SDDS_ANY_NUMERIC_TYPE, stderr)) != SDDS_CHECK_OKAY) {  
    fprintf(stderr, "array %s is not in the data file",  
        array_I_need);  
    exit(1);  
}  
...  
 
/* see if parameters that are needed are present */  
if ((SDDS_CheckParameter(&SDDS_table, parameter_I_need, NULL,  
                         SDDS_ANY_NUMERIC_TYPE, stderr)) != SDDS_CHECK_OKAY) {  
    fprintf(stderr, "parameter %s is not in the data file",  
        parameter_I_need);  
    exit(1);  
}  
...  
 
/* see if columns that are needed are present */  
if ((SDDS_CheckColumn(&SDDS_table, column_I_need, NULL,  
                    SDDS_ANY_NUMERIC_TYPE, stderr)) != SDDS_CHECK_OKAY) {  
    fprintf(stderr, "column %s is not in the data file",  
        column_I_need);  
    exit(1);  
}  
...  
 
/* read and process each data table in the data set */  
while (SDDS_ReadTable(&SDDS_table)>0) {  
    /* set all rows and all columns to initially be "of interest" */  
    SDDS_SetColumnFlags(&SDDS_table, 1);  
    SDDS_SetRowFlags(&SDDS_table, 1);  
 
    /* access array data */ SDDS_GetArray(...)  
 
    /* access parameter data */ SDDS_GetParameter(...)  
 
    /* optional row and column selection operations */  
    SDDS_SetColumnsOfInterest(...);  
    SDDS_SetRowsOfInterest(...);  
    SDDS_FilterRowsOfInterest(...);  
 
    /* access tabular data values */  
    SDDS_GetValue(...)  
    SDDS_GetRow(...)  
    SDDS_GetColumn(...)  
    ...  
}