
IF ! FILE(gcini_path + "libs\" + "qfixdbf.fll")
   wait "Chybi knihovna QFIXDBF.FLL" window time 3
ENDIF

set library to gcini_path + "libs\" + "qfixdbf")
msg_txt = ""
CLOSE DATA

do najdi_soubory
sele soubory
delete for atrib = "D"
delete for right(alltrim(nazev), 4) # ".dbf"
**replace all adresar with alltrim(adresar) + nazev

scan
   WAIT allt(soubory.adresar) NOWAIT WINDOW AT 22,22
   vysledek = Q_FIXDBF(allt(soubory.adresar), 16+32+64)
   if m.vysledek # 0
      ? allt(soubory.adresar) + ": CHYBA " + allt(str(vysledek, 3))
      msg_txt = m.msg_txt + allt(soubory.adresar) + ": " + allt(str(vysledek, 6)) + chr(13)
   endif
  
   err_h_old = on ("ERROR")
   on Error nejde_otevrit = .t.
   nejde_otevrit = .f.
   sele 0
   use (allt(soubory.adresar)) Exclusive
   use
   sele soubory
   on error &err_h_old

   if m.nejde_otevrit
      ?? " NEJDE OTEVRIT "
   endif
   sele soubory
endscan
WAIT CLEAR

set library to
if ! empt(m.msg_txt)
   = messagebox(m.msg_txt, 16, "Neopravitelne chyby v souborech:")
else
   MESSAGEBOX("všechno v pořádku",1+64,"Oprava po vypadku",2222)

endif



* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
procedure najdi_soubory
clos data
crea table (m.gcpri_path + "soubory") (adresar c(222), nazev c(111), atrib c(1), delka n(9))
do jedenadresar with m.gchom_path

sele soubory
do while .t.
  locate for "D" $ atrib .and. delka = 0
  if found()
     repl delka with -1111111
     do jedenadresar with allt(adresar) + allt(nazev) + "\"
  else
     exit
  endif
ENDDO
delete for atrib = "D"
delete for right(alltrim(nazev), 4) # ".dbf"
replace all adresar with alltrim(adresar) + nazev

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
proc jedenadresar
param adresar
pocet = adir(qqq, m.adresar + "*.*", "D")
for ii = 1 to m.pocet
  if left(qqq(ii, 1), 1) # "."
     insert into soubory (adresar, nazev, atrib, delka) ;
        value (lowe(m.adresar), lowe(qqq(ii, 1)), iif("D" $ qqq(ii, 5), "D", ""), qqq(ii, 2))
  endif
endfor

