Corretti errori di conversione file con .dir ma senza .trr
git-svn-id: svn://10.65.10.50/branches/R_10_00@22643 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
b61ac80695
commit
fa23d3722d
@ -43,15 +43,16 @@ struct TFind_node_data
|
||||
|
||||
struct TFind_string_data
|
||||
{
|
||||
TString _str;
|
||||
TString80 _str, _best;
|
||||
TAssoc_array* _ignore_list;
|
||||
double _score;
|
||||
};
|
||||
|
||||
HIDDEN bool find_string_callback(TTree& tree, void* jolly, word flags)
|
||||
{
|
||||
if (flags == SCAN_PRE_ORDER)
|
||||
{
|
||||
TMenu_tree& mt = (TMenu_tree&)tree;
|
||||
const TMenu_tree& mt = (const TMenu_tree&)tree;
|
||||
const TSubmenu& sm = mt.curr_submenu();
|
||||
|
||||
if (sm.disabled())
|
||||
@ -64,7 +65,18 @@ HIDDEN bool find_string_callback(TTree& tree, void* jolly, word flags)
|
||||
TString desc; mt.get_description(desc);
|
||||
desc.upper();
|
||||
if (desc.find(data._str) >= 0 || desc.match(data._str))
|
||||
{
|
||||
data._score = 1.0;
|
||||
mt.curr_id(data._best);
|
||||
return true;
|
||||
}
|
||||
|
||||
const double s = xvt_str_fuzzy_compare(desc, data._str);
|
||||
if (s > data._score)
|
||||
{
|
||||
data._score = s;
|
||||
mt.curr_id(data._best);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -92,9 +104,9 @@ HIDDEN bool find_leaf_callback(TTree& tree, void* jolly, word flags)
|
||||
if (slash > 0)
|
||||
id = id.mid(slash+1);
|
||||
if (id == leaf)
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
bool TMenu_tree::find_string(const TString& str)
|
||||
@ -102,6 +114,7 @@ bool TMenu_tree::find_string(const TString& str)
|
||||
TFind_string_data data;
|
||||
data._str = str; data._str.upper();
|
||||
data._ignore_list = &_menu->search_ignore_list();
|
||||
data._score = 0;
|
||||
|
||||
if (data._str != _menu->last_search_string())
|
||||
{
|
||||
@ -111,6 +124,10 @@ bool TMenu_tree::find_string(const TString& str)
|
||||
|
||||
goto_root();
|
||||
bool ok = scan_depth_first(find_string_callback, &data, SCAN_PRE_ORDER);
|
||||
|
||||
if (!ok && data._score > 0.9)
|
||||
ok = goto_node(data._best);
|
||||
|
||||
if (ok)
|
||||
_menu->search_ignore_list().add(curr_submenu().name());
|
||||
else
|
||||
|
@ -1253,7 +1253,7 @@ void TManutenzione_app::convert_dir()
|
||||
const TFilename fname(df.filename());
|
||||
|
||||
//crea il nuovo file in base al tracciato record nuovo!
|
||||
if (!fname.exist() && ds.len() > 0)
|
||||
if (!fname.exist() && ds.len() > 0 && rs.len() > 0)
|
||||
{
|
||||
set_autoload_new_files(false);
|
||||
f.build(rs);
|
||||
|
3986
ba/ba1700.cpp
3986
ba/ba1700.cpp
File diff suppressed because it is too large
Load Diff
@ -382,13 +382,13 @@ bool Tdnist_mask::load_xml(TString_array& a) const
|
||||
{
|
||||
if (!path.ends_with("/"))
|
||||
path << '/';
|
||||
path << "?????.xml";
|
||||
path << "attivazioni/?????.xml";
|
||||
}
|
||||
|
||||
TString_array xml;
|
||||
list_files(path, xml);
|
||||
|
||||
TString msg; msg.format(FR("Scansione cartella %s: %d files"), (const char*)path, xml.items());
|
||||
TString msg; msg.format(FR("Scansione cartella %s: %d files"), path.path(), xml.items());
|
||||
TProgind pi(xml.items(), msg);
|
||||
TFilename fname, tmpname;
|
||||
TFilename tmpdir; tmpdir.tempdir(); tmpdir.add("www");
|
||||
|
Loading…
x
Reference in New Issue
Block a user