Rimessi metodi cancellati da Marcello

git-svn-id: svn://10.65.10.50/trunk@1757 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1995-08-30 12:16:23 +00:00
parent f51c6e9eeb
commit a131e59f80
3 changed files with 35 additions and 9 deletions

View File

@ -602,11 +602,13 @@ HIDDEN const char* copy_value(TToken_string& msg, const TString& val)
HIDDEN void run_app(const TMask& mask, TToken_string& msg) HIDDEN void run_app(const TMask& mask, TToken_string& msg)
{ {
TFilename a(msg.get(1)); TFilename a;
for (const char* m = msg.get(); m; m = msg.get()) for (const char* m = msg.get(1); m; m = msg.get())
{ {
a << ' '; if (a.not_empty())
a << ' ';
for (const char* f = m; *f; f++) for (const char* f = m; *f; f++)
{ {
if (*f == '#') if (*f == '#')

View File

@ -19,6 +19,7 @@
#define MOV_UPROTIVA "UPROTIVA" #define MOV_UPROTIVA "UPROTIVA"
#define MOV_CODVAL "CODVAL" #define MOV_CODVAL "CODVAL"
#define MOV_CAMBIO "CAMBIO" #define MOV_CAMBIO "CAMBIO"
#define MOV_DATACAM "DATACAM"
#define MOV_STAMPATO "STAMPATO" #define MOV_STAMPATO "STAMPATO"
#define MOV_REGST "REGST" #define MOV_REGST "REGST"
#define MOV_NUMGIO "NUMGIO" #define MOV_NUMGIO "NUMGIO"

View File

@ -1,4 +1,4 @@
// $Id: relation.cpp,v 1.61 1995-08-29 10:18:10 marcello Exp $ // $Id: relation.cpp,v 1.62 1995-08-30 12:16:23 guy Exp $
// relation.cpp // relation.cpp
// fv 12/8/93 // fv 12/8/93
// relation class for isam files // relation class for isam files
@ -1600,7 +1600,7 @@ TRecord_array::TRecord_array(const TRectype& r, const char* numfield, int first)
} }
TRecord_array::TRecord_array(int logicnum, const char* numfield, int first) TRecord_array::TRecord_array(int logicnum, const char* numfield, int first)
: _file(logicnum), _num(numfield), _offset(first - 1) : _file(logicnum), _num(numfield), _offset(first - 1)
{ {
add(new TRectype(logicnum)); add(new TRectype(logicnum));
} }
@ -1609,6 +1609,26 @@ TRecord_array::TRecord_array(const TRecord_array& a)
: TArray(a), _file(a._file), _offset(a._offset), _num(a._num) : TArray(a), _file(a._file), _offset(a._offset), _num(a._num)
{} {}
void TRecord_array::set_key(TRectype* r)
{
CHECK(r->num() == _file, "Bad key record");
add(r, 0); // Setta il nuovo campo chiave
if (rows() > 0)
{
const int numkey = 0; // Memento! Gli indici delle chiavi partono da zero!
const RecDes* recd = r->rec_des(); // Descrizione del record della testata
const KeyDes& kd = recd->Ky[numkey]; // Elenco dei campi chaive
// Copia tutti i campi chiave, tranne l'ultimo, in tutti i records
for (int i = recd->Ky[numkey].NkFields-1; i >= 0; i--)
{
const int nf = kd.FieldSeq[i] % MaxFields;
const RecFieldDes& rf = recd->Fd[nf];
const TString& val = r->get(rf.Name);
renum_key(rf.Name, val);
}
}
}
const TRectype& TRecord_array::key() const const TRectype& TRecord_array::key() const
{ {
TRectype* r = (TRectype*)objptr(0); TRectype* r = (TRectype*)objptr(0);
@ -1666,7 +1686,7 @@ bool TRecord_array::renum_key(const char* field, long num)
int TRecord_array::rec2row(const TRectype& r) const int TRecord_array::rec2row(const TRectype& r) const
{ {
CHECK(r.num() == key().num(), "Incompatible record"); CHECK(r.num() == _file, "Incompatible record");
const int n = atoi(r.get(_num)) - _offset; // Non e' detto che sia un int! const int n = atoi(r.get(_num)) - _offset; // Non e' detto che sia un int!
CHECKD(n >= 0 && n < 30000, "Bad line number in record ", n + _offset); CHECKD(n >= 0 && n < 30000, "Bad line number in record ", n + _offset);
return n; return n;
@ -1704,7 +1724,7 @@ bool TRecord_array::destroy_row(int r, bool pack)
void TRecord_array::destroy_rows() void TRecord_array::destroy_rows()
{ {
for (int i = last(); i > 0; i--) for (int i = last(); i > 0; i = pred(i))
destroy(i); destroy(i);
} }
@ -1723,7 +1743,10 @@ int TRecord_array::read(TRectype* filter)
TRectype* rec = (TRectype*)filter->dup(); TRectype* rec = (TRectype*)filter->dup();
err = rec->read(f, _isgteq); err = rec->read(f, _isgteq);
for (int e = err; e == NOERR && *rec == key(); e = rec->next(f)) for (int e = err; e == NOERR && *rec == key(); e = rec->next(f))
add_row(*rec); {
add_row(rec);
rec = (TRectype*)filter->dup();
}
delete rec; delete rec;
} }
return err; return err;