Delphi & Pascal (česká wiki)
{ REDEF.PAS Copyright (c) TrSek alias Zdeno Sekerak } { Unit urceny pre redefiniciu databaz pri zmene verzie programu. } { Precita stare rozlozenie DB a ulozi do noveho formatu. } { } { Datum:19.06.1995 http://www.trsek.com } procedure redef; const pdsubor='zaluzie.$$$'; var fza1,fza2:file of tzaluz; zaluz:tzaluz; i,pp,por,zac:word; dd:double; ff:file; begin prikaz('del '+subor+k_index); assign(fza1,dsubor); ReSet(fza1); assign(fza2,pdsubor); ReWrite(fza2); zac:=1; okno(1,1,80,24,' Redefinicia databazi ',' ESC-Zrus ',pozalu); Assign(ff,dsubor); opendbase(subor); i:=view_frm(subor); for i:=1 to spoc do begin cit_vety(subor,i); quick_view_all(dd,dd,FALSE); por:=vali(base[realy_find('ZALUZIA')]); hlaska('REDEF Veta >:'+stri(i,3)+' z celkov,ho po>tu:'+stri(spoc,3)+ '. Percentu lne:'+stri(round(100*(i/spoc)),3)+'%',-1); if por<>0 then begin pp:=realy_find('ZALUZIA'); base[realy_find('ZALUZIA')]:=stri(zac,hlavy[realy_find('ZALUZIA')].size); zap_vety(subor,i); repeat seek(fza1,por); read(fza1,zaluz); seek(fza2,zac); if zaluz.pred<>0 then zaluz.pred:=zac-1; por:=zaluz.zani;inc(zac); if zaluz.zani<>0 then zaluz.zani:=zac; write(fza2,zaluz); until (por=0); end; end; close(fza1); close(fza2); prikaz('copy '+pdsubor+' '+dsubor); prikaz('del '+pdsubor); hlaska('',-1); end;