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:
2026-08-02 08:56:52 +03:00
commit 2736cbd525
49 changed files with 16011 additions and 0 deletions

275
capp.prg Normal file
View 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