Files
vfp_roaauto/COMUN/programe/filebringer.prg

210 lines
6.1 KiB
Plaintext
Raw Permalink Blame History

Function BringFile
Lparameters cFilePath,lcprogram,tcLocalFile
*!* modificare ROARESTAURANT v 1.0.0
LOCAL lnTransferTotal
lnTransferTotal = -1
*!* modificare ROARESTAURANT v 1.0.0 ^
If !Empty(tcLocalFile)
lcLocalFile=tcLocalFile
Else
If At("_",lcprogram)#0
lccurrentUR=Substr(lcprogram,At("_",lcprogram)+1)
* MESSAGEBOX(lccurrentUR)
Else
lccurrentUR=lcprogram
Endif
mypath=GetIniPath()
mypath=Substr(mypath,1,Rat("\",mypath,1))
Try
Md mypath+lccurrentUR+"\"
Catch To loex
Endtry
lcLocalFile=Alltrim(GetCurrentTempPath(lcprogram))
Endif
* Do Form waitwindow Name frmwait
polog.Log("Fisierul care trebuie descarcat este "+cFilePath,Program())
If (Occurs('/', cFilePath)>0)
*WAIT WINDOW AT 10,10 NOWAIT "Se downloadeaza fisierul..."
polog.Log([Createobject("wwCodeUpdate")],Program())
loUpdate=Createobject("wwCodeUpdate")
*!* loUpdate.cExeFile = lcprogram+".exe"
If Isnull(loUpdate.oHTTP)
loIP = loUpdate.CreateHTTPClient()
Else
loIP = loUpdate.oHTTP
Endif
loIP.lShowDialog = .T.
loUrl = loIP.InternetCrackUrl(cFilePath)
If Isnull(loUrl)
Return .F.
Endif
myinihandler=Createobject("iniaccess")
loIP.nhttpport=Val(loUrl.cPort)
If loIP.HTTPConnect(loUrl.cServer,myinihandler.getUsername(),myinihandler.getPassword(),;
IIF(Lower(loUrl.cProtocol)="https",.T.,.F.)) # 0
loUpdate.SetError(loIP.cErrorMsg)
Release myinihandler
polog.Log([loIP.HTTPConnect(] + loUrl.cServer + [)#0],Program())
Return .F.
Else
Release myinihandler
lcTFile = lcLocalFile
lcData = ""
lnSize = 0
polog.Log([loIP.HTTPGetEx(] + Trim(loUrl.cPath) + [)],Program())
If(loIP.HTTPGetEx( Trim(loUrl.cPath),@lcData,@lnSize,,lcTFile)=0)
polog.Log([lnSize=] + alltrim(transform(m.lnSize)),Program())
TransferHandlerResult=lnSize
else
polog.Log([loIp.cerrormsg=] + alltrim(transf(loIp.nerror)) + ' ' + alltrim(transform(nvl(loIp.cerrormsg,''))),Program())
TransferHandlerResult=0
endif
polog.Log([lnSize=] + alltrim(transform(m.lnSize)),Program())
polog.Log([loIP.nContentSize=] + alltrim(transform(loIP.nContentSize)),Program())
If lnSize#loIP.nContentSize
TransferHandlerResult=0
Endif
Endif
* TransferHandlerResult= DownLoadURL(cFilePath,cLocalFile,"FeedBack",1000,.T.)
polog.Log("TransferHandlerResult = "+Alltrim(Transform(TransferHandlerResult)),Program())
Else
*WAIT WINDOW NOWAIT "Se copiaza fisierul..."
*!* If Left(cFilePath,1)="\"
*!* cFilePath=Right(cFilePath,Len(cFilePath)-1)
*!* Endif
*!* cFilePath=lcNetworkPath+cFilePath
If(PathFileExists(cFilePath)=1)
scomp=Set('comp')
Set Compatible On
nsize=Fsize(cFilePath)
Set Compatible &scomp
loProgressForm = Createobject("wwProgressForm")
loProgressForm.SetCaption("Se descarc<72> actualizarea...")
*!* loProgressForm.ShowCancelButton()
loProgressForm.Show()
*!* IF loProgressForm.lCancelled
loProgressForm.SetDescription("S-au primit de la "+Justpath(cFilePath)+":" +Chr(13)+;
"0 din "+Ltrim(Transform(nsize,"999,999,999"))+ " bytes")
*!* THIS.oProgressForm.SetDescription("Received from " + THIS.cServer + ":" +CHR(13) +;
*!* LTRIM( TRANSFORM(lnbytes,"999,999,999") ) + " of " +;
*!* LTRIM(TRANSFORM(THIS.nContentSize,"999,999,999"))+ " bytes")
*!* THIS.oProgressForm.SetProgress(lnbytes/THIS.nContentSize * 100)
loProgressForm.SetProgress(0)
loProgressForm.SetDescription("S-au primit de la "+Justpath(cFilePath)+":" +Chr(13)+;
LTRIM(Transform(nsize*0.05,"999,999,999"))+" din "+Ltrim(Transform(nsize,"999,999,999"))+ " bytes")
loProgressForm.SetProgress(5)
TransferHandlerResult= CopyFile(cFilePath, lcLocalFile, .F.)
loProgressForm.SetDescription("S-au primit de la "+Justpath(cFilePath)+":" +Chr(13)+;
LTRIM(Transform(nsize,"999,999,999"))+" din "+Ltrim(Transform(nsize,"999,999,999"))+ " bytes")
loProgressForm.SetProgress(100)
loProgressForm = .F.
Else
*MESSAGEBOX("Update-ul nu a fost gasit la locatia XML-ului")
polog.Log("A incercat cu CopyFile si nu a mers = ",Program())
TransferHandlerResult=0
Endif
Endif
* frmwait.Release()
*WAIT CLEAR
If (TransferHandlerResult!=0 And TransferHandlerResult!=-1)
*!* modificare ROARESTAURANT v 1.0.0
*!* If gTransferTotal!=-1
IF lnTransferTotal != -1
If TransferHandlerResult=gTransferTotal
lnTransferTotal = -1
*!* gTransferTotal=-1
Return .T.
Else
lnTransferTotal = -1
*!* gTransferTotal=-1
polog.Log("TransferHandlerresult != TransferTotal ",Program())
Return .F.
Endif
Endif
*!* modificare ROARESTAURANT v 1.0.0 ^
Return .T.
Else
If TransferHandlerResult=0
polog.Log("TransferHandlerresult = 0",Program())
Endif
If TransferHandlerResult=-1
polog.Log("TransferHandlerresult = -1",Program())
Endif
Return .F.
Endif
Endfunc
Function StripXmlFile
Lparameters cXmlString
Return Strextract(Alltrim(cXmlString),"(",")",1)
Endfunc
Function FeedBack
* if this function returned with .f., downloading would terminate
* it is called after each 100 byte downloaded. (You can alter this value!)
Lparameters tiAll, tiCount
gTransferTotal=tiAll
frmwait.label1.Caption = "Desc<73>rcare " + Alltrim(Str(tiCount/1000)) + " kb din " + Alltrim(Str(tiAll/1000)) + " kb"
procent = (tiCount*100)/tiAll
frmwait._progressbar1.Update(procent)
If !gcmdCancelDownload
Return .T.
Else
gcmdCancelDownload= .F.
Return .F.
Endif
Endfunc
Function CheckProcess
Lparameters ProgramCheck
ProgramtoCheck=Addbs(gcDirMare) + ProgramCheck + "\"+ProgramCheck + ".exe"
ProgramProba= Addbs(gcDirMare) + ProgramCheck + "\" + ProgramCheck + "Proba.exe"
Local loex As Exception
err=.F.
If File("&ProgramtoCheck")
Copy File &ProgramtoCheck To &ProgramProba
Else
Return .F.
Endif
Try
Delete File &ProgramtoCheck
Catch To loex
If loex.ErrorNo=1705
err= .T.
Endif
Endtry
If err=.F.
Copy File &ProgramProba To &ProgramtoCheck
Delete File &ProgramProba
Endif
Return err
Endfunc