From 8c72f73e8ae8aca3ebdc057439d810286b40fd3f Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Wed, 4 Mar 2015 22:19:50 +0100 Subject: [PATCH 1/7] =?UTF-8?q?Changeset:=20666=20-=20Arreglo=20del=20comp?= =?UTF-8?q?letado=20del=20path=20relativo=20-=20Agregada=20la=20generaci?= =?UTF-8?q?=C3=B3n=20del=20PJX/PJ2=20cuando=20se=20indica=20"file.pjx",=20?= =?UTF-8?q?"*"=20(Lutz=20Scheffler)=20-=20Mejoras=20en=20la=20traducci?= =?UTF-8?q?=C3=B3n=20al=20alem=C3=A1n=20(Lutz=20Scheffler)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- foxbin2prg.exe | Bin 514065 -> 514325 bytes foxbin2prg.prg | 52 +++++++++++++++++++++++++++++++----------------- foxbin2prg_de.h | 36 ++++++++++++++++----------------- 3 files changed, 52 insertions(+), 36 deletions(-) diff --git a/foxbin2prg.exe b/foxbin2prg.exe index c936c2284edca4824e0b30cdd059586af43f5451..b986c008636f1e7fe11ec4e36bea6b62ad4ad40b 100644 GIT binary patch delta 16277 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∈D`kHu~ziO zS`Z6XVXfGXwP0sYjDI`~bA}_+AvZVZMU)AiI0@?jQn6b+#uqHiM1fg4`Vh<~YW{2; z?MCWd0Gb}slN^ll`!q$DigVE$<>7Kx{8AAIBjPk?TRJTbB*63tl{ ziUFOFC^C>J9)a_q4UV?79_)-ap%1jW+?J{vfawhr z=2Gn+nH&EIP#k!|+CMTk1_UaOp|xftPi~x!U#IY@it9SKad2>$;+a&}GdNgHGn*@p zg>@a==p4c-Pph5FoI_A=OC{(~-5_oZ!*_jt!%KA?+?d}+aXhH&;Kr&N2mZ4{?H`#N z(>o|7eCs;WJCxz5*IDu4U+&lbk-1URMR9bk>)^&8A{9rUx(;p}5~DbV)pc-VUaaC6 zRoB6dWpishU)1$*x} zx(>%d7=)4<&xpDnZXAv5&x?$&>)^&cHIA?AI=HcPs8V80T?aQFFe;86bsgMTw!ox# zj@0#VqfNHrxLVi2jeT+y$HTe~Zq$rW9Hgr46Oy^neWc=Wt?S^%!z0;~b7~(O*J3sO EKdD_(=l}o! delta 16157 zcmZ{r2V4|a_xI1v?wu|4CRJF(-T-^SM5>Au1uU^4!Xm4%-~z^I%o;UOqmR*S^u}Hi zd+ae7OKdU5-csznw^$ODsQCWw4iX;!&&%gC;rBh~+&g#f+&TBmNM>vZnZ7P$ojzBV zELz$(#O{{sCk;GqZ;)&BO>WF+$%irxxG&Rt&56GKRHnPjvo{XRZQDmZ-q?*tzNZQ0 z5$jYMeq@Elg%6aNhF`y}^3zu6XiGV(xAD==5S1#-?y>tT=P0W4@|iE4R#Aet{rlZb zRQ>JOc87=R)Dyz$AN>&!n^U(P~;D!j#M zo~u}1xq7_X1#Rs1NBa|17wl07VpSpbF$W4&t?dsFSZf?Ml(Xhe6&{FxR+B0R^~^rv zV1u|&rwV_ZMkP+8q8B=9(k-o1vzRU^a^?8Y&OpmwmTR=yR}~rx!Vz3~wVj>HStGBC z2>XCTzV?>~ecX0A;R@@#yz;CyVKgi3#zPHN+wENsMR*suIIi!?vvxQ=xxxF|$^QAF zI&z3}IV*6sUpf`0O0i!!6es~gPbaIk*t;C=s503qv~Rt7|#y z?2gWGDUKWAm@Kt@`>_C@1d^{jZHT#2Zbk}1XSh1L9&L9y>Z_VzuXD7G>ZpCd(J0kL z`<$bZn4ZH&2m3B?D`#ijls-L4T&cKeTkTzs1*p#2bC2~@bw>Y5sz!Fh@s_G{_KwG6 z{O-GBX?VRojw_z_ACLLJJ&-0I<*dX*3`FYZVRt=RLju)3+FDxUVb46;Ui#6~KKH26 zKIeqHRKwGLnCJcG^1aGgj5Y-xcJN);Ey$}BTz&;ZHb+ymN zf1BF3{2Jn$;_X&=Io@F>zAeL*6{o$|vZh=9SCmHQs&K?BV{eFw^Zsdz|iJM<_ zi=TPhqmMVVPdVaY=fAa;+xwKWNj{Eg7~*5Ucql*uiF^IK-Sm5mD%-yN_aghlGv0XC zCjBu`3h}k?JQHCLJk{E}bHLkOFY!g!?a^(ZecP#EcH6g{wYFb8Ra^4&6FuX`8c(OF z#@h=|n}fdcuL#7zUNCAJ9T!(WmY%uOQy)@cHU`-LIz3qRrM=&oHjXoQw6nAQRZ;dG zXCm!io{e;S5P<8%Bd-?gc}alX|6Gv$;aOMdPQVxE(!6|wstwEWpa?}k1vMW51k*OinGUGDD(NHCK5-TmzQIo zWr>GGtihjZ+C44?NzZHA!!I_f=Ms#EZ@c3G)X_GqDPx5X8pJ*`(w);URFo>7tHfY* zn=8)_E@w|e?DsF$lJLvplDF?ESRRKc>*3#3-oYMqX^^xg#J=#-VCiwlIQ``b`pYUD z5)O5l{<7wEs^=HIwX_ylNXdwkdsjs9?ZKJ=-XfAEswR}#BAG=}jVpW5oZW0xdrDlz zWXibW$XusKQ$u5^CCB)#G2Z&V$y{QxmRbgzEc{g_^9wZ<8wZ(u~vKqTt3rCuY`2rJ*N^K+p!bCt#sx~>r7E|faLQAfB zaH%z`#Eg->s`y@n))t}5DSiYd(PA=o&Ce<>Hd#hy<>edeM@1R=hwWHM9pgLiG^o1x zT+BS?t1{APvXm4TSxwn_e0(koH5hYWT9qp-Tb;`~Y4~v)^VgRcEu~iB;vqelPg%rJ z_Jhjl3vvGT;{4-zXf&(I=M7`YJfVOE@{t8>u~Vk-za#wJc|8lO&(kezr_&f=jTTlb zUr@+`Rr$O_A)L8|tf|vz;fxW^LgDPhZx*tiZX<*>PFRN!=Bg~Yh`m;Mbr9CB!WvHL z*|;%SKm)9-p=XeABngKrr5Bc3vrT2QtZa~^D&sFpn9*%IrFV(#9G{k+5ucP4pTZ+c znZG8*7#GhIOW8!M*psEKYgkw3u|z5&(o<}qWw^;&Vz%xdr2LVPS*&(st5t70OEYEV zbg>kbmh?>M)-B7LRZvW86rX|8OqQ$yQ-V3)6vcJ3S#ZN2*DEd^6=MuZW{YX#2F2n+ z?_2RK#apd~)}+G0D&B223-UU+@lCwL3r8Hc&1SwspMCeHS^S7>Q;}Fy&C*M(A8k_1 zdg@^@4=Xigc8UAxd&T5V(ZjPW*`_#CK5j#{skm@ZneeE{g)BX@@)3;HXC7=h^n+s7 zP#252r0*84n!{=YjM}PL-6*>tCsuTn-!v8v`A}CLIfwbQX}3-ICGrsd%oww!SvTuo zB_jL3Trf9-TXC)5#y>*u4PIA<;G8L4GLpB8zSN|pxcKypwAA-}cPNGs;%lC>5b41V zeqj#tlYZF4pU+`+rKfwiaV|6ZO#E4it9I81?c+V>vL;gLFMRx5R$m&vpRYlvbnhTP zHWyv>Im92$WnrOT99Ek8P>!kCQfMv6$~TY9vSMNit-X_zdK}{|=P_gax)Vy63m)2P z^B#OsF*{Q(Zg$28MW)!o9Mi)pYbR4lhPl9$UXoQ%)crR;dmd}0{qnS4tz{8@ufTF7bz zjPqCAu9faskudYkgPsQRy$e}bjr3r}Z>aPq;69cI^NNKmq+`!e#phhFK0F5E+>Xm{mTW3098>9Vr@}#E z$p3mCH{q)nG5`LP!j-0;l@ZCNlDxv4Vn^%mnkznEk$)UlCE6oxeGpq%P=GAov6T|w zQx%{zuXH!zVT)PaR^!_!QSMm8xkxTKncbq39Vf_d`^HmTVl@|K#$h#D#M&vI*OuEB zv*2(`J0-%I;)f#}VDd%dz$nG)LS{=b#*>-qxVniQ_@Twj-`f(cxc|*(=6GJd7|X6K zUb(&NTycA!C-Qf{X0;60dMM$6#Jju6fzsAKeB#&4sH)3Xe9eNTPtAP4_}yp-cl(9~ z@c|yPPO=XbP+RI`;Vr*mb)>Dsct8AZ_(!qQR}IRtD9>t4exXQtsY&sfaq$WBhAVzQ z;@^78eun&!Z+NDc>?iFT&2NfstsilhC9IY-XDp9g0zUaE@3n-5`b1Ar!mF*^gH!o` zmaqWt#$32q^}QvKZ(YIy1I){WN3QO}2mJxrr(uGj>=5l~7a)c7<{^kUw zC8&%<0W`DH<3b7M5vlp6W(j6feok@kQE&QA%^s0jT2gGzaU}gXvvv4~ip!ZY@P?6% zge02zk5;VJR$`IErOzzc9rI&@tqq?c<9bxjU zZp!;xn7pc+7Cx8ASw-I1y+jQ&?j>Ken$_@r@KQwj;9+}H@%{ahA6(7CRI&U|1hmsv zC;>{d0teN=$p1U5ovO6|+s(xa{_YwUmeS<4XkP2kZj!1_8I1IiR zt1vh=ms!}XRe1W{$TR})XeN==O9~O&ny*{K{QUhT;rGWjESg{|$~NVcT1_t`et8Y^ z&K{>x+y>4&(p*}nlzzf%*sM7G60`0YV**fIu zZ^HQ>>sX`u)7y!*A(-5_m`?E-c&q5PJ?dXmx?&m;%Nwp|#*RB;6&DkEs!NseUxp2|oU(VMa_i^}t4rCBc~O}xu=i8FM0 zGo-4E?@?(|mR+4B{`m%!koS^!_y*=*XGxl9V8mrrH5inknBJ_jpL_Fy4Jf2{4sbMW z7co%yL#x)|>1>7HUdjD)g}qi)+}Ege1yWvFxQU~RQvxt z9pgV#>~F@l_G5*s4gcc_4wGXBd(EHtzxxT8EbMiv&OT_W!f#)L*B8QGw<@mZ3#x}kZ4ur{uWT3@DcwRsu6$6-=d)~uf#?b=>EAdF3_+SNOv@Y|y}c3jw- zR>gVoKATu*_tEDR^V{KfE(&{iRd~Ov3cno}b3@o8s^X&gp-rfFB>o7!+Zx_eyvn6o z?hA_iKTAUQK(W7B5-lG8@3^!V!rrXvTt_MtetS%Ml?HLmNw!ty*%xZX@OEIKUf5ey zb-2k{;kVgKUrz3Z@UO~PgWwrP#pflmjpD+$v@9j>G~yS_m|xG7 zP$kA)#Nahk2@~n~QXR!pLwLk%Syl*Yg6s~?%mx{Uj79{1H#XNBftI4`W$36Q%NTbKl@gn@4 zs^)=w)D{*H)OdzsR_fq5$2(v*yhvbz>+*u|ajq8tm9zM{iIZZ)Qr(Be$}^kOn{fxB0+6!5u4i zb=L_)x3aRKTjh`IOVJtp!Bx3N$F8FozS6l-uC*Z3Y{6&Htn3o=aFd3_TgbC1!s$-2 znX#!UJ@L&iH4We8(&M$19-p4xB{ik~bnbRt_T&Ao$v#r(G6g1IlLMr8Hz}|~z}-rC zB7lD{Jk2D0*mAV(dmY9m+Z6a*z$e=k*dw6rPJZ#a+(hcJi@V-Hvx`T041VJyOY{xd z%kJ_>&-dPteN~YT=G$(_MpYk0KNNbLqHEuT{#Mbwh5pTf#VwrbnKSplEjN%ayUREQe{@jo z#rxitU8I-pe8_FNw$$F2PrHqdd;0SAx8-{HNObzP940jgD+-&7r%GM@b3{N*%SC5f?sv! zF9lCYXu)wuYnAeqExG%4jReQ^({v{t(@xf2!#ImhVtYq94#GJhf0yEP^r80 zTZ3UjOVd@6(jx66X_v}Fik4KW%c@ZQaZMz9#G*ASrqUhPu9rU69#>^aS(<2dmOj!` zb6kxRNRcj=T~+F6DN8l1tYH`JR+TiScG=BD?J>P=628rj-9xlgB1*)?EQOBQOY|GK zAGi>D>^`Cg;5_hZX#f5Aa;PS}(Ay6Z z1%p2#ve9F}xkE(tU>J`8SA4kr6GsI2GjQ!AupK383!Vl}fqw581__=Co(4VUI8j&d zT<}I{j<32XZ)q|3DD-Z8xa|*K4t@ds=vN|?t@yBSBdY%!k>BsQQW)?Ro}!_(e_*uW zE#L^~r#Mi9(oS&5DWdB*J_G*@cExw!Uvb#MxDI*+z2^)D1ID@O9`uH@L`%SEMrWZH z;qx#mJi37M(*eM=^F%1-=$c^YJr{5?@E!0g=%*Kn_JbdSBQ6m&xQx!hPr=#H{jQ*6 z@JsMa=+CdBFR+AvG}#Zm8y%yvA|3c8^xxOf7Ho5cA>sy6*SJX(4t@f@0lf|1u@b?rz%QWN8YRjEcf=sA(8Fp=^fS00cp>y- ze35zpE(QlSl;}LZMfupAiAKTT(O9CBFeBgxU^}$2r$lwZe}R*r^Ke9fpMe|olPC$tFz`R% zk^6Q|(> zUr2NgJR7_X`YOk?g13YHzQX;UEm0$PqP^fT&`st_)E;~UJQ(`aVu?C~?|_}ZmT3Jl ziAI8D9cB@F+;WK)f?dJiL;qr1A;`$79{lIRFH9-Iw58DF?+ zc!&jx90C3PUWs~u&ER{`8Al`<0{#eWhkkriqPgHn;6}$J8jE8Ucrth!wC%fV60L*b z6bzT3+!NK6I&}VS01slO3f8+i?b5YZGFpPnruB)1c8P(L^i|BXoLg*2Az%PLt8IXve z>tZ9w_9lu1cZ2>FM*+AkxN~PUxnLt$3yuP(K?kO)X$QCmxCiu!G&S7@4+J}>+tf6_ z2i_2UFoiH2g3f(UO}^k_@B-*8>>P36_rX)4PYqPlaPY@q&nz`{7=%8+rA*H z@Ko>(XwSiFItQK(?f~5t8_i?z9B_#ZFuhn!DK)S`z_1m%9LEUo3UI>`HFd->2D}Pv zfwtkR$*17G;5E>Hex#$^J#hR4odV~8yF>eYt)?g7_raZ@n|`aN7(ZN~6Y_sAz&acphHnvY2fFrVH7x*N01tpp zJ%T9%w@0%247xQwNR0PKngtg_k9nr1d*ENdKR}25qoz3l_=_s=d(cbqQD7VR3iv#9 z2|fxO2mk4e{J$O$j+g&CFnA#QSoCJ>W z*3e&p8kzzg0&Wtdp*>+5+5!F;{1Uo5UY8$&KLbyNez&QHSP%wlgJC4V?_CY`gyAeW z9ojDyoq#pSereDPdTOX)O>DW~!rmH68loW+xF^^KyTlU9u4qZmchMxFqVf=-TRWC16G$3Yh+Gi=Ma|DV7R+Kthro{U`TAnAZTdNHyO zVH5|Jkem)d*DPjq9b5+-`#z(aA2DiEmnaVGXJfQzETa-|Z}1uDjguM80gnO)PGz)V z2BSa0bHTTvr_E>7*jA6|M;LYhZZEnD$TYmC zOg+G>z{{Xx-jnGoa2fbRXi;me2JZt$LH~o}C-5_$>G?^x=UvnQp;w z6^7RXWm=qzQGvBcpT9wChsac~2}TU=0G%*Yrq1BnU>h{gm#G)HF?b(zx3Mzif+v6{ zK@UXjb`|_N_;ct3(`0JV6y+WGIkcCJ%hVT!^)SRh@0%r)4ZIb+AKHZC?hEjb;Ei)+ z+Phz-W#AD=r)~#j>hMA){K*xyMRuIum#aU82mod(%9)*N@|H>0(|HTE#=M8(hRT{vRC0kEol~M z>2Gi#I2^hO4pl465I7Bb?$=sk;1KYy(EFBZ$phRF{0Mr$GA-2wM}lXs)Y>R~m6kfg z&=!V1(7kbFfZKsbL+@J+8@L1bHT2_kTFL=;2K%hn(svuQ^Z_^#?6+A<&419+5^#5L zU+Cdmw6qD_8~hEldYhK^f=%EZCu~|OKdGhM*2r`)g#D^TI>VHKM}iwbk3FTO$>4F| z70_o-Yw0WSWN^3hT55ekOMAd}@R93UO1zDew86_KxD@(x6oVn)Rp1^kv@{FHBJdjU zVH+UurIwb%upWl4(21|`r<~xe;E$n?RcL8D_-Akh^lFWc4uP+N&q3!p>F5bq#(uE? zda;|1Lfc|df)9A;XeNrwLEx6)pP;Ye7!Ga&wp|R=(eI%;S^&cU81%JtlvEEka0z$< zbj{W}dIA0g+zt9xqK-=25%t1`6WCQpjZuxdw#QpBI3K!vkdBsupMyiPbu_w2N56pM zu_1j8tuEG4+bGlm!N~t@07)O{C;^5%1X!Ry#W4yz1iS|N2OML-`QXdY_i%gywtz!N zVgNWk0~djFpbK$)4z_}4L0d-a=u7Y<@R!h6ar^-OPcZVo9<}n0aXQ)w!#4=nJyA#V zP%j5{z&!*10{z#QI;sag53V&sM-yl1=mYSd;5E?w7VBs>*cV&u$IxCYb#wt74eks* z;aeTmdIz@`ymhsXW^B??6u8(1!xq3hTXkfEVFtKtw~pct=;$_hGk7qx`J|3&zl(|n zJRkZD>hm=4L$Kz&j_O{+fWS4dWp{dfErx2)^X3r&`{6x(+@Aj)x8l)Ki^k?DePt zE`;Fk73=9~0=PDK1a#wYJ?#d+3(kVR-yBCY?tdx_9a`#XT$G;NVu*%=mqPcA)l({X z9(Y;2o`RG0^fh=VI2w9pcRgJI{|-I~y){iwQY=mmPVJ$m5&bYoFsp@&g1$9KPlLcs zz-a|~YGcvU?N}Q&1{ksdjX%)SUkDfsPKE9>QBMhRm;vw@=)05kv;e#sY@DK}qhDc$ zz{kL^XXz<=k)CdVpMi6seV6O0UOe7>!cc0j!GJgEX*xI>`~&ozAN6?tVHgNQ$PPVO z_Uh>+xEMV5XH4f2Ty+A{B)Bv5f?xGC0K5xa_6HhY(9`$eE8vIFVg>J1g&^O=@!Tt3H zy5Vl1CY|vNgY_N;Qr9q$1-u8`E7(B&>lo+{@HOxl=#`BP? z-Ug2DZJ?8V4736KBlszF-XH_*0N(~rf*zk^px5AM;0r?y)HvUUlXk@v!O$z&7y22?mO{O*T-SBuqaHBcX$)8mKGyJ8-Kn4J0oz&^)lJ9#$^&@x=ym zO2z=eeqS4C!g>RFgWH2+HyP;4PX?L<9uD^1YoOi-4fH424*nea)N!0I1>dZ}&L<3H z%e`r!zAzY32hM?>avxI!ZVz4yyt{*!ao`e^}^DpMYn8M+P}l(kf@_)C+q@ z6D(ZYmvFR@=(-ATI;iWST1u#LC7S6>bR1l(mqfeqRjjQmJ|=*z10=fA7Vr4rw&A!f z_IuX)1shPLrlLsojU;Lof&4!YuoP8l0jkti2r$2= zr8}rn@1ja=2VPyErBf(UXSKjR1J9YHr76?36yFjRGdLARsue}*RB!?~Xs(v>QDmM2 zcLxV7*V2!u5nG_<>jNIT5d|q~!13Ur5y<~r0bl)yx()^_0^)XP={9P-N8nZ9S!ZxE z)Of2<<9!Ey3_TAu-3jnPaN=Dp{d`YL;V8k5flKadX&p+iIIs#=X>!-mBa~d}sGxM< zg+4kujC#Wcu5W|k{qZOWP$2w+0;B^t6$L^P>VcNn|6{FhcKBvR506acjPh)X-#$vSKwi(z9aQK23f$u^;#daD5UJ724t*7(Y4VQoqf@fei ztb^U}VjN}!d5#0d}Va33%BA--M3G=F_MX z77W(KQ)mxtHg!AW%?7*+dNVecrQrJDAx#X_puK?-y5O+{pN0;@-mxFt7VOs*e(V+T ziI`#V8R%))3sxoK{>Q*jXhNn#Zuahq4@TgA;|x?EsaQ_Jf&`y}o`w&2Mc`s^+!qF# zfz*gAH@_6`06Iv9y3ygPPQa1Ur#^H5KEw~ombMP>V*2PsJc&!k|-VGGTr_~+8 zIJL3jm|xu?jBZU8$ENBIVVoSUIQCa}Ob)kckslP#+3Fr)G`CP3_o_RD@$X892I=$7 zk1ULR+bAvYKM+*?$iiriQXCQ09l~hSbWl9+R`&?w<`~7%y}Cmf--}lq1FJiPF)u-J z;7``8eq>>sS?RzZqgVaN!uX^USN(yT@T8NL+9WEi*HsS^#sys!$Ij{wVN6U_97n4= zgmF|i#c{d1Ll}>xD~`XaJC3E}Cd}%ocnnh22uT*kI3#JYHtJP(2;*U7Y~g5M-64!F zeH2GVb%!t(RXT=LcL<}cq_5Hhe*#?fBMal!O2^FV4q+VDUum(jxn zR*vF0RNWzrWa86LX}yM#NlVGON|5+>?>9fPFlx+-gVb-#ctnKJYl!0TsqPTQeU*;- P)g1T)S=rpfs-^!2a3d)% diff --git a/foxbin2prg.prg b/foxbin2prg.prg index d41cd1d..2e1ac33 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -137,6 +137,7 @@ * 25/02/2015 FDBOZZO v1.19.42 Mejora: Hacer algunos mensajes de error más descriptivos (Lutz Scheffler) * 03/03/2015 FDBOZZO v1.19.42 Mejora: Permitir definir el archivo de entrada con un path relativo (Lutz Scheffler) * 03/03/2015 FDBOZZO v1.19.42 Bug Fix scx: Metadato del Dataenvironment no se genera bien cuando el Dataenvironment es renombrado +* 03/03/2015 FDBOZZO v1.19.42 Mejora: Permitir usar máscaras "*" para procesar múltiples proyectos a la vez (Lutz Scheffler) * * *--------------------------------------------------------------------------------------------------- @@ -201,6 +202,7 @@ * 25/02/2015 Lutz Scheffler Reporte de Bug scx/vcx v1.19.41: Procesar solo un nivel de text/endtext, ya que no se admiten más niveles (Arreglado en v1.19.42) * 25/02/2015 Lutz Scheffler Mejora v1.19.41: Hacer algunos mensajes de error más descriptivos (Agregado en v1.19.42) * 03/03/2015 Lutz Scheffler Mejora v1.19.41: Permitir definir el archivo de entrada con un path relativo (Agregado en v1.19.42) +* 28/03/2015 Lutz Scheffler Mejora v1.19.41: Permitir usar máscaras "*" para procesar múltiples proyectos a la vez (Agregado en v1.19.42) * * *--------------------------------------------------------------------------------------------------- @@ -1938,7 +1940,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDIF *-- Ajusto la ruta si no es absoluta - IF lcInputFile_Type == C_FILETYPE_FILE ; + IF LEN(tc_InputFile) > 1 ; AND LEFT(LTRIM(tc_InputFile),2) <> '\\' ; AND SUBSTR(LTRIM(tc_InputFile),2,1) <> ':' THEN tc_InputFile = FULLPATH(tc_InputFile, .c_CurDir) @@ -2275,6 +2277,13 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM USE IN (SELECT("TABLABIN")) + *-- Convierto primero el proyecto + lcFile = tc_InputFile + IF .TieneSoporte_Bin2Prg( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile ) + lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName ) + .writeLog_Flush() + ENDIF + *-- Luego convierto los archivos incluidos FOR I = 1 TO lnFileCount lcFile = laFiles(I,1) @@ -2324,6 +2333,13 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDIF ENDFOR + *-- Convierto primero el proyecto + lcFile = tc_InputFile + IF .TieneSoporte_Bin2Prg( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile ) + lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName ) + .writeLog_Flush() + ENDIF + *-- Luego convierto los archivos incluidos FOR I = 1 TO lnFileCount lcFile = laFiles(I) @@ -22572,11 +22588,11 @@ DEFINE CLASS CL_LANG AS Custom *------------------------------------------------------------------------------------------------------------------------------------------- *-- NOTE: ES MÜSSEN ANFÜHRUNGSZEICHEN BENUTZT WERDEN, ODER SYNTAX ERRORS PASSIEREN BEIM COMPILE. SELTSAM :( *------------------------------------------------------------------------------------------------------------------------------------------- - .C_ASTERISK_EXT_NOT_ALLOWED_LOC = "* und ? Erweiterungen sind nicht erlaubt, da es gefährlich ist (binaries könnten überschrieben werden mit xx2 leeren Dateien)" - .C_BACKLINK_CANT_UPDATE_BL_LOC = "Backlink kann nicht geupdated werden" + .C_ASTERISK_EXT_NOT_ALLOWED_LOC = "Die Erweiterungen * und ? sind nicht erlaubt, da sie gefährlich sind (Binaries könnten mit xx2 leeren Dateien überschrieben werden)" + .C_BACKLINK_CANT_UPDATE_BL_LOC = "Backlink kann nicht aktualisiert werden" .C_BACKLINK_OF_TABLE_LOC = "von Tabelle" - .C_BACKUP_OF_LOC = "Mache Backup von: " - .C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC = "Kann Datei [<>] nicht generieren da sie Schreibgeschützt ist" + .C_BACKUP_OF_LOC = "Erzeuge Backup von: " + .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_CONFIGFILE_LOC = "Benutze Konfigurationsdatei:" .C_CONVERSION_CANCELLED_BY_USER_LOC = "Konvertierung durch den Benutzer abgebrochen" @@ -22588,16 +22604,16 @@ DEFINE CLASS CL_LANG AS Custom .C_CONVERT_FOLDER_QUESTION_LOC = "Welche Umwandlung sollte sich auf die Dateien dieses Verzeichnis durchgeführt werden?" .C_CONVERTER_UNLOAD_LOC = "Konverter wird entladen" .C_CONVERTING_FILE_LOC = "Konvertiere Datei" - .C_DATA_ERROR_CANT_PARSE_UNPAIRING_DOUBLE_QUOTES_LOC = "Datenfehler: Keine Analyse möglich da ungepaarte Anführungszeichen in Zeile <>" + .C_DATA_ERROR_CANT_PARSE_UNPAIRING_DOUBLE_QUOTES_LOC = "Datenfehler: Keine Analyse möglich, da ungepaarte Anführungszeichen in Zeile <> sind." .C_DUPLICATED_FILE_LOC = "Doppelte Datei" .C_DUPLICATED_OBJECT_LOC = "Doppelte Objekt" .C_ENDDEFINE_MARKER_NOT_FOUND_LOC = "Kann keinen Ende Marker [ENDDEFINE] in Zeile <> für die ID [<>] finden" .C_END_MARKER_NOT_FOUND_LOC = "Kann keinen Ende Marker [<>] welcher den Start Marker [<>] in Zeile <> schließt" - .C_END_OF_PROCESS_LOC = "Ende der Prozess" + .C_END_OF_PROCESS_LOC = "Ende desr Prozesses" .C_ERROR_LOC = "FEHLER" .C_ERRORS_FOUND_IN_FILE_LOC = "FEHLER IN FILE GEFUNDEN" - .C_EXTENSION_RECONFIGURATION_LOC = "Erweiterungsneukonfiguration:" - .C_EXTERNAL_CLASS_COUNT_DOES_NOT_MATCH_FOUND_CLASSES_LOC = "Externe Klassenzahl (<< toModulo._ExternalClasses_Count >>) nicht gefunden Klassen entsprechen (<< toModulo._Clases_Count >>) für Datei [<< toFoxBin2Prg.c_InputFile >>]" + .C_EXTENSION_RECONFIGURATION_LOC = "Nneukonfiguration der Erweiterungen:" &&wir wollen es mal nicht übertreiben, mit den zusammengesetzten Substantiven + .C_EXTERNAL_CLASS_COUNT_DOES_NOT_MATCH_FOUND_CLASSES_LOC = "Die Anzahl externee Klassen (<< toModulo._ExternalClasses_Count >>) entspricht nicht der der gefunden Klassen (<< toModulo._Clases_Count >>), Datei: [<< toFoxBin2Prg.c_InputFile >>]" .C_EXTERNAL_CLASS_NAME_WAS_NOT_FOUND_LOC = "Keine externe Klasse gefunden" .C_EXTERNAL_PARAMETERS_LOC = "EXTERNE PARAMETER" .C_FIELD_NOT_FOUND_ON_FILE_STRUCTURE_LOC = "Feld [<>] nicht in der Struktur von Datei <> gefunden" @@ -22612,7 +22628,7 @@ DEFINE CLASS CL_LANG AS Custom + " FOXBIN2PRG 'c:\development\classes\*.vcx' '0' '0' '0' '1' '1'" + CR_LF + CR_LF ; + "Ein Beispiel für die Generierung der TXT von allen VCX in 'c:\development\classes', ohne Anzeige des Fehlerfensters und ohne LOG datei: " + CR_LF ; + " FOXBIN2PRG 'c:\development\classes\*.vc2' '0' '0' '0' '1' '0'" - .C_FOXBIN2PRG_JUST_VFP_9_LOC = "FOXBIN2PRG ist nur für Visual FoxPro 9.0!" + .C_FOXBIN2PRG_JUST_VFP_9_LOC = "FOXBIN2PRG arbeitet nur für Visual FoxPro 9.0!" .C_FOXBIN2PRG_WARN_CAPTION_LOC = "FOXBIN2PRG: WARNUNG!" .C_GENERATED_FILE_SIZE_LOC = "Generierte Dateigröße" .C_GENERATING_BINARY_LOC = "Gene Binary" @@ -22624,31 +22640,31 @@ DEFINE CLASS CL_LANG AS Custom .C_IS_UNSUPPORTED_LOC = "wird nicht unterstützt" .C_LANGUAGE_LOC = "DE" .C_MAIN_EXECUTION_LOC = "HAUPTAUSFÜHRUNGS" - .C_MENU_NOT_IN_VFP9_FORMAT_LOC = "Menu [<>] ist NICHT in VFP 9 Format! - Bitte zuerst nach VFP 9 konvertieren mit MODIFY MENU '<>'" + .C_MENU_NOT_IN_VFP9_FORMAT_LOC = "Menu [<>] ist NICHT in VFP 9 Format! - Bitte zuerst mit MODIFY MENU '<>' nach VFP 9 konvertieren." .C_NAMES_CAPITALIZATION_PROGRAM_FOUND_LOC = "* Programm für Großschreibungssetzung [<>] gefunden" .C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC = "* Programm für Großschreibungssetzung [<>] nicht gefunden" - .C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC = "Objekt [<>] enthält nicht oReg Objekt (level <>)" + .C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC = "Objekt [<>] enthält nicht das oReg Objekt (level <>)" .C_ONLY_SETNAME_AND_GETNAME_RECOGNIZED_LOC = "Befehl nicht erkannt. Nur SETNAME und GETNAME erlaubt." .C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = "Die äußere Klasse nicht die innere Klassifizierung anzeigen lassen" - .C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = "Optimierung: Ausgabedatei [<>] wurde nicht überschrieben da sie dieselbe ist wie die neu generierte." - .C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC = "Optimierung: Ausgabedatei [<>] wurde nicht erneuert da sie neuer ist als die Ursprungsdatei." + .C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = "Optimierung: Ausgabedatei [<>] wurde nicht überschrieben, da sie dieselbe ist wie die neu generierte." + .C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC = "Optimierung: Ausgabedatei [<>] wurde nicht erneuert, da sie neuer ist als die Ursprungsdatei." .C_PRESS_ESC_TO_CANCEL = "Drücken Sie Esc für Abbrechen" - .C_PROCEDURE_NOT_CLOSED_ON_LINE_LOC = "Procedur nicht geschlossen. Letzte Zeile des Codes muss ENDPROC sein. [<>, Recno:<>]" + .C_PROCEDURE_NOT_CLOSED_ON_LINE_LOC = "Prozcedur nicht geschlossen. Letzte Zeile des Codes muss ENDPROC sein. [<>, Recno:<>]" .C_PROCESSING_LOC = "Bearbeite Datei" .C_PROCESS_PROGRESS_LOC = "Bearbeitungsfortschritt:" .C_PROPERTY_NAME_NOT_RECOGNIZED_LOC = "Eigenschaft [<>] nicht erkannt." .C_READING_CFG_VALUES_FROM_DISK_LOC = "LESEWERTE CFG-DATEI AUF DER FESTPLATTE" .C_REPORT_NOT_IN_VFP9_FORMAT_LOC = "Report [<>] ist NICHT in VFP 9 Format! - Bitte zuerst nach VFP 9 konvertieren mit MODIFY REPORT '<>'" .C_REQUESTING_CAPITALIZATION_OF_FILE_LOC = "- Forder Großschreibung für Datei [<>] an" - .C_SCANNING_FILE_AND_DIR_INFO_LOC = "Scannen Datei- und Verzeichnisinformationen für" - .C_SOURCEFILE_LOC = "Source Datei: " + .C_SCANNING_FILE_AND_DIR_INFO_LOC = "Scanne Datei- und Verzeichnisinformationen für" + .C_SOURCEFILE_LOC = "Quell Datei: " .C_SOURCESAFE_COMPATIBILITY_MODE_LOC = "Sourcesafe-Kompatibilitätsmodus" .C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_LOC = "Fehler in Verschachtelungsstruktur. ENDPROC erwartet, aber es wurde ENDDEFINE in Klasse <> (<>), Zeile <> der Datei <> gefunden" .C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_2_LOC = "Fehler in Verschachtelungsstruktur. ENDPROC wurde erwartet, aber es wurde ENDDEFINE in Klasse <> (<>.<>), Zeile <> der Datei <> gefunden" .C_UNKNOWN_CLASS_NAME_LOC = "Unbekannte Klasse [<>]" .C_USING_THIS_SETTINGS_LOC = "Mit dieser einstellung" .C_WARNING_LOC = "WARNUNG!" - .C_WARN_TABLE_ALIAS_ON_INDEX_EXPRESSION_LOC = "WARNUNG!" + CR_LF+ "SICHERSTELLEN DAS KEIN TABELLENALIAS IN DEM INDEXAUSDRUCK BENUTZT WIRD!! (z.B.: index on <>.campo tag keyname)" + .C_WARN_TABLE_ALIAS_ON_INDEX_EXPRESSION_LOC = "WARNUNG!" + CR_LF+ "STELLEN SIE SICHER, DAS KEIN TABELLENALIAS IM INDEXAUSDRUCK BENUTZT WIRD!! (z.B.: index on <>.campo tag keyname)" .C_WITH_ERRORS_LOC = "mit Fehlern" OTHERWISE && English (Inglés) diff --git a/foxbin2prg_de.h b/foxbin2prg_de.h index aeb3074..a643af0 100644 --- a/foxbin2prg_de.h +++ b/foxbin2prg_de.h @@ -3,26 +3,26 @@ *-- NOTE: ES MÜSSEN ANFÜHRUNGSZEICHEN BENUTZT WERDEN, ODER SYNTAX ERRORS PASSIEREN BEIM COMPILE. SELTSAM :( *-- FoxBin2Prg v1.19.38 *------------------------------------------------------------------------------------------------------------------------------------------- -#DEFINE C_ASTERISK_EXT_NOT_ALLOWED_LOC "* und ? Erweiterungen sind nicht erlaubt, da es gefährlich ist (binaries könnten überschrieben werden mit xx2 leeren Dateien)" -#DEFINE C_BACKLINK_CANT_UPDATE_BL_LOC "Backlink kann nicht geupdated werden" +#DEFINE C_ASTERISK_EXT_NOT_ALLOWED_LOC "Die Erweiterungen * und ? sind nicht erlaubt, da sie gefährlich sind (Binaries könnten mit xx2 leeren Dateien überschrieben werden)" +#DEFINE C_BACKLINK_CANT_UPDATE_BL_LOC "Backlink kann nicht aktualisiert werden" #DEFINE C_BACKLINK_OF_TABLE_LOC "von Tabelle" -#DEFINE C_BACKUP_OF_LOC "Mache Backup von: " -#DEFINE C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC "Kann Datei [<>] nicht generieren da sie Schreibgeschützt ist" +#DEFINE C_BACKUP_OF_LOC "Erzeuge Backup von: " +#DEFINE C_CANT_GENERATE_FILE_BECAUSE_IT_IS_READONLY_LOC "Kann Datei [<>] nicht generieren, da sie schreibgeschützt ist" #DEFINE C_CONFIGFILE_LOC "Benutze Konfigurationsdatei:" #DEFINE C_CONVERSION_CANCELLED_BY_USER_LOC "Konvertierung durch den Benutzer abgebrochen" -#DEFINE C_CONVERTER_UNLOAD_LOC "Konverter wird entladen" +#DEFINE C_CONVERTER_UNLOAD_LOC "Konverter wird entladen" &&don't realy grok it even in english #DEFINE C_CONVERTING_FILE_LOC "Konvertiere Datei" -#DEFINE C_DATA_ERROR_CANT_PARSE_UNPAIRING_DOUBLE_QUOTES_LOC "Datenfehler: Keine Analyse möglich da ungepaarte Anführungszeichen in Zeile <>" +#DEFINE C_DATA_ERROR_CANT_PARSE_UNPAIRING_DOUBLE_QUOTES_LOC "Datenfehler: Keine Analyse möglich, da ungepaarte Anführungszeichen in Zeile <> sind." #DEFINE C_DUPLICATED_FILE_LOC "Doppelte Datei" #DEFINE C_ENDDEFINE_MARKER_NOT_FOUND_LOC "Kann keinen Ende Marker [ENDDEFINE] in Zeile <> für die ID [<>] finden" #DEFINE C_END_MARKER_NOT_FOUND_LOC "Kann keinen Ende Marker [<>] welcher den Start Marker [<>] in Zeile <> schließt" -#DEFINE C_END_OF_PROCESS_LOC "Ende der Prozess" +#DEFINE C_END_OF_PROCESS_LOC "Ende desr Prozesses" #DEFINE C_FIELD_NOT_FOUND_ON_FILE_STRUCTURE_LOC "Feld [<>] nicht in der Struktur von Datei <> gefunden" #DEFINE C_FILE_DOESNT_EXIST_LOC "Datei existiert nicht:" #DEFINE C_FILE_NAME_IS_NOT_SUPPORTED_LOC "Datei [<<.c_InputFile>>] wird nicht unterstützt" #DEFINE C_FILE_NOT_FOUND_LOC "Datei nicht gefunden" -#DEFINE C_EXTENSION_RECONFIGURATION_LOC "Erweiterungsneukonfiguration:" -#DEFINE C_EXTERNAL_CLASS_COUNT_DOES_NOT_MATCH_FOUND_CLASSES_LOC "Externe Klassenzahl (<< toModulo._ExternalClasses_Count >>) nicht gefunden Klassen entsprechen (<< toModulo._Clases_Count >>) für Datei [<< toFoxBin2Prg.c_InputFile >>]" +#DEFINE C_EXTENSION_RECONFIGURATION_LOC " Nneukonfiguration der Erweiterungen:" &&wir wollen es mal nicht übertreiben, mit den zusammengesetzten Substantiven +#DEFINE C_EXTERNAL_CLASS_COUNT_DOES_NOT_MATCH_FOUND_CLASSES_LOC "Die Anzahl externee Klassen (<< toModulo._ExternalClasses_Count >>) entspricht nicht der der gefunden Klassen (<< toModulo._Clases_Count >>), Datei: [<< toFoxBin2Prg.c_InputFile >>]" #DEFINE C_EXTERNAL_CLASS_NAME_DOES_NOT_FOUND_LOC "Externe Klasse (<>) nicht in der Datei [<>] gefunden" #DEFINE C_FOXBIN2PRG_ERROR_CAPTION_LOC "FOXBIN2PRG: FEHLER!!" #DEFINE C_FOXBIN2PRG_INFO_SINTAX_LOC "FOXBIN2PRG: SYNTAX INFO" @@ -31,26 +31,26 @@ + " FOXBIN2PRG 'c:\development\classes\*.vcx' '0' '0' '0' '1' '1'" + CR_LF + CR_LF ; + "Ein Beispiel für die Generierung der TXT von allen VCX in 'c:\development\classes', ohne Anzeige des Fehlerfensters und ohne LOG datei: " + CR_LF ; + " FOXBIN2PRG 'c:\development\classes\*.vc2' '0' '0' '0' '1' '0'" -#DEFINE C_FOXBIN2PRG_JUST_VFP_9_LOC "FOXBIN2PRG ist nur für Visual FoxPro 9.0!" +#DEFINE C_FOXBIN2PRG_JUST_VFP_9_LOC "FOXBIN2PRG arbeitet nur für Visual FoxPro 9.0!" #DEFINE C_FOXBIN2PRG_WARN_CAPTION_LOC "FOXBIN2PRG: WARNUNG!" #DEFINE C_LANGUAGE_LOC "DE" -#DEFINE C_MENU_NOT_IN_VFP9_FORMAT_LOC "Menu [<>] ist NICHT in VFP 9 Format! - Bitte zuerst nach VFP 9 konvertieren mit MODIFY MENU '<>'" +#DEFINE C_MENU_NOT_IN_VFP9_FORMAT_LOC "Menu [<>] ist NICHT in VFP 9 Format! - Bitte zuerst mit MODIFY MENU '<>' nach VFP 9 konvertieren." #DEFINE C_NAMES_CAPITALIZATION_PROGRAM_FOUND_LOC "* Programm für Großschreibungssetzung [<>] gefunden" #DEFINE C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC "* Programm für Großschreibungssetzung [<>] nicht gefunden" -#DEFINE C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC "Objekt [<>] enthält nicht oReg Objekt (level <>)" +#DEFINE C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC "Objekt [<>] enthält nicht das oReg Objekt (level <>)" #DEFINE C_ONLY_SETNAME_AND_GETNAME_RECOGNIZED_LOC "Befehl nicht erkannt. Nur SETNAME und GETNAME erlaubt." -#DEFINE C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC "Optimierung: Ausgabedatei [<>] wurde nicht überschrieben da sie dieselbe ist wie die neu generierte." -#DEFINE C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC "Optimierung: Ausgabedatei [<>] wurde nicht erneuert da sie neuer ist als die Ursprungsdatei." -#DEFINE C_PROCEDURE_NOT_CLOSED_ON_LINE_LOC "Procedur nicht geschlossen. Letzte Zeile des Codes muss ENDPROC sein. [<>, Recno:<>]" +#DEFINE C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC "Optimierung: Ausgabedatei [<>] wurde nicht überschrieben, da sie dieselbe ist wie die neu generierte." +#DEFINE C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC "Optimierung: Ausgabedatei [<>] wurde nicht erneuert, da sie neuer ist als die Ursprungsdatei." +#DEFINE C_PROCEDURE_NOT_CLOSED_ON_LINE_LOC "Prozcedur nicht geschlossen. Letzte Zeile des Codes muss ENDPROC sein. [<>, Recno:<>]" #DEFINE C_PROCESSING_LOC "Bearbeite Datei" #DEFINE C_PROCESS_PROGRESS_LOC "Bearbeitungsfortschritt:" #DEFINE C_PROPERTY_NAME_NOT_RECOGNIZED_LOC "Eigenschaft [<>] nicht erkannt." #DEFINE C_REPORT_NOT_IN_VFP9_FORMAT_LOC "Report [<>] ist NICHT in VFP 9 Format! - Bitte zuerst nach VFP 9 konvertieren mit MODIFY REPORT '<>'" #DEFINE C_REQUESTING_CAPITALIZATION_OF_FILE_LOC "- Forder Großschreibung für Datei [<>] an" -#DEFINE C_SCANNING_FILE_AND_DIR_INFO_LOC "Scannen Datei- und Verzeichnisinformationen für" -#DEFINE C_SOURCEFILE_LOC "Source Datei: " +#DEFINE C_SCANNING_FILE_AND_DIR_INFO_LOC "Scanne Datei- und Verzeichnisinformationen für" +#DEFINE C_SOURCEFILE_LOC "Quell Datei: " #DEFINE C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_LOC "Fehler in Verschachtelungsstruktur. ENDPROC erwartet, aber es wurde ENDDEFINE in Klasse <> (<>), Zeile <> der Datei <> gefunden" #DEFINE C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_2_LOC "Fehler in Verschachtelungsstruktur. ENDPROC wurde erwartet, aber es wurde ENDDEFINE in Klasse <> (<>.<>), Zeile <> der Datei <> gefunden" #DEFINE C_UNKNOWN_CLASS_NAME_LOC "Unbekannte Klasse [<>]" -#DEFINE C_WARN_TABLE_ALIAS_ON_INDEX_EXPRESSION_LOC "WARNUNG!!" + CR_LF+ "SICHERSTELLEN DAS KEIN TABELLENALIAS IN DEM INDEXAUSDRUCK BENUTZT WIRD!! (z.B.: index on <>.campo tag keyname)" +#DEFINE C_WARN_TABLE_ALIAS_ON_INDEX_EXPRESSION_LOC "WARNUNG!!" + CR_LF+ "STELLEN SIE SICHER, DAS KEIN TABELLENALIAS IM INDEXAUSDRUCK BENUTZT WIRD!! (z.B.: index on <>.campo tag keyname)" #DEFINE C_WITH_ERRORS_LOC "mit Fehlern" From 38ab11a31c5c1c47e252360ab8d794562b5b4d49 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Wed, 4 Mar 2015 22:23:32 +0100 Subject: [PATCH 2/7] =?UTF-8?q?Changeset:=20667=20-=20Actualizaci=C3=B3n?= =?UTF-8?q?=20archivo=20de=20versiones?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FoxBin2PRGVersionFile.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/FoxBin2PRGVersionFile.txt b/FoxBin2PRGVersionFile.txt index c190130..52c18a0 100644 --- a/FoxBin2PRGVersionFile.txt +++ b/FoxBin2PRGVersionFile.txt @@ -24,6 +24,8 @@ Change History ------------------------------------------------------------- - Feature: Make some error descriptions more informative and precise (Lutz Scheffler) - Feature: Allow specifying inputFile with relative path (Lutz Scheffler) - Bug Fix scx: Metadata of Dataenvironment not properly generated when Dataenvironment is renamed +- Bug Fix: Added PJX/PJ2 generation when specifying "file.pjx", "*" (Lutz Scheffler) +- Some enhancements in german translations (Lutz Scheffler) 2015/01/18 v1.19.41 - Bug Fix db2: Erroneous detection of Invalid Table when size is less than 328 bytes. Lower limit was changed to 65 bytes. From c7ab04ea35e9febffd2659fdd63121232f33ab24 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Thu, 5 Mar 2015 00:29:19 +0100 Subject: [PATCH 3/7] Changeset: 668 - Agregado soporte multi-proyecto (*.PJX, *.PJ2) cuando se especifica "file.pjx", "*" (Lutz Scheffler) --- foxbin2prg.prg | 379 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 248 insertions(+), 131 deletions(-) diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 2e1ac33..1340bba 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -490,6 +490,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM #ENDIF _MEMBERDATA = [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -518,6 +519,8 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM + [] ; + [] ; + [] ; + + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -560,6 +563,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM + [] ; + [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -595,7 +599,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM + [] - DIMENSION a_ProcessedFiles(1) + DIMENSION a_ProcessedFiles(1), a_ProcessedFiles_0(1) PROTECTED l_ConfigEvaluated, n_CFG_Actual, l_Main_CFG_Loaded, o_Configuration, l_CFG_CachedAccess *-- n_FB2PRG_Version = 1.19 @@ -649,6 +653,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM n_FileHandle = 0 n_ProcessedFiles = 0 && Contador usado para los archivos file.class.ext n_ProcessedFilesCount = 0 && Contador genérico de procesados + n_ProcessedFiles_0 = 0 && Contador usado para los archivos file.ext o_Conversor = NULL o_Frm_Avance = NULL o_WSH = NULL @@ -1918,8 +1923,8 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM loLang = _SCREEN.o_FoxBin2Prg_Lang loFSO = .o_FSO loWSH = .o_WSH - *DIMENSION .a_ProcessedFiles(1) - *.n_ProcessedFiles = 0 + DIMENSION .a_ProcessedFiles_0(1) + .n_ProcessedFiles_0 = 0 lnPCount = 0 lcInputFile_Type = '' @@ -2042,7 +2047,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM *-- Evaluación de FileSpec de entrada DO CASE - CASE lcInputFile_Type == C_FILETYPE_FILE AND '*' $ JUSTEXT( tc_InputFile ) OR '?' $ JUSTEXT( tc_InputFile ) + CASE lcInputFile_Type == C_FILETYPE_FILE AND ( '*' $ JUSTEXT( tc_InputFile ) OR '?' $ JUSTEXT( tc_InputFile ) ) IF .l_ShowErrors *MESSAGEBOX( 'No se admiten extensiones * o ? porque es peligroso (se pueden pisar binarios con archivo xx2 vacíos).', 0+48+4096, 'FOXBIN2PRG: ERROR!!', 60000 ) MESSAGEBOX( loLang.C_ASTERISK_EXT_NOT_ALLOWED_LOC, 0+48+4096, loLang.C_FOXBIN2PRG_ERROR_CAPTION_LOC, 60000 ) @@ -2054,32 +2059,50 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM CASE lcInputFile_Type == C_FILETYPE_FILE AND '*' $ JUSTSTEM( tc_InputFile ) *-- SE QUIEREN TODOS LOS ARCHIVOS DE UNA EXTENSIÓN - IF .n_ShowProgressbar <> 0 THEN - .cargar_frm_avance() - ENDIF - lcFileSpec = FULLPATH( tc_InputFile ) - DO CASE - CASE .l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile) - CD (tcRecompile) - CASE tcRecompile == '1' - CD (JUSTPATH(lcFileSpec)) - ENDCASE + IF EVL(tcType,'0') <> '*' THEN + IF .n_ShowProgressbar <> 0 THEN + .cargar_frm_avance() + ENDIF - .c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG' + DO CASE + CASE .l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile) + CD (tcRecompile) + CASE tcRecompile == '1' + CD (JUSTPATH(lcFileSpec)) + ENDCASE - IF .l_Debug - ERASE ( .c_LogFile ) + .c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG' + + IF .l_Debug + ERASE ( .c_LogFile ) + ENDIF ENDIF lnFileCount = ADIR( laFiles, lcFileSpec, '', 1 ) FOR I = 1 TO lnFileCount lcFile = FORCEPATH( laFiles(I,1), JUSTPATH( lcFileSpec ) ) - .AvanceDelProceso( loLang.C_PROCESSING_LOC + ' ' + lcFile + '...', I, lnFileCount, 0 ) - lnCodError = .Convertir( lcFile, @toModulo, @toEx, .T., tcOriginalFileName ) - .writeLog_Flush() + + DO CASE + CASE UPPER( JUSTEXT( EVL(tc_InputFile,'') ) ) == 'PJX' AND EVL(tcType,'0') == '*' + *-- SE QUIEREN CONVERTIR A TEXTO TODOS LOS ARCHIVOS DE UNO O MÁS PROYECTOS PJX + *-- Filespec: "*.PJX", "*" + .Evaluate_Full_PJX(lcFile, tcRecompile, @toModulo, @toEx, tcOriginalFileName) + + CASE UPPER( JUSTEXT( EVL(tc_InputFile,'') ) ) == 'PJ2' AND EVL(tcType,'0') == '*' + *-- SE QUIEREN CONVERTIR A BINARIO TODOS LOS ARCHIVOS DE UNO O MÁS PROYECTOS PJ2 + *-- Filespec: "*.PJ2", "*" + .Evaluate_Full_PJ2(lcFile, tcRecompile, @toModulo, @toEx, tcOriginalFileName) + + OTHERWISE + *-- DEMÁS ARCHIVOS + *-- Filespec: "*.EXT" + .AvanceDelProceso( loLang.C_PROCESSING_LOC + ' ' + lcFile + '...', I, lnFileCount, 0 ) + lnCodError = .Convertir( lcFile, @toModulo, @toEx, .T., tcOriginalFileName ) + .writeLog_Flush() + ENDCASE ENDFOR EXIT @@ -2243,114 +2266,13 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM DO CASE CASE UPPER( JUSTEXT( EVL(tc_InputFile,'') ) ) == 'PJX' AND EVL(tcType,'0') == '*' - *-- SE QUIEREN CONVERTIR A TEXTO TODOS LOS ARCHIVOS DE UN PROYECTO - IF .n_ShowProgressbar <> 0 THEN - .cargar_frm_avance() - .o_Frm_Avance.Caption = STRTRAN( .o_Frm_Avance.Caption, '> -', '(Bin>Txt) -' ) - ENDIF - - .writeLog( '> ' + loLang.C_CONVERT_ALL_FILES_IN_A_PROJECT_LOC + ': ' + loLang.C_BINARY_TO_TEXT_LOC ) - lcFileSpec = FULLPATH( tc_InputFile ) - - DO CASE - CASE .l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile) - CD (tcRecompile) - CASE tcRecompile == '1' - CD (JUSTPATH(lcFileSpec)) - ENDCASE - - .c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG' - - IF .l_Debug - ERASE ( .c_LogFile ) - ENDIF - - SELECT 0 - USE (tc_InputFile) SHARED AGAIN NOUPDATE ALIAS TABLABIN - lnFileCount = 0 - - SCAN FOR NOT DELETED() - lnFileCount = lnFileCount + 1 - DIMENSION laFiles(lnFileCount,1) - laFiles(lnFileCount,1) = ADDBS( JUSTPATH( lcFileSpec ) ) + ALLTRIM( NAME, 0, ' ', CHR(0) ) - ENDSCAN - - USE IN (SELECT("TABLABIN")) - - *-- Convierto primero el proyecto - lcFile = tc_InputFile - IF .TieneSoporte_Bin2Prg( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile ) - lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName ) - .writeLog_Flush() - ENDIF - - *-- Luego convierto los archivos incluidos - FOR I = 1 TO lnFileCount - lcFile = laFiles(I,1) - .AvanceDelProceso( loLang.C_PROCESSING_LOC + ' ' + lcFile + '...', I, lnFileCount, 0 ) - - IF .TieneSoporte_Bin2Prg( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile ) - lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName ) - .writeLog_Flush() - ENDIF - ENDFOR - + *-- SE QUIEREN CONVERTIR A TEXTO TODOS LOS ARCHIVOS DE UN PROYECTO PJX + .Evaluate_Full_PJX(tc_InputFile, tcRecompile, @toModulo, @toEx, @tcOriginalFileName) EXIT CASE UPPER( JUSTEXT( EVL(tc_InputFile,'') ) ) == 'PJ2' AND EVL(tcType,'0') == '*' - *-- SE QUIEREN CONVERTIR A BINARIO TODOS LOS ARCHIVOS DE UN PROYECTO - IF .n_ShowProgressbar <> 0 THEN - .cargar_frm_avance() - .o_Frm_Avance.Caption = STRTRAN( .o_Frm_Avance.Caption, '> -', '(Txt>Bin) -' ) - ENDIF - - .writeLog( '> ' + loLang.C_CONVERT_ALL_FILES_IN_A_PROJECT_LOC + ': ' + loLang.C_TEXT_TO_BINARY_LOC ) - lcFileSpec = FULLPATH( tc_InputFile ) - - DO CASE - CASE .l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile) - CD (tcRecompile) - CASE tcRecompile == '1' - CD (JUSTPATH(lcFileSpec)) - ENDCASE - - .c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG' - - IF .l_Debug - ERASE ( .c_LogFile ) - ENDIF - - lnFileCount = ALINES( laFiles, STREXTRACT( FILETOSTR(tc_InputFile), C_BUILDPROJ_I, C_BUILDPROJ_F ), 1+4 ) - - FOR I = lnFileCount TO 1 STEP -1 - IF '.ADD(' $ laFiles(I) - laFiles(I) = ADDBS( JUSTPATH( lcFileSpec ) ) + STREXTRACT( laFiles(I), ".ADD('", "')" ) - laFiles(I) = FORCEEXT( laFiles(I), .Get_Ext2FromExt( UPPER(JUSTEXT(laFiles(I))) ) ) - ELSE - lnFileCount = lnFileCount - 1 - ADEL( laFiles, I ) - DIMENSION laFiles(lnFileCount) - ENDIF - ENDFOR - - *-- Convierto primero el proyecto - lcFile = tc_InputFile - IF .TieneSoporte_Bin2Prg( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile ) - lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName ) - .writeLog_Flush() - ENDIF - - *-- Luego convierto los archivos incluidos - FOR I = 1 TO lnFileCount - lcFile = laFiles(I) - .AvanceDelProceso( loLang.C_PROCESSING_LOC + ' ' + lcFile + '...', I, lnFileCount, 0 ) - - IF .TieneSoporte_Prg2Bin( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile ) - lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName ) - .writeLog_Flush() - ENDIF - ENDFOR - + *-- SE QUIEREN CONVERTIR A BINARIO TODOS LOS ARCHIVOS DE UN PROYECTO PJ2 + .Evaluate_Full_PJ2(tc_InputFile, tcRecompile, @toModulo, @toEx, @tcOriginalFileName) EXIT CASE EVL(tcType,'0') <> '0' AND EVL(tcTextName,'0') <> '0' @@ -2471,6 +2393,189 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDPROC + PROCEDURE Evaluate_Full_PJX + *-------------------------------------------------------------------------------------------------------------- + * SE QUIEREN CONVERTIR A TEXTO TODOS LOS ARCHIVOS DE UN PROYECTO PJX + *-------------------------------------------------------------------------------------------------------------- + * PARÁMETROS: (v=Pasar por valor | @=Pasar por referencia) (!=Obligatorio | ?=Opcional) (IN/OUT) + * tc_InputFile (v! IN ) Nombre del archivo de entrada + * tcRecompile (v? IN ) Indica recompilar ('1') el binario una vez regenerado. [Cambio de funcionamiento por defecto] + * Este cambio es para ganar tiempo, velocidad y seguridad. Además la recompilación que hace FoxBin2Prg + * se hace desde el directorio del archivo, con lo que las referencias relativas pueden + * generar errores de compilación, típicamente los #include. + * NOTA: Si en vez de '1' se indica un Path (p.ej, el del proyecto, se usará como base para recompilar + * toModulo (@? OUT) Referencia de objeto del módulo generado (para Unit Testing) + * toEx (@? OUT) Objeto con información del error + * tcOriginalFileName (v? IN ) Sirve para los casos en los que inputFile es un nombre temporal y se quiere generar + * el nombre correcto dentro de la versión texto (por ej: en los PJ2 y las cabeceras) + *-------------------------------------------------------------------------------------------------------------- + LPARAMETERS tc_InputFile, tcRecompile, toModulo, toEx, tcOriginalFileName + + LOCAL lcFileSpec, lnFileCount, laFiles(1,1), lcFile, lnCodError, I, lnFileCount ; + , loLang AS CL_LANG OF 'FOXBIN2PRG.PRG' + + TRY + WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + loLang = _SCREEN.o_FoxBin2Prg_Lang + lcFileSpec = FULLPATH( tc_InputFile ) + + IF .n_ShowProgressbar <> 0 THEN + .cargar_frm_avance() + .o_Frm_Avance.Caption = STRTRAN( .o_Frm_Avance.Caption, '> -', '(Bin>Txt) -' ) + ENDIF + + .writeLog( '> ' + loLang.C_CONVERT_ALL_FILES_IN_A_PROJECT_LOC + ': ' + loLang.C_BINARY_TO_TEXT_LOC ) + + DO CASE + CASE .l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile) + CD (tcRecompile) + CASE tcRecompile == '1' + CD (JUSTPATH(lcFileSpec)) + ENDCASE + + .c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG' + + IF .l_Debug + ERASE ( .c_LogFile ) + ENDIF + + SELECT 0 + USE (tc_InputFile) SHARED AGAIN NOUPDATE ALIAS TABLABIN + lnFileCount = 0 + + SCAN FOR NOT DELETED() + lnFileCount = lnFileCount + 1 + DIMENSION laFiles(lnFileCount,1) + laFiles(lnFileCount,1) = ADDBS( JUSTPATH( lcFileSpec ) ) + ALLTRIM( NAME, 0, ' ', CHR(0) ) + ENDSCAN + + USE IN (SELECT("TABLABIN")) + + *-- Convierto primero el proyecto + lcFile = tc_InputFile + IF .TieneSoporte_Bin2Prg( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile ) + lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName ) + .writeLog_Flush() + ENDIF + + *-- Luego convierto los archivos incluidos + FOR I = 1 TO lnFileCount + lcFile = laFiles(I,1) + .AvanceDelProceso( loLang.C_PROCESSING_LOC + ' ' + lcFile + '...', I, lnFileCount, 0 ) + + IF .TieneSoporte_Bin2Prg( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile ) + IF .n_ProcessedFiles_0 > 0 THEN + *-- Buscar si fue procesado antes + IF ASCAN( .a_ProcessedFiles_0, lcFile, 1, 0, 0, 1+2+4 ) > 0 THEN + *.writeLog( 'OPTIMIZACIÓN: saltando archivo ya procesado [' + (lcFile) + ']' ) + .writeLog( TEXTMERGE( loLang.C_OPTIMIZATION_SKIPPING_ALREADY_PROCESSED_FILE_LOC ) ) + LOOP + ENDIF + ENDIF + + lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName ) + .writeLog_Flush() + ENDIF + ENDFOR + + .writeLog_Flush() + ENDWITH + ENDTRY + ENDPROC + + + PROCEDURE Evaluate_Full_PJ2 + *-------------------------------------------------------------------------------------------------------------- + * SE QUIEREN CONVERTIR A BINARIO TODOS LOS ARCHIVOS DE UN PROYECTO PJ2 + *-------------------------------------------------------------------------------------------------------------- + * PARÁMETROS: (v=Pasar por valor | @=Pasar por referencia) (!=Obligatorio | ?=Opcional) (IN/OUT) + * tc_InputFile (v! IN ) Nombre del archivo de entrada + * tcRecompile (v? IN ) Indica recompilar ('1') el binario una vez regenerado. [Cambio de funcionamiento por defecto] + * Este cambio es para ganar tiempo, velocidad y seguridad. Además la recompilación que hace FoxBin2Prg + * se hace desde el directorio del archivo, con lo que las referencias relativas pueden + * generar errores de compilación, típicamente los #include. + * NOTA: Si en vez de '1' se indica un Path (p.ej, el del proyecto, se usará como base para recompilar + * toModulo (@? OUT) Referencia de objeto del módulo generado (para Unit Testing) + * toEx (@? OUT) Objeto con información del error + * tcOriginalFileName (v? IN ) Sirve para los casos en los que inputFile es un nombre temporal y se quiere generar + * el nombre correcto dentro de la versión texto (por ej: en los PJ2 y las cabeceras) + *-------------------------------------------------------------------------------------------------------------- + LPARAMETERS tc_InputFile, tcRecompile, toModulo, toEx, tcOriginalFileName + + LOCAL lcFileSpec, lnFileCount, laFiles(1,1), lcFile, lnCodError, I, lnFileCount ; + , loLang AS CL_LANG OF 'FOXBIN2PRG.PRG' + + TRY + WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + loLang = _SCREEN.o_FoxBin2Prg_Lang + lcFileSpec = FULLPATH( tc_InputFile ) + + IF .n_ShowProgressbar <> 0 THEN + .cargar_frm_avance() + .o_Frm_Avance.Caption = STRTRAN( .o_Frm_Avance.Caption, '> -', '(Txt>Bin) -' ) + ENDIF + + .writeLog( '> ' + loLang.C_CONVERT_ALL_FILES_IN_A_PROJECT_LOC + ': ' + loLang.C_TEXT_TO_BINARY_LOC ) + + DO CASE + CASE .l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile) + CD (tcRecompile) + CASE tcRecompile == '1' + CD (JUSTPATH(lcFileSpec)) + ENDCASE + + .c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG' + + IF .l_Debug + ERASE ( .c_LogFile ) + ENDIF + + lnFileCount = ALINES( laFiles, STREXTRACT( FILETOSTR(tc_InputFile), C_BUILDPROJ_I, C_BUILDPROJ_F ), 1+4 ) + + FOR I = lnFileCount TO 1 STEP -1 + IF '.ADD(' $ laFiles(I) + laFiles(I) = ADDBS( JUSTPATH( lcFileSpec ) ) + STREXTRACT( laFiles(I), ".ADD('", "')" ) + laFiles(I) = FORCEEXT( laFiles(I), .Get_Ext2FromExt( UPPER(JUSTEXT(laFiles(I))) ) ) + ELSE + lnFileCount = lnFileCount - 1 + ADEL( laFiles, I ) + DIMENSION laFiles(lnFileCount) + ENDIF + ENDFOR + + *-- Convierto primero el proyecto + lcFile = tc_InputFile + IF .TieneSoporte_Bin2Prg( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile ) + lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName ) + .writeLog_Flush() + ENDIF + + *-- Luego convierto los archivos incluidos + FOR I = 1 TO lnFileCount + lcFile = laFiles(I) + .AvanceDelProceso( loLang.C_PROCESSING_LOC + ' ' + lcFile + '...', I, lnFileCount, 0 ) + + IF .TieneSoporte_Prg2Bin( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile ) + IF .n_ProcessedFiles_0 > 0 THEN + *-- Buscar si fue procesado antes + IF ASCAN( .a_ProcessedFiles_0, lcFile, 1, 0, 0, 1+2+4 ) > 0 THEN + *.writeLog( 'OPTIMIZACIÓN: saltando archivo ya procesado [' + (lcFile) + ']' ) + .writeLog( TEXTMERGE( loLang.C_OPTIMIZATION_SKIPPING_ALREADY_PROCESSED_FILE_LOC ) ) + LOOP + ENDIF + ENDIF + + lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName ) + .writeLog_Flush() + ENDIF + ENDFOR + + .writeLog_Flush() + ENDWITH + ENDTRY + ENDPROC + + HIDDEN PROCEDURE ejecutar_WriteErrorLog LPARAMETERS toEx, tcErrorInfo @@ -2567,7 +2672,6 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDIF ENDIF - IF NOT EMPTY(tcOriginalFileName) tcOriginalFileName = loFSO.GetAbsolutePathName( tcOriginalFileName ) ENDIF @@ -2578,6 +2682,11 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM .c_OriginalFileName = FORCEEXT(.c_OriginalFileName,'pjx') ENDIF + *-- Conteo de archivos normales procesados + .n_ProcessedFiles_0 = .n_ProcessedFiles_0 + 1 + DIMENSION .a_ProcessedFiles_0(.n_ProcessedFiles_0) + .a_ProcessedFiles_0(.n_ProcessedFiles_0) = .c_InputFile + .writeLog( C_TAB + 'c_OriginalFileName: ' + .c_OriginalFileName ) .writeLog( ) .o_Conversor = NULL @@ -22331,6 +22440,7 @@ DEFINE CLASS CL_LANG AS Custom C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC = "" C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC = "" C_ONLY_SETNAME_AND_GETNAME_RECOGNIZED_LOC = "" + C_OPTIMIZATION_SKIPPING_ALREADY_PROCESSED_FILE_LOC = "" C_OPTION_LOC = "" C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = "" C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = "" @@ -22479,6 +22589,8 @@ DEFINE CLASS CL_LANG AS Custom .C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC = "* Programme des noms de capitalisation [<>] introuvables" .C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC = "Object [<>] ne contient pas l'objet oReg (niveau <>)" .C_ONLY_SETNAME_AND_GETNAME_RECOGNIZED_LOC = "Opération non reconnu. Seulement SETNAME et GETNAME permis." + .C_OPTIMIZATION_SKIPPING_ALREADY_PROCESSED_FILE_LOC = "Optimisation: sauter fichier déjà traité [<<(lcFile)>>]" + .C_OPTION_LOC = "Option" .C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = "La classe externe ne correspond pas à la classe interne" .C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = "Optimisation: fichier de sortie [<>] ne était pas écrasé parce que ce est la même que celle générée." .C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC = "Optimisation: fichier de sortie [<>] n'a pas été régénéré car il est plus récent que le fichier d'entrée." @@ -22562,9 +22674,11 @@ 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_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = "La clase externa no coincide con la clase interna" - .C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = "Optimización: El archivo de salida [<>] no se sobreescribe por ser igual al generado." - .C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC = "Optimización: El archivo de salida [<>] no se regenera por ser más nuevo que el de entrada." + .C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = "Optimización: el archivo de salida [<>] no se sobreescribe por ser igual al generado." + .C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC = "Optimización: el archivo de salida [<>] no se regenera por ser más nuevo que el de entrada." .C_PRESS_ESC_TO_CANCEL = "Pulse Esc para Cancelar" .C_PROCEDURE_NOT_CLOSED_ON_LINE_LOC = "Procedimiento sin cerrar. La última línea de código debe ser ENDPROC. [<>, Recno:<>]" .C_PROCESSING_LOC = "Procesando archivo" @@ -22645,6 +22759,8 @@ DEFINE CLASS CL_LANG AS Custom .C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC = "* Programm für Großschreibungssetzung [<>] nicht gefunden" .C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC = "Objekt [<>] enthält nicht das oReg Objekt (level <>)" .C_ONLY_SETNAME_AND_GETNAME_RECOGNIZED_LOC = "Befehl nicht erkannt. Nur SETNAME und GETNAME erlaubt." + .C_OPTIMIZATION_SKIPPING_ALREADY_PROCESSED_FILE_LOC = "Optimierung: Überspringen von bereits bearbeiteten Datei [<<(lcFile)>>]" + .C_OPTION_LOC = "Option" .C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = "Die äußere Klasse nicht die innere Klassifizierung anzeigen lassen" .C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = "Optimierung: Ausgabedatei [<>] wurde nicht überschrieben, da sie dieselbe ist wie die neu generierte." .C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC = "Optimierung: Ausgabedatei [<>] wurde nicht erneuert, da sie neuer ist als die Ursprungsdatei." @@ -22676,7 +22792,7 @@ DEFINE CLASS CL_LANG AS Custom .C_BACKLINK_OF_TABLE_LOC = "of table" .C_BACKUP_OF_LOC = "Doing Backup of: " .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" @@ -22728,10 +22844,11 @@ DEFINE CLASS CL_LANG AS Custom .C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC = "* Names capitalization program [<>] not found" .C_OBJECT_NAME_WITHOUT_OBJECT_OREG_LOC = "Object [<>] does not contain oReg object (level <>)" .C_ONLY_SETNAME_AND_GETNAME_RECOGNIZED_LOC = "Operation not recognized. Only SETNAME and GETNAME allowed." + .C_OPTIMIZATION_SKIPPING_ALREADY_PROCESSED_FILE_LOC = "Optimization: skipping already processed file [<<(lcFile)>>]" .C_OPTION_LOC = "Option" .C_OUTER_CLASS_DOES_NOT_MATCH_INNER_CLASSES_LOC = "The outer class does not match the inner classes" - .C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = "Optimization: Output file [<>] was not overwritten because it is the same as was generated." - .C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC = "Optimization: Output file [<>] was not regenerated because it is newer than the inputfile." + .C_OUTPUT_FILE_IS_NOT_OVERWRITEN_LOC = "Optimization: output file [<>] was not overwritten because it is the same as was generated." + .C_OUTPUTFILE_NEWER_THAN_INPUTFILE_LOC = "Optimization: output file [<>] was not regenerated because it is newer than the inputfile." .C_PRESS_ESC_TO_CANCEL = "Press Esc to Cancel" .C_PROCEDURE_NOT_CLOSED_ON_LINE_LOC = "Procedure not closed. Last line of code must be ENDPROC. [<>, Recno:<>]" .C_PROCESSING_LOC = "Processing file" From 288d31564c1ce8933b40fab739e915953947fdd4 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Thu, 5 Mar 2015 00:48:02 +0100 Subject: [PATCH 4/7] Changeset: 669 - Uso de log centralizado para proceso de multi-proyecto --- foxbin2prg.exe | Bin 514325 -> 517461 bytes foxbin2prg.prg | 53 +++++++++++++++++++++++++------------------------ 2 files changed, 27 insertions(+), 26 deletions(-) diff --git a/foxbin2prg.exe b/foxbin2prg.exe index b986c008636f1e7fe11ec4e36bea6b62ad4ad40b..2d42321012d37263346a4703855fbd7184bd022b 100644 GIT binary patch delta 26824 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 delta 24176 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 J-FvK_{vS=&tjPcX diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 1340bba..34c0378 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -2060,6 +2060,11 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM CASE lcInputFile_Type == C_FILETYPE_FILE AND '*' $ JUSTSTEM( tc_InputFile ) *-- SE QUIEREN TODOS LOS ARCHIVOS DE UNA EXTENSIÓN lcFileSpec = FULLPATH( tc_InputFile ) + .c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG' + + IF .l_Debug + ERASE ( .c_LogFile ) + ENDIF IF EVL(tcType,'0') <> '*' THEN IF .n_ShowProgressbar <> 0 THEN @@ -2072,12 +2077,6 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM CASE tcRecompile == '1' CD (JUSTPATH(lcFileSpec)) ENDCASE - - .c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG' - - IF .l_Debug - ERASE ( .c_LogFile ) - ENDIF ENDIF lnFileCount = ADIR( laFiles, lcFileSpec, '', 1 ) @@ -2089,12 +2088,12 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM CASE UPPER( JUSTEXT( EVL(tc_InputFile,'') ) ) == 'PJX' AND EVL(tcType,'0') == '*' *-- SE QUIEREN CONVERTIR A TEXTO TODOS LOS ARCHIVOS DE UNO O MÁS PROYECTOS PJX *-- Filespec: "*.PJX", "*" - .Evaluate_Full_PJX(lcFile, tcRecompile, @toModulo, @toEx, tcOriginalFileName) + .Evaluate_Full_PJX(lcFile, tcRecompile, @toModulo, @toEx, tcOriginalFileName, .c_LogFile) CASE UPPER( JUSTEXT( EVL(tc_InputFile,'') ) ) == 'PJ2' AND EVL(tcType,'0') == '*' *-- SE QUIEREN CONVERTIR A BINARIO TODOS LOS ARCHIVOS DE UNO O MÁS PROYECTOS PJ2 *-- Filespec: "*.PJ2", "*" - .Evaluate_Full_PJ2(lcFile, tcRecompile, @toModulo, @toEx, tcOriginalFileName) + .Evaluate_Full_PJ2(lcFile, tcRecompile, @toModulo, @toEx, tcOriginalFileName, .c_LogFile) OTHERWISE *-- DEMÁS ARCHIVOS @@ -2408,8 +2407,9 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM * toEx (@? OUT) Objeto con información del error * tcOriginalFileName (v? IN ) Sirve para los casos en los que inputFile es un nombre temporal y se quiere generar * el nombre correcto dentro de la versión texto (por ej: en los PJ2 y las cabeceras) + * tcLogFile (v? IN ) Nombre del log a usar *-------------------------------------------------------------------------------------------------------------- - LPARAMETERS tc_InputFile, tcRecompile, toModulo, toEx, tcOriginalFileName + LPARAMETERS tc_InputFile, tcRecompile, toModulo, toEx, tcOriginalFileName, tcLogFile LOCAL lcFileSpec, lnFileCount, laFiles(1,1), lcFile, lnCodError, I, lnFileCount ; , loLang AS CL_LANG OF 'FOXBIN2PRG.PRG' @@ -2424,6 +2424,14 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM .o_Frm_Avance.Caption = STRTRAN( .o_Frm_Avance.Caption, '> -', '(Bin>Txt) -' ) ENDIF + IF EMPTY(tcLogFile) + .c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG' + + IF .l_Debug + ERASE ( .c_LogFile ) + ENDIF + ENDIF + .writeLog( '> ' + loLang.C_CONVERT_ALL_FILES_IN_A_PROJECT_LOC + ': ' + loLang.C_BINARY_TO_TEXT_LOC ) DO CASE @@ -2433,12 +2441,6 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM CD (JUSTPATH(lcFileSpec)) ENDCASE - .c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG' - - IF .l_Debug - ERASE ( .c_LogFile ) - ENDIF - SELECT 0 USE (tc_InputFile) SHARED AGAIN NOUPDATE ALIAS TABLABIN lnFileCount = 0 @@ -2477,8 +2479,6 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM .writeLog_Flush() ENDIF ENDFOR - - .writeLog_Flush() ENDWITH ENDTRY ENDPROC @@ -2499,8 +2499,9 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM * toEx (@? OUT) Objeto con información del error * tcOriginalFileName (v? IN ) Sirve para los casos en los que inputFile es un nombre temporal y se quiere generar * el nombre correcto dentro de la versión texto (por ej: en los PJ2 y las cabeceras) + * tcLogFile (v? IN ) Nombre del log a usar *-------------------------------------------------------------------------------------------------------------- - LPARAMETERS tc_InputFile, tcRecompile, toModulo, toEx, tcOriginalFileName + LPARAMETERS tc_InputFile, tcRecompile, toModulo, toEx, tcOriginalFileName, tcLogFile LOCAL lcFileSpec, lnFileCount, laFiles(1,1), lcFile, lnCodError, I, lnFileCount ; , loLang AS CL_LANG OF 'FOXBIN2PRG.PRG' @@ -2515,6 +2516,14 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM .o_Frm_Avance.Caption = STRTRAN( .o_Frm_Avance.Caption, '> -', '(Txt>Bin) -' ) ENDIF + IF EMPTY(tcLogFile) + .c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG' + + IF .l_Debug + ERASE ( .c_LogFile ) + ENDIF + ENDIF + .writeLog( '> ' + loLang.C_CONVERT_ALL_FILES_IN_A_PROJECT_LOC + ': ' + loLang.C_TEXT_TO_BINARY_LOC ) DO CASE @@ -2524,12 +2533,6 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM CD (JUSTPATH(lcFileSpec)) ENDCASE - .c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG' - - IF .l_Debug - ERASE ( .c_LogFile ) - ENDIF - lnFileCount = ALINES( laFiles, STREXTRACT( FILETOSTR(tc_InputFile), C_BUILDPROJ_I, C_BUILDPROJ_F ), 1+4 ) FOR I = lnFileCount TO 1 STEP -1 @@ -2569,8 +2572,6 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM .writeLog_Flush() ENDIF ENDFOR - - .writeLog_Flush() ENDWITH ENDTRY ENDPROC From a95c3bb5e6317929370b90d2b1f7550fbb34cb87 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Thu, 5 Mar 2015 19:33:23 +0100 Subject: [PATCH 5/7] =?UTF-8?q?Changeset:=20670=20-=20Actualizaci=C3=B3n?= =?UTF-8?q?=20del=20archivo=20de=20versi=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FoxBin2PRGVersionFile.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/FoxBin2PRGVersionFile.txt b/FoxBin2PRGVersionFile.txt index 52c18a0..1fa66f8 100644 --- a/FoxBin2PRGVersionFile.txt +++ b/FoxBin2PRGVersionFile.txt @@ -26,6 +26,7 @@ Change History ------------------------------------------------------------- - Bug Fix scx: Metadata of Dataenvironment not properly generated when Dataenvironment is renamed - Bug Fix: Added PJX/PJ2 generation when specifying "file.pjx", "*" (Lutz Scheffler) - Some enhancements in german translations (Lutz Scheffler) +- Feature: Added multiprocessing of projects (*.pjx, *.pj2) when specifying "file.pjx", "*" (Lutz Scheffler) 2015/01/18 v1.19.41 - Bug Fix db2: Erroneous detection of Invalid Table when size is less than 328 bytes. Lower limit was changed to 65 bytes. From cff6226be2a2bcabb9e4a5859380d4fa834384d7 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Thu, 5 Mar 2015 20:44:23 +0100 Subject: [PATCH 6/7] Changeset: 671 - Cambio de la clase principal de FoxBin2Prg de custom a session (Lutz Scheffler) - Se cambia el uso de la propiedad o_Conversor por la variable loConversor --- ...rg__c_foxbin2prg__EvaluarConfiguracion.prg | 14 +++-- foxbin2prg.exe | Bin 517461 -> 517413 bytes foxbin2prg.prg | 54 +++++++++--------- 3 files changed, 35 insertions(+), 33 deletions(-) diff --git a/TESTS/ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion.prg b/TESTS/ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion.prg index d20a73a..9fb53ab 100644 --- a/TESTS/ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion.prg +++ b/TESTS/ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion.prg @@ -150,10 +150,11 @@ DEFINE CLASS ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion AS FxuTestCase O #ENDIF TRY - loEx = NULL + loEx = NULL loFB2P_Esperado = CREATEOBJECT("EMPTY") - loFB2P = THIS.ioFB2P - loFB2P.c_Foxbin2prg_ConfigFile = FORCEPATH( 'foxbin2prg.cfg', oFXU_LIB.cPathDatosTest ) + THIS.ioFB2P = NEWOBJECT("c_foxbin2prg", "FOXBIN2PRG.PRG", "", FORCEPATH( 'foxbin2prg.cfg', oFXU_LIB.cPathDatosTest ) ) + loFB2P = THIS.ioFB2P + *loFB2P.c_Foxbin2prg_ConfigFile = FORCEPATH( 'foxbin2prg.cfg', oFXU_LIB.cPathDatosTest ) *-- DATOS DE ENTRADA @@ -651,9 +652,10 @@ DEFINE CLASS ut__foxbin2prg__c_foxbin2prg__EvaluarConfiguracion AS FxuTestCase O #ENDIF TRY - loEx = NULL - loFB2P = THIS.ioFB2P - loFB2P.c_Foxbin2prg_ConfigFile = FORCEPATH( 'foxbin2prg.cfg', oFXU_LIB.cPathDatosTest ) + loEx = NULL + THIS.ioFB2P = NEWOBJECT("c_foxbin2prg", "FOXBIN2PRG.PRG", "", FORCEPATH( 'foxbin2prg.cfg', oFXU_LIB.cPathDatosTest ) ) + loFB2P = THIS.ioFB2P + *loFB2P.c_Foxbin2prg_ConfigFile = FORCEPATH( 'foxbin2prg.cfg', oFXU_LIB.cPathDatosTest ) loFB2P.l_ShowErrors = .F. diff --git a/foxbin2prg.exe b/foxbin2prg.exe index 2d42321012d37263346a4703855fbd7184bd022b..454db809bf29af4a02861748e83dc11b96fc3b19 100644 GIT binary patch delta 17880 zcmb`O2Y3`!)c4QK?#z}XBq6<5S^_bICY@9Wq(MTF76REoAdM87;-XSjP>66vrS}#} zC{m;o0RbsW5fMQ|1(g;^0wjF@yR!)k^1ctx_q=%=_y0TR&TVt&+%vPwkH>vh9QWCz z%aEPl*3jj##kLu);^H&KO)`9)kGGacJ42>kk7ZiYg2=8|rn}2ZQ!@%wdV7_IHdYYT z_^_moYUkqHnWG(Ls?dKZk9 z*EmrMFROzsvO*v@2UgekD@MJ^NEE4*c%q`nn69@@yIWV+o@T{MR0`6d$X#-EjTI$kC$)RjDztanYqeWv!ed^elewevmM*bp3rv z5c-vFc`#JvZch!KMqaOQp-_Ewm9$S?<4LQZmfKTB!{T-oKE_69#D-kERY^aqtEBI2 zYaGe?DK085L!Zcgb~q(Zs&P^3XiT`Em4di|*W@DA*rBFKUR4vi^$<&fUukDbxn2>( zFAs0?dPOktOVa??tUfnBaiU?V!*X-R81f5p^HawZU#f5&!OKvE9bJFa6uo)gfn=ov zYPq%p%`7{x?)5ql^1K7Z{VSVVaW*$rJiF2{_Vc>h->|H`v;11a3w>VuoNC8nRh8=q zZhF;dlDfz9>1?X09nA~vo%{c3kEPz1wZ)68?Ec3_V|tmc;r_Ztn_CWYxaPG68TNdT z#U+oMT5+zO!lcKJu_@ZxA+@lq{mJXq-txuTjhtUKe^C)JeEx20YuuIP*vi}(Ze-Jn zoTGiM(X@Wv-YZsQdU5|Jt|NGvSN9>3_ra*E9dH}V0XNjWRtMgE-htxFPnwS4{Hn&{ z6HM36L0{WgTg%3Fyyu+H@G_=Z)1@Zgzf~@^S6g*VM<{Ua#PHx@ZeaSN$u8 z+>y0m|`}4-1ubN_gwQX@x%`5tm)cw`{ z2s8EL+uDBcyV2B-1nbx92kz&(NqDIr0nc91kCmWfvXyZWO3ht=24)PvI69`O6v)Pr`m zuh#=ag1R2Oc-5JMDENf^=QfB>c;T{ZDa^FDKi{xfx+rw=Xiu8!6&;XPSW^wp6Of=` zhp&(O-j01E3N3Yq>}qoOt=^t(RtZ^tc1qw4qEHmEcBl!&wr)z!Zdd3D8-5TwEed|R z3HHia9r#(}9D?Z9xs2K@W1)SOR9>HTPz%8#J~P$ACz>FtsE4q`&WM7qc(*?DlZ3aU zJMe+>-l20*N^ZgP3r|yg>PY%~dSn;vade>iR_IPMCu9!jYA1dk?+b60-H`-$SDub= zLp27OQeK}bI-3lgnVl@;WdxWY;JG)(WQc(w*p#;+!RbcG=X_-zWMo8{kdP1=8Kv^y z^+#P%)QwLK@=aUhapbP!`6fCw&atKyuLHSVl`KRVV^Pw9_p-aGjqZH9k84aj7)QBC6-lUoua0s@s^~)K<_afM&#y&R^yKrzCu50IjZ9se`aP@@^gn73Uc*2#Z!+WN2KKpH^kw8MQOtg)n>aB4L1~~W~D~v=450Jj~ z6yP$~UTNPNId`APFmvTCSkFb0Q~yKtpF5Mf*E*9Oo?Byj)mneEu*OByS_>SXmyN2k zs+`#VMUtaSvD0&Jd_wIx0qpi7siAeLv*Pr^Lq>7)Wsc0aSkee7tnFf{A$mWAf6Qak z_(vO7!apvuANj|4_H?n-NObpL)r%z;W;al!)tbk(hs7|rzMgXCbg1(lrra~l6TuX zNlIxa;&tVuWgB90i*nLqbAW}0{NIxmw=H$WB8VPW7#5SCn~l$}S@u%Y;>SM1heNA= zwQU+k8io}Wrsa=jyO&DtqV8R`XQ||B6=pkGDd9}a?xf@#`sIfT>j>)#4@`xb`Tagt zO!ZAGDydgu*IwcAsokQ(qoR8e>#|I86lSvC%dirTunEhgCc-4Pe3{fhyi&@(TPC?X zuiCDhucuzhKro=+zGhFBNnS?7F2$#%0*oUrGsn<>w_>rOvH6*WhUonK-2AxQ;j7JN zhZoJMF?x1r{JJsR#R+FW}$dUp?c;*Vdhf) zhZVam4a-h{E0W*ySs{^GnZrhHGkdJDKvD|~S%zV}ch^i-k?eW-RP(dHa)SN{ud3FC zR{~*hE3SSlcZKBQyV6_&T}p^eDK`cG{1y)K!v`EBjgTTJzPMl9_EtE=)Ey|-F&68bZ?8pGMh z_N|t@#0&S?FRKyOtl6{Gl7~z2quLgG<&LduaTaU7MsgOmv2JUm=HmHE_Vyadz3($M zzu0*DL&>@Mg~@q_VVP+>Naq!}St}lG-70J4rdVEDy=%;7i^&XRf3J~3#WC(Id@X`X zwuh`2qFI-2X7)tlnHU zCO1EOF}t%?@)fI_F#C0qWAO5z7mLIja*7UwDmE)JWakx*?`0U4o1gwi3zoD_a&Kwd zQgLF5W?^ZYh8h-c$j)tKcGywwP~M~Gp80Gc&J;q~&UKQ9Fo6BI4juTT6RTK3BuREV^~57u1u#AsUA*>FOeGh zz59;Rs57PIq-AAJNXw7N%H`oAF)lhaDmo^LeO4m*=^Z{$in$U?^OjwO9Ci^k3T~{X zL<-PFe580iSsK%39Y3KLkjjgr6PpPwl%i*=IE-rXp9IG$U?J(A_^c#v)29=lE4 zBU^etVL!v8xwVUXG>qRJqV52@y9vWN)kM|_omi($nCK;J@FvXIlT$2pljJ2wr4^=K zIm1?L!en)0$2OtMyV;#hn5-7eelwE5;;W_#Et`6Loh5F@m0!+AZpLYOY}RHeFu30x zUQkOeFV9n6R$5^Omgu1SwFMZ`S{HZup~4me?|@uWARSBFA~|V-Y82o@aeP-Ra*t&< z_Ok(7Fyeu>+@m***zs>W6Id1tVI^Cn0L^t5?y)je?da!W0?T6lOen>^U&tDlNhQblK>5DomHfx;7 zIV?OsKW+Rbws@EN?Jf4tR;=a{X1z^v57rG;PN}cNCB8Ca6QY%_|CO%z zJQN=j1eLQeosHOr0gLRDZBn4y)DcP%a}Z07O^A%^9TojJlbzUxyZa;d=Qf1fsZ8FE zz~3`ZDeO*cNf+5&{3VaYZI|5ig`?~2qdUp&EiO({*v{Oi#G=ByqC%eBbbPP2xtPpx ziCKoQm`p=fdcm^~*dA15^qQi$ttlnHC}$YrAuqGvY_(W0E>n3y8_NqB{}ngYvouXE zXK-r^>Em`2p)LHF--TYbx7wl&=3U}@?qs9Zsx5{GVElX8ZG6r?Swmr9k5kW`|6LxhaNm zgb}FlU(U+E+if6*mO?q*lPaKgB{%^HEr}}BtOvya~u`XH97@}bW(csb5pWn z@?jpkCBFt4af(OcK_@oKDN#Wyj*+?P1|CG(v9#Tiqo%v!W54dj&Do!QzFP{6A89Uc z!^_X-M_9}KXw|m7;leP z%r6&@dY9V+>WYthPhq9g{U&n?{LdW{JVmkBcBapV3R{e(@u!N(l}}v+`(v-<*d%)P ztE)Ru%8I-z45zL8v9c74Ik4eQL+3ruXfLQM`YQ=BgksQ*fCZ&Y{EO6Ic{b@krB z&5i5KpKmg;sjfDaTNLNZbsaC|_TajcgdGYilhcVULd}78yScGxU7>#a6}Fg*K=#vK zY%g6-vc-EP=eASN@es*o*^Gkg-D(#pS?n2gSqlL?x!2H9O7GRB`iY`q1pK<7eR!>$zuIh*F>F{S<#% zNh`!#E5*;Zrt;>B-+ZQx#i>tPvd#z5=_zdRLCMRhrY$eo9-USqQG9el?*jJeL8*n? ztj>z-d!KU)6tj}MMj0}&r6#4N z^NBvWOmSIOAG%JlDRH8Wi8|wM!U*yGN4B9b4Vz(FCcAQ2@=U+FjTi2WtrTuPT}gO5 z$uEB3ZpBeMQ)`bXT$heUM5gjLVA$VBoj&nm+0mytcQN13+olaVBJCJ-L~asfrJ-cJ zrHoBXC?Cu|y(2q&XHS#x;?$Nh^0QMjbMR6u4KGZ_7}UfcFx=STJF>6XeF58iS9WDJ zcVs6qvQ&X)caf*29Z(<*AlR@?cV#y=m+PHew-6_mDgJ6+IPs_g&F=wL9aF#nz@zS@ zdvXX~jBdOqw~&ROd6$Y)D_z*Ld$Nld^fNE&z=H3~K4P*N@cp@u@D4NHmsrPV`x3}Ve6qMmWA*F(869{JyXCz9<&?{OE6{?Gg;&Ua{xiDB7?d?16c!XFx-}A(!#)T(vb5TKIZgwb}P$l5`_IcD8VU!s$Nkm@jGmO%h4PX7tg# zFYMo8-BD%e5{TwQ&-sH0 zIUDJ~C!mkuMej4P(G~{!i|8p1t(wRQ+~yW4Ma%YJ4{$bg#^1QsU_bCY=m}4V0>C4{ zYoTYN?NW@;JwhJ>fy;&!u%hD;VZy`!FX6f0elfj zr=W8(1S*w@0@2Gw(DO6##!92ClOxbmM+xK#=Idk!bf+9-$Y8!sa-kpP2^0n9>%?O; z8bizd!86dQuFx0H3N%QE`QHzNd=A;?ZvySqVQRtI&~MztD*-)b1)b^*eFg8PLcn(D zly!hecN&WHr4^AU*rgGE3>hTS25<=YGw6}cL^=w76TAlck9Hzm0ly9Q#d|3qyoZW1 zT4NQ%kN{X5B~li+1bhtoqZpBj!P~+6po6=Kv=n>@+zWagj$Pm~@CE3Lu_7G+p9X8Y zi!>X@Y4DHWuc4Rr5a|;57w}2wp>ZM^|A65)80G@nC5Utv{4aP2bgM*>L>t^8;PjCq z1>}g7T93#J(-;qZ9>;8O0Js9$8LzIs1UCVPL!ZL29Q+3OF|;#YVU>Wxz?a5|^mvSD zq&qOQf}!zPkqU4;1iuMh0{u6Rr{MNrmvQJZ4wWr}5_rTck=o1_DHA*ZJP5kk9FaZ- z4+W2c_F5Cj^iixdP-1TTTUUM5m&a0*!eEh_t7q&V;-u>EO~ z+FlXqGw^)yXz27`MLGvw4*mjK{7a-i!8^g>(8k5LL~_Ts$cJIL1RZ)?q$c1p@JQ&P z&#>yj4!ARBK|jE;2J8$DB^A}+_1tE#Ke)N5LQqms88{eRU#+6Oc)4{B91gw%y~A2X zq62PA@G)zZkviL|$R38bV911?j-wfP0Qe;IipDAm1Mdd^0PWKrjezZOD<(iUOjglg ze2JX_?g9M+j%(m7a1HeP*cfhu3&D?us%WdP&x8G5br!&?R z*l{8{I|%~<9|M181nkF7(;tQtFx-Z&nxUdR@OiL5cAd_%RCEITD>xH+6^=*X8{mu3 z|Kh+;cIhVA^An72o{H2i7#)JmKs9m*csTevbU}%V^sYoj;N{T0@e0KcJPte+T8+0T&A{)2+e3e{ z6^(*tf%ib4*^b{OgBMvL{yzg8`bI^gVc3EK521f9!>oXBfTeFSWjLJNi2eY74t*9| zp%>T@LW1%_Zm!<@@%n(&*NHv1xMg4aR&+*Q-R z;J3m3pxZuE(RD$5u-;WRpbM;0s^|-D#&pYr$3EY-qLz9R%wU{W_n( z?0hd#x5h*^;7-ujew3&$I1uc7UZT6dNHiVX1MGWMqGf+bbP_xsd*i27XP4O82A=gE6LQ&N~YUj6~bu&^p_4Y;dgn|68tT6niCFiH}Goc zVQw-_0;hpzLfiPtvGcxIH*vjk})y`gGEHk zThOb=8fA)r!3u`!V`a*oAX5_989X2QZ6s?MU~ljS=%n}X4h9?n{s4O0WSLfg`+{#n zmrs$Y44evXHdUtRX)^r?9u6*ouK7x)8{mWBHVb5`XIzOX3qjC;p(FITbuw)MUj?s( zKCoG)OW?o3ccF{6%2W;J@qa9|!#0`h-oP3Gry)@+xFJ&ma4Ev|H^1X@IccbGD0V+Y z(^f7TdeB8fUp2>Vjc9o^Ttmk01sb{^hMf%IQ7F>TtZ5o5Y>9gmd~v#l-dUz0?^ei= z5zWe$YbbQRhK_?9fhTOxkn?s8Ikd)B4EEZsp)EKHzLo$xD;39A^bkR`_od=Ht zZ-8F>orbQ1KL8(s9(qzk72ql0va=exc1}Y9ZHPVw>wYk5C=kh93mA%F=mov`Jl;cq z7lX6^(a@@YHFN{K27Cs(ozzR~$ZVk&uGlhCYU)A^2}_6?CPGmYRVd zf!}b|(z|Y2Y7Z8$Kdgry;G?DPU~lk;(2fnYG#VTZj)zVP($XUEaIkS)Q!Pckp`~A8 z$b%stdNz)7Z~=H`Yb{Ogpe3(%xFf(jpdTY!O#yENw~ElxcRjT<9<0KKQv*HEprr@k zIpAZ^KaJDU$L$e>umQP`*V3wqS__if5M>!uLIYgi^1Tq0dMd| z{O=0z{9H@*VK|He5zw=7v;iLl?|{x;sHINetKht4TIzv(`U~()@EGW&8@03o?1~-q zG<55&TB-mCfd@kCztNIwC#)~<8_)-kZVv>%V}#)mpw+ipS`5QfaOP3Ga6GN0UEmV% z20ft`NG4@3S%C%}%_qT`^aKhn}^a4>ia{w3HC_*F1| zF-<+eRnVfOqc&am^@rhzPDktU^Vs>^0KNb{z)45T!5hKvLI-;55Im5Sg1bX+_tR1H zaLfq!HuR8&I*JDW3!c?TN2fz{Gz{#7oZtcUnN~Vl2JQgIt;!F4uPJ(Qb%6Vc$Wk|1wFA8od#P4V4-c*(H%U&q=Uo2 zj(c=;-jP*0x)>+wPb=4bbCJYfUyxUDrdlU6^9GnTh27Rozp7h-jguvJP z>FLi@J*9$6z*a-_bSPa<3|s~d!2{s_5jY=w6#N_XvC(?E0ImSv$=B0+MS2SDfja=a z9NKxJQBNIV2yBS`c%q)dz!Sk?;E$*3=_edtgIj_1)AV!`$3Ac;u*>?0deS7|E&?BcHp(~klnuiv7&<~v{TmH}Z-aM1JBn6x2|NIaV=Qz#trbm7M1|l% z(0x3uXbboXcp9{gj}>)KLSzKDgf8&6qPM^gz{{cM1Y6MTXS{zKHEG7}{7<$79x125ugLl{^>!rW&u|{t)jh-vi zv=`5Q9et2+!0^EZHF@FDY9Zpd7>bt;(7|{TI*g!V4{n$#(Iq_T7;y`^gMXMMQ7)cj zR$@U0fJd&9XaycrQn7wQz+ZkNksp#&M_m7G@D1pRNK(Dg*62{g|1QW)iZ6xk%a9ECxLUDWw{sa66^zS(4g8u~1$M(7$ zyXhC;f56G_>gXfvh5=ES5nRSd?1tyC`wfc5^>=|`>LDEkVR!o@8jA*e9eMzEvw1Pt zt-$r}q5*79UR|+WgXao}jM#kEfO~?M2OunCvsvB^4<6v$=6cHLs;9tMXs~NH>;t{^ zbQoL+p4JB&8}^Q_-EsXV!BA#E0c;kBuvtt7Pse7_341}49++aV*Cd2xgyuQm#bEtH zJ)K7=o*YNC2|RTT%CFbczu;Zq`_Pdmu;U^09t1ytUW~|hAAAAaw<*4GMPS<-mxP@T zhADs(2s|5lqA*ys%Zm0OP+USFa%h1?1bqN;;xqzBQ}8|L6^*UQ6LBI5d>%S>N7g%< z%JjHM+(F1e@N=c-e=;{ZHpQ(08`e?XpUjOEOmi9TdkgOUI%P2^xy%sCX`0dbn{S z!UG@E-Ki;qVley8gyW;3<>EOl_iHf7A zrGp!@dnt|~mJV)wCs}cfv2?tX?5Ux(X3xi#9&XgIF2A9Nn%)|U>#LlN-=x?5$=q1l zPjT$Gba3O~fr{gMO9wZ8GDvY;vvhFdjUkGo+|qGl2xfi5FvX)6>l!DS8~Yg)MWAYoWp~*P-B^zm3h8w4kP#hC29o+c6*)h-3!HrW!Drc;< zba3O3*@|PArQ^qJ%=(7Wisyu-hZ`N)Y4mWkV?KVwTcDKr*Rl*Zx{gsC_~N7PPv*u( bV-<&!rGpzUn;rP(;`!eP;bz?c?;rjj75D3U delta 17772 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 CV9YN7 diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 34c0378..128e16e 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -484,7 +484,7 @@ QUIT ******************************************************************************************************************* -DEFINE CLASS c_foxbin2prg AS CUSTOM +DEFINE CLASS c_foxbin2prg AS SESSION #IF .F. LOCAL THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF @@ -683,6 +683,8 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM PROCEDURE INIT + LPARAMETERS tcCFG_File + LOCAL lcSys16, lnPosProg, lc_Foxbin2prg_EXE, laValues(1,5) SET DELETED ON SET DATE YMD @@ -707,7 +709,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDIF THIS.c_Foxbin2prg_FullPath = SUBSTR( lcSys16, lnPosProg ) - THIS.c_Foxbin2prg_ConfigFile = FORCEEXT( THIS.c_Foxbin2prg_FullPath, 'CFG' ) + THIS.c_Foxbin2prg_ConfigFile = EVL( tcCFG_File, FORCEEXT( THIS.c_Foxbin2prg_FullPath, 'CFG' ) ) THIS.c_CurDir = SYS(5) + CURDIR() lc_Foxbin2prg_EXE = FORCEEXT( THIS.c_Foxbin2prg_FullPath, 'EXE' ) THIS.c_FB2PRG_EXE_Version = 'v' + IIF( AGETFILEVERSION( laValues, lc_Foxbin2prg_EXE ) = 0, TRANSFORM(THIS.n_FB2PRG_Version), laValues(4) ) @@ -2690,7 +2692,6 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM .writeLog( C_TAB + 'c_OriginalFileName: ' + .c_OriginalFileName ) .writeLog( ) - .o_Conversor = NULL IF NOT FILE(.c_InputFile) ERROR loLang.C_FILE_DOESNT_EXIST_LOC + ' [' + .c_InputFile + ']' @@ -2704,7 +2705,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, .c_VC2 ) - .o_Conversor = CREATEOBJECT( 'c_conversor_vcx_a_prg' ) + loConversor = CREATEOBJECT( 'c_conversor_vcx_a_prg' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_VC2 ), lcForceAttribs ) CASE lcExtension = 'SCX' @@ -2712,7 +2713,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, .c_SC2 ) - .o_Conversor = CREATEOBJECT( 'c_conversor_scx_a_prg' ) + loConversor = CREATEOBJECT( 'c_conversor_scx_a_prg' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_SC2 ), lcForceAttribs ) CASE lcExtension = 'PJX' @@ -2720,7 +2721,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, .c_PJ2 ) - .o_Conversor = CREATEOBJECT( 'c_conversor_pjx_a_prg' ) + loConversor = CREATEOBJECT( 'c_conversor_pjx_a_prg' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_PJ2 ), lcForceAttribs ) CASE lcExtension = 'PJM' @@ -2728,7 +2729,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, .c_PJ2 ) - .o_Conversor = CREATEOBJECT( 'c_conversor_pjm_a_prg' ) + loConversor = CREATEOBJECT( 'c_conversor_pjm_a_prg' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_PJ2 ), lcForceAttribs ) CASE lcExtension = 'FRX' @@ -2736,7 +2737,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, .c_FR2 ) - .o_Conversor = CREATEOBJECT( 'c_conversor_frx_a_prg' ) + loConversor = CREATEOBJECT( 'c_conversor_frx_a_prg' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_FR2 ), lcForceAttribs ) CASE lcExtension = 'LBX' @@ -2744,7 +2745,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, .c_LB2 ) - .o_Conversor = CREATEOBJECT( 'c_conversor_frx_a_prg' ) + loConversor = CREATEOBJECT( 'c_conversor_frx_a_prg' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_LB2 ), lcForceAttribs ) CASE lcExtension = 'DBF' @@ -2752,7 +2753,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, .c_DB2 ) - .o_Conversor = CREATEOBJECT( 'c_conversor_dbf_a_prg' ) + loConversor = CREATEOBJECT( 'c_conversor_dbf_a_prg' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_DB2 ), lcForceAttribs ) CASE lcExtension = 'DBC' @@ -2760,7 +2761,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, .c_DC2 ) - .o_Conversor = CREATEOBJECT( 'c_conversor_dbc_a_prg' ) + loConversor = CREATEOBJECT( 'c_conversor_dbc_a_prg' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_DC2 ), lcForceAttribs ) CASE lcExtension = 'MNX' @@ -2768,7 +2769,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, .c_MN2 ) - .o_Conversor = CREATEOBJECT( 'c_conversor_mnx_a_prg' ) + loConversor = CREATEOBJECT( 'c_conversor_mnx_a_prg' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_MN2 ), lcForceAttribs ) CASE lcExtension = .c_VC2 @@ -2776,7 +2777,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, 'VCX' ) - .o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_vcx' ) + loConversor = CREATEOBJECT( 'c_conversor_prg_a_vcx' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'VCX' ), lcForceAttribs ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'VCT' ), lcForceAttribs ) @@ -2785,7 +2786,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, 'SCX' ) - .o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_scx' ) + loConversor = CREATEOBJECT( 'c_conversor_prg_a_scx' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'SCX' ), lcForceAttribs ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'SCT' ), lcForceAttribs ) @@ -2794,7 +2795,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, 'PJX' ) - .o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_pjx' ) + loConversor = CREATEOBJECT( 'c_conversor_prg_a_pjx' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'PJX' ), lcForceAttribs ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'PJT' ), lcForceAttribs ) @@ -2803,7 +2804,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, 'FRX' ) - .o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_frx' ) + loConversor = CREATEOBJECT( 'c_conversor_prg_a_frx' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'FRX' ), lcForceAttribs ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'FRT' ), lcForceAttribs ) @@ -2812,7 +2813,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, 'LBX' ) - .o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_frx' ) + loConversor = CREATEOBJECT( 'c_conversor_prg_a_frx' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'LBX' ), lcForceAttribs ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'LBT' ), lcForceAttribs ) @@ -2821,7 +2822,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, 'DBF' ) - .o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_dbf' ) + loConversor = CREATEOBJECT( 'c_conversor_prg_a_dbf' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'DBF' ), lcForceAttribs ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'FPT' ), lcForceAttribs ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'CDX' ), lcForceAttribs ) @@ -2831,7 +2832,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, 'DBC' ) - .o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_dbc' ) + loConversor = CREATEOBJECT( 'c_conversor_prg_a_dbc' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'DBC' ), lcForceAttribs ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'DCX' ), lcForceAttribs ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'DCT' ), lcForceAttribs ) @@ -2841,7 +2842,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ERROR (TEXTMERGE(loLang.C_FILE_NAME_IS_NOT_SUPPORTED_LOC)) ENDIF .c_OutputFile = FORCEEXT( .c_InputFile, 'MNX' ) - .o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_mnx' ) + loConversor = CREATEOBJECT( 'c_conversor_prg_a_mnx' ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'MNX' ), lcForceAttribs ) .ChangeFileAttribute( FORCEEXT( .c_InputFile, 'MNT' ), lcForceAttribs ) @@ -2893,7 +2894,6 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM IF NOT .l_OptimizeByFilestamp OR .t_InputFile_TimeStamp >= .t_OutputFile_TimeStamp THEN .c_Type = UPPER(JUSTEXT(.c_OutputFile)) - loConversor = .o_Conversor loConversor.c_InputFile = .c_InputFile loConversor.c_OutputFile = .c_OutputFile loConversor.c_LogFile = .c_LogFile @@ -2908,14 +2908,14 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM *-- .AvanceDelProceso( loLang.C_PROCESSING_LOC + ' ' + .c_InputFile + '...', 0, 0, 0 ) - IF AEVENTS( laEvents, .o_Conversor ) = 0 THEN - BINDEVENT( .o_Conversor, 'AvanceDelProceso', THIS, 'AvanceDelProceso' ) + IF AEVENTS( laEvents, loConversor ) = 0 THEN + BINDEVENT( loConversor, 'AvanceDelProceso', THIS, 'AvanceDelProceso' ) ENDIF loConversor.Convertir( @toModulo, .F., THIS ) .n_ProcessedFilesCount = .n_ProcessedFilesCount + 1 .writeLog() - .writeLog(.o_Conversor.c_TextLog) && Recojo el LOG que haya generado el conversor + .writeLog(loConversor.c_TextLog) && Recojo el LOG que haya generado el conversor *-- Logueo los errores IF NOT EMPTY(loConversor.c_TextErr) THEN @@ -2948,11 +2948,11 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDIF FINALLY - IF AEVENTS( laEvents, THIS.o_Conversor ) > 0 THEN - UNBINDEVENTS( THIS.o_Conversor ) + IF AEVENTS( laEvents, loConversor ) > 0 THEN + UNBINDEVENTS( loConversor ) ENDIF - STORE NULL TO loConversor, THIS.o_Conversor, loFSO + STORE NULL TO loConversor, loFSO *IF lnCodError = 0 OR NOT THIS.l_ShowErrors THEN * THIS.writeLog( REPLICATE('-',100) ) From 80910569b256b34fe7c6e5af4e17c90d5c1f83e8 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Thu, 5 Mar 2015 20:47:24 +0100 Subject: [PATCH 7/7] =?UTF-8?q?Changeset:=20672=20-=20Actualizaci=C3=B3n?= =?UTF-8?q?=20del=20archivo=20de=20versi=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FoxBin2PRGVersionFile.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/FoxBin2PRGVersionFile.txt b/FoxBin2PRGVersionFile.txt index 1fa66f8..2db2a73 100644 --- a/FoxBin2PRGVersionFile.txt +++ b/FoxBin2PRGVersionFile.txt @@ -27,6 +27,7 @@ Change History ------------------------------------------------------------- - Bug Fix: Added PJX/PJ2 generation when specifying "file.pjx", "*" (Lutz Scheffler) - Some enhancements in german translations (Lutz Scheffler) - Feature: Added multiprocessing of projects (*.pjx, *.pj2) when specifying "file.pjx", "*" (Lutz Scheffler) +- Change FoxBin2Prg base class from custom to session (Lutz Scheffler) 2015/01/18 v1.19.41 - Bug Fix db2: Erroneous detection of Invalid Table when size is less than 328 bytes. Lower limit was changed to 65 bytes.