Hi

I got a subroutine that getting two, two dimension arrays and compare them and write a list of elements in INI file. It looks for specific element in each and if it is the same it write the data. Since I use 4 for command nested it takes long time to complete on array with more them 10 elements. It can take 5,10 even 15 minutes. Can someone look at the code and give his feedback?

Thanks

`#DEFINESUBROUTINE WrtieInIJobList()`

if tooldebugWBERROR == 0 then IntControl(73,3,0,"OnNextError",0)

WriteLog(LogFile,"Writing list of servers to JOB file",cPC,tool,EVNTerror,TMPdir,1)

IniDeletePvt("JobList", @WHOLESECTION,INIFile)

delay(2)

CheckBusyFile(INIFile)

aJobListfromINIstr = fileopen(INIFile,"APPEND",@FALSE,TimeRetryFileOpen)

filewrite(aJobListfromINIstr,"[JobList]")

ff=""

nRmax1 = ArrInfo(JobListFromGui,1)

nCmax1 = ArrInfo(JobListFromGui,2)

nRmax2 = ArrInfo(JobListfromINIArr,1) ; REPLACE with array from advanced menu

nCmax2 = ArrInfo(JobListfromINIArr,2)

for i = 0 to nRmax1-1 ;GUI

ggg=0

GUIDGUI = JobListFromGui[i,10]

RecoveryPlan = JobListFromGui[i,0]

for j = 0 to nCmax1-1

for a = 0 to nRmax2-1 ;INI

for b = 0 to nCmax2-1

if DRprodMaster == 4 | DRprodMaster == 5 | DRprodMaster == 6 then

if strindex(JobListfromINIArr[a,0],"_*_",1,@FWDSCAN) == 0 then

FirstParamArry = strcat(JobListfromINIArr[a,0],"_*_",RecoveryPlan)

else

FirstParamArry = JobListfromINIArr[a,0]

end if

else

FirstParamArry = JobListfromINIArr[a,0]

end if

strForiniNew = strcat(FirstParamArry,";",JobListfromINIArr[a,1],";",JobListfromINIArr[a,2],";",JobListfromINIArr[a,3],";",JobListfromINIArr[a,4],";",JobListfromINIArr[a,5],";",JobListfromINIArr[a,6],";",JobListfromINIArr[a,7],";",JobListfromINIArr[a,8],";",JobListfromINIArr[a,9],";",JobListfromINIArr[a,10])

strForiniNew = strcat(strForiniNew,";",JobListfromINIArr[a,11],";",JobListfromINIArr[a,12],";",JobListfromINIArr[a,13],";",JobListfromINIArr[a,14],";",JobListfromINIArr[a,15],";",JobListfromINIArr[a,16],";",JobListfromINIArr[a,17],";",JobListfromINIArr[a,18],";",JobListfromINIArr[a,19],";",JobListfromINIArr[a,20],";",JobListfromINIArr[a,21],";",JobListfromINIArr[a,22])

GUIDINI = JobListfromINIArr[a,0]

if DRprodMaster == 4 | DRprodMaster == 5 | DRprodMaster == 6 then

if strindex(JobListfromINIArr[a,0],"_*_",1,@FWDSCAN) <> 0 then GUIDINI = strsub(JobListfromINIArr[a,0],1,strscan(JobListfromINIArr[a,0],"_*_",1,@FWDSCAN)-1)

end if

next

if GUIDINI == GUIDGUI & ggg == 0 then

filewrite(aJobListfromINIstr,strForiniNew)

ggg=1

end if

next

next

if ggg == 0 then

if GUIDGUI <> 0 then

if DRprodMaster == 4 | DRprodMaster == 5 | DRprodMaster == 6 then

GUIDGUI = strcat(GUIDGUI,"_*_",RecoveryPlan,";;;;;;;;;;;;;;;;;;;;;")

else

GUIDGUI = strcat(GUIDGUI,";;;;;;;;;;;;;;;;;;;;;")

end if

filewrite(aJobListfromINIstr,GUIDGUI)

end if

end if

next

fileclose(aJobListfromINIstr)

WriteLog(LogFile,"Finished writing list of servers to JOB file",cPC,tool,EVNTerror,TMPdir,1)

return

#ENDSUBROUTINE