From 132ef26ca5f30c9ca1887ce49b78978f9bc1d050 Mon Sep 17 00:00:00 2001 From: nik Date: Wed, 21 Feb 1996 16:20:31 +0000 Subject: [PATCH] Modifiche per l ordinamento delle sigle file da elaborare e dei relativi numero records spediti git-svn-id: svn://10.65.10.50/trunk@2625 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- cg/cglib04.cpp | 82 +++++++++++++++++++++++++++++++++++++++++--------- cg/cglib04.h | 1 + 2 files changed, 68 insertions(+), 15 deletions(-) diff --git a/cg/cglib04.cpp b/cg/cglib04.cpp index 9bc2f1b51..11c030418 100755 --- a/cg/cglib04.cpp +++ b/cg/cglib04.cpp @@ -1972,7 +1972,7 @@ bool TTransfer_file::fcopytemp(const char* orig, const char* dest) int pos = 0; - if (sigle.find('W') >= 0) + if ( (pos = sigle.find('W')) >= 0) { _tmpcaus = "%"; _tmpcaus << path(); @@ -1980,26 +1980,23 @@ bool TTransfer_file::fcopytemp(const char* orig, const char* dest) _tmprcaus = "%"; _tmprcaus << path(); _tmprcaus << "\\" << TEMP_RCAUS; - nrec_cau = atol(nrec.mid(pos,6)); - pos += 6; + nrec_cau = atol(nrec.mid(pos*6,6)); } - if (sigle.find('A') >= 0) + if ( (pos = sigle.find('A')) >= 0) { _tmpclifo = "%"; _tmpclifo << path(); _tmpclifo << "\\" << TEMP_CLIFO; - nrec_clifo = atol(nrec.mid(pos,6)); - pos += 6; + nrec_clifo = atol(nrec.mid(pos*6,6)); } - if (sigle.find('P') >= 0) + if ( (pos = sigle.find('P')) >= 0) { _tmppcon = "%"; _tmppcon << path(); _tmppcon << "\\" << TEMP_PCON; - nrec_pcon = atol(nrec.mid(pos,6)); - pos += 6; + nrec_pcon = atol(nrec.mid(pos*6,6)); } - if (sigle.find('Z') >= 0) + if ( (pos = sigle.find('Z')) >= 0) { _tmpmov = "%"; _tmpmov << path(); @@ -2007,10 +2004,9 @@ bool TTransfer_file::fcopytemp(const char* orig, const char* dest) _tmprmov = "%"; _tmprmov << path(); _tmprmov << "\\" << TEMP_RMOV; - nrec_mov = atol(nrec.mid(pos,6)); - pos += 6; + nrec_mov = atol(nrec.mid(pos*6,6)); } - if (sigle.find('U') >= 0) + if ( (pos = sigle.find('U')) >= 0) { is_delete = TRUE; @@ -2020,8 +2016,7 @@ bool TTransfer_file::fcopytemp(const char* orig, const char* dest) _tmprmoviva = "%"; _tmprmoviva << path(); _tmprmoviva << "\\" << TEMP_RMOVIVA; - nrec_moviva = atol(nrec.mid(pos,6)); - pos += 6; + nrec_moviva = atol(nrec.mid(pos*6,6)); TString80 tmpocc = "%"; tmpocc << main_app().get_firm_dir(); @@ -2052,6 +2047,62 @@ bool TTransfer_file::fcopytemp(const char* orig, const char* dest) return ok; } +void TTransfer_file::ordina_file_da_elaborare(TString& buffer) +{ + TString sigle_app = ""; + TString numrec_app = ""; + int p; + + TString sigle = buffer.sub(86,95); + sigle.trim(); + TString numrec = buffer.sub(95,149); + + if ( (p = sigle.find('W')) >= 0) + { + TString sigla = sigle.mid(p,1); + TString num = numrec.mid(p*6,6); + sigle_app << sigla; + numrec_app << num; + } + if ( (p = sigle.find('A')) >= 0) + { + TString sigla = sigle.mid(p,1); + TString num = numrec.mid(p*6,6); + sigle_app << sigla; + numrec_app << num; + } + if ( (p = sigle.find('P')) >= 0) + { + TString sigla = sigle.mid(p,1); + TString num = numrec.mid(p*6,6); + sigle_app << sigla; + numrec_app << num; + } + if ( (p = sigle.find('Z')) >= 0) + { + TString sigla = sigle.mid(p,1); + TString num = numrec.mid(p*6,6); + sigle_app << sigla; + numrec_app << num; + } + if ( (p = sigle.find('U')) >= 0) + { + TString sigla = sigle.mid(p,1); + TString num = numrec.mid(p*6,6); + sigle_app << sigla; + numrec_app << num; + } + if ( (p = sigle.find('B')) >= 0) + { + TString sigla = sigle.mid(p,1); + TString num = numrec.mid(p*6,6); + sigle_app << sigla; + numrec_app << num; + } + buffer.overwrite(sigle_app,86); + buffer.overwrite(numrec_app,95); +} + void TTransfer_file::scrivi_header(const char* dest, const char* wflag) { const word size = 256; @@ -2093,6 +2144,7 @@ void TTransfer_file::scrivi_header(const char* dest, const char* wflag) str = ""; // str.format(85); // app.overwrite(str,149); + ordina_file_da_elaborare(app1); app.overwrite(app1,0); buffer.overwrite(app,0); buffer.cut(sizeH); diff --git a/cg/cglib04.h b/cg/cglib04.h index db12e8453..fc044027f 100755 --- a/cg/cglib04.h +++ b/cg/cglib04.h @@ -227,6 +227,7 @@ public: bool fcopytemp(const char* orig, const char* dest); bool ordina_trasfer(const char* orig); + void ordina_file_da_elaborare(TString& buffer); long determina_dimensione(FILE* f); bool fcopytemp_PC(const char* orig, const char* dest);