PSPP-Perl
view release on metacpan or search on metacpan
}
else
{
scalar_to_value (case_data_rw (c, v), sv, v);
}
}
/* The remaining variables must be sysmis or blank string */
while (i < dict_get_var_cnt (sfi->dict))
{
const struct variable *v = vv[i++];
union value *val = case_data_rw (c, v);
value_set_missing (val, var_get_width (v));
}
RETVAL = casewriter_write (sfi->writer, c);
finish:
free (vv);
OUTPUT:
RETVAL
MODULE = PSPP PACKAGE = PSPP::Reader
struct sysreader_info *
pxs_open_sysfile (name)
char * name
CODE:
struct casereader *reader;
struct sysreader_info *sri = NULL;
struct file_handle *fh =
fh_create_file (NULL, name, fh_default_properties () );
sri = xmalloc (sizeof (*sri));
sri->reader = sfm_open_reader (fh, &sri->dict, &sri->opts);
if ( NULL == sri->reader)
{
free (sri);
sri = NULL;
}
RETVAL = sri;
OUTPUT:
RETVAL
struct dictionary *
pxs_get_dict (reader)
struct sysreader_info *reader;
CODE:
RETVAL = reader->dict;
OUTPUT:
RETVAL
void
get_next_case (sfr)
struct sysreader_info *sfr;
PPCODE:
struct ccase *c;
if (c = casereader_read (sfr->reader))
{
int v;
EXTEND (SP, dict_get_var_cnt (sfr->dict));
for (v = 0; v < dict_get_var_cnt (sfr->dict); ++v )
{
const struct variable *var = dict_get_var (sfr->dict, v);
const union value *val = case_data (c, var);
PUSHs (sv_2mortal (value_to_scalar (val, var)));
}
case_unref (c);
}
( run in 1.315 second using v1.01-cache-2.11-cpan-5511b514fd6 )