Mercurial > mercurial > hgweb_golang.cgi
view src/kaigo/horori/searcher/src/utils.cpp @ 64:ad5c30ee5cf1
horori: add manual.
author | pyon@macmini |
---|---|
date | Fri, 25 Dec 2020 20:48:01 +0900 |
parents | 7396e7407abd |
children |
line wrap: on
line source
// Filename : utils.cpp // Last Change: 2020-06-26 金 09:16:48. // #include <wx/wx.h> #include <wx/dir.h> #include <wx/wfstream.h> #include <wx/zstream.h> #include <wx/tarstrm.h> #include <wx/regex.h> #include "utils.h" wxRect Geo2Rect(wxString geo) { long w, h, x, y; wxString sw = geo.BeforeFirst('x'); wxString sh = geo.AfterFirst('x').BeforeFirst('+'); wxString sx = geo.AfterFirst('+').BeforeFirst('+'); wxString sy = geo.AfterLast('+'); sw.ToLong(&w, 10); sh.ToLong(&h, 10); sx.ToLong(&x, 10); sy.ToLong(&y, 10); return wxRect((int)x, (int)y, (int)w, (int)h); } wxRect ZeroRect() { wxRect rect(wxPoint(0, 0), wxPoint(0, 0)); return rect; } bool TarDir(wxString dir, wxString tarfile) { if (!wxDirExists(dir)) { wxMessageBox(wxT("bad directoy")); return false; } wxDir d(dir); if (!d.IsOpened()) return false; wxFFileOutputStream out(tarfile); wxTarOutputStream tar(out); wxString filename; bool cont = d.GetFirst(&filename, wxEmptyString, wxDIR_FILES); while (cont) { wxFFileInputStream in(dir + wxFILE_SEP_PATH + filename); tar.PutNextEntry(filename); tar.Write(in); cont = d.GetNext(&filename); } tar.Close(); return true; } bool Gzip(wxString infile, wxString gzfile) { wxFileInputStream istream(infile); wxFileOutputStream ostream(gzfile); wxZlibOutputStream zstream(ostream, -1, wxZLIB_GZIP); zstream.Write(istream); zstream.Close(); return true; } wxString XoR(wxString s, int x) { wxString t; for (int i = 0; i < s.Len(); i++) { t += wxString::Format(wxT("%c"), s[i].GetValue() ^ x); } return t; } bool IsHiragana(wxString s) { wxString hiragana = wxT("あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをんがぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽぁぃぅぇぉゃゅょっ "); wxRegEx reHiragana(wxT("^[") + hiragana + wxT("]+$")); if (reHiragana.Matches(s)) return true; return false; } bool IsKatakana(wxString s) { wxString katakana = wxT("アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンガギグゲコザジズゼゾダヂヅデドバビブベボパピプペポァィゥェォャュョッ "); wxRegEx reKatakana(wxT("^[") + katakana + wxT("]+$")); if (reKatakana.Matches(s)) return true; return false; } wxString Hiragara2Katakana(wxString s) { wxString hiragana = wxT("あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをんがぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽぁぃぅぇぉゃゅょっ "); wxString katakana = wxT("アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンガギグゲコザジズゼゾダヂヅデドバビブベボパピプペポァィゥェォャュョッ "); for (int i = 0; i < hiragana.Len(); i++) s.Replace(hiragana[i], katakana[i], true); return s; }