Ejemplo n.º 1
0
pgsVariable::pgsTypes pgsNumber::num_type(const wxString &num)
{
	if (wxRegEx(PGS_INTEGER_FORM_1).Matches(num))
	{
		return pgsTInt;
	}
	else if (( wxRegEx(PGS_REAL_FORM_1).Matches(num)
	           || wxRegEx(PGS_REAL_FORM_2).Matches(num)
	           || wxRegEx(PGS_REAL_FORM_3).Matches(num)))
	{
		return pgsTReal;
	}
	else
	{
		return pgsTString;
	}
}
Ejemplo n.º 2
0
const wxString wxExSkipWhiteSpace(
    const wxString& text,
    const wxString& replace_with)
{
    wxString output = text;
    wxRegEx("[ \t\n\v\f\r]+").ReplaceAll(&output, replace_with);
    output.Trim(true);
    output.Trim(false);
    return output;
}
Ejemplo n.º 3
0
void Frame::RunQueries(const wxString& text)
{
  if (text.empty())
  {
    return;
  }
  
  if (m_Results->IsShown())
  {
    m_Results->ClearGrid();
  }

  // Skip sql comments.
  wxString output = text;
  wxRegEx("--.*$", wxRE_NEWLINE).ReplaceAll(&output, "");

  // Queries are seperated by ; character.
  wxStringTokenizer tkz(output, ";");
  int no_queries = 0;

  wxStopWatch sw;
  m_Running = true;

  // Run all queries.
  while (tkz.HasMoreTokens() && !m_Stopped)
  {
    wxString query = tkz.GetNextToken();
    query.Trim(true);
    query.Trim(false);

    if (!query.empty())
    {
      try
      {
        RunQuery(query, no_queries == 0);
        no_queries++;
      }
      catch (otl_exception& p)
      {
        m_Statistics.Inc(_("Number of query errors"));
        m_Shell->AppendText(
          _("\nerror: ") +  wxExQuoted(p.msg) + 
          _(" in: ") + wxExQuoted(query));
      }
    }
  }

  m_Shell->Prompt(wxString::Format(_("\n%d queries (%.3f seconds)"),
    no_queries,
    (float)sw.Time() / (float)1000));

  m_Running = false;
}
Ejemplo n.º 4
0
void CSearchDlg::OnFilteringChange(wxCommandEvent& WXUNUSED(evt))
{
	wxString filter = CastChild(ID_FILTER_TEXT, wxTextCtrl)->GetValue();
	bool     invert = CastChild(ID_FILTER_INVERT, wxCheckBox)->GetValue();
	bool     known = CastChild(ID_FILTER_KNOWN, wxCheckBox)->GetValue();

	// Check that the expression compiles before we try to assign it
	// Otherwise we will get an error-dialog for each result-list.
	if (wxRegEx(filter, wxRE_DEFAULT | wxRE_ICASE).IsValid()) {
		int nPages = m_notebook->GetPageCount();
		for ( int i = 0; i < nPages; i++ ) {
			CSearchListCtrl* page = dynamic_cast<CSearchListCtrl*>(m_notebook->GetPage(i));

			page->SetFilter(filter, invert, known);

			UpdateHitCount(page);
		}
	}
}
Ejemplo n.º 5
0
ConfigNameHash GetConfigTitles(const wxString &szarp_dir, wxArrayString* hidden) {

	ConfigNameHash result;

	wxDir dir(szarp_dir);
	wxString prefix;

	std::map<wxString, std::pair<wxString, time_t> > ci;

	wxConfig* cfg = new wxConfig(_T("SZARPCONFIGURATIONS"));
	if (cfg->Exists(_T("CONFIGURATIONS"))) {
		wxString cn = cfg->Read(_T("CONFIGURATIONS"));

		wxStringTokenizer tknz(cn, _T("/"), wxTOKEN_STRTOK);
		while (tknz.HasMoreTokens()) {
			wxString prefix = tknz.GetNextToken();
			if (!tknz.HasMoreTokens())
				break;

			wxString title = tknz.GetNextToken();
			if (!tknz.HasMoreTokens())
				break;

			wxString _time = tknz.GetNextToken();

			long t;
			_time.ToLong(&t);

            if(hidden == 0 ||
              (hidden != 0 && hidden->Index(prefix) != wxNOT_FOUND))//asm
                    ci[prefix] = std::make_pair(title, time_t(t));
		}
	}
	bool changed = false;

	if (dir.GetFirst(&prefix, wxEmptyString, wxDIR_DIRS))
	do {
	    if(hidden != 0 && hidden->Index(prefix) != wxNOT_FOUND) continue;//asm

		wxString file_path = szarp_dir + prefix + _T("/config/params.xml");
		if (!wxFile::Exists(file_path) || wxRegEx(wxString(std::string(".*[-._]bak.*").c_str(), wxConvUTF8), 0).Matches(prefix.Lower(), 0))
			continue;

		wxFileName file_name(file_path);

		std::map<wxString, std::pair<wxString, time_t> >::iterator i;
		if ((i = ci.find(prefix)) != ci.end()) {
			time_t t = i->second.second;

			if (t == (long)file_name.GetModificationTime().GetTicks()) {
				result[prefix] = i->second.first;
				continue;
			}

		}

		xmlTextReaderPtr reader = xmlNewTextReaderFilename(SC::S2A(file_path).c_str());
		if (reader == NULL)
			continue;

		while (xmlTextReaderRead(reader) == 1) {
			const xmlChar *name = xmlTextReaderConstName(reader);
			if (name == NULL)
				continue;

			if (xmlStrcmp(name, BAD_CAST "params"))
				continue;

			xmlChar* title = xmlTextReaderGetAttribute(reader, BAD_CAST "title");
			if (title != NULL) {
				wxString _title = SC::U2S(title).c_str();
				result[prefix] = _title;

				changed = true;
				ci[prefix] = std::make_pair(_title, file_name.GetModificationTime().GetTicks());

				xmlFree(title);
			}
			break;
		}
		xmlFreeTextReader(reader);
	} while (dir.GetNext(&prefix));

	if (!changed) {
		delete cfg;
		return result;
	}

	wxString out;
	for (std::map<wxString, std::pair<wxString, time_t> >::iterator i = ci.begin();
			i != ci.end();
			i++) {
		out += i->first + _T("/");
		out += i->second.first + _T("/");

		wxString ts;
		ts << i->second.second;
		out += ts + _T("/");

	}

	cfg->Write(_T("CONFIGURATIONS"), out);
	cfg->Flush();
	delete cfg;

	return result;

}