Initial: flux text FoxBin2Prg (git urmareste .??2 in-arbore, binarele VFP git-ignored)
Include si sistemul de depanare/testare headless din Teste\ (harness UI cu capturi, verificare de sintaxa prin compilare, wrappere text<->binar) si docs\depanare_testare_flora2roa.md.
This commit is contained in:
275
capp.prg
Normal file
275
capp.prg
Normal file
@@ -0,0 +1,275 @@
|
||||
*!* capp *!*
|
||||
#INCLUDE COMUN.H
|
||||
#INCLUDE SECURITY.H
|
||||
|
||||
#DEFINE CRLF CHR(13) + CHR(10)
|
||||
|
||||
*** ==================== CAPP ============================ ***
|
||||
Define Class cApp As Custom
|
||||
oSettings = Null
|
||||
lError = .F.
|
||||
cErrorMessage = ''
|
||||
oLog = Null
|
||||
oTrace = Null
|
||||
lWriteLog = .F. && .T. = scrie in log pe disc
|
||||
|
||||
*
|
||||
Procedure Init
|
||||
*Set Procedure To "app.prg" Additive
|
||||
This.oSettings = Newobject("Settings","app.prg") && CREATEOBJECT("Settings")
|
||||
This.oLog = Iif(Type('goLog') = 'O', goLog, Createobject("Log"))
|
||||
Endproc && INIT
|
||||
*
|
||||
Procedure ProcessError(toHash)
|
||||
Declare laErrors[1]
|
||||
|
||||
LOCAL loHash
|
||||
IF TYPE('toHash') = 'O'
|
||||
loHash = toHash
|
||||
ELSE
|
||||
loHash = GetHash()
|
||||
ENDIF
|
||||
|
||||
lnErrorLines = Aerror(laErrors)
|
||||
|
||||
lnError = Iif(loHash.HasProperty("nError"), loHash.GetValue("nError"), Transform(laErrors(1)) + ' ' + Transform(laErrors(5)))
|
||||
lcMethod = loHash.GetValue("cMethod")
|
||||
lnLine = loHash.GetValue("nLine")
|
||||
lcError = Iif(loHash.HasProperty("cError"), loHash.GetValue("cError"), Transform(laErrors(2)))
|
||||
lcCode = Iif(loHash.HasProperty("cCode"), loHash.GetValue("cCode"), Message(1) )
|
||||
lcCallStack = GetCallStack()
|
||||
lcUserMessage = loHash.GetValue("cUserMessage")
|
||||
|
||||
This.cErrorMessage = lcUserMessage + CRLF + CRLF + ;
|
||||
'Eroarea nr: ' + Transform(lnError) + CRLF + ;
|
||||
'Eroarea: ' + Transform(lcError) + CRLF + ;
|
||||
'Procedura: ' + Transform(lcMethod) + CRLF + ;
|
||||
'Linia: ' + Transform(lnLine) + CRLF + ;
|
||||
'Codul: ' + Transform(lcCode) + CRLF + ;
|
||||
lcCallStack
|
||||
|
||||
This.lError = .T.
|
||||
This.Log(This.cErrorMessage)
|
||||
|
||||
*!* MESSAGEBOX(THIS.cErrorMessage,0+16,'Eroare')
|
||||
*!* IF MESSAGEBOX(THIS.cErrorMessage + CRLF + 'Doriti sa iesiti?',16+4,'Eroare') = 6
|
||||
*!* IF _vfp.StartMode = 0
|
||||
*!* SET STEP ON
|
||||
*!* ELSE
|
||||
*!* RETURN TO MASTER
|
||||
*!* ENDIF
|
||||
*!* ENDIF
|
||||
Endproc && ProcessError
|
||||
*
|
||||
Procedure Log
|
||||
Lparameters tcMessage, toTrace
|
||||
LOCAL loTrace
|
||||
|
||||
IF this.oSettings.lWriteLog
|
||||
This.oLog.WriteLog(tcMessage)
|
||||
ENDIF
|
||||
loTrace = This.oTrace
|
||||
|
||||
*!* 03.03.2010
|
||||
IF TYPE('toTrace') = 'O'
|
||||
toTrace.Trace(tcMessage)
|
||||
ELSE
|
||||
IF TYPE('loTrace') = 'O'
|
||||
loTrace.Trace(tcMessage)
|
||||
ENDIF
|
||||
ENDIF
|
||||
*!* 03.03.2010 ^
|
||||
Endproc && Log
|
||||
*
|
||||
Function Gethost
|
||||
Local lcValue
|
||||
lcValue = This.oSettings.GetValue("HOST")
|
||||
Return lcValue
|
||||
Endfunc && GetHost
|
||||
*
|
||||
Function GetUser
|
||||
Local lcValue
|
||||
lcValue = This.oSettings.GetValue("USER")
|
||||
Return lcValue
|
||||
Endfunc && GetUser
|
||||
*
|
||||
Function GetPassword
|
||||
Local lcValue
|
||||
lcValue = This.oSettings.GetValue("PASSWORD")
|
||||
Return lcValue
|
||||
Endfunc && GetPassword
|
||||
*
|
||||
Function GetConnectionString
|
||||
Local lcValue
|
||||
lcValue = This.oSettings.GetValue("CONNECTIONSTRING")
|
||||
Return lcValue
|
||||
Endfunc && GetConnectionString
|
||||
*
|
||||
Function GetError
|
||||
Return This.cErrorMessage
|
||||
Endfunc && GetError
|
||||
*
|
||||
Function HasError
|
||||
Return This.lError
|
||||
Endfunc && HasError
|
||||
*
|
||||
Function IsLoggedIn
|
||||
Return .T.
|
||||
&& RETURN THIS.oSettings.GetValue("IdUtilizator") > 0
|
||||
Endfunc && IsLoggedIn
|
||||
|
||||
Function ShowError
|
||||
Return Messagebox(This.cErrorMessage + CRLF + 'Doriti sa iesiti?',16+4,'Eroare')
|
||||
Endfunc && ShowError
|
||||
|
||||
Enddefine && cAPP
|
||||
|
||||
|
||||
*** ==================== cSETTINGS ============================ ***
|
||||
Define Class cSETTINGS As Custom
|
||||
cIniFile = ''
|
||||
cAppPath = ''
|
||||
cIniText = ''
|
||||
|
||||
|
||||
Proc Init
|
||||
Local lcApppath, lcApplicationFile
|
||||
If Type('gcAppPath') = 'C'
|
||||
lcApppath = gcAppPath
|
||||
Else
|
||||
lcApppath = Addbs(Justpath(Sys(16, 0)))
|
||||
|
||||
If 'PROGRAME'$Upper(lcApppath)
|
||||
lcApppath = Strtran(lcApppath, 'PROGRAME\','')
|
||||
Endif
|
||||
Endif
|
||||
This.cAppPath = lcApppath
|
||||
|
||||
This.cIniFile = This.cAppPath + 'settings.ini'
|
||||
|
||||
This.InitSettings()
|
||||
This.ReadSettings()
|
||||
Endproc
|
||||
|
||||
Procedure InitSettings
|
||||
Local lcInifile, lcIniText
|
||||
lcIniText = This.cIniText
|
||||
|
||||
lcInifile = This.cIniFile
|
||||
If Empty(lcInifile)
|
||||
Return
|
||||
Endif
|
||||
IF !FILE(lcInifile)
|
||||
Strtofile(lcIniText, lcInifile)
|
||||
ENDIF
|
||||
Endproc && InitSettings
|
||||
|
||||
Procedure ReadSettings
|
||||
|
||||
Endproc && ReadSettings
|
||||
|
||||
|
||||
*==========================================
|
||||
Procedure SetVariable
|
||||
Lparameters tcSection, tcVarname, tuValue
|
||||
|
||||
Local lcSection, lcVarname, lcValue
|
||||
|
||||
lcSection = Lower(Alltrim(tcSection))
|
||||
lcVarname = Lower(Alltrim(tcVarname))
|
||||
lcValue = Transform(tuValue)
|
||||
SetIni(This.cIniFile, lcSection, lcVarname, lcValue)
|
||||
|
||||
Endproc && SetVariable
|
||||
|
||||
*==========================================
|
||||
Procedure ReadVariable
|
||||
Lparameters tcSection, tcVarname
|
||||
|
||||
Local lcSection, lcVarname, lcValue
|
||||
|
||||
lcSection = Lower(Alltrim(tcSection))
|
||||
lcVarname = Lower(Alltrim(tcVarname))
|
||||
|
||||
lcValue = GetIni(This.cIniFile, lcSection, lcVarname)
|
||||
lcValue = Nvl(lcValue, '')
|
||||
|
||||
Return lcValue
|
||||
Endproc && ReadVariable
|
||||
|
||||
Function GetValue
|
||||
Lparameters tcSetting
|
||||
|
||||
Local lcSetting, luValue
|
||||
lcSetting = "THIS." + tcSetting
|
||||
luValue = ''
|
||||
If Type(lcSetting) # 'U'
|
||||
luValue = &lcSetting
|
||||
Endif
|
||||
Return luValue
|
||||
|
||||
Endfunc
|
||||
|
||||
|
||||
Procedure SetValue
|
||||
Lparameters tcSetting, tuValue
|
||||
|
||||
Local lcSetting, luValue
|
||||
lcSetting = "THIS." + tcSetting
|
||||
luValue = tuValue
|
||||
If Type(lcSetting) # 'U'
|
||||
&lcSetting = luValue
|
||||
Endif
|
||||
|
||||
Endproc
|
||||
|
||||
Function DecryptPassword As Character
|
||||
Lparameters tcPassword
|
||||
Local lcPassword
|
||||
|
||||
lcPassword = Alltrim(Strconv(Alltrim(m.tcPassword),14))
|
||||
lcPassword = This.EncryptDecrypt(m.lcPassword, ENCRYPTKEY, "decrypt","blowfish")
|
||||
|
||||
Return m.lcPassword
|
||||
Endfunc
|
||||
|
||||
*!* EncryptDecrypt
|
||||
*!* EX: EncryptDecrypt("text to encrypt", "encrypt key", "encrypt")
|
||||
*!* EX: EncryptDecrypt("text to decrypt", "decrypt key", "decrypt")
|
||||
*!* EX: EncryptDecrypt("text to encrypt", "encrypt key", "encrypt","blowfish")
|
||||
Function EncryptDecrypt
|
||||
Lparameters tcText, tcPassword, tcMode, tcAlgorithm
|
||||
&& tcMode : ENCRYPT/DECRYPT
|
||||
Local lcAlgorithm,lcReturn, lcString, lcPWD
|
||||
Local loException As Exception
|
||||
m.lcString = tcText
|
||||
m.lcPWD = tcPassword
|
||||
m.lcReturn = ""
|
||||
lcAlgorithm = ""
|
||||
If Type('tcAlgorithm') = 'C'
|
||||
lcAlgorithm = tcAlgorithm
|
||||
Endif
|
||||
If lcAlgorithm = "blowfish"
|
||||
If Upper(Alltrim(Transform(tcMode))) = "ENCRYPT"
|
||||
lcReturn=Encrypt(m.lcString, m.lcPWD,4,0)
|
||||
Else
|
||||
Try
|
||||
lcReturn=decrypt(m.lcString, Alltrim(m.lcPWD),4,0)
|
||||
Catch To loException
|
||||
If loException.ErrorNo=2028
|
||||
golog.Log("S-a incercat decriptarea unui text care nu a fost generat cu algoritmul de criptare selectat.",Program())
|
||||
Else
|
||||
golog.Log(loException.Message,Program())
|
||||
Endif
|
||||
Endtry
|
||||
Endif
|
||||
Endif
|
||||
*!* 18.03.2008 : am scos chr(0) de la sfarsitul textului decriptat
|
||||
If At(Chr(0),m.lcReturn) > 0 And Upper(Alltrim(Transform(tcMode))) != "ENCRYPT"
|
||||
m.lcReturn = Substr(m.lcReturn, 1, At(Chr(0),m.lcReturn)-1)
|
||||
Endif
|
||||
*!* 18.03.2008
|
||||
Return m.lcReturn
|
||||
Endfunc && EncryptDecrypt
|
||||
|
||||
Enddefine && cSETTINGS
|
||||
Reference in New Issue
Block a user