Example #1
0
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;
}
Example #2
0
/** 
 * @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;
}