From 5ca73f5b13550d2707c79bd137a782ea17c2814c Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Mon, 6 Apr 2015 00:19:45 +0200 Subject: [PATCH] =?UTF-8?q?-=20Deshacer=20el=20cambio=20de=20algoritmo=20d?= =?UTF-8?q?el=20changeset=20anterior=20-=20Renombrado=20de=20propiedad=20d?= =?UTF-8?q?e=20l=5FDebug=20a=20n=5FDebug,=20admitiendo=20valores=200,1,2?= =?UTF-8?q?=20(por=20ahora)=20para=20permitir=20distintos=20niveles=20de?= =?UTF-8?q?=20info=20de=20debug=20-=20Algunas=20optimizaciones,=20traducci?= =?UTF-8?q?ones,=20ajustes=20de=20c=C3=B3digo=20y=20de=20logs=20y=20limpie?= =?UTF-8?q?za=20de=20c=C3=B3digo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- filename_caps.exe | Bin 30077 -> 30137 bytes foxbin2prg.cfg.txt | 2 +- foxbin2prg.exe | Bin 563749 -> 564793 bytes foxbin2prg.pj2 | 1 + foxbin2prg.pjt | Bin 749240 -> 756430 bytes foxbin2prg.pjx | Bin 10033 -> 10033 bytes foxbin2prg.prg | 698 +++++++++++++++++++++++++-------------------- 7 files changed, 389 insertions(+), 312 deletions(-) diff --git a/filename_caps.exe b/filename_caps.exe index 056049b1f26cc7f5a6d4cfe8b2f3bf547f12a1b5..4ecf2fa9fa8facdeacbe549aa0ba47d3152e8808 100644 GIT binary patch delta 763 zcmZvaUr19?9LImZ>%H6Vc5O@NG#9mN{!fib78coVi<$P2l~N={g0}f*ZlXQZLoh-r zda@rxJs225Q9Y=m$UrD0h$2KHjDqOTTPoH|bLcMpZbp)H4!^_ia6aGPIp1?m>Kl&F z;z(Jur7}5%@bJ{G`1a3*AvPvWoJyy%kB^b9CiP6)7s5U{6`(j@A~X(8wm{fj75aWEiY8byQU=%iag z6-(%8umVpQgu@^_rj>E27-~ok`7lNGp^&&=)awk!y2{YYP%Zi>qy0I4pm*(FoFQvR zzW7GckE|i%fsQuByY!&byKY$4(;??TQtC7%rQ0;y>Bj41?kdG+RLSEUo$M-gWtkaj zOk{v#IbnyCZh=Yz9_%U?u9&Hz+fVlJW;Je3N>#GH5tL=W9}?-Xh~iH(oMGopPIf*| zhr-oDk%bz@q?ka8yd*7`l(%O>g3GUd}o1d7ks|zUO5E(cGT1=qu%uJs9BQX2rdp}a+s6Jdy6ko0PI}~(a38(# z*5awmrLa*6PO|%2FhOpgPpA;IrYva1*N$aW=YNecTKBu~DOHZ_XHP_WrrP4+kpaXo zEnRY1f(C5|*g8|9oSPCSbR-7~b9)N-_yD;A)p(EG{Cq_>0@X!{T;6&nnGboJNeiSk zJ=A9*CxbPtPe)gRt<#RZ3WTD_m4cuz`Llje@Gz_Ry+Q zK+Qojn&?E($(Hq;;~I8m_1o1T8fi+cz@wR5+^~YfK}%}65HM=zw@SsC(qd>Y$)Q?% z!o=0_2NZydzire6nBxlVDe+Bnk?)iQP{-$A z=bkq3J>q#S9UebWG~jo8!V&+lXCN}>9#$tV`h)eMu$TJB8w{CkEa!+0dN^JvO!EEw E2kgM.Log by default / No Activar .Log por defecto * ExtraBackupLevels: 1 && By default 1 BAK is created. With this you can make more .N.BAK, or none / Por defecto 1 BAK es creado. Con esto puede crear más .N.BAK, o ninguno * ClearUniqueID: 1 && 0=Keep UniqueID, 1=Clear Unique ID. Useful for Diff and Merge / 0=Mantener UniqueID, 1=Borrar Unique ID. Util para Diff y Merge diff --git a/foxbin2prg.exe b/foxbin2prg.exe index ade804f967fde64bacf771f9136ea3cf3e78c43e..cd9127a197daeb16c3e5611574de48db33fd0b5b 100644 GIT binary patch delta 46948 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�{J`H7&I_?MoB(u#iY3(=aiLZpBm&oR;R< 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 IbRVbuAD-s_lmGw# diff --git a/foxbin2prg.pj2 b/foxbin2prg.pj2 index 7faae88..3f74bda 100644 --- a/foxbin2prg.pj2 +++ b/foxbin2prg.pj2 @@ -125,6 +125,7 @@ WITH loProject.FILES * * + .ITEM(lcCurdir + 'foxbin2prg_keywords.dbf').Exclude = .T. .ITEM(lcCurdir + 'readme.txt').Exclude = .T. .ITEM(lcCurdir + 'tests\foxunit_path.txt').Exclude = .T. .ITEM(lcCurdir + 'tests\ft__foxbin2prg__c_conversor_bin_a_prg.prg').Exclude = .T. diff --git a/foxbin2prg.pjt b/foxbin2prg.pjt index 670ef25a99a6218e20a957af4d0f63a5906d8084..b8b7a458ff185a12d6e61330788e9b58af3f57be 100644 GIT binary patch delta 48801 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%0AV1%Ya$Xx=kSH` zLx_5#)aM=UNaNFM7tbL7yB4d6*z;obH8V2OyGm1y7s6F<(ZlJx0~WRoeX|8l&(Y$H z3lVCS#lFYXoQRrH-ke#w8Om2jFVpKb5rCNEP`kYvqrM}H-o|o=x=pr!)^T0Kb2RZI zCQRZ*V?tMTJJqdiDe91LvDg@trT#+f5hgq?XgtUH12}w^F=3Q?JHpf3TD>4(wAxkd zYYZ8!{v|pROroO^VP?-9fbJSVv`L%Fv1$YM;H$A}v?^X}{9UXL7ajE--mT}&i+L=( z7{pEj7&Q~r9NLTLCaPaaznH%4qm$I%h`15%ny$`{V{1Tk9X$`{POe+NlHtf?)n??* zP?u4nyfahXCyE8e`dR9yl3g%o1jAsSLm%gutf|?Sb{QY_&GAAo|o8 z*QC~q_H8C2WMPv28@w5< z*`TgqSFk-bj#zW&hjQdw3he^0}kGVsg$OnQ%_Plhsz-R-n zJf?cVjyu#lJRtna$iGuvBHEw$H#$Ga>HGnua|R4utCphFY+kGWATBUgtW#H8#9mN; zNDYSg4Qd%To){$XtTdCj6DXAt$hb=lHa^&(_VUE)LkugZ_Yp~yVf%e*e~uMnXPz&F zo;O{~Zs5CF{RZiNVzc@m86Q|W<$xYltB38EIuws*-?x>MFrJH1{XgnT4-=ASv^=h^ki<9;pHl1i zkdae84>`*2@G;NZ_?}t=UeBnW!o};% zafeFU^+v%iHCM!!9S&Kvf0L&r|5Kj6G%h@+jKa+P&y?^_cdLg)d;#UjH`H7n8h6PQ-)IYfOWA1hR#W=lKqZVo)!QfyI?d+&dn zl4Opp=Ee6^%~RyeZ8|a_JXZ@fR==;-{9l=qKa80lp;i!&z*iru12{2J&#}muX^l0w zDC3a_+_=yo>l1Y%PRG5UsK1EPDswtE?^E9w(QT{P?-aPpr^97m#_^FZ;uACDfI8X( z-3A)398hta-xsn!cWS`r93eKX2q{0$rmeDw(+rfZwGu`JS9H;4ySx+6J9`o47Qh$_yw^wT1EZ3(JszU1 zjcP|AY_V>xu|r41HKjXAxvJ)W5NEt7o3soFmx zK6Znie=yAMqor}PhW?P}aM*G_EziQceY9^qOv`Z*N)MB0=m8oo5cB9P2gB}xS{d&q;`Kb$8FZ>|hBpRj4i8v| z%dl${E_-|jYd;cuFVlHv+dv)h9p=chP9{OXa4p9Jp1aK6-7sAHOvGc96Egl)+$MAS z-QdCR81A73^k+IY3HE1F$*D2<6D_D`L9FCWtcJK8?RF11O_~DIG{Zn&Va)$W!g>&- zZw(ZrEs|rO*+;a=p4UU~nKE?K7_B!NQC#;IN;wubRs%OgZj!_(csO4x;O+)4YdaZZ zSn-sa0`Ep>K`>^Cs>A34?NKL|9u_{g(+aiEC3}py+D1n4Oso*@L{=7Svr(2mDAv}> zVM!MAG&qKLhO8L+{fklH)kUmG-R$SPXHexG@5O%_FK>zi+ zD(w}ELpJviuDU*J46e>MUaYpXm3i@)S2+CE&WEfO8?n)F2R^sJh8 zyPs&g{yJ^B2YMbd@QmEOqT}O#Lxur_j^lBNY!S?A(Y!ne{TzIgj-J1{uSMIZI-<>s z#u&;M+FTl}>k8Uo@eNS!(FO*+B$yAx@mMFaKm&}sN6R#y z{&eL&FTl)uv?ws{(UK9xclT&r@Z_qxNgJ*ID7AN|2kR9mT&_99qj3EuEes#{-MC4+ z(|j0{$5#;fB%}AeT3-=&md$2eCF`N_K5b9{zM$wYynvC{P`m~G)_M6L?7mM+b=XV| za@nEBj=Kio=2Ctz*f(oSu!oyBYtM;)8HHQ4#fsx`g%b&P!;;)4FWJSh+Z4985WhDr zKBW12+7B3pTkbUO*Z)!N3F0_o3K^cr^&EdbVMbGW8o^I${XGSrEdoB^B?vc|qP5~F z?H`L{RL3bV&++3CCf){P=QG-~p4^lzCflxiRy(OWhL~)N0cAE?Q&zjWM&5_Bt=}CQ z-frTrQmX>r6YK-C$|Yj7zM_5WsiA{rL-KCzTFvp{zcsW+>ySI+^>?-RJ>d*7sl4lb zZ5eUA-$7;1k+3&RYRJayPmrxV2yu{!@U6YteZ=vji4ZlH=b-O5<{Hx?!(E?g?H&*o zE1VBr`&|26cEp&Bg(n+52e?B_#>z6@K8SW38S~87+Gy!>cJak#%sQmqsfahgA4j!^ zxd)6B<$3>Vsp+S_ZM<_#!y{?=#zQ}9QkeLQ@#sbEZpr?xX-IIX>sg`f=H~4ysJ*1U zC+5GZAIkX|37 zx7`k=2xH4^HC2t3w#r&tc^N)1V5_fdZm{9a!iHb*K6O)FRYRo>Pqxjen%mYsm%{nL zd|fZ|T223^FMJ(b2LI9Zy0E75(!ARG<|cYAaoDgKZSDPO4L_J`)%)SD;ufpk8}GsF zv+4uz>X_oC$DiO!3ouhzYRD4+obByZv;V*ag1z)8~jukmHXXN`@+bec*tu6mO7_TU9=< zs4_NWhzrL0X)rukkHu3LGijper)yLo^m`$PjcyT!V z7OKw{M?ijdAPFWo)b-g>T@`i`C!5 zi+R1`^q!Kn7nH{7M~2`BcuXlw60)f1;hS7_rmQtLl$BTgRg2_oD6>_dIF#eVI8}9R z?UN{w4`kc)@m?F~-%JEo!B(5TMh)zVAi-)2_9be0aWr_M*D32q$Ak`C~riqpyV>(M2+)bb9VB}=7=_ib;Y^bbY@D-JfR6bKFbblDp9Xl`p7IfDm#er~pcSJG> zp6IT}2AG1CQ*27&5IEQ!$DI!Ubl0co!)Uh(@R@1YnkI!oXb*j$GK-=d4!e5jr6@uH zJ@vex3|cK+C@3t+8<#gVBP;Loe5mQE59|;s%7|_4nG`e&Ug@c4pio`xsplv;6to;( z>ZK<^Z7-CMTzIaRel3buuiknBidRW*eG!V+C%tjRqv1qv?A#deNk#q`3*%Gu{wQ9z zr0VNXydu*OZ2?TDKZS6A8WXSA(r_}1;I}lCt73SgkNyja*JFM4UMOB)_0_wecwOqN zhoN|d_0!)+@jB8^?3Fcx-AS^2I&bl z`oTSv&@rZjB6rxb%bF^y+S==BW6V2Yw>CEhT4bz9>G8qLxXFUqDbutq zLz~7;8-30Rt=cZ5ak&1Qh|*P>p$|dnx-SEjMsL`ifpVJ)-(~3GC_d+Dst-hGGVvLj zsW-*ob!yYJ=|WD!Y;<83)*-9nQyf%qUd+^c#+Zf;pGC1%;@c{=?2M9}JX2lCb850UiGA0z~9v)RRA%7&w+Im{bY}HDat->!WWT7cZ z2Q^zCt1!{a0q<;mAgs&QL(pn%&t_K3nuE-r0r@$4Nr!;Z2iNeMT@-B=7&&?Y3YeO! zk3_3gkc*y5F1|RdFGI1)ABi(D3YLu27suw&DL@TfS%w3z>X>I+=^Ieka`JG#3gDJJeMmI@Ob)(IHNLsBx|%c3U>m-UK#`1xBYCJ) zi@m;kno!P%Y&@ndm#lVHGD{UsE@Q)BgT>TO!b>HqD`q=d;I zK6+xxANM3}_|}lisx4`2A5WX}fuG0eW4u<PqQLqBZ>BgM8Eg{_saW z+O`0QDL_vx5b_H2s2C=FzT9{%u{G71;ulTff?)+#31Z?$g#5Z%RJ8fDAQW~M=;KiM z+6qwlghNyzicSO!EYxRaG9mL5vZ)_gjxtzbn}bfSX(^bm8Q@;X-Ojf5g%mF{bMqj7 zydD9k3-w7Thk4`mH&G6)MS9d_7LNHxHW*Zd{LkFZBoxCNi}c6Q!u2RdZIb|#ijn+@ zu&S6@xW|h1i70xPiV+|g;!E^?y_kjbMTZi7_}aQAq&2=_$iC`nI-7)*x!bu2g~`9^ zZZ1$YebF4 zWT+1<^cOk``7_FG_-$PzO<(YztWWG@1oLX=RicYZ@yuzct1&sTKU7cFyN5Gb)`hA@ z^ha{@#-gCIDIEyUOhzYb5PX6^1Dr-N-z;Tf>?@4R$ji6oOwQphXIuM?v;$0to85%C z{}g?el1@9_4~|UHQ(^BE-5Xucuczp_D8%to^)j@ZH%?`)=O6ScAqsKqbbTob@uulWyixGVbbWrhDa81kOL=8uBO7%GV~wW$2oTId z8~)C1z*>Xb+DFn>#z5H&?A2I!Y=+)dr=LDMxI`$bgp-kaG@PA*>Lwqi%w%TuzM1+! zr=%C-@~*s+F))>Md^U$l`X4hZye2+X=k%tZ zx)+vW-LPXX@**!`Ze>$Gy3nPW8Dr{RfhQYuhqV1w*x#ThOS4~te;V`z>EpM+)~H8@ zZg`giS#dUN%W5jABp-Mm3LEv9zMDRD_6nbuEgg#%?aq&Qjv`bxG!!&99d@M~n<_Bf z{}b5Os7JM|-OKCw2#Zj_Dsvhd>Kew@&F#0JX9so8F3qiOZk%`90cUFr2CG{><2k;( zI_B`2-9L9?&skhv$<|?M#Z3){nXLMvxlIm@oB<}6-!-mkf(fw+KFY=&6R1Ts9&n))=oYITblH+>AxM~f6#dzE6dW&VUNPWp zKfoi+dKc;2A7F2@Zi{L9nb&mVr2JoaR-ypizSR?@NxwqsLS&lB$6?w+-6m~00m~NZ z@sig`*t$@UlZsEmo`t%@y83qx7b3usBYKF`{WQpnu>PvQAZd{vAMy8Jyxd3VG-2sy zplp#I9PalwFZQOgLg|Twt*Ng+3wJEi`>V!3tQ4L>_Lugx!EwYW-PI00i}hqY)IsOY z0zF#v7%5SLX^Zv5h&%DC?UV*S>=oZKY_qz#s-i5)3Y!)q0qU)=XR#hFedh&77Gp0% zd_Y{HNA_Ck$HBaXqPj({ZZ!Klkx?O-&{)~P7-Mq)j9#MmmUaigbqGB9OboB)FBD@m zqPV`YysC_{T76?+A}`TgT%4WiMA=C?7NqfPw+V^q1HUiPdr6IbAZ{rRJF_4C#m{^F zty?4R9zg389Aj?iHvcy+ux%Btt$ zv(Z0{fYVF$xQvV}UWU(gv$7)gzV0t(t`maBO61YJrk7AzQ{S|tsIt7Sp`zP37=JBl ztKxA`bFCg0ea$#t$zP~rK`};$v~iU+b;*UW^;$hb(u&|!3ejgG{P$Yqq&FtRxodF> zpPB+;*CFRwropi5^zf?Rra3V+HZ@e$mu4e()YA8|8l$K4l2Bn@RYgT*ZANVcHq(Rz zsH`Y0%oumlEcX_27NR60eQ55zGdYxxP*sal*;LBiCv_IQah)C!e6pMuYl2hbotO(J zu0zTXo(F!*@b|hJNLz-~tzHZhm!V$0aT$Dfy&mS3lb@ZPlbe^H^XF}_Wf_j7=ytdt z3*ec*QO~#D4u_Ya)-Ao0{zgOW^*V-Q*Fp02IM&s7L&5dPm)!ss(R9Nm3K=U6+)PnN zYFRni6N+-wtu$q`&VGn@F&eMkT|_SSc^HygutS3%gRw1of_33jygULw9db#JX!&y& zPrGr|4=>OxSqQ{1TX{p(?5YMc9Dxcceh)8ms~-Fz%~Cv8_x*yGxm90xh-Rr~^^nf! z*B)VoTwb615ptKK0G{{_<}Jqo7oUbFmt(MI6h1G$>o58@-dH^g`<5e}m4D!`Fb-?mdfCMkEK;nHC4DBm$vM#As zO*#}t6LG1xL~=B4n18d;EZrmKWeJdfgKkg#vL~v*mYI=eM>d9?+#mDG7?Zsgg?0z4ULO&;@Tle1bU&HBYco^55C zbX+CAE?!Y_Ezk2tj5M8=(a=z~WJwFpwFyuVWVJ~dYhn0GMbXdg7U@a zdNo#6Fbj}f)v)SqSg=YDZb^BES8?Nj6)ejKS=i-1zIuq(@^#NT`xnjfbI&^LWx*_e zG&ZP+(T&BBaZ_nlQEfM#?S}6#%L)+m`5kS1+m}`gbVpb+f@a|z(~erB$I`4|(-o^J zq^S_>Ss8wOxN2!xLuPdydUZdV`EEM85NdDH9TNwS=Ma~9o$Y2e_nc-I(Mq9Lp#9p+ z??8K$=P<{krB^WrQ-r2E8lL{kOshg!MMY`B*qnb@Mi`EVW@OQI>3t;>CJYH#xtKmx zPi;+89o8K(!C64-7M3;5!=iljzT+m+f(WECE1)a2ispt&anewp@9oT|yJbsmoy>Es zybsLOJ~)NvX)KS5-N>o%=B;{2mp`Y{5`00T6OIq2^IT4x9W&s+B`)9(nx1oe>p9NcPLqq>o8HJ8PzCZ4E!m9GhyxKW+gDPSF zZMr?TM-{K33(fTvXoRyfvr=kkR;&;pl$z!@FS|4&i+)9MpIOwokL@)ua5c*FbM-KJ zH5$rq8eln1*Dr;w^moNdcyqPht#|EOiZ~9ZAUktpP6>UR{ocDevWj`ulubMKJHPbR3Ltb|AW?sxzQCW2rl~jih zUr~bJyLf3cd~&;_}3RGVpL z@rg=%6h_>khvuArlvcDMEjtSdzE3}L2QPA?Jb8v^Ihpvb=UEy~t(v^XC904@M!dsrHVBW%jPw|U{^vO4fRns0Xjt^E)(?$mAS;7?gT z2VVawjs!!v);y5Il{*h2MX}^Eo9(en(RYSIBeZQJ(MY@AjW~+Kn6!oM2gO z_|j`9VelH=Hge!8&-g0-r1^=cu{u+_paBivO#GG*zTvTiYLJpb~cRiTa( z@sn@P`p;MhoLHmBSx)0c3E#E&$0{p<-fQ)cusR=FHOW==4S$yAq`NbS7haD4yHJ{+ z>;g)Pgl%h)?n|OsJ_jBX!z*15To_C9ySac@$Aiy0r2FIqp3mvNuM16ezk=>tlX$*! zXrp`Zv>V+A4`5l0?&`#WJVE(rqx zFGu$Kc$(kSHNJimSemmz;#8~WXuW~ZeUTnrc$6p5@}oK| zENf`2te|?58Wn2Jx<1P4qQ-L-JBymlB5n_hD;sdPxzA(JcLQ$Jee)QUZqTEm8XxE2 z_y|8m%_~s^8y|;HH{gas_Z_fv0~(br_zh^9e(ZVpm8Sa}pl`&D=;vOh2!^0H&sFod zocsyh-+&<-^)zYZ8&J0qm)sw}4Zm;1<;49PbzPD_hQ~M3_4r=cyAhYVM?R&6w!kT0 zQ$#~u#94b7Y@kQ?ee7qR@7_S;FFY?;n82(kU5S_C+8aLufxF1p{R;J{cv!dl{4X@U5zT~O^-&gv#$lp)^n{*94_X~Ot!MPW z?-ULZ9)S4aN>{M$)_h@NoORa!z`09tS=E zWp-;ykcR;p_uH+bMEGvH)d!EQS;u2HvJ$L!+$8>C9C*xnyXX<7{t0VuLSd3%);z0b z?A>9t(6hh?c3NNY_6TwRYu5i$+L_1aaJ7B>nz{FxI|z{owIs15A|$cz4PtA8h_$uX z(ppL^MJ;!es=ZI`Ls3GlMT-)xt=85qREVv_UbJY{&ig%yKF{a*<9+{m+s|=+-)qjC zIdjgL>zp$)xo3o`sgCMhGW$375n{#Jj6&AMWkx_or~O7(d$_9DB=rnHeaTZn>wmzI zCATDxARN#Sw>N-YnD+&FWf0F#dIus^{&?1EF(%!?q;1=DH{&73Y;eHKTstq zWVJs{5oW)JDGGKBwAQE;-3D2gR6Hp+4zR+{7$uw=2B|Z$*7mmtS&y=eApP7RYxEf- zShuHG))}L?o-owfOv2*zKU4|%zE6T$+weV_gsu(SCi6fcIez{}*8MX^F+Fayl`oqE z&iI#ADcg8Mzdg-LRB<=U>X%Jc6X#l!vyD)F#d2$1woyVau+lo3&7oZ1TDP)|2?&kMo;CdR8=I_JXN}T&^fs&8Su$?B%}PCMl+%NLv{s)bqt3gmqi2n9{ncLU zvEmy0tT)aX<@J>PR?~AvS$)KQ{xZ-A3-#?+8RwQ+O|siHi*NsLP$%%!ewA;4b>N&) zNMCu(x_FMvem`#M=Q-GsQ&!}8_`xZw<#`I>J!1_zZf{ ztx(+mzI9mfvj^7Q3!KfthgRW>#G4*jbuSvloI9T8R@dTl?tmJ!OWWi&EfX_!*FUY) zuyK=rtW`{9<+Dl&T@&J3DD$u(LkA8BDdNglebIQ|rtPu8X-w{VRtv z=U!MwjuEYmvTo)Wo%Qu%#a}TR2c+0iB}VVAC29VePRNvWJ!9b&<3lZcgFZu>uEojp z+0>gob^^4Woi8R_YBS@c-I=@`lkVV7+KsUJfA? zIZk@09O7;o)%aNIh?_A=;E&o!jf#j82 z)7r4-`P+u&w}cG+DM*f_%2Mm&JI2leCnQC0ps6G6qKe|gYI4_@%&QkC?iwAb*o>&( zjfz_SOi9u-eF!xaLz*0`_a8>Gs`jma81?wQTHm8|BR{k|LRssuk3FSP$+S?e!eHmH5CY<)3Uz(d>FG z8yc`{K|RwN{lF;hwd?*`EJs%+Yv}_cJn^5r(`=;*6#zYiqQ0I5{U3~iURrvIeTq!)1B zn!cN`gpfmcKuCKX7t}SnR9~-w0 zrE8y}Rrr~(kFbo;>vd>LthUW2sBKkAuVTdy3Cr~Kw{sJ#L@M+mY$2!wDm12`A@q-b zxoXe`u1|5ID*Wj)=i z0ZW1V)N3`_K>bdTFo*T&BcrkE+D9H4Kd5-pV@7~9o3-k(k)XQzqsPWdWlw)%%plIF z`qb#FsppGo!VNt3Nls<0JNWo*T^+#=T^yZTW&UWHSAQ(VuNEUl?((w{=kQ z{FfYq_|{9Ki%Qn)6*0W(mGL(5Y=>D-Me$}G6@6l=g3dlpyF)1*-F_X9p-9^oaHe4 zD06)$Wg+%C&8BMe0mZ}~mpMY&KXI826#wKhODMkKGSd|IbDQc^te@OwZY>q_m{S$6 z@|YuvoaEYzlLuN4)s?jvF6vM%x2xAR%(5y~FT;#hv1OP`R9xFM-?LBG?u)g`G%qR3 z6tCG+#rM6GgXZbyXBO0z@Z~pOYLq0y=WotX!a@XQL=-aT=9>2en1-&*#{$itRXi`q zT%&SoQpCKdxLmN=NyVQAo27yp=vC;gkLWs8a5w*PWZQzxGXLAgjK{&|JGot@Z80iG z9imun|Dw`s5m0ToT&EL7-9}qTrM=PwPuEzgOuG7 zmRJ4pVP*}r-4{mdV?Pp>*E~U`&94-1FP+!AwlcYW$cigt4psJyGG;p!=P%1it8``a znolcdc2oRrIeH8EE-OcGfFG4(f8v;mW`NZ!JTDUx2U@4X%?fIZEh2A^_=vnctO&EB zvi}r8$%!kMr~49*DxX)9@5`GXDXtnxMRj(==k**mJ3^y#sA+i%C_T}xq==_=S$E1S93@8!zoZpF*0YHO&K$vu$v?)KWt^$D z6z6)kbt{gZI9;=~}Ygj{)rR)BV zB)4?{o2FTX8<}Z*5o>NE^O|CqvU6>pZeMQiES?s)UGcEb9iu~~^*mg&~P z#%BFygS2!JTe{q161GeVxYK2&T*9_iE-^Jz*2T~=Ic}y)DYkaYmo6V;sVn#NUB|x4 zO)-s>)2voa%t*&QvWm7oZemu_qBFj2Viwm5x3Z__=GaZ;$L2R-v2vQ4Gea_EsjQK& z2&x#h$SkhN2?oA@TQlY~GmAO2tc(pU%+8v1thwp*6(|zJ-1oo#3k7fR9#H9vBB%La zPcqyT{oAi1MfrABFF5Fu$o%UfmEjTaUi2g0hT(aP_~6pFL|Wb^Ej$JO2z~tyY2oQ` z;9Zebzmqf#1FvXF7O%t_=jXaukgo9vSz>~^`COu$YrjbtQPBAW)Nia98+rpyrd4oXSxQ zy)gI{;kAiiO-{r8;M(XiMK!qur@(E|Ejg82@b|C}-6K+y1a3zhh9{s8*V5#DI6oct zDS8}dat027H=$?LAwRenyr+(joo8$E8-@>P_c7?=3pLrof{>?A(gNLdF@VwePnRJEdBgL3Kp^i( zoWU>^Lo4*^FkR}IB8%YT=u$m&=>)H1J=+o;+gq1k_}Stg;J49>-q+B5BUfZ9C z(SBS}@Evrmk2nS#%t;MF4<4(_7`Q6zO9%e^M3-e45-_|mPM5gxx*Uc(z{Aj&C+Kns z?ghIi>e8L?7=8~Phu$}tU&4lm!#B}oKGUUeK9TWoTXgr?x>SI_f~TOrvvfQk&Eewu zzX}YPtIH@1KagM+de#@ZjDrurJJB8H>#`6&sxm-FFVtl@%wOh7J9Olix@>{3z_qqg z8#}QT5Xnci7x+<^d4%3@0Q>{`=^kAM!DZZB|7G^-vVkxKLnH| zd;v$pix28D;gBw8;p*_W=uE;jxEA~h-TbgFx8b_*2=pGp1Ncq&cXZ7ox;%j!`7j*4 z!r5KdrH8*rH+T;^`KB(P!hPZC=q7v$Y7RUf9*SN{cmOYiFQG3#qe^qMk9XRB+NeYJNuy|||%j*j(VY`Pypa=NbWDD$u zm!ezcx5-}EAD)bUQP?J#a3mZPXp<}k3R@xk1ngJLCiRQkBm!;;4@ZwEX~SR8{>d1= z2DX=?ge2$)-$X}**(3?>0w;a2s?Fm)$2( z7;a$T7w=@HX_raxefR{rfY&Y?;fHV>x;4 zli_*j<`wO73H}Tog?>`WE_YxHj*hm=xL7{k2``1$qxV;_OW|T7-@$*Ox74;vH2f3% z8~T)w=d?ZyPcXbhw~x2WFYt4CIy#HN|2!Opdo93YSXUo1c!L7L4bUZq*=0Ap3w|3t zV47XZ7sm(S4VR+}%(P2391b@|&zxnKr*I5>5bb-{vP=FFBK0sVMu+lbG8|U^xhs0? zQoD48N5b3CcURhF0z46}z@x#$bu=412cCj{kHP-{yc%AF?zNSD;Gf|y(be|YrBq4! z7d&te?Z0=gU6L@|#Go-V*nEV?1#nP)`T@FCwp}vd8t@eK6`t(5OEI5=i!%{e_Lp7y z!xLeh=Xd%19kLV7f#cA9q8-vEgi8>2yCcRSHYN*+p(1_YY6(7vTPb`&^%OQ*5qPW}d(TR-H&*5fp8v4tn4rx(_%Nou?A6n^< zRCpq6Tjh|W>m0HTUIV**-#Em7lS7_jIDsJn-Fd4+YL=B;e?ANS=`M$ifJ@+B_bUCf zLo(oo@a2OJ3H`+(&T{w#I2m2)R|){9!yVD(Z#ZNf{3F~G{qbFg+<~vazRkeY2P6t- zR=#&?5 zFT7)I^w8E$IaZz;fWJY{>f#hvByK+d|9=Fq-g8QO3xS@ zEZBv2oP@42&M9wHU{(vii=IBgDP7=NaJc1^=kuJh6|M_c`@$*Ni=A>1ZUg5_cgmer zdynE>Zs|~s1t{(}BG@g?1h;Ii zPOrt?Mx)mdD%E8E2mh7mmWb|diH8f}UZsayW{+{peRv?;f2>=M&UMR@T3jXYvUzSf zwZttQeYNS;xW_&#+~Qd2mL0Hi$I)dh{E&-SP#w}9` z58yKJ6s`y#K?iLnO<4>v7+L}Yf8bjma2N?7jE?@5Jm3%Dj_3`S zn16S|FdRenCAXM4Zh0T}!G71=@)uzitOlGSchUFU@(Vl%-igk>@0NS;A~;3&$R@(j zddvyoyXbq&UPr;p;c$mXB3vGs0I!BSqrZ0fJTeo*S`6nf^fo;51-uL9Cs8EC>yhu_ zBXCQ!UeF^4;NRdF^v)t21omTqdW?SchDS=&=PH8pmGsEj5RY_&>%i_%kCY<}h3mrw zm@2z`F&@KWG(y(ZiC*;2_AzJ7y-|t>!f+)%?2z!;S{uQ(nOCWVi<_wYxEvM8k_>(M*mHi z01tsnOri=2Q{iE77xept>F{tk9leGy2ObG$p}(H$k@@g6_!@fRG>`lUuYtdt=JCn= z86LTXVJn7R=mIl6!p|AVPPiKS-dvA38j=~Dw8$eB7IRSe0^A;bavfC)7Y}9r@Qp|M zZ1l*la3%ON^z3aO)>(8o_y=^o{T^uye+CcPPnB%=nKs8@VK|Te`G7}O!C%6Y4wB&s z+8N#tPeq?QO_RiPHw!LshT6N}ky@}lj9z}#BUf*GWHDS0cHQwvrvw<1315SE6)|LGup#A} z&_gh*dJ~K`yyivSzOJKYZ%_ea0;DT(~u|d zP&l==A%8S7B(y07f=k95GWsn;K7jYai_m+M4Osy{grA^4f188A!DX05ci|5uS>d#A z##I0hLvQYH$PDF!JXkl=#N(!vH(tnH=#GJGb9^MhxcqTWYzbaVFEWM;a|{|S;O^! zFT(B6&rcY#1uj*No0KOF`7Fzj;)#qaJ`B5o8&?d8!H@{Qah2-1W60a^2k^At4axV| z5DQ)izlmP>lCy?)!at(>I!!6j0=Ek!qA8KBxzox-G-(6Cr$Ybj)C33 zm}1K^4E9QBxL5q( z*>Jx|ujH%kl{EM`+z>r6&MPn9yck}BK2+6D=E7PGw_woTxBR4NS0*TM4Ycq34t~-W!)F-Iqd)HMCt0wX`+tL8 z*pHpM(f;uEp?li-^D95SBO@j*tyzHk=$DT~=BxZ#m-+AD`_XR*2+CzS@r zm-RWN8H>$3IEl|OWTF?bnEaU@`~@63(J9}ta2QXAI|tiYI9zApu!Xbx6|Tm*p&ILk zXB74dJRW_Mbwd*Ch8t>o5x#-MI^pZ;bXwS8olu!|LamzI+<-sv0gG5D{D$EnhCk3} zSSZYAq3{F_XQA*b3x(Fq>tDcuOWpDX^ZaG7n}eJ}*Jhf|Ytd2&9*!=@G`uZb8t#Iw z%}wAna3nkw9n36yH{28UwFC6)ZW+xqdH{wx=o?I{m%`)VkOwS0{^S7lm<_>a(0;|4 zbizB}mguU?YFpK3IEGWuFPXB9f$zXo=XoTH8CCs;TxHZkab{HSFk{-%h~c@qTK@r) zm;nunXE-FmA+#^Rki^EUg5YiF&ubcDG{Muszn~W~!6?|2aRR=8KFEBbdNZb1Z~^8E ze=;Aq4-bMXPcftg!~2%z4DIk7^ejTcTg)%2`#2*Yi;#q23<-i5|MxJyw}Z#Quh5Gb zjteF*`oY)Gt^7=xn8*W3cp7?SlqqXl;Hcmo=yXQIkuACA;mhcY3}$s((W&8L9ZgAP zu(}C9;-~#&Coq=L=}How3EqnSfx+lK2BX3?=m+T3wWhckT#CXw&>u6{Ooz+DI)hCR z14^Mb+}DNMqVqF$jD#z}qtMfE)j4o8I1{}L*Ziuj8vilm0AIMh@_sw!fbcnVbhuZ> z!~Ng^=<^eCRP9;M!=)y9B>+zskLQ~Vw?l8j5mmvnEr9Q!zs7HL!|`l`Z=k=$Z?wlx zoPsZ*qwpI`yGc=bj-d-+i_Rw@IF5H~bsEZF%6Ae=TcC$p(>^c*0`l*6iTclz`)}Sq F{{u>Rk$eCE delta 42723 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 z z7rYS1lVkqW%N?AKr;v}o(Mw=q7E1gpdG0&CRL5EP9Qo)6y+jvg{$He^=jO8tCWCZi z0Df^w63GiJ23d^%#wW<9Z3aohoL3Q@-5@)ZLDI1eKOlE5Y>@pp7|$cu^fky+9EAsv zR~9pfcM*{m_%iuNe}j~DQHY~p2{4FualSfki=)ZYgA7t1cf#Ar1Iinu4W5R-Bi{%! z$O@c-y=!w5BA4N>w-NGSGW zRqR7PNtcfOvAHv2+{GZ7I0Rd|8YH8eLC)an_yKuIFGc`2#Yf5W*z{R_L|WrDWS{;9 z@x_Taf}Ggj;F4Mtk|?B6$ePYb;7{=ja)U1o@)}>ogUK1RDC77U)I5BZ+~X*nFPl|7 zi|jncRKliUasH>A*kg74o*YYt+9^QrfkRKN_N`>NVD{v{c+pZ=7d`%^VYZS(lS8{Q12)>WA$^AuGMQmt|zQgm@4az!~IY<&AO`2jN%b-CRO^j%(sa z)r>B=Sl1|#{)`=kx8$~5K3t0X;d$iae2-=dUXFEKFnra;D9^CgzE|S{-HrZ6nHs?C zp!xM1V3d$){J{mdvSA%l3F~QoqsS#T8D$nOirbU@)0sjz6t^Qk z;lff5j={mMOruQL&HaW!JV+sv+@H%#D}?8iIt-(+vMNeTpuT*7?# zQW~t{IWfQHC8Npp*O_Dz_A5mDKL$+PY?8ec8q$96B4_O|$s61Uza`)Q&LnlqiOk03 zcADhsK9h{a={VvbPj=iS$M99Wojm3eBM>6ur1?!JPx{FuLvdxii+qmVpKZ96*8UrF zdBS@pc|>6l132?>7aiKn@JOzyMEEX{Br-asy%ZkDb%0(T+j9A<>@=eTH= zSvs6#1gg@`<0<5?E}A6L1@ zEP1?WHRcfxCs%Y@qzC3Z9c4T@yr@MIs&kk{b3Kea%ikg?I07Femk6=Q5!?^QllN4! zh^oN|<45G_HTke?4d(wM3Wq@BFn&dq0oGv`xj}7^3rD9_3En00!QH-$ZKwqVC;>H zwy?-G_AW#5C%8}#i#+IOkqkT*`}Vg;*H0L!TI{0ZS>*MjEm8-k;mhPs;}`~S$6d(3 z(+$O6T6wp}8I6uu9Vit4yfF z5irf`F!B?+mvw0qaA=fO`nKaX*>DbMasBpIIXlcMJMm4tez;ZibFK1mJ)WD^^*Y(K z%<7WBk3_~$SiZt4RaaVNDxQoxlRMIVfn9hK`B;io7U8M*J^A@stE|TJuz#vmX3~9& zm*89LtuktZRkHCayoQ`YcL%57!(_*1msRdlSW6*#vsLPBa;=l0}1K7fNqx_H6yHc^dON-1N$u{YXKj5Y0x>Ia28T*%F1Lp!U zpV?#+g^Co0lfS3ikE`N5@~T-j$-+(WyZJV`w!kJKjcM1hVWCYXu3?hmx%exx*Ls_z z;MF*c9KPKq2k{AV3!6No@R$J(l5^hJq;OM~;xa7hZ*7wPfsw?a_%8Xm(Ju3GI~--ROL@Cp9^kIH zEqQ>CU0&iZ@LckZ5_W0YOk^+C2iaw4Y5pE(m2t7u13wOF(kNVFfH?A-3U55rE+tQZn0N=yHt<1OJCdv_a*<)(k|cOnK+`AU3PV_i%$#I z0(_lZw7Xqe<5MmQF(A9AU8YdDjvc-167aEImg2|w4LM?{UH0I@!JOqH&mP4{;!u2u z96r%5VJ)@&JBCTN%dBa3nTaRjZR8g-?UIETS)&c`$VPf++0 z-1k+YYsHyQ9N?#9PN0%v_!(|mLdmdlN*dte?Ds7ux2UXSDz1kolQ(h3YB%nIV{0qv z)j&z%)@&E>bn>)D{L&&`iT9JU=|;OKq)>2hV@1U#N+#fqxCi-0b0xFzPJBO3$&Pp> z=kQ*9oqV#Rl56-LenK8QP)Se%dvO(LO9mlakOO*rXs85S|w@|w_)R8T$S8mo02uS z5su%kBqyB_#L?LBH7~wf$vr$0uiB%e>VD;thV3{gppdX%NmiDU7`ztWCEq&AY`{D4 z)U!&apI34Me}fN@4_;LABi@BykRvbgqIeG;Mt=4qvlXAg#jYr6eN~C6J$pxZ0l7=I zONkGKpD4`EW|Gkb;Tt%YydXzOFgCHPeTdv9kEwt|@C@$q;-B&m~uP*&K41!Wjx<$$7pGIgO2#IlA?C$hnFRiR?%t zf(?}%5?#X~8*w*0k$j|%LvG;l_)l`1IENJO#92-}gFLRSLv~?f6&5`55)P{$<3ac+ z*%dR;A)j?-p`b8=oH4{9i|`bDo7`rcL(=hP{L=)7B+qq-PZwc^Gn>fWIWAv{!|*in zRJzBw4lbDDkm6e$oGW4t!L7)dhaEB!-^Wi5J6sZQ(;=0*iFB;SyCiRZ!fz1bMffVY z?Vk?m(w%i0Pa)@-oboMJ)!9IqoucS`6Uq470#5mbE&+RCtCv%%1Usbz9)`P;!SaC)~07Quf>v29?Y54y#;94@CFx%<5cLP zf*c1@m`(QQES7et+%lAt$K)Oy-;ej@xDRKL702_VOR`qr?&RSdz8lzb?!;N-yBr^ zEJh9%nzBGegwdFgYjUhGiIHuLr;;ag+;E6to8fch${aWN)MmqmCy?KAobX8j&VVe|)U~dUmDPof??6Q4? zTjN~v81|^%HR4S_6O2iuvd*|kXNvIAJdYi9N#AA(Ai^{ z|2Y)Ovb`@&=S3kG_a+qErFXm(5FLoKn=Cx@YYXsg+Ue4BXP&^A9 zzDeH6*02s+!;kQ5@*_58f8mxmgwvtZ*;s9C&HV35Aqz}k>y(nWF(NwR++i@y+ z2u<^W_RRkS6t;j~e<}&-z}^o|Bfp|4j>hM44L^q@(Gphb$c728CoiC-GtkmK#h1v% zXoy~5Zhx27WLsCKl%Sz0iJOoM&~Et9PK4uz] ; + [] ; + [] ; - + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -663,7 +663,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION lFileMode = .F. n_ExisteCapitalizacion = -1 l_CFG_CachedAccess = .F. - l_Debug = .F. + n_Debug = 0 l_Error = .F. c_TextErr = '' l_Test = .F. @@ -984,11 +984,11 @@ DEFINE CLASS c_foxbin2prg AS SESSION ENDFUNC - PROCEDURE l_Debug_ACCESS + PROCEDURE n_Debug_ACCESS IF THIS.n_CFG_Actual = 0 OR ISNULL( THIS.o_Configuration( THIS.n_CFG_Actual ) ) - RETURN THIS.l_Debug + RETURN THIS.n_Debug ELSE - RETURN NVL( THIS.o_Configuration( THIS.n_CFG_Actual ).l_Debug, THIS.l_Debug ) + RETURN NVL( THIS.o_Configuration( THIS.n_CFG_Actual ).n_Debug, THIS.n_Debug ) ENDIF ENDPROC @@ -1344,7 +1344,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION THROW FINALLY - THIS.writeLog( LOWER(PROGRAM()) + ' >> [' + tcFileName + '] lnRet = ' + TRANSFORM(lnRet) + ', dwFileAttributes_Orig = ' + TRANSFORM(dwFileAttributes_Orig) ) + THIS.writeLog( C_TAB + LOWER(PROGRAM()) + ' >> [' + tcFileName + '] lnRet = ' + TRANSFORM(lnRet) + ', dwFileAttributes_Orig = ' + TRANSFORM(dwFileAttributes_Orig) ) CLEAR DLLS fb2p_SetFileAttributes, fb2p_GetFileAttributes RELEASE tcFileName, tcAttrib, dwFileAttributes ENDTRY @@ -1444,11 +1444,11 @@ DEFINE CLASS c_foxbin2prg AS SESSION *-- LOG DO CASE CASE EMPTY(lcExt_2) - .writeLog( loLang.C_BACKUP_OF_LOC + tcOutputFile_Ext1 ) + .writeLog( C_TAB + loLang.C_BACKUP_OF_LOC + tcOutputFile_Ext1 ) CASE EMPTY(lcExt_3) - .writeLog( loLang.C_BACKUP_OF_LOC + tcOutputFile_Ext1 + '/' + lcExt_2 ) + .writeLog( C_TAB + loLang.C_BACKUP_OF_LOC + tcOutputFile_Ext1 + '/' + lcExt_2 ) OTHERWISE - .writeLog( loLang.C_BACKUP_OF_LOC + tcOutputFile_Ext1 + '/' + lcExt_2 + '/' + lcExt_3 ) + .writeLog( C_TAB + loLang.C_BACKUP_OF_LOC + tcOutputFile_Ext1 + '/' + lcExt_2 + '/' + lcExt_3 ) ENDCASE *-- COPIA BACKUP @@ -1475,7 +1475,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION ENDWITH && THIS CATCH TO toEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -1538,7 +1538,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION #ENDIF LOCAL lcConfigFile, llExiste_CFG_EnDisco, laConfig(1), I, lcConfData, lcExt, lcValue, lc_CFG_Path, lcConfigLine, laDirInfo(1,5) ; - , lnDirs, laDirs(1) ; + , lnDirs, laDirs(1), llMasterEval ; , lo_CFG AS CL_CFG OF 'FOXBIN2PRG.PRG' ; , lo_Configuration AS Collection ; , loLang as CL_LANG OF 'FOXBIN2PRG.PRG' ; @@ -1604,7 +1604,8 @@ DEFINE CLASS c_foxbin2prg AS SESSION *-- Si no se pasó un CFG padre y no hay CFGs o no encuentra el del PATH indicado, analizo la jararquía IF ISNULL(toParentCFG) AND (lo_Configuration.Count = 0 OR .n_CFG_Actual = 0) THEN - toParentCFG = THIS + llMasterEval = .T. + toParentCFG = THIS IF LEFT( lc_CFG_Path, 2 ) == '\\' THEN lnDirs = OCCURS( '\', lc_CFG_Path ) - 3 @@ -1656,16 +1657,17 @@ DEFINE CLASS c_foxbin2prg AS SESSION IF .l_Main_CFG_Loaded IF .l_CFG_CachedAccess AND .n_CFG_Actual > 0 THEN toParentCFG = lo_CFG - .writeLog( '> ' + UPPER(loLang.C_USING_THIS_SETTINGS_LOC) + ': ' + tc_InputFile + ' => (' + lo_CFG.c_Foxbin2prg_ConfigFile + ')' ) - .writeLog() + .writeLog( '> ' + UPPER(loLang.C_USING_THIS_SETTINGS_LOC) + ': ' + lo_CFG.c_Foxbin2prg_ConfigFile + ' => ' + tc_InputFile + '' ) ELSE + .writeLog( '> ' + UPPER(loLang.C_CACHING_CONFIG_FOR_DIRECTORY_LOC) + ': ' + lc_CFG_Path ) lo_CFG = CREATEOBJECT('CL_CFG') lo_Configuration.Add( lo_CFG, lc_CFG_Path ) .n_CFG_Actual = lo_Configuration.Count IF NOT ISNULL(toParentCFG) - lo_CFG.CopyFrom(toParentCFG) + lo_CFG.CopyFrom(@toParentCFG) toParentCFG = lo_CFG + .writeLog( C_TAB + '- ' + loLang.C_INHERITING_FROM_LOC + ': ' + lo_CFG.c_Foxbin2prg_ConfigFile ) ENDIF ENDIF @@ -1676,7 +1678,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION *-- NOTA: SOLO LOS QUE NO VENGAN DE PARÁMETROS EXTERNOS DEBEN ASIGNARSE A lo_CFG AQUÍ. IF llExiste_CFG_EnDisco AND NOT .l_CFG_CachedAccess THEN - .writeLog( ) + .writeLog() .writeLog( '> ' + loLang.C_READING_CFG_VALUES_FROM_DISK_LOC + ':' ) .writeLog( C_TAB + loLang.C_CONFIGFILE_LOC + ' ' + lcConfigFile ) @@ -1895,17 +1897,17 @@ DEFINE CLASS c_foxbin2prg AS SESSION IF NOT EMPTY(tcDontShowErrors) lo_CFG.l_ShowErrors = NOT (TRANSFORM(tcDontShowErrors) == '1') ENDIF - IF NOT .l_Main_CFG_Loaded - lo_CFG.l_Recompile = (EMPTY(tcRecompile) OR TRANSFORM(tcRecompile) == '1' OR DIRECTORY(tcRecompile)) - ENDIF + *IF NOT .l_Main_CFG_Loaded + lo_CFG.l_Recompile = (EMPTY(tcRecompile) OR TRANSFORM(tcRecompile) == '1' OR DIRECTORY(tcRecompile)) + *ENDIF IF INLIST( TRANSFORM(tcNoTimestamps), '0', '1' ) THEN lo_CFG.l_NoTimestamps = NOT (TRANSFORM(tcNoTimestamps) == '0') ENDIF IF INLIST( TRANSFORM(tcClearUniqueID), '0', '1' ) THEN lo_CFG.l_ClearUniqueID = NOT (TRANSFORM(tcClearUniqueID) == '0') ENDIF - IF INLIST( TRANSFORM(tcDebug), '0', '1' ) THEN - lo_CFG.l_Debug = (TRANSFORM(tcDebug)=='1') + IF INLIST( TRANSFORM(tcDebug), '0', '1', '2' ) THEN + lo_CFG.n_Debug = INT(VAL(tcDebug)) ENDIF tcExtraBackupLevels = EVL( tcExtraBackupLevels, TRANSFORM( .n_ExtraBackupLevels ) ) IF ISDIGIT(tcExtraBackupLevels) @@ -1915,6 +1917,14 @@ DEFINE CLASS c_foxbin2prg AS SESSION lo_CFG.l_OptimizeByFilestamp = NOT (TRANSFORM(tcOptimizeByFilestamp) == '0') ENDIF + .l_Main_CFG_Loaded = .T. + + IF NOT llMasterEval + *-- Si no es llMasterEval, es porque esta llamada es cíclica desde este mismo método, + *-- y no hay parámetros para evaluar, ya que se mandan todos vacíos desde el inicial. + EXIT + ENDIF + .writeLog( '> ' + UPPER(loLang.C_USING_THIS_SETTINGS_LOC) + ':' ) .writeLog( C_TAB + 'n_CFG_Actual: ' + TRANSFORM(.n_CFG_Actual) + ICASE(.n_CFG_Actual=1, ' [MASTER]', ' [SECONDARY]') ) .writeLog( C_TAB + 'l_CFG_CachedAccess: ' + TRANSFORM(.l_CFG_CachedAccess) ) @@ -1928,7 +1938,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION .writeLog( C_TAB + 'n_UseClassPerFile: ' + TRANSFORM(.n_UseClassPerFile) ) .writeLog( C_TAB + 'l_ClassPerFileCheck: ' + TRANSFORM(.l_ClassPerFileCheck) ) .writeLog( C_TAB + 'l_RedirectClassPerFileToMain: ' + TRANSFORM(.l_RedirectClassPerFileToMain) ) - .writeLog( C_TAB + 'l_Debug: ' + TRANSFORM(.l_Debug) ) + .writeLog( C_TAB + 'n_Debug: ' + TRANSFORM(.n_Debug) ) .writeLog( C_TAB + 'n_ExtraBackupLevels: ' + TRANSFORM(.n_ExtraBackupLevels) ) .writeLog( C_TAB + 'c_BackgroundImage: ' + TRANSFORM(.c_BackgroundImage) ) .writeLog( C_TAB + 'l_OptimizeByFilestamp: ' + TRANSFORM(.l_OptimizeByFilestamp) ) @@ -1936,10 +1946,6 @@ DEFINE CLASS c_foxbin2prg AS SESSION .writeLog( C_TAB + 'l_ClearDBFLastUpdate: ' + TRANSFORM(.l_ClearDBFLastUpdate) ) .writeLog( C_TAB + 'c_Language: ' + TRANSFORM(.c_Language) ) - IF NOT .l_Main_CFG_Loaded THEN - .l_Main_CFG_Loaded = .T. - ENDIF - .writeLog( ) ENDWITH && THIS @@ -1948,7 +1954,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION loEx.UserValue = loEx.UserValue + 'lc_CFG_Path = [' + TRANSFORM(lc_CFG_Path) + ']' + CR_LF loEx.UserValue = loEx.UserValue + 'lcValue = [' + TRANSFORM(lcValue) + ']' + CR_LF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -2241,7 +2247,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION tcType = UPPER( EVL(tcType,'') ) .writeLog( REPLICATE( '*', 100 ) ) - .writeLog( loLang.C_MAIN_EXECUTION_LOC ) + .writeLog( loLang.C_MAIN_EXECUTION_LOC, 2 ) .writeLog( REPLICATE( '*', 100 ) ) .writeLog( '> ' + loLang.C_EXTERNAL_PARAMETERS_LOC + ':' ) .writeLog( C_TAB + 'tc_InputFile: ' + TRANSFORM( EVL(tc_InputFile, '(empty) -> Will use Default' ) ) ) @@ -2323,7 +2329,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION lcFileSpec = FULLPATH( tc_InputFile ) .c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG' - IF .l_Debug + IF .n_Debug > 0 THEN ERASE ( .c_LogFile ) ENDIF @@ -2380,6 +2386,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION CASE lcInputFile_Type == C_FILETYPE_DIRECTORY *-- CONVERSION BIN2PRG DE UN DIRECTORIO Y SUBDIRECTORIOS .writeLog( '> InputFile ' + loLang.C_IS_A_DIRECTORY_LOC ) + .writeLog() DO CASE CASE .l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile) @@ -2390,7 +2397,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION .c_LogFile = ADDBS(tc_InputFile) + tcType + '.LOG' - IF .l_Debug + IF .n_Debug > 0 THEN ERASE ( .c_LogFile ) ENDIF @@ -2421,6 +2428,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION CASE NOT .TieneSoporte_Bin2Prg( JUSTEXT(tc_InputFile) ) OR NOT FILE(tc_InputFile) .writeLog( '> InputFile ' + loLang.C_IS_UNSUPPORTED_LOC ) + .writeLog() EXIT ENDCASE @@ -2438,6 +2446,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION CASE lcInputFile_Type == C_FILETYPE_DIRECTORY *-- CONVERSION PRG2BIN DE UN DIRECTORIO Y SUBDIRECTORIOS .writeLog( '> InputFile ' + loLang.C_IS_A_DIRECTORY_LOC ) + .writeLog() DO CASE CASE .l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile) @@ -2448,7 +2457,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION .c_LogFile = ADDBS(tc_InputFile) + tcType + '.LOG' - IF .l_Debug + IF .n_Debug > 0 THEN ERASE ( .c_LogFile ) ENDIF @@ -2479,6 +2488,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION CASE NOT .TieneSoporte_Prg2Bin( JUSTEXT(tc_InputFile) ) OR NOT FILE(tc_InputFile) .writeLog( '> InputFile ' + loLang.C_IS_UNSUPPORTED_LOC ) + .writeLog() EXIT ENDCASE @@ -2556,6 +2566,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION ENDIF .writeLog( '> InputFile ' + loLang.C_IS_A_FILE_LOC ) + .writeLog() tc_InputFile = LOCFILE(tc_InputFile) DO CASE @@ -2567,7 +2578,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION .c_LogFile = tc_InputFile + '.LOG' - IF .l_Debug + IF .n_Debug > 0 THEN ERASE ( .c_LogFile ) ENDIF @@ -2605,7 +2616,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION THIS.ejecutar_WriteErrorLog( @toEx, @lcErrorInfo ) - IF THIS.l_Debug + IF THIS.n_Debug > 0 THEN IF _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -2699,7 +2710,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION IF EMPTY(tcLogFile) .c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG' - IF .l_Debug + IF .n_Debug > 0 THEN ERASE ( .c_LogFile ) ENDIF ENDIF @@ -2800,7 +2811,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION IF EMPTY(tcLogFile) .c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG' - IF .l_Debug + IF .n_Debug > 0 THEN ERASE ( .c_LogFile ) ENDIF ENDIF @@ -2921,7 +2932,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION .c_InputFile = FULLPATH( tc_InputFile ) lcExtension = UPPER( JUSTEXT(.c_InputFile) ) .writeLog( REPLICATE( '*', 100 ) ) - .writeLog( 'CONVERSION PROCESS' ) + .writeLog( 'CONVERSION PROCESS', 2 ) .writeLog( REPLICATE( '*', 100 ) ) IF ADIR( laDirFile, .c_InputFile, '', 1 ) = 0 @@ -2984,7 +2995,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION *-- addProcessedFile( tcFile, tcInOutType, tcProcessed, tcHasErrors, tcSupported, tcExpanded ) IF NOT .addProcessedFile( .c_InputFile, 'I', 'P1', 'E0', 'S1', 'X0' ) THEN *.writeLog( 'OPTIMIZACIÓN: El archivo Base [' + JUSTFNAME(lc_BaseFile) + '] ya fue procesado, por lo que no se procesará [' + JUSTFNAME(.c_InputFile) + ']' ) - .writeLog( '> ' + TEXTMERGE( loLang.C_CLASSPERFILE_OPTIMIZATION_BASE_ALREADY_PROCESSED_LOC ) ) + .writeLog( C_TAB + '* ' + TEXTMERGE( loLang.C_CLASSPERFILE_OPTIMIZATION_BASE_ALREADY_PROCESSED_LOC ) ) EXIT ENDIF @@ -3196,7 +3207,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION loConversor.c_InputFile = .c_InputFile loConversor.c_OutputFile = .c_OutputFile loConversor.c_LogFile = .c_LogFile - loConversor.l_Debug = .l_Debug + loConversor.n_Debug = .n_Debug loConversor.l_Test = .l_Test loConversor.n_FB2PRG_Version = .n_FB2PRG_Version loConversor.l_MethodSort_Enabled = .l_MethodSort_Enabled @@ -3226,7 +3237,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION ELSE *-- Optimizado: El Origen es anterior al Destino - No hace falta regenerar *.writeLog( '> El archivo de salida [<>] no se regenera por ser más nuevo que el de entrada.' ) - .writeLog( TEXTMERGE(loLang.C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC) ) + .writeLog( C_TAB + TEXTMERGE(loLang.C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC) ) ENDIF @@ -3240,7 +3251,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION *-- updateProcessedFile( tcProcessed, tcHasErrors, tcSupported, tcReserved ) THIS.updateProcessedFile( '', 'E1' ) - IF THIS.l_Debug + IF THIS.n_Debug > 0 THEN IF _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -3365,7 +3376,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION *-- La primera vez vale -1, hace la verificación por única vez y cachea la respuesta IF FILE(lcEXE_CAPS) *.writeLog( '* Se ha encontrado el programa de capitalización de nombres [' + lcEXE_CAPS + ']' ) - .writeLog( TEXTMERGE(loLang.C_NAMES_CAPITALIZATION_PROGRAM_FOUND_LOC) ) + .writeLog( C_TAB + TEXTMERGE(loLang.C_NAMES_CAPITALIZATION_PROGRAM_FOUND_LOC) ) SET PROCEDURE TO (lcEXE_CAPS) ADDITIVE .o_FNC = CREATEOBJECT( 'cl_FileName_Caps' ) RELEASE PROCEDURE (lcEXE_CAPS) @@ -3374,7 +3385,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION ELSE *-- No existe el programa de capitalización, así que no se capitalizan los nombres. *.writeLog( '* No se ha encontrado el programa de capitalización de nombres [' + lcEXE_CAPS + ']' ) - .writeLog( TEXTMERGE(loLang.C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC) ) + .writeLog( C_TAB + TEXTMERGE(loLang.C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC) ) .n_ExisteCapitalizacion = 0 EXIT ENDIF @@ -3524,11 +3535,16 @@ DEFINE CLASS c_foxbin2prg AS SESSION LOCAL lcLog, laFile(1,5) ; , loLang as CL_LANG OF 'FOXBIN2PRG.PRG' loLang = _SCREEN.o_FoxBin2Prg_Lang - THIS.writeLog( TEXTMERGE(loLang.C_REQUESTING_CAPITALIZATION_OF_FILE_LOC) ) *THIS.ChangeFileAttribute( tcFileName, '+N' ) lcLog = '' - THIS.o_FNC.Capitalize( tcFileName, '', 'F', lcLog, tlRelanzarError, '1' ) - THIS.writeLog( lcLog ) + THIS.o_FNC.Capitalize( tcFileName, '', 'F', @lcLog, tlRelanzarError, '1' ) + + IF THIS.n_Debug >= 2 THEN + lcLog = SUBSTR(lcLog,3) + THIS.writeLog() + THIS.writeLog( C_TAB + TEXTMERGE(loLang.C_REQUESTING_CAPITALIZATION_OF_FILE_LOC) ) + THIS.writeLog( lcLog ) + ENDIF ENDPROC @@ -3559,7 +3575,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION PROCEDURE set_Line LPARAMETERS tcLine, taCodeLines, I - tcLine = LTRIM( taCodeLines(I), 0, ' ', CHR(9) ) + tcLine = LTRIM( taCodeLines(I), 0, CHR(9), ' ' ) ENDPROC @@ -3650,7 +3666,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION ENDWITH CATCH TO loEx - IF THIS.l_Debug + IF THIS.n_Debug > 0 THEN IF _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -3723,7 +3739,7 @@ DEFINE CLASS c_foxbin2prg AS SESSION PROCEDURE writeLog_Flush - IF THIS.l_Debug AND NOT EMPTY(THIS.c_TextLog) + IF THIS.n_Debug > 0 AND NOT EMPTY(THIS.c_TextLog) STRTOFILE( STRCONV(THIS.c_TextLog + CR_LF,9), THIS.c_LogFile, 1 ) ENDIF THIS.c_TextLog = '' @@ -4385,7 +4401,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION + [] ; + [] ; + [] ; - + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -4407,7 +4423,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION , a_SpecialProps_Spn(1), a_SpecialProps_Txt(1), a_SpecialProps_Tmr(1), a_SpecialProps_Tbr(1) ; , a_SpecialProps_XMLAda(1), a_SpecialProps_XMLFld(1), a_SpecialProps_XMLTbl(1) - l_Debug = .F. + n_Debug = 0 l_Error = .F. l_Test = .F. c_InputFile = '' @@ -4468,11 +4484,16 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION PROCEDURE DESTROY LOCAL loLang as CL_LANG OF 'FOXBIN2PRG.PRG' - loLang = _SCREEN.o_FoxBin2Prg_Lang C_FB2PRG_CODE = '' USE IN (SELECT("TABLABIN")) USE IN (SELECT("foxbin2prg_keywords")) - THIS.writeLog( loLang.C_CONVERTER_UNLOAD_LOC ) + + *-- Esta comprobación es por los TESTS, que a veces no cargan o_FoxBin2Prg_Lang + IF VARTYPE(_SCREEN.o_FoxBin2Prg_Lang) = "O" THEN + loLang = _SCREEN.o_FoxBin2Prg_Lang + THIS.writeLog( loLang.C_CONVERTER_UNLOAD_LOC ) + ENDIF + THIS.oFSO = NULL ENDPROC @@ -4556,7 +4577,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -4619,7 +4640,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION CATCH TO loEx lnCodError = loEx.ERRORNO - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -4666,8 +4687,8 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION #ENDIF LOCAL loLang as CL_LANG OF 'FOXBIN2PRG.PRG' loLang = _SCREEN.o_FoxBin2Prg_Lang - THIS.writeLog( '' ) - THIS.writeLog( loLang.C_CONVERTING_FILE_LOC + ' ' + THIS.c_OutputFile + '...' ) + *THIS.writeLog( '' ) + THIS.writeLog( C_TAB + loLang.C_CONVERTING_FILE_LOC + ' ' + THIS.c_OutputFile + '...' ) RELEASE toModulo, toEx, toFoxBin2Prg, loLang RETURN ENDPROC @@ -4705,9 +4726,9 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION *-- Pre-normalización lcLine = tcLine - IF LEFT(lcLine,1) == '#' - lcLine = CHRTRAN( lcLine, ' ', '' ) && Quito los espacios a lo que comience con # - ENDIF + *IF LEFT(lcLine,1) == '#' + * lcLine = CHRTRAN( lcLine, ' ', '' ) && Quito los espacios a lo que comience con # + *ENDIF IF tnIniFin = 1 *-- TOKENS DE INICIO @@ -4732,7 +4753,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION ENDIF ELSE *-- TOKENS DE FIN - IF LEFT( UPPER( lcLine ), ta_ID_Bloques(X,4) ) == ta_ID_Bloques(X,2) && Fin de bloque encontrado (#ENDI, ENDTEXT, etc) + IF UPPER( LEFT( lcLine, ta_ID_Bloques(X,4) ) ) == ta_ID_Bloques(X,2) && Fin de bloque encontrado (#ENDI, ENDTEXT, etc) *-- Evaluar casos especiales lcWord = UPPER( ALLTRIM(GETWORDNUM(lcLine,1) ) ) @@ -4800,10 +4821,10 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION tcComentario = '' *-- Limpieza de caracteres sin uso - IF INLIST(tcValue, '..\', '..\..\' ) THEN - *MESSAGEBOX( 'Encontrado valor "' + tcValue + '" en propiedad "' + tcProp, 4096, PROGRAM() ) - *tcValue = '' - ENDIF + *IF INLIST(tcValue, '..\', '..\..\' ) THEN + * MESSAGEBOX( 'Encontrado valor "' + tcValue + '" en propiedad "' + tcProp, 4096, PROGRAM() ) + * tcValue = '' + *ENDIF *-- Ajustes de algunos casos especiales DO CASE @@ -5003,7 +5024,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION lcTimeStamp_Ret = TTOC( ltTimeStamp ) CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -5033,8 +5054,8 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION EXTERNAL ARRAY taPropsAndValues - LOCAL lcMetadatos, I, lcVirtualMeta, lnPos1, lnPos2, lnLastPos, lnCantComillas - LOCAL loLang as CL_LANG OF 'FOXBIN2PRG.PRG' + LOCAL lcMetadatos, I, lcVirtualMeta, lnPos1, lnPos2, lnLastPos, lnCantComillas ; + , loLang as CL_LANG OF 'FOXBIN2PRG.PRG' loLang = _SCREEN.o_FoxBin2Prg_Lang STORE '' TO lcVirtualMeta STORE 0 TO lnPos1, lnPos2, lnLastPos, tnPropsAndValues_Count, I @@ -5084,14 +5105,17 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION * tcLine (!@ IN/OUT) Línea a separar del comentario * tcComment (@? OUT) Comentario *--------------------------------------------------------------------------------------------------- + * NOTA: Recordar que esta función suele usarse junto a Set_Line(), que quita TABS y espacios a la izquierda. + *--------------------------------------------------------------------------------------------------- LPARAMETERS tcLine, tcComment LOCAL ln_AT_Cmt tcComment = '' ln_AT_Cmt = AT( '&'+'&', tcLine) IF ln_AT_Cmt > 0 - tcComment = LTRIM( SUBSTR( tcLine, ln_AT_Cmt + 2 ) ) - tcLine = RTRIM( LEFT( tcLine, ln_AT_Cmt - 1 ), 0, CHR(9), ' ' ) && Quito TABS y espacios + *tcComment = LTRIM( SUBSTR( tcLine, ln_AT_Cmt + 2 ) ) + tcComment = SUBSTR( tcLine, ln_AT_Cmt + 2 ) + tcLine = RTRIM( LEFT( tcLine, ln_AT_Cmt - 1 ), 0, CHR(9), ' ' ) && Quito TABS y espacios de la derecha de la línea de código ENDIF RELEASE tcLine, tcComment @@ -5184,8 +5208,8 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION EXTERNAL ARRAY ta_ID_Bloques, taLineasExclusion TRY - LOCAL lnBloques, I, X, lnPrimerID, lnLen_IDFinBQ, lnID_Bloques_Count, lcWord, lnAnidamientos, lcLine, lcPrevLine - LOCAL loLang as CL_LANG OF 'FOXBIN2PRG.PRG' + LOCAL lnBloques, I, X, lnPrimerID, lnLen_IDFinBQ, lnID_Bloques_Count, lcWord, lnAnidamientos, lcLine, lcPrevLine ; + , loLang as CL_LANG OF 'FOXBIN2PRG.PRG' loLang = _SCREEN.o_FoxBin2Prg_Lang DIMENSION taLineasExclusion(tnCodeLines), taBloquesExclusion(1,2) STORE 0 TO tnBloquesExclusion, lnPrimerID, I, X @@ -5205,10 +5229,12 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION ENDIF *-- Búsqueda del ID de inicio de bloque - WITH THIS AS c_conversor_prg_a_bin OF 'FOXBIN2PRG.PRG' + WITH THIS AS C_CONVERSOR_BASE OF 'FOXBIN2PRG.PRG' FOR I = 1 TO tnCodeLines * Reduzco los espacios. Ej: '#IF .F. && cmt' ==> '#IF .F.&&cmt' - lcLine = LTRIM( STRTRAN( STRTRAN( CHRTRAN( taCodeLines(I), CHR(9), ' ' ), ' ', ' ' ), ' ', ' ' ) ) + *lcLine = LTRIM( STRTRAN( STRTRAN( CHRTRAN( taCodeLines(I), CHR(9), ' ' ), ' ', ' ' ), ' ', ' ' ) ) + *lcLine = LTRIM( CHRTRAN( taCodeLines(I), CHR(9), ' ' ) ) + lcLine = LTRIM( taCodeLines(I), 0, CHR(9), ' ' ) IF .lineIsOnlyCommentAndNoMetadata( @lcLine ) *-- Optimización: Excluyo las líneas que solo son comentarios @@ -5217,7 +5243,8 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION LOOP ENDIF - lnPrimerID = 0 + lcLine = UPPER( LEFT( lcLine,1 ) ) + UPPER( LTRIM( SUBSTR( lcLine, 2 ) ) ) + lnPrimerID = 0 FOR X = 1 TO lnID_Bloques_Count lnLen_IDFinBQ = LEN( ta_ID_Bloques(X,2) ) @@ -5238,13 +5265,17 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION * Búsqueda del ID de fin de bloque FOR I = I + 1 TO tnCodeLines * Reduzco los espacios. Ej: '#IF .F. && cmt' ==> '#IF .F.&&cmt' - lcLine = LTRIM( STRTRAN( STRTRAN( CHRTRAN( taCodeLines(I), CHR(9), ' ' ), ' ', ' ' ), ' ', ' ' ) ) + *lcLine = LTRIM( STRTRAN( STRTRAN( CHRTRAN( taCodeLines(I), CHR(9), ' ' ), ' ', ' ' ), ' ', ' ' ) ) + *lcLine = LTRIM( CHRTRAN( taCodeLines(I), CHR(9), ' ' ) ) + lcLine = LTRIM( taCodeLines(I), 0, CHR(9), ' ' ) taLineasExclusion(I) = .T. IF .lineIsOnlyCommentAndNoMetadata( @lcLine ) LOOP ENDIF + lcLine = UPPER( LEFT( lcLine,1 ) ) + UPPER( LTRIM( SUBSTR( lcLine, 2 ) ) ) + DO CASE CASE lnPrimerID = 1 AND .elTextoEvaluadoEsElTokenIndicado( @lcLine, @ta_ID_Bloques, 0, X, 1 ) ; AND NOT .currentLineIsPreviousLineContinuation( @taCodeLines, I ) @@ -5276,7 +5307,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -5301,21 +5332,31 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION PROCEDURE lineIsOnlyCommentAndNoMetadata + *--------------------------------------------------------------------------------------------------- + * PARÁMETROS: (v=Pasar por valor | @=Pasar por referencia) (!=Obligatorio | ?=Opcional) (IN/OUT) + * tcLine (!@ IN/OUT) Línea a separar del comentario + * tcComment (@? OUT) Comentario + *--------------------------------------------------------------------------------------------------- + * NOTA: Recordar que esta función suele usarse junto a Set_Line(), que quita TABS y espacios a la izquierda. + *--------------------------------------------------------------------------------------------------- LPARAMETERS tcLine, tcComment - LOCAL lllineIsOnlyCommentAndNoMetadata, ln_AT_Cmt + LOCAL lllineIsOnlyCommentAndNoMetadata, ln_AT_Cmt, lcStr - THIS.get_SeparatedLineAndComment( @tcLine, @tcComment ) + WITH THIS AS C_CONVERSOR_BASE OF 'FOXBIN2PRG.PRG' + .get_SeparatedLineAndComment( @tcLine, @tcComment ) + *lcStr = LTRIM( tcLine, 0, CHR(9), ' ' ) - DO CASE - CASE LEFT(tcLine,2) == '*<' - tcComment = tcLine + DO CASE + CASE LEFT(tcLine,2) == '*<' + tcComment = tcLine - CASE EMPTY(tcLine) OR LEFT(tcLine, 1) == '*' OR LEFT(tcLine + ' ', 5) == 'NOTE ' && Vacía o Comentarios - lllineIsOnlyCommentAndNoMetadata = .T. + CASE EMPTY(tcLine) OR LEFT(tcLine, 1) == '*' OR UPPER(LEFT(tcLine + ' ', 5)) == 'NOTE ' && Vacía o Comentarios + lllineIsOnlyCommentAndNoMetadata = .T. - ENDCASE + ENDCASE + ENDWITH - RELEASE tcLine, tcComment, ln_AT_Cmt + RELEASE tcLine, tcComment, ln_AT_Cmt, lcStr RETURN lllineIsOnlyCommentAndNoMetadata ENDPROC @@ -5341,10 +5382,10 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION tcComentario = '' *-- Limpieza de caracteres sin uso - IF INLIST(tcValue, '..\', '..\..\' ) THEN - *MESSAGEBOX( 'Encontrado valor "' + tcValue + '" en propiedad "' + tcProp, 4096, PROGRAM() ) - *tcValue = '' - ENDIF + *IF INLIST(tcValue, '..\', '..\..\' ) THEN + * MESSAGEBOX( 'Encontrado valor "' + tcValue + '" en propiedad "' + tcProp, 4096, PROGRAM() ) + * tcValue = '' + *ENDIF *-- Ajustes de algunos casos especiales DO CASE @@ -5438,8 +5479,9 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION LPARAMETERS tcOperation, tcPropName TRY - LOCAL lcPropName, lcClass, lnPos, loEx AS EXCEPTION - LOCAL loLang as CL_LANG OF 'FOXBIN2PRG.PRG' + LOCAL lcPropName, lcClass, lnPos ; + , loEx AS EXCEPTION ; + , loLang as CL_LANG OF 'FOXBIN2PRG.PRG' loLang = _SCREEN.o_FoxBin2Prg_Lang lcPropName = tcPropName tcOperation = UPPER(EVL(tcOperation,'')) @@ -5457,7 +5499,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION OTHERWISE *-- Soporte de evaluación de propiedades por clase evaluada WITH THIS - #IF .T. &&USED("foxbin2prg_keywords") THEN + #IF .F. &&USED("foxbin2prg_keywords") THEN lcClass = ICASE( .c_ClaseActual == 'grid', 'all' ; , .c_ClaseActual == 'form', 'all' ; , .c_ClaseActual == 'pageframe', 'all' ; @@ -5604,7 +5646,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION ENDCASE CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -5733,7 +5775,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -5756,7 +5798,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION WITH THIS AS conversor_base OF "FOXBIN2PRG.PRG" *-- (TODAS) => Antes era solo FORM - #IF .T. + #IF .F. *-- 03/04/2015 FDBOZZO *-- Quise comparar la velocidad de los ASCAN(array) contra un SEEK a una tabla de propiedades con índice, y resulta que para *-- unas 1500 propiedades casi no hay diferencias (10 segundos en unos 1600 archivos) :( @@ -5968,7 +6010,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION CATCH TO loEx loEx.USERVALUE = 'lcPropsFile = ' + lcPropsFile - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -5981,10 +6023,25 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION PROCEDURE writeLog - LPARAMETERS tcText + LPARAMETERS tcText, tnTimestamp TRY - THIS.c_TextLog = THIS.c_TextLog + TTOC(DATETIME(),3) + ' ' + EVL(tcText,'') + CR_LF + WITH THIS AS c_conversor_base OF 'FOXBIN2PRG.PRG' + IF EVL(tnTimestamp,0) = 1 THEN + *-- Format: Timestamp__Text + .c_TextLog = .c_TextLog + TTOC(DATETIME(),3) + ' ' + ENDIF + + *-- Format: Text + .c_TextLog = .c_TextLog + EVL(tcText,'') + + IF EVL(tnTimestamp,0) = 2 THEN + *-- Format: Text__Timestamp + .c_TextLog = .c_TextLog + ' ' + TTOC(DATETIME(),3) + ENDIF + + .c_TextLog = .c_TextLog + CR_LF + ENDWITH CATCH ENDTRY ENDPROC @@ -5994,8 +6051,10 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION LPARAMETERS tcText TRY - THIS.c_TextErr = THIS.c_TextErr + EVL(tcText,'') + CR_LF - THIS.l_Error = .T. + WITH THIS AS conversor_base OF "FOXBIN2PRG.PRG" + .c_TextErr = .c_TextErr + EVL(tcText,'') + CR_LF + .l_Error = .T. + ENDWITH CATCH ENDTRY ENDPROC @@ -6125,12 +6184,14 @@ DEFINE CLASS c_conversor_prg_a_bin AS C_CONVERSOR_BASE LOCAL llBloqueEncontrado, laPropsAndValues(1,2), lnPropsAndValues_Count IF LEFT( tcLine + ' ', LEN(C_FB2PRG_META_I) + 1 ) == C_FB2PRG_META_I + ' ' - llBloqueEncontrado = .T. + WITH THIS AS c_conversor_prg_a_bin OF foxbin2prg.prg + llBloqueEncontrado = .T. - *-- Metadatos del módulo - THIS.get_ListNamesWithValuesFrom_InLine_MetadataTag( @tcLine, @laPropsAndValues, @lnPropsAndValues_Count, C_FB2PRG_META_I, C_FB2PRG_META_F ) - toModulo._Version = THIS.get_ValueByName_FromListNamesWithValues( 'Version', 'N', @laPropsAndValues ) - toModulo._SourceFile = THIS.get_ValueByName_FromListNamesWithValues( 'SourceFile', 'C', @laPropsAndValues ) + *-- Metadatos del módulo + .get_ListNamesWithValuesFrom_InLine_MetadataTag( @tcLine, @laPropsAndValues, @lnPropsAndValues_Count, C_FB2PRG_META_I, C_FB2PRG_META_F ) + toModulo._Version = .get_ValueByName_FromListNamesWithValues( 'Version', 'N', @laPropsAndValues ) + toModulo._SourceFile = .get_ValueByName_FromListNamesWithValues( 'SourceFile', 'C', @laPropsAndValues ) + ENDWITH ENDIF RELEASE toModulo, tcLine, taCodeLines, I, tnCodeLines @@ -6559,25 +6620,26 @@ DEFINE CLASS c_conversor_prg_a_bin AS C_CONVERSOR_BASE lcMemo = '' IF toClase._Prop_Count > 0 - THIS.AvanceDelProceso( 'Generating Props for Class ' + toClase._Nombre + '...', 0, 1, 2 ) - THIS.c_ClaseActual = LOWER(toClase._BaseClass) - DIMENSION laPropsAndValues( toClase._Prop_Count, 3 ) - ACOPY( toClase._Props, laPropsAndValues ) - lnPropsAndValues_Count = toClase._Prop_Count + WITH THIS AS c_conversor_prg_a_bin OF foxbin2prg.prg + .AvanceDelProceso( 'Generating Props for Class ' + toClase._Nombre + '...', 0, 1, 2 ) + .c_ClaseActual = LOWER(toClase._BaseClass) + DIMENSION laPropsAndValues( toClase._Prop_Count, 3 ) + ACOPY( toClase._Props, laPropsAndValues ) + lnPropsAndValues_Count = toClase._Prop_Count - *-- REORDENO LAS PROPIEDADES - THIS.sortPropsAndValues( @laPropsAndValues, lnPropsAndValues_Count, 2 ) + *-- REORDENO LAS PROPIEDADES + .sortPropsAndValues( @laPropsAndValues, lnPropsAndValues_Count, 2 ) - *-- ARMO EL MEMO A DEVOLVER - FOR I = 1 TO lnPropsAndValues_Count - lcMemo = lcMemo + laPropsAndValues(I,1) + ' = ' + laPropsAndValues(I,2) + CR_LF - ENDFOR - + *-- ARMO EL MEMO A DEVOLVER + FOR I = 1 TO lnPropsAndValues_Count + lcMemo = lcMemo + laPropsAndValues(I,1) + ' = ' + laPropsAndValues(I,2) + CR_LF + ENDFOR + ENDWITH ENDIF && toClase._Prop_Count > 0 CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -6605,20 +6667,21 @@ DEFINE CLASS c_conversor_prg_a_bin AS C_CONVERSOR_BASE lcMemo = '' IF toObjeto._Prop_Count > 0 - THIS.c_ClaseActual = LOWER(toObjeto._BaseClass) - DIMENSION laPropsAndValues( toObjeto._Prop_Count, 2 ) - ACOPY( toObjeto._Props, laPropsAndValues ) + WITH THIS AS c_conversor_prg_a_bin OF foxbin2prg.prg + .c_ClaseActual = LOWER(toObjeto._BaseClass) + DIMENSION laPropsAndValues( toObjeto._Prop_Count, 2 ) + ACOPY( toObjeto._Props, laPropsAndValues ) - *-- REORDENO LAS PROPIEDADES - THIS.sortPropsAndValues( @laPropsAndValues, toObjeto._Prop_Count, 2 ) + *-- REORDENO LAS PROPIEDADES + .sortPropsAndValues( @laPropsAndValues, toObjeto._Prop_Count, 2 ) - *-- ARMO EL MEMO A DEVOLVER - FOR I = 1 TO toObjeto._Prop_Count - lcMemo = lcMemo + laPropsAndValues(I,1) + ' = ' + laPropsAndValues(I,2) + CR_LF - ENDFOR - + *-- ARMO EL MEMO A DEVOLVER + FOR I = 1 TO toObjeto._Prop_Count + lcMemo = lcMemo + laPropsAndValues(I,1) + ' = ' + laPropsAndValues(I,2) + CR_LF + ENDFOR + ENDWITH ENDIF RELEASE toObjeto, toClase, I, laPropsAndValues @@ -7040,7 +7103,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS C_CONVERSOR_BASE ENDWITH && THIS CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -7060,7 +7123,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS C_CONVERSOR_BASE PROCEDURE set_Line LPARAMETERS tcLine, taCodeLines, I - tcLine = LTRIM( taCodeLines(I), 0, ' ', CHR(9) ) + tcLine = LTRIM( taCodeLines(I), 0, CHR(9), ' ' ) ENDPROC @@ -7078,8 +7141,9 @@ DEFINE CLASS c_conversor_prg_a_bin AS C_CONVERSOR_BASE #ENDIF TRY - LOCAL llEsProcedureDeClase, loProcedure AS CL_PROCEDURE OF 'FOXBIN2PRG.PRG' - LOCAL loLang as CL_LANG OF 'FOXBIN2PRG.PRG' + LOCAL llEsProcedureDeClase ; + , loProcedure AS CL_PROCEDURE OF 'FOXBIN2PRG.PRG' ; + , loLang as CL_LANG OF 'FOXBIN2PRG.PRG' loLang = _SCREEN.o_FoxBin2Prg_Lang loProcedure = NULL @@ -7130,7 +7194,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS C_CONVERSOR_BASE ENDWITH && THIS CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -7278,7 +7342,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS C_CONVERSOR_BASE ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -7330,7 +7394,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS C_CONVERSOR_BASE llBloqueEncontrado = .T. STORE '' TO lcDefinedPAM, lcItem, lcMethods - WITH THIS + WITH THIS AS c_conversor_prg_a_bin OF foxbin2prg.prg FOR I = I + 1 TO tnCodeLines .set_Line( @tcLine, @taCodeLines, I ) @@ -7382,7 +7446,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS C_CONVERSOR_BASE CATCH TO loEx lnCodError = loEx.ERRORNO - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -7553,7 +7617,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS C_CONVERSOR_BASE ENDWITH && THIS CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -7692,7 +7756,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS C_CONVERSOR_BASE ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -8034,7 +8098,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS C_CONVERSOR_BASE ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -8115,7 +8179,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS C_CONVERSOR_BASE ENDWITH && THIS CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -8214,7 +8278,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS C_CONVERSOR_BASE ENDWITH && THIS CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -8391,7 +8455,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin ENDIF ENDIF - .writeLog( C_TAB + '+ ' + loLang.C_INCLUDING_CLASS_LOC + ' ' + JUSTFNAME( lcInputFile_Class ) ) + .writeLog( C_TAB + C_TAB + '+ ' + loLang.C_INCLUDING_CLASS_LOC + ' ' + JUSTFNAME( lcInputFile_Class ) ) *-- addProcessedFile( tcFile, tcInOutType, tcProcessed, tcHasErrors, tcSupported, tcExpanded ) IF toFoxBin2Prg.addProcessedFile( lcInputFile_Class, 'I', 'P1', 'E0', 'S1', 'X1' ) THEN @@ -8447,7 +8511,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin CATCH TO toEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -8683,7 +8747,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin CATCH TO loEx lnCodError = loEx.ERRORNO - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -8789,7 +8853,7 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin ENDIF ENDIF - .writeLog( C_TAB + '+ ' + loLang.C_INCLUDING_CLASS_LOC + ' ' + JUSTFNAME( lcInputFile_Class ) ) + .writeLog( C_TAB + C_TAB + '+ ' + loLang.C_INCLUDING_CLASS_LOC + ' ' + JUSTFNAME( lcInputFile_Class ) ) *-- addProcessedFile( tcFile, tcInOutType, tcProcessed, tcHasErrors, tcSupported, tcExpanded ) IF toFoxBin2Prg.addProcessedFile( lcInputFile_Class, 'I', 'P1', 'E0', 'S1', 'X1' ) THEN @@ -8841,7 +8905,7 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin CATCH TO toEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -9075,7 +9139,7 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -9168,7 +9232,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin CATCH TO toEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -9291,7 +9355,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin CATCH TO loEx lnCodError = loEx.ERRORNO - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -9383,7 +9447,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin ENDWITH && THIS CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -9466,7 +9530,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -9521,7 +9585,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -9576,7 +9640,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -9638,7 +9702,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -9701,7 +9765,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -9764,7 +9828,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -9827,7 +9891,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -9894,7 +9958,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -9980,7 +10044,7 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin CATCH TO loEx lnCodError = loEx.ERRORNO - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -10073,7 +10137,7 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin CATCH TO loEx lnCodError = loEx.ERRORNO - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -10140,7 +10204,7 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin ENDWITH && THIS CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -10199,7 +10263,7 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin loEx.USERVALUE = 'PropName=[' + TRANSFORM(tcPropName) + '], Value=[' + TRANSFORM(lcValue) + ']' ENDIF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -10249,7 +10313,7 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -10342,7 +10406,7 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -10423,7 +10487,7 @@ DEFINE CLASS c_conversor_prg_a_dbf AS c_conversor_prg_a_bin CATCH TO loEx lnCodError = loEx.ERRORNO - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -10572,7 +10636,7 @@ DEFINE CLASS c_conversor_prg_a_dbf AS c_conversor_prg_a_bin + 'lcFieldDef="' + TRANSFORM(lcFieldDef) + '"' + CR_LF ; + 'lcCreateTable="' + TRANSFORM(lcCreateTable) + '"' - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -10646,7 +10710,7 @@ DEFINE CLASS c_conversor_prg_a_dbf AS c_conversor_prg_a_bin ENDWITH && THIS CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -10799,7 +10863,7 @@ DEFINE CLASS c_conversor_prg_a_dbc AS c_conversor_prg_a_bin LOOP && Salteo este miembro porque no concuerda con los anotados ENDIF - .writeLog( C_TAB + '+ ' + loLang.C_INCLUDING_MEMBER_LOC + ' ' + JUSTFNAME( lcInputFile_Class ) ) + .writeLog( C_TAB + C_TAB + '+ ' + loLang.C_INCLUDING_MEMBER_LOC + ' ' + JUSTFNAME( lcInputFile_Class ) ) *-- addProcessedFile( tcFile, tcInOutType, tcProcessed, tcHasErrors, tcSupported, tcExpanded ) IF toFoxBin2Prg.addProcessedFile( lcInputFile_Class, 'I', 'P1', 'E0', 'S1', 'X1' ) THEN @@ -10877,7 +10941,7 @@ DEFINE CLASS c_conversor_prg_a_dbc AS c_conversor_prg_a_bin CATCH TO loEx lnCodError = loEx.ERRORNO - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -10929,7 +10993,7 @@ DEFINE CLASS c_conversor_prg_a_dbc AS c_conversor_prg_a_bin CATCH TO loEx lnCodError = loEx.ERRORNO - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -11010,7 +11074,7 @@ DEFINE CLASS c_conversor_prg_a_dbc AS c_conversor_prg_a_bin ENDWITH && THIS CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -11079,7 +11143,7 @@ DEFINE CLASS c_conversor_prg_a_dbc AS c_conversor_prg_a_bin ENDWITH && THIS CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -11211,7 +11275,7 @@ DEFINE CLASS c_conversor_prg_a_mnx AS c_conversor_prg_a_bin CATCH TO loEx lnCodError = loEx.ERRORNO - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -11276,7 +11340,7 @@ DEFINE CLASS c_conversor_prg_a_mnx AS c_conversor_prg_a_bin ENDWITH && THIS CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -11312,7 +11376,7 @@ DEFINE CLASS c_conversor_prg_a_mnx AS c_conversor_prg_a_bin CATCH TO loEx lnCodError = loEx.ERRORNO - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -11500,7 +11564,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS C_CONVERSOR_BASE ENDWITH && THIS CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -11572,7 +11636,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS C_CONVERSOR_BASE ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -11651,7 +11715,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS C_CONVERSOR_BASE ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -11787,7 +11851,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS C_CONVERSOR_BASE ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -11885,7 +11949,6 @@ DEFINE CLASS c_conversor_bin_a_prg AS C_CONVERSOR_BASE DIMENSION laLineas(lnFin) ENDIF - *-- Si encuentra la cabecera de un PROCEDURE, la saltea IF llProcedure lnOffset = 1 @@ -11897,15 +11960,13 @@ DEFINE CLASS c_conversor_bin_a_prg AS C_CONVERSOR_BASE ENDFOR IF llProcedure AND tlKeepProcHeader - laLineas(lnInicio) = C_TAB + laLineas(lnInicio) - laLineas(lnFin) = C_TAB + laLineas(lnFin) - lcMethod = CR_LF + laLineas(lnInicio) + lcMethod + CR_LF + laLineas(lnFin) + lcMethod = CR_LF + C_TAB + laLineas(lnInicio) + lcMethod + CR_LF + C_TAB + laLineas(lnFin) ENDIF lcMethod = SUBSTR(lcMethod,3) && Quito el primer ENTER (CR+LF) CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -11937,7 +11998,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS C_CONVERSOR_BASE ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -11976,7 +12037,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS C_CONVERSOR_BASE ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -12107,7 +12168,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS C_CONVERSOR_BASE ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -12200,9 +12261,8 @@ DEFINE CLASS c_conversor_bin_a_prg AS C_CONVERSOR_BASE lnLine_Len = LEN( laLine(I) ) lcLastLine = lcLine - lcLine = laLine(I) + toFoxBin2Prg.set_Line( @lcLine, @laLine, I ) .get_SeparatedLineAndComment( @lcLine ) - lcLine = LTRIM( lcLine, 0, C_TAB, ' ' ) DO CASE CASE laLineasExclusion(I) @@ -12347,7 +12407,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS C_CONVERSOR_BASE ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -12427,7 +12487,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS C_CONVERSOR_BASE ENDTEXT CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -12534,7 +12594,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS C_CONVERSOR_BASE ENDWITH && THIS CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -12961,7 +13021,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS C_CONVERSOR_BASE ENDTEXT CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -13038,7 +13098,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS C_CONVERSOR_BASE *ENDIF *!* CATCH TO loEx - *!* IF THIS.l_Debug AND _VFP.STARTMODE = 0 + *!* IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 *!* SET STEP ON *!* ENDIF @@ -13477,7 +13537,7 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg CATCH TO toEx THIS.set_UserValue(@toEx) - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -13819,7 +13879,7 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg CATCH TO toEx THIS.set_UserValue(@toEx) - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -14168,7 +14228,7 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg toEx.USERVALUE = toEx.USERVALUE + loLang.C_DUPLICATED_FILE_LOC + ': ' + loReg.NAME ENDCASE - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -14557,7 +14617,7 @@ DEFINE CLASS c_conversor_pjm_a_prg AS c_conversor_bin_a_prg toEx.USERVALUE = toEx.USERVALUE + loLang.C_DUPLICATED_FILE_LOC + ': ' + loReg.NAME ENDCASE - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -14740,7 +14800,7 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg CATCH TO toEx THIS.set_UserValue(@toEx) - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -14909,7 +14969,7 @@ DEFINE CLASS c_conversor_dbf_a_prg AS c_conversor_bin_a_prg *!* + UPPER(JUSTSTEM(THIS.c_InputFile)) + '.campo tag nombreclave)' ENDCASE - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -15100,7 +15160,7 @@ DEFINE CLASS c_conversor_dbc_a_prg AS c_conversor_bin_a_prg CATCH TO toEx THIS.set_UserValue(@toEx) - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -15189,7 +15249,7 @@ DEFINE CLASS c_conversor_mnx_a_prg AS c_conversor_bin_a_prg CATCH TO toEx THIS.set_UserValue(@toEx) - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -15218,7 +15278,7 @@ DEFINE CLASS CL_CUS_BASE AS CUSTOM _MEMBERDATA = [] ; + [] ; - + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -15228,7 +15288,7 @@ DEFINE CLASS CL_CUS_BASE AS CUSTOM + [] c_TextErr = '' - l_Debug = .F. + n_Debug = 0 PROCEDURE INIT @@ -15239,7 +15299,7 @@ DEFINE CLASS CL_CUS_BASE AS CUSTOM SET SAFETY OFF SET TABLEPROMPT OFF - THIS.l_Debug = (_VFP.STARTMODE=0) + THIS.n_Debug = IIF(_VFP.STARTMODE=0, 1, 0) ENDPROC @@ -15255,7 +15315,7 @@ DEFINE CLASS CL_CUS_BASE AS CUSTOM * I (v! IN ) Número de línea en análisis *--------------------------------------------------------------------------------------------------- LPARAMETERS tcLine, taCodeLines, I - tcLine = LTRIM( taCodeLines(I), 0, ' ', CHR(9) ) + tcLine = LTRIM( taCodeLines(I), 0, CHR(9), ' ' ) ENDPROC @@ -15265,14 +15325,17 @@ DEFINE CLASS CL_CUS_BASE AS CUSTOM * tcLine (!@ IN/OUT) Línea a separar del comentario * tcComment (@? OUT) Comentario *--------------------------------------------------------------------------------------------------- + * NOTA: Recordar que esta función suele usarse junto a Set_Line(), que quita TABS y espacios a la izquierda. + *--------------------------------------------------------------------------------------------------- LPARAMETERS tcLine, tcComment LOCAL ln_AT_Cmt tcComment = '' ln_AT_Cmt = AT( '&'+'&', tcLine) IF ln_AT_Cmt > 0 - tcComment = LTRIM( SUBSTR( tcLine, ln_AT_Cmt + 2 ) ) - tcLine = RTRIM( LEFT( tcLine, ln_AT_Cmt - 1 ), 0, CHR(9), ' ' ) && Quito TABS y espacios + *tcComment = LTRIM( SUBSTR( tcLine, ln_AT_Cmt + 2 ) ) + tcComment = SUBSTR( tcLine, ln_AT_Cmt + 2 ) + tcLine = RTRIM( LEFT( tcLine, ln_AT_Cmt - 1 ), 0, CHR(9), ' ' ) && Quito TABS y espacios de la derecha de la línea de código ENDIF RELEASE tcLine, tcComment @@ -15304,7 +15367,7 @@ DEFINE CLASS CL_COL_BASE AS COLLECTION , PARENT, PARENTCLASS, TAG _MEMBERDATA = [] ; - + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -15312,7 +15375,7 @@ DEFINE CLASS CL_COL_BASE AS COLLECTION + [] ; + [] - l_Debug = .F. + n_Debug = 0 _Saved = .F. && Indica si la información fue leida y guardada en las propiedades. @@ -15324,7 +15387,7 @@ DEFINE CLASS CL_COL_BASE AS COLLECTION SET SAFETY OFF SET TABLEPROMPT OFF - THIS.l_Debug = (_VFP.STARTMODE=0) + THIS.n_Debug = IIF(_VFP.STARTMODE=0, 1, 0) ENDPROC @@ -15340,7 +15403,7 @@ DEFINE CLASS CL_COL_BASE AS COLLECTION * I (v! IN ) Número de línea en análisis *--------------------------------------------------------------------------------------------------- LPARAMETERS tcLine, taCodeLines, I - tcLine = LTRIM( taCodeLines(I), 0, ' ', CHR(9) ) + tcLine = LTRIM( taCodeLines(I), 0, CHR(9), ' ' ) ENDPROC @@ -15350,14 +15413,17 @@ DEFINE CLASS CL_COL_BASE AS COLLECTION * tcLine (!@ IN/OUT) Línea a separar del comentario * tcComment (@? OUT) Comentario *--------------------------------------------------------------------------------------------------- + * NOTA: Recordar que esta función suele usarse junto a Set_Line(), que quita TABS y espacios a la izquierda. + *--------------------------------------------------------------------------------------------------- LPARAMETERS tcLine, tcComment LOCAL ln_AT_Cmt tcComment = '' ln_AT_Cmt = AT( '&'+'&', tcLine) IF ln_AT_Cmt > 0 - tcComment = LTRIM( SUBSTR( tcLine, ln_AT_Cmt + 2 ) ) - tcLine = RTRIM( LEFT( tcLine, ln_AT_Cmt - 1 ), 0, CHR(9), ' ' ) && Quito TABS y espacios + *tcComment = LTRIM( SUBSTR( tcLine, ln_AT_Cmt + 2 ) ) + tcComment = SUBSTR( tcLine, ln_AT_Cmt + 2 ) + tcLine = RTRIM( LEFT( tcLine, ln_AT_Cmt - 1 ), 0, CHR(9), ' ' ) && Quito TABS y espacios de la derecha de la línea de código ENDIF RELEASE tcLine, tcComment @@ -16031,7 +16097,7 @@ DEFINE CLASS CL_PROJECT AS CL_COL_BASE ENDWITH && THIS CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -16076,7 +16142,7 @@ DEFINE CLASS CL_PROJECT AS CL_COL_BASE CATCH TO loEx lnCodError = loEx.ERRORNO - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -16122,7 +16188,7 @@ DEFINE CLASS CL_PROJECT AS CL_COL_BASE ENDWITH && THIS CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -16424,7 +16490,7 @@ DEFINE CLASS CL_DBC_BASE AS CL_CUS_BASE CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -16876,7 +16942,7 @@ DEFINE CLASS CL_DBC_BASE AS CL_CUS_BASE CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -16945,7 +17011,7 @@ DEFINE CLASS CL_DBC_BASE AS CL_CUS_BASE CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -17130,7 +17196,7 @@ DEFINE CLASS CL_DBC_BASE AS CL_CUS_BASE ENDWITH && THIS CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -17291,7 +17357,7 @@ DEFINE CLASS CL_DBC AS CL_DBC_BASE loEx.USERVALUE = 'I=' + TRANSFORM(I) + ', PropName=[' + TRANSFORM(lcPropName) + '], Value=[' + TRANSFORM(lcValue) + ']' ENDIF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -17390,7 +17456,7 @@ DEFINE CLASS CL_DBC AS CL_DBC_BASE CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -17477,7 +17543,7 @@ DEFINE CLASS CL_DBC AS CL_DBC_BASE CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -17580,7 +17646,7 @@ DEFINE CLASS CL_DBC_CONNECTIONS AS CL_DBC_COL_BASE loEx.USERVALUE = 'I=' + TRANSFORM(I) + ', tcLine=' + TRANSFORM(tcLine) ENDIF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -17637,7 +17703,7 @@ DEFINE CLASS CL_DBC_CONNECTIONS AS CL_DBC_COL_BASE ENDWITH CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -17687,7 +17753,7 @@ DEFINE CLASS CL_DBC_CONNECTIONS AS CL_DBC_COL_BASE ENDWITH CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -17802,7 +17868,7 @@ DEFINE CLASS CL_DBC_CONNECTION AS CL_DBC_BASE loEx.USERVALUE = 'I=' + TRANSFORM(I) + ', tcLine=' + TRANSFORM(tcLine) + ', PropName=[' + TRANSFORM(lcPropName) + '], Value=[' + TRANSFORM(lcValue) + ']' ENDIF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -17854,7 +17920,7 @@ DEFINE CLASS CL_DBC_CONNECTION AS CL_DBC_BASE ENDWITH CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -17982,7 +18048,7 @@ DEFINE CLASS CL_DBC_TABLES AS CL_DBC_COL_BASE loEx.USERVALUE = 'I=' + TRANSFORM(I) + ', tcLine=' + TRANSFORM(tcLine) ENDIF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -18044,7 +18110,7 @@ DEFINE CLASS CL_DBC_TABLES AS CL_DBC_COL_BASE loEx.USERVALUE = loEx.USERVALUE + CR_LF + "loTable._Name = " + TRANSFORM(loTable._Name) ENDIF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -18097,7 +18163,7 @@ DEFINE CLASS CL_DBC_TABLES AS CL_DBC_COL_BASE ENDWITH CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -18227,7 +18293,7 @@ DEFINE CLASS CL_DBC_TABLE AS CL_DBC_BASE loEx.USERVALUE = 'I=' + TRANSFORM(I) + ', tcLine=' + TRANSFORM(tcLine) + ', PropName=[' + TRANSFORM(lcPropName) + '], Value=[' + TRANSFORM(lcValue) + ']' ENDIF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -18300,7 +18366,7 @@ DEFINE CLASS CL_DBC_TABLE AS CL_DBC_BASE CATCH TO loEx loEx.USERVALUE = loEx.USERVALUE + CR_LF + "tcTable = " + RTRIM(TRANSFORM(tcTable)) - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -18457,7 +18523,7 @@ DEFINE CLASS CL_DBC_FIELDS_DB AS CL_DBC_COL_BASE loEx.USERVALUE = 'I=' + TRANSFORM(I) + ', tcLine=' + TRANSFORM(tcLine) ENDIF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -18514,7 +18580,7 @@ DEFINE CLASS CL_DBC_FIELDS_DB AS CL_DBC_COL_BASE ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -18593,7 +18659,7 @@ DEFINE CLASS CL_DBC_FIELDS_DB AS CL_DBC_COL_BASE loEx.USERVALUE = loEx.USERVALUE + CR_LF + "tcTable = " + RTRIM(TRANSFORM(tcTable)) + ", loField._Name = " + TRANSFORM(loField._Name) ENDIF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -18652,7 +18718,7 @@ DEFINE CLASS CL_DBC_FIELDS_DB AS CL_DBC_COL_BASE ENDWITH CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -18753,7 +18819,7 @@ DEFINE CLASS CL_DBC_FIELD_DB AS CL_DBC_BASE loEx.USERVALUE = 'I=' + TRANSFORM(I) + ', tcLine=' + TRANSFORM(tcLine) + ', PropName=[' + TRANSFORM(lcPropName) + '], Value=[' + TRANSFORM(lcValue) + ']' ENDIF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -18802,7 +18868,7 @@ DEFINE CLASS CL_DBC_FIELD_DB AS CL_DBC_BASE CATCH TO loEx loEx.USERVALUE = loEx.USERVALUE + CR_LF + "tcTable = " + RTRIM(TRANSFORM(tcTable)) + ", tcField = " + RTRIM(TRANSFORM(tcField)) - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -18918,7 +18984,7 @@ DEFINE CLASS CL_DBC_INDEXES_DB AS CL_DBC_COL_BASE loEx.USERVALUE = 'I=' + TRANSFORM(I) + ', tcLine=' + TRANSFORM(tcLine) ENDIF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -18978,7 +19044,7 @@ DEFINE CLASS CL_DBC_INDEXES_DB AS CL_DBC_COL_BASE loEx.USERVALUE = loEx.USERVALUE + CR_LF + "loIndex._Name = " + RTRIM(loIndex._Name) ENDIF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -19037,7 +19103,7 @@ DEFINE CLASS CL_DBC_INDEXES_DB AS CL_DBC_COL_BASE ENDWITH CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -19124,7 +19190,7 @@ DEFINE CLASS CL_DBC_INDEX_DB AS CL_DBC_BASE loEx.USERVALUE = 'I=' + TRANSFORM(I) + ', tcLine=' + TRANSFORM(tcLine) + ', PropName=[' + TRANSFORM(lcPropName) + '], Value=[' + TRANSFORM(lcValue) + ']' ENDIF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -19164,7 +19230,7 @@ DEFINE CLASS CL_DBC_INDEX_DB AS CL_DBC_BASE CATCH TO loEx loEx.USERVALUE = loEx.USERVALUE + CR_LF + "tcIndex = " + RTRIM(TRANSFORM(tcIndex)) - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -19271,7 +19337,7 @@ DEFINE CLASS CL_DBC_VIEWS AS CL_DBC_COL_BASE loEx.USERVALUE = 'I=' + TRANSFORM(I) + ', tcLine=' + TRANSFORM(tcLine) ENDIF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -19332,7 +19398,7 @@ DEFINE CLASS CL_DBC_VIEWS AS CL_DBC_COL_BASE loEx.USERVALUE = loEx.USERVALUE + CR_LF + "loView._Name = " + RTRIM(loView._Name) ENDIF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -19385,7 +19451,7 @@ DEFINE CLASS CL_DBC_VIEWS AS CL_DBC_COL_BASE ENDWITH CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -19555,7 +19621,7 @@ DEFINE CLASS CL_DBC_VIEW AS CL_DBC_BASE loEx.USERVALUE = 'I=' + TRANSFORM(I) + ', tcLine=' + TRANSFORM(tcLine) + ', PropName=[' + TRANSFORM(lcPropName) + '], Value=[' + TRANSFORM(lcValue) + ']' ENDIF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -19656,7 +19722,7 @@ DEFINE CLASS CL_DBC_VIEW AS CL_DBC_BASE CATCH TO loEx loEx.USERVALUE = loEx.USERVALUE + CR_LF + "tcView = " + RTRIM(TRANSFORM(tcView)) - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -19855,7 +19921,7 @@ DEFINE CLASS CL_DBC_FIELDS_VW AS CL_DBC_COL_BASE loEx.USERVALUE = 'I=' + TRANSFORM(I) + ', tcLine=' + TRANSFORM(tcLine) ENDIF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -19913,7 +19979,7 @@ DEFINE CLASS CL_DBC_FIELDS_VW AS CL_DBC_COL_BASE ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -19990,7 +20056,7 @@ DEFINE CLASS CL_DBC_FIELDS_VW AS CL_DBC_COL_BASE loEx.USERVALUE = loEx.USERVALUE + CR_LF + "loField._Name = " + RTRIM(loField._Name) ENDIF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -20050,7 +20116,7 @@ DEFINE CLASS CL_DBC_FIELDS_VW AS CL_DBC_COL_BASE ENDWITH CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -20160,7 +20226,7 @@ DEFINE CLASS CL_DBC_FIELD_VW AS CL_DBC_BASE loEx.USERVALUE = 'I=' + TRANSFORM(I) + ', tcLine=' + TRANSFORM(tcLine) + ', PropName=[' + TRANSFORM(lcPropName) + '], Value=[' + TRANSFORM(lcValue) + ']' ENDIF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -20210,7 +20276,7 @@ DEFINE CLASS CL_DBC_FIELD_VW AS CL_DBC_BASE CATCH TO loEx loEx.USERVALUE = loEx.USERVALUE + CR_LF + "tcView.tcField = " + TRANSFORM(tcView) + '.' + TRANSFORM(tcField) - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -20335,7 +20401,7 @@ DEFINE CLASS CL_DBC_RELATIONS AS CL_DBC_COL_BASE loEx.USERVALUE = 'I=' + TRANSFORM(I) + ', tcLine=' + TRANSFORM(tcLine) ENDIF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -20389,7 +20455,7 @@ DEFINE CLASS CL_DBC_RELATIONS AS CL_DBC_COL_BASE ENDWITH CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -20452,7 +20518,7 @@ DEFINE CLASS CL_DBC_RELATIONS AS CL_DBC_COL_BASE ENDWITH CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -20539,7 +20605,7 @@ DEFINE CLASS CL_DBC_RELATION AS CL_DBC_BASE loEx.USERVALUE = 'I=' + TRANSFORM(I) + ', tcLine=' + TRANSFORM(tcLine) + ', PropName=[' + TRANSFORM(lcPropName) + '], Value=[' + TRANSFORM(lcValue) + ']' ENDIF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -20582,7 +20648,7 @@ DEFINE CLASS CL_DBC_RELATION AS CL_DBC_BASE ENDWITH CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -20748,7 +20814,7 @@ DEFINE CLASS CL_DBF_TABLE AS CL_CUS_BASE loEx.USERVALUE = 'I=' + TRANSFORM(I) + ', PropName=[' + TRANSFORM(lcPropName) + '], Value=[' + TRANSFORM(lcValue) + ']' ENDIF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -20871,7 +20937,7 @@ DEFINE CLASS CL_DBF_TABLE AS CL_CUS_BASE CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -20950,7 +21016,7 @@ DEFINE CLASS CL_DBF_FIELDS AS CL_COL_BASE loEx.USERVALUE = 'I=' + TRANSFORM(I) + ', tcLine=' + TRANSFORM(tcLine) ENDIF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -21007,7 +21073,7 @@ DEFINE CLASS CL_DBF_FIELDS AS CL_COL_BASE CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -21120,7 +21186,7 @@ DEFINE CLASS CL_DBF_FIELD AS CL_CUS_BASE loEx.USERVALUE = 'I=' + TRANSFORM(I) + ', tcLine=' + TRANSFORM(tcLine) + ', PropName=[' + TRANSFORM(lcPropName) + '], Value=[' + TRANSFORM(lcValue) + ']' ENDIF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -21171,7 +21237,7 @@ DEFINE CLASS CL_DBF_FIELD AS CL_CUS_BASE CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -21241,7 +21307,7 @@ DEFINE CLASS CL_DBF_INDEXES AS CL_COL_BASE loEx.USERVALUE = 'I=' + TRANSFORM(I) + ', tcLine=' + TRANSFORM(tcLine) ENDIF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -21304,7 +21370,7 @@ DEFINE CLASS CL_DBF_INDEXES AS CL_COL_BASE CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -21392,7 +21458,7 @@ DEFINE CLASS CL_DBF_INDEX AS CL_CUS_BASE loEx.USERVALUE = 'I=' + TRANSFORM(I) + ', tcLine=' + TRANSFORM(tcLine) + ', PropName=[' + TRANSFORM(lcPropName) + '], Value=[' + TRANSFORM(lcValue) + ']' ENDIF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -21437,7 +21503,7 @@ DEFINE CLASS CL_DBF_INDEX AS CL_CUS_BASE CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -21536,7 +21602,7 @@ DEFINE CLASS CL_DBF_RECORDS AS CL_COL_BASE CATCH TO loEx loEx.UserValue = loEx.UserValue + 'tc_DBF_Conversion_Condition = [' + TRANSFORM(tc_DBF_Conversion_Condition) + ']' + CR_LF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -21629,7 +21695,7 @@ DEFINE CLASS CL_DBF_RECORD AS CL_CUS_BASE CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -21835,7 +21901,7 @@ DEFINE CLASS CL_PROJ_SRV_HEAD AS CL_CUS_BASE ENDWITH && THIS CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -21883,7 +21949,7 @@ DEFINE CLASS CL_PROJ_SRV_HEAD AS CL_CUS_BASE ENDWITH && THIS CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -21928,7 +21994,7 @@ DEFINE CLASS CL_PROJ_SRV_HEAD AS CL_CUS_BASE ENDWITH && THIS CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -22002,7 +22068,7 @@ DEFINE CLASS CL_PROJ_SRV_DATA AS CL_CUS_BASE ENDWITH && THIS CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -22037,7 +22103,7 @@ DEFINE CLASS CL_PROJ_SRV_DATA AS CL_CUS_BASE ENDWITH CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -22186,7 +22252,7 @@ DEFINE CLASS CL_MENU_COL_BASE AS CL_COL_BASE ENDWITH && THIS CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -22416,7 +22482,7 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -22477,7 +22543,7 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -22531,7 +22597,7 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -22690,7 +22756,7 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE ENDWITH && THIS CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -22748,7 +22814,7 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -22895,7 +22961,7 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -22941,14 +23007,14 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE SELECT TABLABIN WITH THIS AS CL_MENU OF 'FOXBIN2PRG.PRG' - IF .l_Debug + IF .n_Debug > 0 THEN toConversor.writeLog( '' ) toConversor.writeLog( REPLICATE('-',80) ) ENDIF .UpdateMenu_Recursivo( THIS, 0, @toConversor ) - IF .l_Debug + IF .n_Debug > 0 THEN toConversor.writeLog( REPLICATE('-',80) ) ENDIF ENDWITH && THIS @@ -22989,7 +23055,7 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE INSERT INTO TABLABIN FROM NAME loReg - IF .l_Debug + IF .n_Debug > 0 THEN toConversor.writeLog( REPLICATE(C_TAB,tnNivel) ; + 'ObjType=' + TRANSFORM(loReg.ObjType) ; + ', ObjCode=' + TRANSFORM(loReg.OBJCODE) ; @@ -23006,7 +23072,7 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE ENDIF ELSE - IF .l_Debug + IF .n_Debug > 0 THEN *toConversor.writeLog( REPLICATE(C_TAB,tnNivel) ; + 'Objeto [' + toObj.CLASS + '] no contiene el objeto oReg (nivel ' + TRANSFORM(tnNivel) + ')' ) toConversor.writeLog( REPLICATE(C_TAB,tnNivel) + TEXTMERGE(C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC) ) @@ -23022,7 +23088,7 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE ENDWITH && THIS CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -23170,7 +23236,7 @@ DEFINE CLASS CL_MENU_BARPOP AS CL_MENU_COL_BASE ENDWITH && THIS CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -23256,7 +23322,7 @@ DEFINE CLASS CL_MENU_BARPOP AS CL_MENU_COL_BASE CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -23393,7 +23459,7 @@ DEFINE CLASS CL_MENU_OPTION AS CL_MENU_COL_BASE llBloqueEncontrado = .F. CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -23575,7 +23641,7 @@ DEFINE CLASS CL_MENU_OPTION AS CL_MENU_COL_BASE CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -23784,7 +23850,7 @@ DEFINE CLASS CL_MENU_OPTION AS CL_MENU_COL_BASE ENDIF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -23879,7 +23945,7 @@ DEFINE CLASS CL_MENU_OPTION AS CL_MENU_COL_BASE CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -23968,7 +24034,7 @@ DEFINE CLASS CL_MENU_OPTION AS CL_MENU_COL_BASE lcText = lcText + CR_LF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -24068,7 +24134,7 @@ DEFINE CLASS CL_MENU_OPTION AS CL_MENU_COL_BASE lcText = lcText + CR_LF CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -24099,7 +24165,7 @@ DEFINE CLASS CL_DBF_UTILS AS SESSION + [] ; + [] ; + [] ; - + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -24122,7 +24188,7 @@ DEFINE CLASS CL_DBF_UTILS AS SESSION LOCAL THIS AS CL_DBF_UTILS OF 'FOXBIN2PRG.PRG' #ENDIF - l_Debug = .F. + n_Debug = 0 c_Backlink_DBC_Name = '' c_FileName = '' n_FileSize = 0 @@ -24260,7 +24326,7 @@ DEFINE CLASS CL_DBF_UTILS AS SESSION IF loEx.ErrorNo = 11 THEN && Function argument value, type, or count is invalid loEx.UserValue = loEx.UserValue + '> POSSIBLE CORRUPTED TABLE' + CR_LF ENDIF - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -24577,7 +24643,7 @@ DEFINE CLASS CL_DBF_UTILS AS SESSION CATCH TO loEx - IF THIS.l_Debug AND _VFP.STARTMODE = 0 + IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 SET STEP ON ENDIF @@ -24686,7 +24752,7 @@ DEFINE CLASS CL_CFG AS CUSTOM + [] ; + [] ; + [] ; - + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -24717,7 +24783,7 @@ DEFINE CLASS CL_CFG AS CUSTOM c_Foxbin2prg_FullPath = '' c_Foxbin2prg_ConfigFile = '' c_CurDir = '' - l_Debug = NULL + n_Debug = NULL l_ShowErrors = NULL n_ShowProgressbar = NULL l_Recompile = NULL @@ -24758,7 +24824,7 @@ DEFINE CLASS CL_CFG AS CUSTOM .c_Foxbin2prg_FullPath = toParentCFG.c_Foxbin2prg_FullPath .c_Foxbin2prg_ConfigFile = toParentCFG.c_Foxbin2prg_ConfigFile .c_CurDir = toParentCFG.c_CurDir - .l_Debug = toParentCFG.l_Debug + .n_Debug = toParentCFG.n_Debug .l_ShowErrors = toParentCFG.l_ShowErrors .n_ShowProgressbar = toParentCFG.n_ShowProgressbar .l_Recompile = toParentCFG.l_Recompile @@ -24811,6 +24877,7 @@ DEFINE CLASS CL_LANG AS Custom C_BACKLINK_CANT_UPDATE_BL_LOC = "" C_BACKLINK_OF_TABLE_LOC = "" C_BACKUP_OF_LOC = "" + C_CACHING_CONFIG_FOR_DIRECTORY_LOC = "" C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC = "" C_CLASSPERFILE_OPTIMIZATION_BASE_ALREADY_PROCESSED_LOC = "" C_CONFIGFILE_LOC = "" @@ -24851,6 +24918,7 @@ DEFINE CLASS CL_LANG AS Custom C_INCLUDING_CLASS_LOC = "" C_INCLUDING_MEMBER_LOC = "" C_INCORRECT_VFP9_VERSION__MISSING_SP1_LOC = "" + C_INHERITING_FROM_LOC = "" C_INTERACTIVE_DIRECTORY_SELECTION_LOC = "" C_IS_A_FILE_LOC = "" C_IS_A_DIRECTORY_LOC = "" @@ -24917,8 +24985,9 @@ DEFINE CLASS CL_LANG AS Custom .C_BACKLINK_CANT_UPDATE_BL_LOC = "Impossible de mettre à jour backlink" .C_BACKLINK_OF_TABLE_LOC = "de la table" .C_BACKUP_OF_LOC = "Faire de sauvegarde des: " + .C_CACHING_CONFIG_FOR_DIRECTORY_LOC = "La mise en cache pour le répertoire config" .C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC = "Vous ne pouvez pas générer un fichier [<>] car il est en lecture seule" - .C_CLASSPERFILE_OPTIMIZATION_BASE_ALREADY_PROCESSED_LOC = "OPTIMISATION: Fichier de base [<>] Déjà traitée, en sautant traitement de fichier [<>]" + .C_CLASSPERFILE_OPTIMIZATION_BASE_ALREADY_PROCESSED_LOC = "OPTIMISATION: Fichier de base [<>] Déjà traitée, en sautant traitement de fichier [<>]" .C_CONFIGFILE_LOC = "Utilisation du fichier de configuration:" .C_CONVERSION_CANCELLED_BY_USER_LOC = "Conversion Annulé par l'utilisateur" .C_CONVERT_ALL_FILES_IN_A_PROJECT_LOC = "Convertir tous les fichiers dans un Projet" @@ -24961,6 +25030,7 @@ DEFINE CLASS CL_LANG AS Custom .C_INCLUDING_CLASS_LOC = "classe, y compris" .C_INCLUDING_MEMBER_LOC = "membres, y compris" .C_INCORRECT_VFP9_VERSION__MISSING_SP1_LOC = "SourceSafe Compatibilité ModeIncorrect VFP 9 Version - SP1 manquant! Prévue: 3504 ou plus tard, réelle: " + VERSION(4) + .C_INHERITING_FROM_LOC = "Héritant de" .C_INTERACTIVE_DIRECTORY_SELECTION_LOC = "Sélection répertoire interactive" .C_IS_A_FILE_LOC = "est un FICHIER" .C_IS_A_DIRECTORY_LOC = "est un RÉPERTOIRE" @@ -25005,8 +25075,9 @@ DEFINE CLASS CL_LANG AS Custom .C_BACKLINK_CANT_UPDATE_BL_LOC = "No se pudo actualizar el backlink" .C_BACKLINK_OF_TABLE_LOC = "de la tabla" .C_BACKUP_OF_LOC = "Haciendo Backup de: " + .C_CACHING_CONFIG_FOR_DIRECTORY_LOC = "Cacheando configuración para directorio" .C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC = "No se puede generar el archivo [<>] porque es ReadOnly" - .C_CLASSPERFILE_OPTIMIZATION_BASE_ALREADY_PROCESSED_LOC = "OPTIMIZACIÓN: El archivo Base [<>] ya fue procesado, ignorando el procesamiento del archivo [<>]" + .C_CLASSPERFILE_OPTIMIZATION_BASE_ALREADY_PROCESSED_LOC = "OPTIMIZACIÓN: El archivo Base [<>] ya fue procesado, ignorando el procesamiento del archivo [<>]" .C_CONFIGFILE_LOC = "Usando archivo de configuración:" .C_CONVERSION_CANCELLED_BY_USER_LOC = "Conversión Cancelada por el usuario" .C_CONVERT_ALL_FILES_IN_A_PROJECT_LOC = "Convertir todos los archivos de un Proyecto" @@ -25050,6 +25121,7 @@ DEFINE CLASS CL_LANG AS Custom .C_INCLUDING_CLASS_LOC = "Incluyendo clase" .C_INCLUDING_MEMBER_LOC = "Incluyendo miembro" .C_INCORRECT_VFP9_VERSION__MISSING_SP1_LOC = "Versión Incorrecta de VFP 9 - Falta el SP1! Esperado: 3504 o posterior, actual: " + VERSION(4) + .C_INHERITING_FROM_LOC = "Heredando desde" .C_INTERACTIVE_DIRECTORY_SELECTION_LOC = "Selección Interactiva de Directorio" .C_IS_A_FILE_LOC = "es un ARCHIVO" .C_IS_A_DIRECTORY_LOC = "es un DIRECTORIO" @@ -25060,8 +25132,8 @@ DEFINE CLASS CL_LANG AS Custom .C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC = "* No se ha encontrado el programa de capitalización de nombres [<>]" .C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC = "Objeto [<>] no contiene el objeto oReg (nivel <>)" .C_ONLY_SETNAME_AND_GETNAME_RECOGNIZED_LOC = "Operación no reconocida. Solo re reconoce SETNAME y GETNAME." - .C_OPTIMIZATION_SKIPPING_ALREADY_PROCESSED_FILE_LOC = "Optimización: saltando el archivo ya procesado [<<(lcFile)>>]" - .C_OPTION_LOC = "Option" + .C_OPTIMIZATION_SKIPPING_ALREADY_PROCESSED_FILE_LOC = "OPTIMIZACIÓN: saltando el archivo ya procesado [<<(lcFile)>>]" + .C_OPTION_LOC = "Opción" .C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = "La clase externa no coincide con las clases internas" .C_OUTER_MEMBER_DOES_NOT_MATCH_INNER_MEMBERS_LOC = "El miembro externo no coincide con los miembros internos" .C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = "Optimización: el archivo de salida [<>] no se sobreescribe por ser igual al generado." @@ -25093,8 +25165,9 @@ DEFINE CLASS CL_LANG AS Custom .C_BACKLINK_CANT_UPDATE_BL_LOC = "Backlink kann nicht aktualisiert werden" .C_BACKLINK_OF_TABLE_LOC = "von Tabelle" .C_BACKUP_OF_LOC = "Erzeuge Backup von: " + .C_CACHING_CONFIG_FOR_DIRECTORY_LOC = "Caching Config für Verzeichnis" .C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC = "Kann Datei [<>] nicht generieren, da sie schreibgeschützt ist" - .C_CLASSPERFILE_OPTIMIZATION_BASE_ALREADY_PROCESSED_LOC = "Optimierung: Grund Datei [<>] Schon verarbeitet, das Überspringen Verarbeitung der Datei [<>]" + .C_CLASSPERFILE_OPTIMIZATION_BASE_ALREADY_PROCESSED_LOC = "Optimierung: Grund Datei [<>] Schon verarbeitet, das Überspringen Verarbeitung der Datei [<>]" .C_CONFIGFILE_LOC = "Benutze Konfigurationsdatei:" .C_CONVERSION_CANCELLED_BY_USER_LOC = "Konvertierung durch den Benutzer abgebrochen" .C_CONVERT_ALL_FILES_IN_A_PROJECT_LOC = "alle Dateien in einem Projekt zu konvertieren" @@ -25137,6 +25210,7 @@ DEFINE CLASS CL_LANG AS Custom .C_INCLUDING_CLASS_LOC = "einschließlich Klasse" .C_INCLUDING_MEMBER_LOC = "inklusive Mitglied" .C_INCORRECT_VFP9_VERSION__MISSING_SP1_LOC = "Source Kompatibilität ModeIncorrect VFP 9 Version - Fehlende SP1! Erwartet: 3504 oder später, aktuell:" + VERSION(4) + .C_INHERITING_FROM_LOC = "Erben von" .C_INTERACTIVE_DIRECTORY_SELECTION_LOC = "Auswählen interaktive Verzeichnis" .C_IS_A_FILE_LOC = "ist eine DATEI" .C_IS_A_DIRECTORY_LOC = "ist ein VERZEICHNIS" @@ -25181,8 +25255,9 @@ DEFINE CLASS CL_LANG AS Custom .C_BACKLINK_CANT_UPDATE_BL_LOC = "Could not update backlink" .C_BACKLINK_OF_TABLE_LOC = "of table" .C_BACKUP_OF_LOC = "Doing Backup of: " + .C_CACHING_CONFIG_FOR_DIRECTORY_LOC = "Caching config for directory" .C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC = "Cannot generate file [<>] because it is ReadOnly" - .C_CLASSPERFILE_OPTIMIZATION_BASE_ALREADY_PROCESSED_LOC = "Optimization: Base File [<>] already processed, skipping processing of file [<>]" + .C_CLASSPERFILE_OPTIMIZATION_BASE_ALREADY_PROCESSED_LOC = "Optimization: Base File [<>] already processed, skipping processing of file [<>]" .C_CONFIGFILE_LOC = "Using configuration file:" .C_CONVERSION_CANCELLED_BY_USER_LOC = "Conversion Cancelled by the user" .C_CONVERT_ALL_FILES_IN_A_PROJECT_LOC = "Convert all files in a Project" @@ -25225,6 +25300,7 @@ DEFINE CLASS CL_LANG AS Custom .C_INCLUDING_CLASS_LOC = "Including class" .C_INCLUDING_MEMBER_LOC = "Including member" .C_INCORRECT_VFP9_VERSION__MISSING_SP1_LOC = "Incorrect VFP 9 version - Missing SP1! Expected: 3504 or later, actual: " + VERSION(4) + .C_INHERITING_FROM_LOC = "Inheriting from" .C_INTERACTIVE_DIRECTORY_SELECTION_LOC = "Interactive Directory Selection" .C_IS_A_FILE_LOC = "is a FILE" .C_IS_A_DIRECTORY_LOC = "is a DIRECTORY"