1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
|
/***************************************************************
* Name: avHeader.cpp
* Purpose: Code of the class to parse the version values from version.h
* Author: JGM (jgmdev@gmail.com)
* Created: 2007-10-20
* Copyright: JGM
* License: GPL
**************************************************************/
//{Headers
#include "avHeader.h"
#include <wx/ffile.h>
//}
//{Constructor
avHeader::avHeader(const wxString& text )
{
m_text = text;
}
//}
//{Setter functions
void avHeader::SetString(const wxString& text )
{
m_text = text;
}
bool avHeader::LoadFile(const wxString& fileName)
{
if (!fileName.IsEmpty())
{
wxFFile file( fileName, _T("r") );
if (file.IsOpened())
{
file.ReadAll(&m_text);
}
else
{
return false;
}
}
else
{
return false;
}
return true;
}
//}
//{Getter functions
long avHeader::GetValue(const wxString& nameOfVariable ) const
{
wxString strExpression;
strExpression << _T("(") << nameOfVariable << _T(")");
strExpression << _T("([ \t\n\r\f\v])*([=])([ \t\n\r\f\v])*([0-9]+)([ \t\n\r\f\v])*([;])+");
wxRegEx expression;
if (!expression.Compile(strExpression))
{
return 0;
}
if (expression.Matches(m_text))
{
wxString strResult;
strResult = expression.GetMatch(m_text);
expression.ReplaceAll(&strResult, wxT("\\5"));
long value;
strResult.ToLong(&value);
return value;
}
return 0;
}
wxString avHeader::GetString(const wxString& nameOfVariable ) const
{
wxString strExpression;
strExpression << _T("(") << nameOfVariable << _T(")");
strExpression << _T("([\\[\\]]+)([ \t\n\r\f\v])*([=])([ \t\n\r\f\v])*([\\\"])+([0-9A-Za-z \\-]+)([\\\"])+([ \t\n\r\f\v])*([;])+");
wxRegEx expression;
if (!expression.Compile(strExpression))
{
return _T("");
}
if (expression.Matches(m_text))
{
wxString strResult;
strResult = expression.GetMatch(m_text);
expression.ReplaceAll(&strResult, wxT("\\7"));
return strResult;
}
return _T("");
}
//}
|