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; } }
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; }
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; }
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); } } }
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; }