Patch level :10.0 nuovo cd
Files correlati : Ricompilazione Demo : [ ] Commento :0000945: Installazione Descrizione Installando le versioni abbiamo gli errori allegato (solo se presnte il modulo LV) git-svn-id: svn://10.65.10.50/trunk@17567 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
18c1bbee09
commit
846fdf6e39
@ -843,14 +843,14 @@ void TManutenzione_app::update_dir()
|
|||||||
if (prefix().get_codditta() <= _history_firm)
|
if (prefix().get_codditta() <= _history_firm)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const int orig_items = _dirs.last();
|
const int last_new_item = _dirs.last(); //quale è il numero dell'ultimo file nuovo?
|
||||||
|
|
||||||
TDir d ;
|
TDir d ;
|
||||||
|
|
||||||
d.get(LF_DIR);
|
d.get(LF_DIR);
|
||||||
const int items = (int)d.eod();
|
const int last_curr_item = (int)d.eod(); //quale è il numero dell'ultimo file attualmente presente
|
||||||
|
|
||||||
const int update_items = (orig_items < items) ? orig_items : items;
|
const int update_items = (last_new_item < last_curr_item) ? last_new_item : last_curr_item;
|
||||||
|
|
||||||
TString prompt(128);
|
TString prompt(128);
|
||||||
if (is_com)
|
if (is_com)
|
||||||
@ -931,17 +931,25 @@ void TManutenzione_app::update_dir()
|
|||||||
{
|
{
|
||||||
TSystemisamfile b(i);
|
TSystemisamfile b(i);
|
||||||
int err = b.is_valid(true);
|
int err = b.is_valid(true);
|
||||||
if ((err == _istrcerr) && (d.eod() == 0) && (fsize(d.filename()) < 4096) &&
|
if ((err == _istrcerr) && (d.eod() == 0) && (fsize(d.filename()) < 4096))
|
||||||
yesno_box(FR("Il tracciato record del file %d e' incoerente:\nSi desidera eliminare il file vuoto %s?"), i, d.filename()))
|
|
||||||
{
|
{
|
||||||
TFilename n(d.filename()); remove(n);
|
bool kill = true;
|
||||||
|
if (is_power_station())
|
||||||
|
kill = yesno_box(FR("Il tracciato record del file %d e' incoerente:\nSi desidera eliminare il file vuoto %s?"), i, d.filename());
|
||||||
|
if (kill)
|
||||||
|
{
|
||||||
|
TFilename n(d.filename());
|
||||||
|
save_file(n);
|
||||||
|
remove(n);
|
||||||
n.ext("cdx"); remove(n);
|
n.ext("cdx"); remove(n);
|
||||||
n.ext("fpt"); remove(n);
|
n.ext("fpt"); remove(n);
|
||||||
err = NOERR;
|
err = NOERR;
|
||||||
}
|
}
|
||||||
|
} //if((err==_istrcerr...
|
||||||
|
|
||||||
if (err != NOERR && flags < 10000L)
|
if (err != NOERR && flags < 10000L)
|
||||||
{
|
{
|
||||||
if (err == _istrcerr)
|
if (err == _istrcerr || err == _isbadtrc)
|
||||||
{
|
{
|
||||||
repair_file(i);
|
repair_file(i);
|
||||||
err = NOERR;
|
err = NOERR;
|
||||||
@ -1133,11 +1141,16 @@ void TManutenzione_app::update_dir()
|
|||||||
}
|
}
|
||||||
if (towrite)
|
if (towrite)
|
||||||
d.put(i, _nordir, _sysdirop);
|
d.put(i, _nordir, _sysdirop);
|
||||||
} // end of for scope
|
} //for(i=LF_USER; i<=update_items; i++)
|
||||||
|
|
||||||
if (items >= orig_items) return;
|
//se il numero totale di files nuovi è inferiore a quello dei files già presenti c'è qualcosa che probabilmente..
|
||||||
|
//..non va (aggiornamento da un cd vecchio ad esempio); comunque ha finito il suo lavoro qui, perchè quello che..
|
||||||
|
//..segue riguarda solo i files nuovi
|
||||||
|
if (last_curr_item >= last_new_item)
|
||||||
|
return;
|
||||||
|
|
||||||
for (i = items + 1; i <= orig_items; i++)
|
//aggiornatore degli EOX EOD ecc. dei files nuovi
|
||||||
|
for (i = last_curr_item + 1; i <= last_new_item; i++)
|
||||||
{
|
{
|
||||||
TDir d1((TDir &) _dirs[i]);
|
TDir d1((TDir &) _dirs[i]);
|
||||||
|
|
||||||
@ -1145,11 +1158,12 @@ void TManutenzione_app::update_dir()
|
|||||||
d1.eox() = 0L;
|
d1.eox() = 0L;
|
||||||
d1.eod() = 0L;
|
d1.eod() = 0L;
|
||||||
d1.flags() = 0L;
|
d1.flags() = 0L;
|
||||||
d1.put(i, _nordir, _sysdirop);
|
d1.put(i, _nordir, _sysdirop); //scrive su dir.gen il nuovo file aggiunto (mettendo numero,eox,eod,flags)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//allinea i valori di eox ed eod (eox non può mai essere < eod!)
|
||||||
d.get(LF_DIR, _nolock, _nordir, _sysdirop);
|
d.get(LF_DIR, _nolock, _nordir, _sysdirop);
|
||||||
d.eod() = orig_items;
|
d.eod() = last_new_item;
|
||||||
if (d.eox() < d.eod())
|
if (d.eox() < d.eod())
|
||||||
d.eox() = d.eod();
|
d.eox() = d.eod();
|
||||||
d.put(LF_DIR, _nordir, _sysdirop);
|
d.put(LF_DIR, _nordir, _sysdirop);
|
||||||
@ -1162,13 +1176,13 @@ void TManutenzione_app::convert_dir()
|
|||||||
|
|
||||||
const TString pref(prefix().name());
|
const TString pref(prefix().name());
|
||||||
const bool is_com = prefix().is_com();
|
const bool is_com = prefix().is_com();
|
||||||
const int orig_items = _dirs.last();
|
const int last_new_item = _dirs.last();
|
||||||
|
|
||||||
TDir d;
|
TDir d;
|
||||||
d.get(LF_DIR);
|
d.get(LF_DIR);
|
||||||
const int items = (int)d.eod();
|
const int last_curr_item = (int)d.eod();
|
||||||
|
|
||||||
const int update_items = (orig_items < items) ? orig_items : items;
|
const int update_items = (last_new_item < last_curr_item) ? last_new_item : last_curr_item;
|
||||||
|
|
||||||
TString s;
|
TString s;
|
||||||
if (is_com)
|
if (is_com)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user