Merge remote-tracking branch 'origin/R_10_00' into R_10_00
This commit is contained in:
		
						commit
						f417fee58f
					
				
							
								
								
									
										5
									
								
								cd/test/ve0820.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								cd/test/ve0820.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					ve5.exe
 | 
				
			||||||
 | 
					ve5100a.msk
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Scarico e ripristino documenti:
 | 
				
			||||||
 | 
					Aggiunta archiviazione su File oltre al Floppy
 | 
				
			||||||
							
								
								
									
										130
									
								
								cd/test/ve0820a.ini
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										130
									
								
								cd/test/ve0820a.ini
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,130 @@
 | 
				
			|||||||
 | 
					[Main]
 | 
				
			||||||
 | 
					Demo=0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[ve1]
 | 
				
			||||||
 | 
					File(86) = ve5.exe|X
 | 
				
			||||||
 | 
					File(87) = ve5100a.msk|X
 | 
				
			||||||
 | 
					Patch = 0820
 | 
				
			||||||
 | 
					Versione = 21511200
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[ve99]
 | 
				
			||||||
 | 
					Kill(0) = batbcld.msk|x
 | 
				
			||||||
 | 
					Kill(1) = bastspp.rep|x
 | 
				
			||||||
 | 
					Kill(2) = baststd.rep|x
 | 
				
			||||||
 | 
					Kill(3) = bastbnp.rep|x
 | 
				
			||||||
 | 
					Kill(4) = ve7400a.msk|x
 | 
				
			||||||
 | 
					Kill(5) = bastfrd.msk|x
 | 
				
			||||||
 | 
					Kill(6) = bastprs.rep|x
 | 
				
			||||||
 | 
					Kill(7) = basttip.msk|x
 | 
				
			||||||
 | 
					Kill(8) = bastcaa.rep|x
 | 
				
			||||||
 | 
					Kill(9) = efstbnp.msk|x
 | 
				
			||||||
 | 
					Kill(10) = batbprs.msk|x
 | 
				
			||||||
 | 
					Kill(11) = batbabe.msk|x
 | 
				
			||||||
 | 
					Kill(12) = bastgca.msk|x
 | 
				
			||||||
 | 
					Kill(13) = batbgmc.msk|x
 | 
				
			||||||
 | 
					Kill(14) = bastcau.rep|x
 | 
				
			||||||
 | 
					Kill(15) = bastcra.msk|x
 | 
				
			||||||
 | 
					Kill(16) = bastspp.msk|x
 | 
				
			||||||
 | 
					Kill(17) = basttag.rep|x
 | 
				
			||||||
 | 
					Kill(18) = batbcau.msk|x
 | 
				
			||||||
 | 
					Kill(19) = bastctr.rep|x
 | 
				
			||||||
 | 
					Kill(20) = ve7500a.msk|x
 | 
				
			||||||
 | 
					Kill(21) = bastasf.rep|x
 | 
				
			||||||
 | 
					Kill(22) = bastums.rep|x
 | 
				
			||||||
 | 
					Kill(23) = bastfrr.msk|x
 | 
				
			||||||
 | 
					Kill(24) = basteld.rep|x
 | 
				
			||||||
 | 
					Kill(25) = batbprv.msk|x
 | 
				
			||||||
 | 
					Kill(26) = ve7200a.msk|x
 | 
				
			||||||
 | 
					Kill(27) = batbgca.msk|x
 | 
				
			||||||
 | 
					Kill(28) = batbmre.msk|x
 | 
				
			||||||
 | 
					Kill(29) = bastcaa.msk|x
 | 
				
			||||||
 | 
					Kill(30) = ve7700a.msk|x
 | 
				
			||||||
 | 
					Kill(31) = batbtri.msk|x
 | 
				
			||||||
 | 
					Kill(32) = basttip.rep|x
 | 
				
			||||||
 | 
					Kill(33) = efstbnp.rep|x
 | 
				
			||||||
 | 
					Kill(34) = baststd.msk|x
 | 
				
			||||||
 | 
					Kill(35) = batbasf.msk|x
 | 
				
			||||||
 | 
					Kill(36) = bastimb.msk|x
 | 
				
			||||||
 | 
					Kill(37) = batbrfa.msk|x
 | 
				
			||||||
 | 
					Kill(38) = ve7300a.msk|x
 | 
				
			||||||
 | 
					Kill(39) = ve7600a.msk|x
 | 
				
			||||||
 | 
					Kill(40) = batbspt.msk|x
 | 
				
			||||||
 | 
					Kill(41) = bastfca.rep|x
 | 
				
			||||||
 | 
					Kill(42) = bastrfc.msk|x
 | 
				
			||||||
 | 
					Kill(43) = bastprs.msk|x
 | 
				
			||||||
 | 
					Kill(44) = bastgcg.msk|x
 | 
				
			||||||
 | 
					Kill(45) = batbspp.msk|x
 | 
				
			||||||
 | 
					Kill(46) = batbgcg.msk|x
 | 
				
			||||||
 | 
					Kill(47) = bastnum.rep|x
 | 
				
			||||||
 | 
					Kill(48) = bastgmc.msk|x
 | 
				
			||||||
 | 
					Kill(49) = batbrfc.msk|x
 | 
				
			||||||
 | 
					Kill(50) = bastubi.msk|x
 | 
				
			||||||
 | 
					Kill(51) = batbtag.msk|x
 | 
				
			||||||
 | 
					Kill(52) = ve7400a.ini|x
 | 
				
			||||||
 | 
					Kill(53) = bastrfa.msk|x
 | 
				
			||||||
 | 
					Kill(54) = bastabe.rep|x
 | 
				
			||||||
 | 
					Kill(55) = bastubi.rep|x
 | 
				
			||||||
 | 
					Kill(56) = bastasf.msk|x
 | 
				
			||||||
 | 
					Kill(57) = batbctr.msk|x
 | 
				
			||||||
 | 
					Kill(58) = ve7100a.msk|x
 | 
				
			||||||
 | 
					Kill(59) = batbcaa.msk|x
 | 
				
			||||||
 | 
					Kill(60) = batbfid.msk|x
 | 
				
			||||||
 | 
					Kill(61) = ve7300a.frm|x
 | 
				
			||||||
 | 
					Kill(62) = bastfrr.rep|x
 | 
				
			||||||
 | 
					Kill(63) = bastums.msk|x
 | 
				
			||||||
 | 
					Kill(64) = basttri.rep|x
 | 
				
			||||||
 | 
					Kill(65) = bastrfa.rep|x
 | 
				
			||||||
 | 
					Kill(66) = bastcau.msk|x
 | 
				
			||||||
 | 
					Kill(67) = batbtip.msk|x
 | 
				
			||||||
 | 
					Kill(68) = batbubi.msk|x
 | 
				
			||||||
 | 
					Kill(69) = basttag.msk|x
 | 
				
			||||||
 | 
					Kill(70) = basteld.msk|x
 | 
				
			||||||
 | 
					Kill(71) = bastimb.rep|x
 | 
				
			||||||
 | 
					Kill(72) = bastrfc.rep|x
 | 
				
			||||||
 | 
					Kill(73) = ve7.exe|x
 | 
				
			||||||
 | 
					Kill(74) = ve7200a.frm|x
 | 
				
			||||||
 | 
					Kill(75) = batbfrr.msk|x
 | 
				
			||||||
 | 
					Kill(76) = bastfca.msk|x
 | 
				
			||||||
 | 
					Kill(77) = batbfrd.msk|x
 | 
				
			||||||
 | 
					Kill(78) = bastctr.msk|x
 | 
				
			||||||
 | 
					Kill(79) = batbpro.msk|x
 | 
				
			||||||
 | 
					Kill(80) = ve7400conf.ini|x
 | 
				
			||||||
 | 
					Kill(81) = bastfrm.rep|x
 | 
				
			||||||
 | 
					Kill(82) = batbbnp.msk|x
 | 
				
			||||||
 | 
					Kill(83) = bastgca.rep|x
 | 
				
			||||||
 | 
					Kill(84) = batbstd.msk|x
 | 
				
			||||||
 | 
					Kill(85) = ve7701a.ini|x
 | 
				
			||||||
 | 
					Kill(86) = batbfsa.msk|x
 | 
				
			||||||
 | 
					Kill(87) = batbnum.msk|x
 | 
				
			||||||
 | 
					Kill(88) = bastabe.msk|x
 | 
				
			||||||
 | 
					Kill(89) = eftbbnp.msk|x
 | 
				
			||||||
 | 
					Kill(90) = batbfca.msk|x
 | 
				
			||||||
 | 
					Kill(91) = bastgcg.rep|x
 | 
				
			||||||
 | 
					Kill(92) = batbgsa.msk|x
 | 
				
			||||||
 | 
					Kill(93) = bastfrm.msk|x
 | 
				
			||||||
 | 
					Kill(94) = bastbnp.msk|x
 | 
				
			||||||
 | 
					Kill(95) = bastgmc.rep|x
 | 
				
			||||||
 | 
					Kill(96) = bastcra.rep|x
 | 
				
			||||||
 | 
					Kill(97) = bastfrd.rep|x
 | 
				
			||||||
 | 
					Kill(98) = batbacr.msk|x
 | 
				
			||||||
 | 
					Kill(99) = batbimb.msk|x
 | 
				
			||||||
 | 
					Kill(100) = basttri.msk|x
 | 
				
			||||||
 | 
					Kill(101) = bastnum.msk|x
 | 
				
			||||||
 | 
					Kill(102) = batbeld.msk|x
 | 
				
			||||||
 | 
					Kill(103) = batbums.msk|x
 | 
				
			||||||
 | 
					Kill(104) = batbcra.msk|x
 | 
				
			||||||
 | 
					Kill(105) = batbfrm.msk|x
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[ve]
 | 
				
			||||||
 | 
					Data = 11-06-2019
 | 
				
			||||||
 | 
					Descrizione = Vendite
 | 
				
			||||||
 | 
					Dischi = 1
 | 
				
			||||||
 | 
					Moduli = ba,cg9,pr9,mg9,sv9,in9,ef9
 | 
				
			||||||
 | 
					OEM = 
 | 
				
			||||||
 | 
					Patch = 820
 | 
				
			||||||
 | 
					PostProcess = bainst -0 VE
 | 
				
			||||||
 | 
					PreProcess = 
 | 
				
			||||||
 | 
					Prezzo(1) = 
 | 
				
			||||||
 | 
					Prezzo(2) = 
 | 
				
			||||||
 | 
					Versione = 21511200
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								cd/test/ve0820a1.zip
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								cd/test/ve0820a1.zip
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							@ -339,41 +339,12 @@ bool TArchive::zip(
 | 
				
			|||||||
// @comm Il parametro <p pr_set> e' utilizzato per evitare errori di riaperture di files.
 | 
					// @comm Il parametro <p pr_set> e' utilizzato per evitare errori di riaperture di files.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  safely_close_closeable_isamfiles();
 | 
						const TFilename workdir = dir;
 | 
				
			||||||
 | 
						const TString name = workdir.name();
 | 
				
			||||||
 | 
						// Nome del file compresso
 | 
				
			||||||
 | 
						TFilename work; work.tempdir(); work.add(name); work.ext("zip");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  DIRECTORY currdir, newdir;
 | 
						bool ok = zip(dir, work);
 | 
				
			||||||
  xvt_fsys_get_curr_dir( &currdir);  //memorizza la directory dove e'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  xvt_fsys_convert_str_to_dir(dir, &newdir);  //converte il nome della directory
 | 
					 | 
				
			||||||
  xvt_fsys_set_dir( &newdir);  //passa alla directory dir che gli viene passata
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  const TFilename workdir = dir;
 | 
					 | 
				
			||||||
  const TString name = workdir.name();
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  // Nome del file compresso
 | 
					 | 
				
			||||||
  TFilename work; work.tempdir(); work.add(name); work.ext("zip");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  TString title(TR("Archiviazione")); title << ' ' << workdir;
 | 
					 | 
				
			||||||
  TIndwin waitw(100,title,FALSE,FALSE); 
 | 
					 | 
				
			||||||
  TWait_cursor hourglass;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  TString_array filenames;
 | 
					 | 
				
			||||||
  list_files("*.*", filenames);
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  // Crea il file con la lista dei file da comprimere
 | 
					 | 
				
			||||||
  const char* const ZIPLIST = "ziplist.txt";
 | 
					 | 
				
			||||||
  FILE* flist = fopen(ZIPLIST, "w");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  FOR_EACH_ARRAY_ROW(filenames, r, row)
 | 
					 | 
				
			||||||
    fprintf(flist, "%s\n",(const char *)*row);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  fclose(flist);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool ok = ::aga_zip_filelist(ZIPLIST, work);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  remove(ZIPLIST);  //elimina il file di testo con la lista dei files
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  xvt_fsys_set_dir( &currdir);  //torna a posizionarsi nella directory iniziale
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (ok)
 | 
					  if (ok)
 | 
				
			||||||
    ok = fsplit_zip(work, floppy, desc);
 | 
					    ok = fsplit_zip(work, floppy, desc);
 | 
				
			||||||
@ -383,6 +354,43 @@ bool TArchive::zip(
 | 
				
			|||||||
  return ok;
 | 
					  return ok;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool TArchive::zip(const char* dir, const TFilename& work)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						safely_close_closeable_isamfiles();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						DIRECTORY currdir, newdir;
 | 
				
			||||||
 | 
						xvt_fsys_get_curr_dir(&currdir);  //memorizza la directory dove e'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						xvt_fsys_convert_str_to_dir(dir, &newdir);  //converte il nome della directory
 | 
				
			||||||
 | 
						xvt_fsys_set_dir(&newdir);  //passa alla directory dir che gli viene passata
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						const TFilename workdir = dir;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						TString title(TR("Archiviazione")); title << ' ' << workdir;
 | 
				
			||||||
 | 
						TIndwin waitw(100, title, FALSE, FALSE);
 | 
				
			||||||
 | 
						TWait_cursor hourglass;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						TString_array filenames;
 | 
				
			||||||
 | 
						list_files("*.*", filenames);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Crea il file con la lista dei file da comprimere
 | 
				
			||||||
 | 
						const char* const ZIPLIST = "ziplist.txt";
 | 
				
			||||||
 | 
						FILE* flist = fopen(ZIPLIST, "w");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						FOR_EACH_ARRAY_ROW(filenames, r, row)
 | 
				
			||||||
 | 
							fprintf(flist, "%s\n", (const char *)*row);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						fclose(flist);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						bool ok = ::aga_zip_filelist(ZIPLIST, work);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						remove(ZIPLIST);  //elimina il file di testo con la lista dei files
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						xvt_fsys_set_dir(&currdir);  //torna a posizionarsi nella directory iniziale
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return ok;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool TArchive::zip(int mode, long firm, char floppy, const char* desc)
 | 
					bool TArchive::zip(int mode, long firm, char floppy, const char* desc)
 | 
				
			||||||
{                     
 | 
					{                     
 | 
				
			||||||
  TString_array fl;
 | 
					  TString_array fl;
 | 
				
			||||||
@ -494,6 +502,77 @@ bool TArchive::unzip(
 | 
				
			|||||||
  return ok;
 | 
					  return ok;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool TArchive::unzip(
 | 
				
			||||||
 | 
						const char* dir,   // @parm Directory di cui effettuare il restore
 | 
				
			||||||
 | 
						const char* fromdir,       // @parm percorso da cui leggere i dati
 | 
				
			||||||
 | 
						bool tmp)          // @parm Directory temporanea da utilizzare
 | 
				
			||||||
 | 
					// @syntax bool restore(const char* dir, char floppy, bool temp, bool pr_set);
 | 
				
			||||||
 | 
					// @syntax bool restore(long firm, char floppy, bool temp, bool pr_set);
 | 
				
			||||||
 | 
					// @comm Il parametro <p pr_set> e' utilizzato per evitare errori di riaperture di files.
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						TFilename work;
 | 
				
			||||||
 | 
						if (tmp)
 | 
				
			||||||
 | 
							work.tempdir();
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							work = dir;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						TFilename output(dir);
 | 
				
			||||||
 | 
						output = output.name();
 | 
				
			||||||
 | 
						output.ext("zip");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						TFilename dest; dest << fromdir;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (!yesno_box(FR("Attenzione l'archivio %s\\%s verra' ripristinato\n"
 | 
				
			||||||
 | 
							"nel direttorio %s. Continuare?"),
 | 
				
			||||||
 | 
							fromdir, (const char*)output, (const char*)work))
 | 
				
			||||||
 | 
							return FALSE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						bool ok = work.exist();
 | 
				
			||||||
 | 
						if (!ok)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							ok = yesno_box(FR("Non esiste il direttorio %s: si desidera crearlo?"), (const char*)work);
 | 
				
			||||||
 | 
							if (ok)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								make_dir(work);
 | 
				
			||||||
 | 
								ok = work.exist();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if (!ok)
 | 
				
			||||||
 | 
								return error_box(FR("Impossibile accedere a %s"), (const char*)work);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						TString title(TR("Ripristino")); title << ' ' << output;
 | 
				
			||||||
 | 
						TIndwin waitw(100, title, FALSE, FALSE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						safely_close_closeable_isamfiles();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						TFilename restored;
 | 
				
			||||||
 | 
						restored.tempdir();
 | 
				
			||||||
 | 
						restored.add(output.name());
 | 
				
			||||||
 | 
						restored.ext("zip");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						TFilename src;
 | 
				
			||||||
 | 
						src << fromdir << SLASH;
 | 
				
			||||||
 | 
						src << output.name();
 | 
				
			||||||
 | 
						src.ext("zip");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						while (!src.exist())
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							if (!yesno_box("Impossibile aprire il file %s:\nSi desidera ritentare?",
 | 
				
			||||||
 | 
								(const char *)src))
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (src.exist())
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							fcopy(src, restored);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						ok = ::aga_unzip(restored, work);
 | 
				
			||||||
 | 
						if (ok)
 | 
				
			||||||
 | 
							remove(restored);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return ok;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool TArchive::unzip(int mode, long firm, char floppy, bool temp)
 | 
					bool TArchive::unzip(int mode, long firm, char floppy, bool temp)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  TString_array fl;
 | 
					  TString_array fl;
 | 
				
			||||||
@ -513,6 +592,12 @@ bool TArchive::backup(const char* dir, char floppy, const char* desc, bool)
 | 
				
			|||||||
  return zip(dir, floppy, desc);
 | 
					  return zip(dir, floppy, desc);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool TArchive::backup(const char* dir, const char* dirdest, const char* desc, bool) const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						TFilename work; work << dirdest; work.add(TFilename(dir).name()); work.ext("zip");
 | 
				
			||||||
 | 
						return zip(dir, work);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool TArchive::backup(int mode, long firm, char floppy, const char* desc, bool)
 | 
					bool TArchive::backup(int mode, long firm, char floppy, const char* desc, bool)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  return zip(mode, firm, floppy, desc);
 | 
					  return zip(mode, firm, floppy, desc);
 | 
				
			||||||
@ -522,6 +607,11 @@ bool TArchive::restore(const char* dir, char floppy, bool tmp, bool)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  return unzip(dir, floppy, tmp);
 | 
					  return unzip(dir, floppy, tmp);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					bool TArchive::restore(const char* dir, const char* fromdir, bool tmp, bool)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return unzip(dir, fromdir, tmp);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool TArchive::restore(int mode, long firm, char floppy, bool tmp, bool)
 | 
					bool TArchive::restore(int mode, long firm, char floppy, bool tmp, bool)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
				
			|||||||
@ -50,21 +50,29 @@ public:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  // @cmember Effettua il backup della directory
 | 
					  // @cmember Effettua il backup della directory
 | 
				
			||||||
  bool backup(const char* dir, char floppy, const char* desc, bool dummy = FALSE);
 | 
					  bool backup(const char* dir, char floppy, const char* desc, bool dummy = FALSE);
 | 
				
			||||||
 | 
						// @cmember Effettua il backup della directory in un percorso specificato
 | 
				
			||||||
 | 
					  bool backup(const char* dir, const char* dirdest, const char* desc, bool dummy = FALSE) const;
 | 
				
			||||||
  // @cmember Effettua il backup della ditta
 | 
					  // @cmember Effettua il backup della ditta
 | 
				
			||||||
  bool backup(int mode, long firm, char floppy, const char* desc, bool pr_set=TRUE);
 | 
					  bool backup(int mode, long firm, char floppy, const char* desc, bool pr_set=TRUE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // @cmember Effettua il restore della directory
 | 
					  // @cmember Effettua il restore della directory
 | 
				
			||||||
  bool restore(const char* dir, char floppy, bool temp, bool dummy = FALSE);
 | 
					  bool restore(const char* dir, char floppy, bool temp, bool dummy = FALSE);
 | 
				
			||||||
 | 
					  // @cmember Effettua il restore della directory
 | 
				
			||||||
 | 
					  bool restore(const char* dir, const char* fromdir, bool temp, bool dummy = FALSE);
 | 
				
			||||||
  // @cmember Effettua il restore della ditta
 | 
					  // @cmember Effettua il restore della ditta
 | 
				
			||||||
  bool restore(int mode, long firm, char floppy, bool temp, bool pr_set=TRUE);
 | 
					  bool restore(int mode, long firm, char floppy, bool temp, bool pr_set=TRUE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // @cmember Effettua il backup della directory
 | 
					  // @cmember Effettua il backup della directory
 | 
				
			||||||
  bool zip(const char* dir, char floppy, const char* desc);
 | 
					  bool zip(const char* dir, char floppy, const char* desc);
 | 
				
			||||||
 | 
					  // @cmember Effettua il backup della directory su percorso specificato nel file
 | 
				
			||||||
 | 
						static bool zip(const char* dir, const TFilename& work);
 | 
				
			||||||
  // @cmember Effettua il backup della ditta
 | 
					  // @cmember Effettua il backup della ditta
 | 
				
			||||||
  bool zip(int mode, long firm, char floppy, const char* desc);
 | 
					  bool zip(int mode, long firm, char floppy, const char* desc);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // @cmember Effettua il restore della directory
 | 
					  // @cmember Effettua il restore della directory
 | 
				
			||||||
  bool unzip(const char* dir, char floppy, bool temp);
 | 
					  bool unzip(const char* dir, char floppy, bool temp);
 | 
				
			||||||
 | 
					  // @cmember Effettua il restore della directory
 | 
				
			||||||
 | 
					  bool unzip(const char* dir, const char* fromdir, bool temp);
 | 
				
			||||||
  // @cmember Effettua il restore della ditta
 | 
					  // @cmember Effettua il restore della ditta
 | 
				
			||||||
  bool unzip(int mode, long firm, char floppy, bool temp);
 | 
					  bool unzip(int mode, long firm, char floppy, bool temp);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -19,9 +19,11 @@ class TDeletedoc_app : public TSkeleton_application
 | 
				
			|||||||
  TString        _desc, _last_std;
 | 
					  TString        _desc, _last_std;
 | 
				
			||||||
  TString16      _num;
 | 
					  TString16      _num;
 | 
				
			||||||
  int            _anno;
 | 
					  int            _anno;
 | 
				
			||||||
  char           _unit;
 | 
						char           _unit;
 | 
				
			||||||
 | 
					  TString        _dirdest;
 | 
				
			||||||
  TFilename      _tmp_dir;
 | 
					  TFilename      _tmp_dir;
 | 
				
			||||||
  TIsamtempfile  *_tdoc,*_trdoc;
 | 
					  TIsamtempfile  *_tdoc,*_trdoc;
 | 
				
			||||||
 | 
					  bool						_floppy;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
protected:
 | 
					protected:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -33,7 +35,9 @@ protected:
 | 
				
			|||||||
  virtual bool destroy();
 | 
					  virtual bool destroy();
 | 
				
			||||||
  virtual void main_loop();  
 | 
					  virtual void main_loop();  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static bool state_handler(TMask& m, KEY k);
 | 
						static bool state_handler(TMask& m, KEY k);
 | 
				
			||||||
 | 
					  static void enable_supports(TMask& m, bool enable = true);
 | 
				
			||||||
 | 
						static bool op_handler(TMask_field& field, KEY k);
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -49,6 +53,38 @@ bool TDeletedoc_app::state_handler(TMask& m, KEY k)
 | 
				
			|||||||
  return TRUE;
 | 
					  return TRUE;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TDeletedoc_app::enable_supports(TMask& m, bool enable)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						if(!enable)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							m.field(F_UNIT).disable();
 | 
				
			||||||
 | 
							m.field(F_DESTDIR).disable();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							if(m.get(F_SALVA) == "F")
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								m.field(F_UNIT).enable();
 | 
				
			||||||
 | 
								m.field(F_DESTDIR).disable();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								m.field(F_UNIT).disable();
 | 
				
			||||||
 | 
								m.field(F_DESTDIR).enable();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool TDeletedoc_app::op_handler(TMask_field& field, KEY k)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						TMask& m = field.mask();
 | 
				
			||||||
 | 
						if (m.get_int(F_OPERAZIONE) == 1)
 | 
				
			||||||
 | 
							enable_supports(m, false);
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							enable_supports(m);
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void TDeletedoc_app::backup_delete_doc(int op, int who, bool pack_rows)
 | 
					void TDeletedoc_app::backup_delete_doc(int op, int who, bool pack_rows)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
@ -176,7 +212,10 @@ void TDeletedoc_app::backup_delete_doc(int op, int who, bool pack_rows)
 | 
				
			|||||||
        movmag.close(); rmovmag.close();
 | 
					        movmag.close(); rmovmag.close();
 | 
				
			||||||
        const char * dir = &_tmp_dir[1];
 | 
					        const char * dir = &_tmp_dir[1];
 | 
				
			||||||
        delete_tmp_files(FALSE); //Close tmp files only
 | 
					        delete_tmp_files(FALSE); //Close tmp files only
 | 
				
			||||||
        rt = _arc.backup(dir,_unit,_desc, FALSE);// Backup dei documenti da eliminare, prefix unnecessary
 | 
									if(_floppy)
 | 
				
			||||||
 | 
										rt = _arc.backup(dir, _unit, _desc, FALSE);	// Backup dei documenti da eliminare, prefix unnecessary
 | 
				
			||||||
 | 
									else
 | 
				
			||||||
 | 
										rt = _arc.backup(dir, _dirdest, _desc, FALSE);	// Backup dei documenti da eliminare, prefix unnecessary
 | 
				
			||||||
        create_tmp_files(FALSE); // Reopen tmp files.
 | 
					        create_tmp_files(FALSE); // Reopen tmp files.
 | 
				
			||||||
        doc.open(_excllock); rdoc.open(); clifo.open();
 | 
					        doc.open(_excllock); rdoc.open(); clifo.open();
 | 
				
			||||||
        cfven.open(); tab.open(); occas.open();
 | 
					        cfven.open(); tab.open(); occas.open();
 | 
				
			||||||
@ -251,7 +290,12 @@ void TDeletedoc_app::restore_doc()
 | 
				
			|||||||
    return ;
 | 
					    return ;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  const char* dir =& _tmp_dir[1]; // Cut out % sign
 | 
					  const char* dir =& _tmp_dir[1]; // Cut out % sign
 | 
				
			||||||
  if (_arc.restore(dir,_unit,FALSE, FALSE))
 | 
						bool ok;
 | 
				
			||||||
 | 
						if(_floppy)
 | 
				
			||||||
 | 
							ok = _arc.restore(dir, _unit, FALSE, FALSE);
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							ok = _arc.restore(dir, _dirdest, FALSE, FALSE);
 | 
				
			||||||
 | 
					  if (ok)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    create_tmp_files(FALSE);  // In realta' ci sono gia'
 | 
					    create_tmp_files(FALSE);  // In realta' ci sono gia'
 | 
				
			||||||
    const TRecnotype items = _tdoc->items() + _trdoc->items();
 | 
					    const TRecnotype items = _tdoc->items() + _trdoc->items();
 | 
				
			||||||
@ -335,13 +379,17 @@ void TDeletedoc_app::main_loop()
 | 
				
			|||||||
{               
 | 
					{               
 | 
				
			||||||
  TMask m("ve5100a");
 | 
					  TMask m("ve5100a");
 | 
				
			||||||
  m.set_handler(state_handler);
 | 
					  m.set_handler(state_handler);
 | 
				
			||||||
 | 
						m.set_handler(F_OPERAZIONE, op_handler);
 | 
				
			||||||
 | 
						m.set_handler(F_SALVA, op_handler);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  m.set(F_STATUS,_last_std);
 | 
					  m.set(F_STATUS,_last_std);
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  while (m.run() != K_QUIT) 
 | 
					  while (m.run() != K_QUIT) 
 | 
				
			||||||
  {                 
 | 
					  {                 
 | 
				
			||||||
    _unit       = m.get(F_UNIT)[0];
 | 
							_dirdest		= m.get(F_DESTDIR);
 | 
				
			||||||
    _desc       = m.get(F_DESC);
 | 
					    _desc       = m.get(F_DESC);
 | 
				
			||||||
 | 
							_unit       = m.get(F_UNIT)[0];
 | 
				
			||||||
 | 
							_floppy = m.get(F_SALVA) == "F";
 | 
				
			||||||
    const int scelta = m.get_int(F_OPERAZIONE);
 | 
					    const int scelta = m.get_int(F_OPERAZIONE);
 | 
				
			||||||
    const int cosa = m.get_int(F_DOCUMENTI);
 | 
					    const int cosa = m.get_int(F_DOCUMENTI);
 | 
				
			||||||
    const bool pack_rows = m.get_bool(F_COMPATTA);
 | 
					    const bool pack_rows = m.get_bool(F_COMPATTA);
 | 
				
			||||||
 | 
				
			|||||||
@ -1,11 +1,13 @@
 | 
				
			|||||||
#define F_STATUS       101
 | 
					#define F_STATUS       101
 | 
				
			||||||
#define F_DESC         102
 | 
					#define F_DESC         102
 | 
				
			||||||
#define F_UNIT         103
 | 
					#define F_UNIT         103
 | 
				
			||||||
#define F_STADESC      104
 | 
					#define F_DESTDIR      104
 | 
				
			||||||
#define F_OPERAZIONE   105
 | 
					#define F_STADESC      105
 | 
				
			||||||
#define F_DOCUMENTI    106
 | 
					#define F_OPERAZIONE   106
 | 
				
			||||||
#define F_COMPATTA     107
 | 
					#define F_SALVA				 107
 | 
				
			||||||
#define F_ANNO         108
 | 
					#define F_DOCUMENTI    108
 | 
				
			||||||
#define F_CODNUM       109
 | 
					#define F_COMPATTA     109
 | 
				
			||||||
#define F_DESNUM       110
 | 
					#define F_ANNO         110
 | 
				
			||||||
 | 
					#define F_CODNUM       111
 | 
				
			||||||
 | 
					#define F_DESNUM       112
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -10,13 +10,13 @@ RADIOBUTTON F_OPERAZIONE 1 34
 | 
				
			|||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT  1 1 "Operazione"
 | 
					  PROMPT  1 1 "Operazione"
 | 
				
			||||||
  ITEM "1|Eliminazione" 
 | 
					  ITEM "1|Eliminazione" 
 | 
				
			||||||
    MESSAGE DISABLE,F_DESC|DISABLE,F_UNIT|ENABLE,F_ANNO|ENABLE,F_CODNUM
 | 
					    MESSAGE DISABLE,F_DESC|ENABLE,F_ANNO|ENABLE,F_CODNUM
 | 
				
			||||||
  ITEM "2|Archiviazione" 
 | 
					  ITEM "2|Archiviazione" 
 | 
				
			||||||
    MESSAGE ENABLE,F_DESC|ENABLE,F_UNIT|ENABLE,F_ANNO|ENABLE,F_CODNUM
 | 
					    MESSAGE ENABLE,F_DESC|ENABLE,F_ANNO|ENABLE,F_CODNUM
 | 
				
			||||||
  ITEM "3|Eliminazione e archiviazione" 
 | 
					  ITEM "3|Eliminazione e archiviazione" 
 | 
				
			||||||
    MESSAGE ENABLE,F_DESC|ENABLE,F_UNIT|ENABLE,F_ANNO|ENABLE,F_CODNUM
 | 
					    MESSAGE ENABLE,F_DESC|ENABLE,F_ANNO|ENABLE,F_CODNUM
 | 
				
			||||||
  ITEM "4|Ripristino"
 | 
					  ITEM "4|Ripristino"
 | 
				
			||||||
    MESSAGE DISABLE,F_DESC|ENABLE,F_UNIT|CLEAR,F_ANNO|CLEAR,F_CODNUM
 | 
					    MESSAGE DISABLE,F_DESC|CLEAR,F_ANNO|CLEAR,F_CODNUM
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RADIOBUTTON F_DOCUMENTI 1 24
 | 
					RADIOBUTTON F_DOCUMENTI 1 24
 | 
				
			||||||
@ -30,21 +30,35 @@ BEGIN
 | 
				
			|||||||
  MESSAGE ENABLE,F_COMPATTA 
 | 
					  MESSAGE ENABLE,F_COMPATTA 
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RADIOBUTTON F_SALVA 2 24
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
						PROMPT 1 7 "Salvare su "
 | 
				
			||||||
 | 
						ITEM "F|Floppy"
 | 
				
			||||||
 | 
						ITEM "D|File  "
 | 
				
			||||||
 | 
						FLAGS "Z"
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LIST F_UNIT 2
 | 
					LIST F_UNIT 2
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT 38 6 "Unita' di backup "
 | 
					  PROMPT 30 9 "Unita' di backup"
 | 
				
			||||||
  ITEM "A|A:"
 | 
					  ITEM "A|A:"
 | 
				
			||||||
  ITEM "B|B:"
 | 
					  ITEM "B|B:"
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					STRING F_DESTDIR 250 36
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
					  PROMPT 2 10 "Percorso di backup   "
 | 
				
			||||||
 | 
					  DSELECT
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
STRING F_DESC 50 36
 | 
					STRING F_DESC 50 36
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT 2 7 "Descrizione backup   "
 | 
					  PROMPT 2 11 "Descrizione backup   "
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
STRING F_STATUS 1
 | 
					STRING F_STATUS 1
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT 2 8 "Stato eliminabile    "
 | 
					  PROMPT 2 12 "Stato eliminabile    "
 | 
				
			||||||
  USE %STD
 | 
					  USE %STD
 | 
				
			||||||
  INPUT CODTAB F_STATUS
 | 
					  INPUT CODTAB F_STATUS
 | 
				
			||||||
  DISPLAY "Stato documento" CODTAB
 | 
					  DISPLAY "Stato documento" CODTAB
 | 
				
			||||||
@ -58,25 +72,25 @@ END
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
STRING F_STADESC 32
 | 
					STRING F_STADESC 32
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT 27 8 ""
 | 
					  PROMPT 27 12 ""
 | 
				
			||||||
  FLAGS "D"
 | 
					  FLAGS "D"
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
BOOELAN F_COMPATTA
 | 
					BOOELAN F_COMPATTA
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT 2 9 "Elimina la righe evase"
 | 
					  PROMPT 2 13 "Elimina la righe evase"
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
NUMBER F_ANNO 4
 | 
					NUMBER F_ANNO 4
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT 2 10 "Esercizio    "
 | 
					  PROMPT 2 14 "Esercizio    "
 | 
				
			||||||
  FIELD ANNO
 | 
					  FIELD ANNO
 | 
				
			||||||
  WARNING "Inserire un anno valido"
 | 
					  WARNING "Inserire un anno valido"
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
STRING F_CODNUM 4
 | 
					STRING F_CODNUM 4
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT 2 11 "Numerazione  "
 | 
					  PROMPT 2 15 "Numerazione  "
 | 
				
			||||||
  FIELD CODNUM
 | 
					  FIELD CODNUM
 | 
				
			||||||
  HELP "Codice numerazione"
 | 
					  HELP "Codice numerazione"
 | 
				
			||||||
  USE %NUM
 | 
					  USE %NUM
 | 
				
			||||||
@ -92,7 +106,7 @@ END
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
STRING F_DESNUM 50 42
 | 
					STRING F_DESNUM 50 42
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT 15 12 ""
 | 
					  PROMPT 15 16 ""
 | 
				
			||||||
  HELP "Descrizione numerazione"
 | 
					  HELP "Descrizione numerazione"
 | 
				
			||||||
  USE %NUM KEY 2
 | 
					  USE %NUM KEY 2
 | 
				
			||||||
  INPUT S0 F_DESNUM
 | 
					  INPUT S0 F_DESNUM
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user