scew_reader* scew_reader_file_create (char const *file_name) { FILE *file = NULL; scew_reader *reader = NULL; assert (file_name != NULL); #if defined(_MSC_VER) && defined(XML_UNICODE_WCHAR_T) file = fopen (file_name, "rt, ccs=UNICODE"); #else file = fopen (file_name, "rt"); #endif /* _MSC_VER && XML_UNICODE_WCHAR_T */ if (file != NULL) { reader = scew_reader_fp_create (file); } return reader; }
/** * @brief Open given path-file and read data from it to member variables. * @param [in] path Path to project file. * @param [out] sError Error string if error happened. * @return TRUE if reading succeeded, FALSE if error happened. */ BOOL ProjectFile::Read(LPCTSTR path, String *sError) { BOOL loaded = FALSE; scew_tree* tree = NULL; scew_parser* parser = NULL; parser = scew_parser_create(); scew_parser_ignore_whitespaces(parser, 1); scew_reader *reader = NULL; FILE * fp = _tfopen(path, _T("r")); if (fp) { reader = scew_reader_fp_create(fp); if (reader) { tree = scew_parser_load (parser, reader); if (tree) { scew_element * root = GetRootElement(tree); if (root) { // Currently our content is paths, so expect // having paths in valid project file! if (GetPathsData(root)) loaded = TRUE; }; } } scew_tree_free(tree); scew_reader_free(reader); /* Frees the SCEW parser */ scew_parser_free(parser); fclose(fp); } return loaded; }