665 lines
16 KiB
Plaintext
665 lines
16 KiB
Plaintext
PARAMETERS tparam
|
|
|
|
&&& imob2003
|
|
|
|
|
|
SET CENTURY ON
|
|
SET DELETED ON
|
|
SET DATE TO DMY
|
|
SET EXCLUSIVE OFF
|
|
SET CPDIALOG OFF
|
|
SET TALK OFF
|
|
SET SAFETY OFF
|
|
SET ESCAPE OFF
|
|
SET EXACT ON
|
|
SET ANSI ON
|
|
SET CONSOLE OFF
|
|
SET NOTIFY OFF
|
|
SET SECONDS OFF
|
|
_SCREEN.AUTOCENTER=.T.
|
|
_SCREEN.VISIBLE=.F.
|
|
|
|
LOCAL lcMainClassLib
|
|
LOCAL lcLastSetTalk,lcLastSetPath,lcLastSetClassLib,lcOnShutdown
|
|
PUBLIC pofirma,poCalendar
|
|
|
|
PUBLIC dirgen,dirfirm,DATE,datean,calet,nfscurt,m.an,m.nl,M.NUME_2,M.NUMEGEST,m.suma,buton,pc_nume,M.FLUNG,m.id_sectie
|
|
PUBLIC m.cod,m.nract,m.dataact,m.datapif,m.nrpif,m.denumire,m.nrinv,m.codmf,m.normat,titlu
|
|
PUBLIC m.valoare,m.uzura,m.tipamort,m.gest,m.respons,m.caract,m.scd,m.fdoc,M.EXPLICATIA
|
|
PUBLIC totval,PRIMADATA,m.text,m.nr1,m.nr2,_nract,_dataact,_cod,m.sumat,pamort1,pamort2,pnrinv1,pnrinv2,pdata1,pdata2
|
|
PUBLIC Tden,Tsuma,Tgest,tscd,m.suma1,m.suma2,m.data1,m.data2,m.suma,bden,bsuma,bgest,bscd,bnrinv,bresp,bcasat
|
|
PUBLIC m.an, m.nl, m.t_2121, m.t_2122, m.t_2123, m.t_2124, m.t_2125, m.t_2126, an, nl
|
|
PUBLIC s,s1,s2,s3,s4,s5,s6,CALEFIRMA,M.CALEFIRM,parolaactiva,parola,corect
|
|
PUBLIC M.R_2121,M.R_2122,M.R_2123,M.R_2124,M.R_2125,M.R_2126
|
|
PUBLIC M.V_2121,M.V_2122,M.V_2123,M.V_2124,M.V_2125,M.V_2126
|
|
PUBLIC M.Vr_2121,M.Vr_2122,M.Vr_2123,M.Vr_2124,M.Vr_2125,M.Vr_2126
|
|
PUBLIC m.uzuraprec,m.amorttot,m.amortlun,m.amortprec,M.P,M.K,m.amortan,anul,luna,m.valin,m.dataeval
|
|
PUBLIC OSTART,uz,STARE,m.cota,m.valramasa,m.normat2,m.normaan,m.normat2lun
|
|
PUBLIC TVALOARE,ultima_luna,M.NUMELUNA,M.luna,M.ANTET,felul,M.NIVEL,m.tipcalcul
|
|
PUBLIC E_INDEPENDENT,LUNA_NEPLATITA,PRIMADATA1,NUMEPROGRAM,op_imob,gnZ
|
|
STORE 0 TO gnZ
|
|
*E_INDEPENDENT=.T.
|
|
PUBLIC luna_inchisa
|
|
|
|
STORE '' TO dirgen,dirfirm,DATE,datean,calet,nfscurt,m.an,m.nl
|
|
STORE 0 TO m.nract,m.valoare,m.normat,m.gest,m.cod,m.uzura,m.suma,buton,totval,_nract,_cod,m.normaan
|
|
STORE 0 TO s,s1,s2,s3,s4,s5,s6,M.R_2121,M.R_2122,M.R_2123,M.R_2124,M.R_2125,M.R_2126,M.V_2121,M.V_2122,M.V_2123,M.V_2124,M.V_2125,M.V_2126
|
|
STORE 0 TO M.Vr_2121,M.Vr_2122,M.Vr_2123,M.Vr_2124,M.Vr_2125,M.Vr_2126,STARE,m.cota,m.valramasa,m.normat2,m.normat2lun,m.valin
|
|
STORE 0 TO m.uzuraprec,m.amorttot,m.amortlun,m.amortprec,uz,M.P,M.K,m.amortan,TVALOARE
|
|
STORE '' TO m.denumire,m.nrpif,m.codmf,m.nrinv,m.tipamort,m.respons,m.scd,m.caract,m.fdoc,DATE,pc_nume,M.FLUNG,M.NUMELUNA,M.luna,M.ANTET
|
|
STORE '' TO nfscurt,M.NUME_2,M.NUMEGEST,M.EXPLICATIA,m.text,CALEFIRMA,M.CALEFIRM,parolaactiva,parola,anul,luna,titlu,felul,m.id_sectie
|
|
STORE DATE() TO m.dataact,m.datapif,_dataact,m.data1,m.data2,pdata1,pdata2
|
|
STORE .T. TO PRIMADATA,LUNA_NEPLATITA,PRIMADATA1
|
|
STORE .F. TO ultima_luna,corect
|
|
STORE 0 TO m.tipcalcul
|
|
STORE .F. to luna_inchisa
|
|
|
|
|
|
|
|
*-- Save and configure environment.
|
|
lcLastSetTalk=SET("TALK")
|
|
SET TALK OFF
|
|
lcLastSetPath=SET("PATH")
|
|
|
|
SET PATH TO ;DATE;INCLUDE;FERESTRE;GRAFICE;HELP;CLASE;MENIURI;PROGRAME;RAPOARTE;
|
|
PUSH MENU _MSYSMENU
|
|
|
|
***
|
|
lcLastSetClassLib=SET("CLASSLIB")
|
|
lcMainClassLib="clase\mfix2000"
|
|
SET CLASSLIB TO (lcMainClassLib) ADDITIVE
|
|
SET CLASSLIB TO appwiz ADDITIVE
|
|
SET CLASSLIB TO FERESTREBAZA ADDITIVE
|
|
SET CLASSLIB TO CAUT ADDITIVE
|
|
SET CLASSLIB TO CAUTmf ADDITIVE
|
|
SET CLASSLIB TO cont2000-2 ADDITIVE
|
|
SET CLASSLIB TO cont2000-3 ADDITIVE
|
|
SET CLASSLIB TO registry ADDITIVE
|
|
SET CLASSLIB TO imob_2005 ADDITIVE
|
|
***
|
|
SET PROCEDURE TO PROCEDURI ADDITIVE
|
|
SET PROCEDURE TO PROC_menu ADDITIVE
|
|
SET PROCEDURE TO TOTV ADDI
|
|
SET PROCEDURE TO proceduri_comune ADDITIVE
|
|
|
|
SET PROCEDURE TO quitapp ADDITIVE
|
|
SET PROCEDURE TO init_program ADDITIVE
|
|
SET PROCEDURE TO proceduri_verificare_luna.prg ADDITIVE
|
|
|
|
|
|
PUBLIC glVerificTabel && daca se verifica structura tabelelor in totv.prg
|
|
glVerificTabel=.T.
|
|
|
|
PUBLIC glQuit
|
|
glQuit = .F.
|
|
|
|
PUBLIC gnIdIstoric
|
|
STORE 0 TO gnIdIstoric
|
|
|
|
PUBLIC gcAppPath,gcAppName,gcAppDataPath, gcTempPath, gcCaleServerDate,gcAppCaption
|
|
|
|
gcAppPath = ADDBS(JUSTPATH(SYS(16,0)))
|
|
gcAppName = JUSTSTEM(SYS(16,0))
|
|
gcAppDataPath=gcAppPath+"Date_"+gcAppName+"\" && D:\CONTAFIN\TRANS\DATE_TRANS && PT OPTIUNI , FISIERE SPECIFICE PROGRAMULUI SI
|
|
gcAppCaption = 'CONTAFIN IMOBILIZARI'
|
|
STORE "" TO gcTempPath, gcCaleServerDate
|
|
|
|
IF !DIRECTORY(gcAppDataPath)
|
|
MD (gcAppDataPath)
|
|
ENDIF
|
|
|
|
liat=RAT("\",gcAppPath,2)
|
|
dirgen=ADDBS(LEFT(gcAppPath,liat-1))
|
|
CD &dirgen
|
|
|
|
|
|
IF verificari()
|
|
_SCREEN.VISIBLE=.T.
|
|
DO mesaj WITH "Se fac verificari programului","Va rugam reveniti"
|
|
glQuit= .T.
|
|
QUIT
|
|
ENDIF
|
|
|
|
|
|
IF !Debug_Start()
|
|
lcParam=tparam
|
|
IF EMPTY(tparam) OR (TYPE('tParam')='C' AND !verific_start(tparam,dirgen,gcAppName))
|
|
_SCREEN.VISIBLE=.T.
|
|
DO mesaj WITH "Programul trebuie pornit doar din START",""
|
|
QUIT
|
|
ENDIF
|
|
ENDIF
|
|
|
|
*** verificare serie permanenta
|
|
PUBLIC tipar,exista_excel,SER_PERM,SER_PERI,VERSIUNE
|
|
STORE .F. TO SER_PERM,SER_PERI
|
|
|
|
USE &gcAppPath\SER IN 0 ALIAS SER SHARED
|
|
SELECT SER
|
|
GO TOP
|
|
tipar=TIP
|
|
SER_PERM=SER_PERMAN
|
|
SER_PERI=SER_PERIOD
|
|
VERSIUNE=VERcont
|
|
MODEL_PROGRAM=MODEL
|
|
USE IN SER
|
|
PAROLAMEA=SUBSTR(tipar,MONTH(DATE()),1)
|
|
PAROLAMEA=PAROLAMEA+ALLT(STR(DAY(DATE())))+ALLT(STR(MONTH(DATE())))
|
|
|
|
IF !_DEBUG()
|
|
IF SER_PERM AND !verif_ser_perm()
|
|
QUIT
|
|
ENDIF
|
|
ENDIF
|
|
***********************************************************************
|
|
*** INITIALIZEZ CAI DATE
|
|
PUBLIC cales,eserver,loc,utilizator
|
|
IF !Start_Nou()
|
|
|
|
CD C:\
|
|
IF !DIRECTORY('contafin')
|
|
MD contafin
|
|
ENDIF
|
|
CD contafin
|
|
IF !DIRECTORY('temp')
|
|
MD temp
|
|
ENDIF
|
|
|
|
eserver=.F.
|
|
STORE '' TO cales,loc
|
|
IF !FILE('c:\contafin\temp\ceprogram.dbf')
|
|
COPY FILE &DIRGEN\_ALFA\TEMPO\CEPROGRAM.* TO c:\contafin\temp\CEPROGRAM.*
|
|
ENDIF
|
|
|
|
IF FILE('&DIRGEN\START2000\DATA\RETEA.DBF')
|
|
IF !FILE('c:\contafin\temp\RETEA.dbf')
|
|
COPY FILE &dirgen\START2000\DATA\RETEA.* TO C:\contafin\temp\RETEA.*
|
|
ENDIF
|
|
SELE 0
|
|
USE C:\contafin\temp\RETEA
|
|
eserver=SERVER
|
|
cales=ALLT(CALESERVER)
|
|
USE IN RETEA
|
|
ENDIF
|
|
|
|
|
|
UTILIZATOR=''
|
|
IF FILE('c:\contafin\temp\CEPROGRAM.dbf')
|
|
|
|
SELE 0
|
|
USE C:\contafin\temp\CEPROGRAM ALIAS CEPROGRAM
|
|
GO TOP
|
|
SCAT MEMV
|
|
UTILIZATOR=m.util
|
|
USE IN CEPROGRAM
|
|
ENDIF
|
|
CD &dirgen
|
|
ELSE
|
|
gcTempPath = Init_Cale_Temp(dirgen)
|
|
IF !DIRECTORY(gcTempPath)
|
|
MD (gcTempPath)
|
|
ENDIF
|
|
|
|
CALES = Init_Cale_Server_Date(dirgen)
|
|
ESERVER = .T.
|
|
NUMESTATIE = Init_Nume_Statie(dirgen)
|
|
utilizator = Init_Nume_Utilizator(dirgen)
|
|
M.nivel = ROUND(VAL(Init_Nivel_Utilizator(dirgen)),0)
|
|
M.CONTAB = UPPER(ALLTRIM(Init_NumeAlternativ(dirgen)))
|
|
|
|
lcQuitData = ADDBS(ALLTRIM(DIRGEN))+"dateretea"
|
|
lcQuitName = "start_quitapp"
|
|
PRIVATE goQuitApp && I'm making it private so it will die with the application.
|
|
goQuitApp = quitapp(lcQuitData,lcQuitName)
|
|
gnIdIstoric = Start_Istoric(m.utilizator, gcAppName, NUMESTATIE, ADDBS(ALLTRIM(DIRGEN))+"DATERETEA\", "START_ISTORIC","start_ids")
|
|
|
|
ENDIF
|
|
**************************************************************************************
|
|
|
|
|
|
|
|
_SCREEN.AUTOCENTER=.T.
|
|
_SCREEN.WINDOWSTATE=2
|
|
|
|
|
|
|
|
|
|
|
|
lcOnShutdown="ShutDown()"
|
|
ON SHUTDOWN &lcOnShutdown
|
|
ON ERROR ErrorHandler(ERROR(),PROGRAM(),LINENO())
|
|
_SHELL="DO Cleanup IN progs\Imob2003"
|
|
|
|
*-- Instantiate application object.
|
|
RELEASE goApp
|
|
PUBLIC goApp
|
|
goApp=CREATEOBJECT("cApplication")
|
|
|
|
|
|
*-- Configure application object.
|
|
goApp.SetCaption("CONTAFIN IMOBILIZARI")
|
|
goApp.cStartupMenu=ADDBS(gcAppPath) + "meniuri\mfix2000"
|
|
goApp.cStartupForm=ADDBS(gcAppPath) + "ferestre\fundal"
|
|
|
|
|
|
*-- Show application.
|
|
goApp.SHOW
|
|
|
|
*-- Release application.
|
|
RELEASE goApp
|
|
|
|
*-- Restore default menu.
|
|
POP MENU _MSYSMENU
|
|
|
|
*-- Restore environment.
|
|
ON ERROR
|
|
ON SHUTDOWN
|
|
IF NOT lcLastSetClassLib==SET("classlib")
|
|
RELEASE CLASSLIB (lcMainClassLib)
|
|
ENDIF
|
|
IF EMPTY(lcLastSetPath)
|
|
SET PATH TO
|
|
ELSE
|
|
SET PATH TO &lcLastSetPath
|
|
ENDIF
|
|
IF lcLastSetTalk=="ON"
|
|
SET TALK ON
|
|
ELSE
|
|
SET TALK OFF
|
|
ENDIF
|
|
RETURN
|
|
|
|
|
|
|
|
FUNCTION ErrorHandler(nError,cMethod,nLine)
|
|
LOCAL lcErrorMsg,lcCodeLineMsg
|
|
|
|
WAIT CLEAR
|
|
lcErrorMsg=MESSAGE()+CHR(13)+CHR(13)
|
|
lcErrorMsg=lcErrorMsg+"Method: "+cMethod
|
|
lcCodeLineMsg=MESSAGE(1)
|
|
IF BETWEEN(nLine,1,10000) AND NOT lcCodeLineMsg="..."
|
|
lcErrorMsg=lcErrorMsg+CHR(13)+"Line: "+ALLTRIM(STR(nLine))
|
|
IF NOT EMPTY(lcCodeLineMsg)
|
|
lcErrorMsg=lcErrorMsg+CHR(13)+CHR(13)+lcCodeLineMsg
|
|
ENDIF
|
|
ENDIF
|
|
IF MESSAGEBOX(lcErrorMsg,17,_SCREEN.CAPTION)#1
|
|
ON ERROR
|
|
RETURN .F.
|
|
ENDIF
|
|
ENDFUNC
|
|
|
|
|
|
|
|
FUNCTION SHUTDOWN
|
|
|
|
=End_Istoric(gnIdIstoric, ADDBS(DIRGEN)+"DATERETEA\", "START_ISTORIC")
|
|
IF TYPE("goApp")=="O" AND NOT ISNULL(goApp)
|
|
RETURN goApp.OnShutDown()
|
|
ENDIF
|
|
Cleanup()
|
|
QUIT
|
|
ENDFUNC
|
|
|
|
|
|
FUNCTION Cleanup
|
|
|
|
IF CNTBAR("_msysmenu")=7
|
|
RETURN
|
|
ENDIF
|
|
ON ERROR
|
|
ON SHUTDOWN
|
|
SET CLASSLIB TO
|
|
SET PATH TO
|
|
CLEAR ALL
|
|
CLOSE ALL
|
|
POP MENU _MSYSMENU
|
|
RETURN
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*-----------------------------------------------------
|
|
|
|
FUNCTION verif_ser_perm
|
|
CLEAR
|
|
|
|
RETURN PORNIRE()
|
|
********
|
|
*?pornire()
|
|
|
|
FUNCTION PORNIRE
|
|
SET EXACT ON
|
|
PRIVATE calewin,calesys,checksum1,checksum2,serinreg,serdisk,file1,file2,valret,serdisktemp,ser1,ser2,key1,KEY2
|
|
STORE '' TO calewin,serinreg,serdisk,calesys,serdisktemp,catehd,ser1,ser2,key1,KEY2
|
|
STORE 0 TO checksum1,checksum2
|
|
STORE .T. TO valret
|
|
DECLARE INTEGER SHGetFolderPath IN SHFOLDER.DLL ;
|
|
INTEGER hwndOwner, ;
|
|
INTEGER nFolder, ;
|
|
INTEGER hToken, ;
|
|
INTEGER dwFlags, ;
|
|
STRING @ pszPath
|
|
DECLARE INTEGER GetActiveWindow IN WIN32API
|
|
#DEFINE CSIDL_WINDOWS 36
|
|
#DEFINE CSIDL_SYSTEM 37
|
|
#DEFINE CSIDL_PROGRAMS 38
|
|
lcPath = REPL(CHR(0),261)
|
|
=SHGetFolderPath(GetActiveWindow(),CSIDL_WINDOWS,0,0,@lcPath)
|
|
calewin=LEFT(lcPath,AT(CHR(0),lcPath)-1)
|
|
lcPath = REPL(CHR(0),261)
|
|
=SHGetFolderPath(GetActiveWindow(),CSIDL_SYSTEM,0,0,@lcPath)
|
|
calesys=LEFT(lcPath,AT(CHR(0),lcPath)-1)
|
|
&&se verifica existenta celor trei fisiere
|
|
IF (NOT FILE(calesys+'\diskserial.dll')) OR (NOT FILE(calesys+'\getmacip.dll')) OR (NOT FILE(calewin+'\comdir.snr'))
|
|
valret=.F.
|
|
ENDIF
|
|
IF valret
|
|
file1=FILETOSTR(calesys+'\diskserial.dll')
|
|
checksum1=SYS(2007,file1)
|
|
file2=FILETOSTR(calesys+'\getmacip.dll')
|
|
checksum2=SYS(2007,file2)
|
|
&&severifica daca dll-urile nu au fost modificate
|
|
IF (VAL(checksum1) != 58755) OR (VAL(checksum2) != 30476)
|
|
valret=.F.
|
|
ENDIF
|
|
ENDIF
|
|
&&se citesc seriile tutturor celor patru hard disk-uri posibile(pe IDE primary master,primary slave...)
|
|
&&se tine minte primul cu seria nenula-daca nu s-a putut citi seria de la nici unul se pune o serie default
|
|
&&seria default este "NUAREHAR"
|
|
IF valret
|
|
DECLARE INTEGER GetSerialNumber IN diskSerial.DLL INTEGER ,STRING
|
|
catehd=0
|
|
FOR i=0 TO 3
|
|
serdisktemp=SPACE(40)
|
|
GetSerialNumber(i,@serdisktemp)
|
|
IF (LEN(ALLTRIM(serdisktemp))!=0) AND (catehd=0)
|
|
serdisktemp=sircaracter(serdisktemp)
|
|
serdisk=serdisktemp
|
|
catehd=catehd+1
|
|
ENDIF
|
|
ENDFOR
|
|
IF (LEN(ALLTRIM(serdisk))=0)
|
|
serdisk='NUAREHAR'
|
|
ELSE
|
|
IF ((LEN(ALLTRIM(serdisk))>0) AND (LEN(ALLTRIM(serdisk))<8))
|
|
serdisk=serdisk+REPLICATE('1',8-LEN(ALLTRIM(serdisk)))
|
|
ENDIF
|
|
ENDIF
|
|
serdisk=SUBSTR(ALLTRIM(serdisk),LEN(ALLTRIM(serdisk))-7,8)
|
|
ENDIF
|
|
&&se citeste din comdir.snr seria de inregistrare si se verifica egalitatea cu seria obtinuta anterior
|
|
IF valret
|
|
gnFileHandle = FOPEN(calewin+'\comdir.snr')
|
|
nSize = FSEEK(gnFileHandle, 0, 2) && Move pointer to EOF
|
|
IF nSize!=9
|
|
valret=.F.
|
|
ELSE
|
|
= FSEEK(gnFileHandle, 0, 0) && Move pointer to BOF
|
|
cString = FREAD(gnFileHandle,9)
|
|
ser1=SUBSTR(cString,1,4)
|
|
ser2=SUBSTR(cString,5,4)
|
|
key1=SUBSTR(cString,9,1)
|
|
KEY2=DECTOBIN(ALLTRIM(HEXDEC(key1)))
|
|
serinreg=decodare1(ALLTRIM(UPPER(ser1)),KEY2)+decodare1(ALLTRIM(UPPER(ser2)),KEY2)
|
|
IF serdisk!=serinreg
|
|
valret=.F.
|
|
ENDIF
|
|
ENDIF
|
|
= FCLOSE(gnFileHandle)
|
|
ENDIF
|
|
seriedisk1=serdisk
|
|
serieinreg1=serinreg
|
|
ON ERROR valret=.F.
|
|
RETURN valret
|
|
*************
|
|
FUNCTION decodare1
|
|
PARAMETERS lstring,CHEIE
|
|
LOCAL lens,poz1,poz2,POZ3,lret,LRET2,lcstring,val1,lret1
|
|
lret=''
|
|
lret1=''
|
|
LRET2=''
|
|
lcstring=ALLTRIM(UPPER(lstring))
|
|
lens=LEN(lcstring)
|
|
FOR i=1 TO 4
|
|
poz1=SUBSTR(lcstring,i,1)
|
|
val1=ASC(poz1)
|
|
POZ3=SUBSTR(CHEIE,i,1)
|
|
DO CASE
|
|
CASE val1>=48 AND val1<=57
|
|
IF ((val1-47)+INT(VAL(POZ3)))<=10
|
|
poz2=CHR(val1+INT(VAL(POZ3)))
|
|
ELSE
|
|
poz2=CHR(val1+INT(VAL(POZ3))-10)
|
|
ENDIF
|
|
CASE val1>=65 AND val1<=90
|
|
IF ((val1-64)+2*INT(VAL(POZ3)))<=26
|
|
poz2=CHR(val1+2*INT(VAL(POZ3)))
|
|
ELSE
|
|
poz2=CHR(val1+2*INT(VAL(POZ3))-26)
|
|
ENDIF
|
|
ENDCASE
|
|
LRET2=LRET2+poz2
|
|
ENDFOR
|
|
FOR i=1 TO lens
|
|
poz1=SUBSTR(LRET2,i,1)
|
|
val1=ASC(poz1)
|
|
DO CASE
|
|
CASE val1>=48 AND val1<=57
|
|
IF ((val1-47)+i)<=10
|
|
poz2=CHR(val1+i)
|
|
ELSE
|
|
poz2=CHR(val1+i-10)
|
|
ENDIF
|
|
CASE val1>=65 AND val1<=90
|
|
IF ((val1-64)+2*i)<=26
|
|
poz2=CHR(val1+2*i)
|
|
ELSE
|
|
poz2=CHR(val1+2*i-26)
|
|
ENDIF
|
|
ENDCASE
|
|
lret=lret+poz2
|
|
ENDFOR
|
|
lens=LEN(lret)
|
|
FOR i=1 TO lens
|
|
poz1=SUBSTR(lret,i,1)
|
|
val1=ASC(poz1)
|
|
DO CASE
|
|
CASE val1>=48 AND val1<=57
|
|
poz2=CHR(val1+17)&& din 0-9 in A-J
|
|
CASE val1>=65 AND val1<=74
|
|
poz2=CHR(val1-17)&& din A-J in 0-9
|
|
CASE val1>=75 AND val1<=82
|
|
poz2=CHR(val1+8)&&din K-R in S-Z
|
|
CASE val1>=83 AND val1<=90
|
|
poz2=CHR(val1-8)&&din S-Z in K-R
|
|
ENDCASE
|
|
lret1=lret1+poz2
|
|
ENDFOR
|
|
RETURN lret1
|
|
***********
|
|
&&transformarea in decimal a unui caracter hexa
|
|
FUNCTION HEXDEC
|
|
LPARAMETERS LC
|
|
LOCAL LV
|
|
DO CASE
|
|
CASE LC=='0'
|
|
LV='0'
|
|
CASE LC=='1'
|
|
LV='1'
|
|
CASE LC=='2'
|
|
LV='2'
|
|
CASE LC=='3'
|
|
LV='3'
|
|
CASE LC=='4'
|
|
LV='4'
|
|
CASE LC=='5'
|
|
LV='5'
|
|
CASE LC=='6'
|
|
LV='6'
|
|
CASE LC=='7'
|
|
LV='7'
|
|
CASE LC=='8'
|
|
LV='8'
|
|
CASE LC=='9'
|
|
LV='9'
|
|
CASE LC=='A'
|
|
LV='10'
|
|
CASE LC=='B'
|
|
LV='11'
|
|
CASE LC=='C'
|
|
LV='12'
|
|
CASE LC=='D'
|
|
LV='13'
|
|
CASE LC=='E'
|
|
LV='14'
|
|
CASE LC=='F'
|
|
LV='15'
|
|
ENDCASE
|
|
RETURN LV
|
|
****************
|
|
&&codarea binara din hexa pe patru biti
|
|
FUNCTION DECTOBIN
|
|
PARAMETERS sc
|
|
LOCAL lretf
|
|
DO CASE
|
|
CASE sc=='0'
|
|
lretf='0000'
|
|
CASE sc=='1'
|
|
lretf='0001'
|
|
CASE sc=='2'
|
|
lretf='0010'
|
|
CASE sc=='3'
|
|
lretf='0011'
|
|
CASE sc=='4'
|
|
lretf='0100'
|
|
CASE sc=='5'
|
|
lretf='0101'
|
|
CASE sc=='6'
|
|
lretf='0110'
|
|
CASE sc=='7'
|
|
lretf='0111'
|
|
CASE sc=='8'
|
|
lretf='1000'
|
|
CASE sc=='9'
|
|
lretf='1001'
|
|
CASE sc=='10'
|
|
lretf='1010'
|
|
CASE sc=='11'
|
|
lretf='1011'
|
|
CASE sc=='12'
|
|
lretf='1100'
|
|
CASE sc=='13'
|
|
lretf='1101'
|
|
CASE sc=='14'
|
|
lretf='1110'
|
|
CASE sc=='15'
|
|
lretf='1111'
|
|
ENDCASE
|
|
RETURN lretf
|
|
***********
|
|
FUNCTION ECARACTER
|
|
PARAMETERS strg1
|
|
PRIVATE pz,ch,lcstring,vret,lg1
|
|
STORE 0 TO pz,lg1
|
|
STORE '' TO ch,lcstring
|
|
STORE .T. TO vret
|
|
lcstring=UPPER(strg1)
|
|
lg1=LEN(lcstring)
|
|
FOR ind1=1 TO lg1
|
|
ch=SUBSTR(lcstring,ind1,1)
|
|
IF (NOT BETWEEN(ASC(ch),48,57)) AND (NOT BETWEEN(ASC(ch),65,90))
|
|
vret=.F.
|
|
EXIT
|
|
ENDIF
|
|
ENDFOR
|
|
RETURN vret
|
|
************
|
|
FUNCTION sircaracter
|
|
PARAMETERS strg1
|
|
PRIVATE pz,ch,lcstring,vret,lg1,lciesire
|
|
STORE 0 TO pz,lg1
|
|
STORE '' TO ch,lcstring,lciesire
|
|
STORE .T. TO vret
|
|
strg1=STRTRAN(strg1,ALLTRIM(CHR(39)),'')&&caracterul '
|
|
strg1=STRTRAN(strg1,ALLTRIM(CHR(39)),'')&&caracterul "
|
|
lcstring=UPPER(ALLTRIM(strg1))
|
|
lg1=LEN(lcstring)
|
|
FOR ind1=1 TO lg1
|
|
ch=SUBSTR(lcstring,ind1,1)
|
|
IF BETWEEN(ASC(ch),48,57) OR BETWEEN(ASC(ch),65,90)
|
|
lciesire=lciesire+ch
|
|
ENDIF
|
|
ENDFOR
|
|
RETURN lciesire
|
|
|
|
|
|
|
|
***-------------------------------------
|
|
PROCEDURE _DEBUG
|
|
|
|
PRIVATE lcret,lcfisier,lcPath,lccalewin
|
|
DECLARE INTEGER SHGetFolderPath IN SHFOLDER.DLL ;
|
|
INTEGER hwndOwner, ;
|
|
INTEGER nFolder, ;
|
|
INTEGER hToken, ;
|
|
INTEGER dwFlags, ;
|
|
STRING @ pszPath
|
|
DECLARE INTEGER GetActiveWindow IN WIN32API
|
|
#DEFINE CSIDL_WINDOWS 36
|
|
|
|
|
|
lcPath = REPL(CHR(0),261)
|
|
=SHGetFolderPath(GetActiveWindow(),CSIDL_WINDOWS,0,0,@lcPath)
|
|
lccalewin=LEFT(lcPath,AT(CHR(0),lcPath)-1)
|
|
|
|
lcret=.F.
|
|
lcfisier=ADDBS(lccalewin)+[DEBUG.TXT]
|
|
|
|
IF FILE(lcfisier)
|
|
LCVAL=FILETOSTR(lcfisier)
|
|
|
|
LNVAL1=MOD(VAL(RIGHT(LCVAL,1)),2) && restul 1 sau 0; daca e impar e 1
|
|
lnval2=VAL(LEFT(LCVAL,LEN(LCVAL)-1))
|
|
IF LNVAL1=1 OR YEAR(DATE())-MONTH(DATE())=lnval2
|
|
lcret=.T.
|
|
ENDIF
|
|
ENDIF
|
|
RETURN lcret
|
|
|
|
ENDPROC
|
|
|
|
|
|
FUNCTION Start_Nou
|
|
|
|
RETURN Exista_Branch(,,dirgen)
|
|
|
|
ENDFUNC && start_nou
|
|
|
|
PROCEDURE Debug_Start
|
|
|
|
lcFile = gcAppPath + "debug.txt"
|
|
|
|
IF FILE(lcFile) OR !Start_Nou()
|
|
RETURN .T.
|
|
ENDIF
|
|
RETURN .F.
|
|
|
|
ENDPROC && Debug_Start
|
|
************************************************************************
|
|
PROCEDURE verificari
|
|
PARAMETERS tcFisierVerif
|
|
|
|
lcverificari = ADDBS(gcAppPath)+gcAppName+".txt"
|
|
|
|
|
|
IF FILE(lcverificari)
|
|
RETURN .T.
|
|
ENDIF
|
|
RETURN .F.
|
|
|
|
ENDPROC && verificari
|