Yeah, large sources really bog down here for me. I would only be using this for a few smaller files, but testing on large ones. I better properly format the output, that's another good suggestion.
EDIT: Got the new BASFILE with the speed change working. Output function decodes a 3.8MB file in .43 secs. Using the MID$ calls instead of A$=A+ added a lot to the output size, so I had to increase the line length of the data to compensate and decrease. The code is uglier but loads faster. Perhaps 160 character length is too long. I'm going to post a sample here to show what it outputs, and also to say hi to you guys...
- Dav
EDIT: Got the new BASFILE with the speed change working. Output function decodes a 3.8MB file in .43 secs. Using the MID$ calls instead of A$=A+ added a lot to the output size, so I had to increase the line length of the data to compensate and decrease. The code is uglier but loads faster. Perhaps 160 character length is too long. I'm going to post a sample here to show what it outputs, and also to say hi to you guys...
- Dav
Code: (Select All)
Screen _NewImage(700, 600, 32)
hi& = _LoadImage(BASFILE$, 32, "memory")
_PutImage (0, 0)-(_Width, _Height), hi&
Function BASFILE$ ()
'Returns decoded file as BASFILE$
A$ = Space$(7346): a& = 1
Mid$(A$, a&, 160) = "0stPC'{<7A='?'v6>VkBh'CL6q'H(<WzzC*T'.3jG*:*vM*:G.L*s9VT0(h]n+pI<j/H{g82\reP2\j2u71is*6Q2:R3Y\[8:bX7y>V}?BAN{fwC.?]g==ex<*UZ'I'\o'w,OTvU'<(uB'CC0H'CL9/''00*''''": a& = a& + 160
Mid$(A$, a&, 160) = "''CC0((\(w5)ufjFhBf8W'(kVC'{>X0([vt5''LL4'P_|R(?>U01]Myr-0fh^1x]VYQTPxb2=.'0-}G4H2s68bQwaC].KcEi2wY_C4:FWr8KuCG9e[5a=Yef:>sKXKChU0|E*:{5HvESgJ8+FwN-4vQOFribS:|B": a& = a& + 160
Mid$(A$, a&, 160) = ";TTc4LX-GQyYG-E2\vibX^8OTpbi3\7d*qeVgYlAnht;u<j5yhMmf^-zo(Dx3r;[+VsUAumvhwI,x+=sOyD{f_'>GQS''001t8_*RsKdOU9'2F*/0k/(d7{q1*G97+wV0wF7=qoCcQpm+]o7*L06co46tnv_hsjM": a& = a& + 160
Mid$(A$, a&, 160) = "=x*QZHo>8[dciYC3i0O57Z;i8J?mq/=h^8NWhHlzo.wBD<Qa=6R=|O<EJ4Jwi3z52Ums-z4H{DG-:x/y1'=6dqdEpI=Lg\[ysKd|Vw)rN=/2|HH=eHcTGe4+<;ryY=:iCKNm:z^][,TfG^F(KBIws=^:K?4::g/x": a& = a& + 160
Mid$(A$, a&, 160) = "'+XDg.[g1=rU7Q|lm5o[C3}huE08Gj}R=q+40-tHT3RGIr4F?xrpbOXcs1MnCNPJjVN|V28\D.l?*3+c3f:L3XAA<}|[8OT*Ba0j)U=4*ZhagOrWXs,>x5=LUUwtNg7yjVN9+p,8?LH1lwNooDmG>[/G8_dGb(zz": a& = a& + 160
Mid$(A$, a&, 160) = "</HrjJ2xUEeKux_z+kf*fJT\-/+U5u8L<gZyJ'hjK]yJxFL=<ql:c?\0]yUit>^nlEDk13TQl:[t8ura]^5wQ;jF5XQkJa/r0\dOYr)K-5lT|RYlCkyg'h(J:Rnf31n,uw:2<h+UU^z'1<(}wW2det{uT,698*_]": a& = a& + 160
Mid$(A$, a&, 160) = "}\Fdj<[0R]y_|Qo4jeA=q,D(C^Z3;|Fwp/Bf:7mTY075EIZczMwb{3Rgl1=3s95Z3f:d,-5LQk.s2nh\JuVbwALC^vTt7V;4>]Q7YSwoAq\aX)/?<P\Y)|6o0yOR5N'K.:Okdbx/qb16i8iyj^6TA_rhUhFnI[D,": a& = a& + 160
Mid$(A$, a&, 160) = "tLN;v,3}ysG;c(cO]49^EG)Iv0Bhlh?S{*h[U3eOU9S;*Z:RA{?dR_Q0<Yucl+Wb4ciD6tzlM8AW+\Jn)=2-ZK\}Q,k)Ntg8[Nd[Z)k[zwm=9l*/=_//O+m2zVikWA0v7Ejj7>*jM6:\s)^TY,OCWGx*Si(E=\A(": a& = a& + 160
Mid$(A$, a&, 160) = "uPeCD='<.m(TY3<3'*TTI9h>XtLzj^1e}X=4N>45GXQ{u(S8-8OJ<fhaRzcI:>f-vt0,JB6Eio^'26zq)0KdHE3Ji4:krlK1g4v>P_W0kU?\eOpsET7j?tb=D>0jlbEPJ,sDPu(b:CVVePM[CT8Q[Y2K<h;v:?D3": a& = a& + 160
Mid$(A$, a&, 160) = "dHz;,NEcrt3fzqpZuRb3z<1)9wkU/E==^aJF_e}HZM*7J,hZ7Kkr5T|zIYrc|E5z3C\dFh=(4I9==U0<U:}l_pxT>-f:p'wi2?zYs(UAI\GE9?h2u1]+/52\gZXn+eerupKk*Ej+_=^_3\9K?|>Lu_K>]2[ABc+[": a& = a& + 160
Mid$(A$, a&, 160) = "^jz-^1K/YVV;T.=*QeX(lP?)8{sxP)DJ\q.zn6,<-Vr7SadY?uFZX5wAL29bfC]moo[.Ds=6wr+hr74(nI?^tF[hf]gYl:A\+BtEZ_ag{z8)(GRHZZh:H<jgLowK+D3X-CS.r[3f,WBY<jd==q;bD8NT_J7>Ly*M": a& = a& + 160
Mid$(A$, a&, 160) = "ri*K4B_AnpV9l>=QPDfnY(|OgdB8r_4W^o<bEbScMJ.N}p;DaZ<:tc;yZo6Q>AUB+A,c*yFlW]t,-pEGP7)QVz)f*D?lrbJYZ{0VzuR)lsrK'zeM}x6,'83s3+vkGs=oBs1K\66+UwPf?==xFqN(,;S52j49dcf4": a& = a& + 160
Mid$(A$, a&, 160) = "F[C*nvD)Q==]9M5^kwnIrn.7_vIpp6h[,z4)cVbzc9z:^b[U=Y.:URpZ\>:^3?xOLb:sN(=A3SWxD>]tG*EvzXy/6etx0sLTj6G^/f)uN^ql[bG4V|0Y:jG3br0=K=J02M9n-L'S4L<SxN|4*po5MrH?Z{=Jm?h]": a& = a& + 160
Mid$(A$, a&, 160) = "\8H,NCf:=gfV+v;M:qDM1k)rg=K9{I++v|+nTQ)q)Ha-Ly_p7NV,'5W+l1)iKG(A..3\tN8Cp02OX:\at/M,}*GU<IPR/qOSY7]ska6(gujoHvO+FZla8Mk9O]Zf-k)DeA4J6y9S[+=uQpGzP<l2Y2WiL1b?9-N[": a& = a& + 160
Mid$(A$, a&, 160) = "isCZG6\lD1NUht|;H6h|rDn^9BU{4QSsN<Fx0/Ev(Yckc*]|PX1\MeNk=gC\uk7dBk_7F/E<e7(JCKiO'^kc5?b3[?kdHL3w/|3XVU+pxP5C2Ij=ARZ)X6h>*QOBMS;?V+xB(aV<Z=miM<+[8AOJwjl9=sCQ7zzQ": a& = a& + 160
Mid$(A$, a&, 160) = "^Bt4[yL{4qh2ngD/,Jkho5,s:C'EDxv87Mu;q^0tD\zaXc\K4a63X5kYJ,qjo-itshkVom)N0]BylZh3yUvVgQ_s3N(O/ge;:S'nQ(D29j0v[Ca=C6c<?FnP,?a)qbs3(JYe6gN-CkkBWSF8v,LT3C_ep=]1?vwF": a& = a& + 160
Mid$(A$, a&, 160) = "m>s6oRH1Wu_/*28K'PKmfx?gY6xE'+W[fz>f/H'][?FB=dL;wJt^0CSg]:twmlSljFt2dSOlQ}='2^9^4)E'}u_p9ZtdmWn*\D9sS5od8xlXB4tFx/|TXE5ZUm_FkLHOwBo+<gyn.t/Ihgdw01J(iA1D6=C^JZnE": a& = a& + 160
Mid$(A$, a&, 160) = "lV61JN1\2;]k+KTl]w^{7yhx>Nk\HjQgBk<;2Ng*z]w-{Kc2049gdHt\JB{{LK?HhHhTp|W_MRpdSuoKJi_L5TB0)gw.FwTV6yhD+m<]Va6>1}r'NW6<[N_U)hMyhobXgH3+Dyi].(9p{ZhZ)77T_Gn^Pu+Yd04a": a& = a& + 160
Mid$(A$, a&, 160) = "PbG'W6H.X.gsEc*>s*|NWBF3t}'/A.lX5dHP[M.rgwn41+A4VeQRN>Xv._{Mq*2z)JV/-PzOh)F2-XYe_BP1suDD\.cj_bo[Zwgm6SFC\T1]am'zY3)yw_9eFM7>TStfHMQ]FrYe_1Gb\W7vzi=:Hf{cOM81?J(Z": a& = a& + 160
Mid$(A$, a&, 160) = "kQ_qY0ZR\7'>YB\'Vl{RT]8t[r^IPf=*;adsp/3*EoMR]x]FgGky<>M8]7OO{NtihhTS22uImb2LmAcBSH2uLK_}:7dgqlB7yX0rIGCq3Rf;j<^of2f<^/*myk8?0COL0N/:d:v,ab+F{Ih5wH]C?<s1S0oVg>hI": a& = a& + 160
Mid$(A$, a&, 160) = "ym4MiP^za{tKqbq)Bo{nWvyLwN7N_pgAJj*x3kUZ6j|7qcQW;;Tf0kOU2_3>Xpo{8)rCZnR/s0^Lf)x:^]Kw,7g/][]NWRU(BBWd_8-g?OFJOU*]2,M2haB99UeZ,IWm0yN+x9l/kmNW)6s]iJ6zwhvwQ>n8J28m": a& = a& + 160
Mid$(A$, a&, 160) = "1NLxA<+?4b{w*5{NQ,h7A2gzi;jdF?tBy}Me1\0Pf(Cpuqnl]y*tnc9RYhK'sNm-(wsL.wWTWt{o3*{S>i(g28x|I]fWty/N<0(y7PTlat\O0:=Irl6tM)yd5-z0h_v5UCHLWyzx]up6u)Gss;]HYtGS1}12m{D8": a& = a& + 160
Mid$(A$, a&, 160) = "H.n,qKCA}1f]hKv37_xge?1+RTpIb2H^u(?ij-T/=3i/+8CR+)0Pbj}hY9ujzsQB|j<8[(JQ}H/J2AP[4s4R1]IvlYeUfK|jwq4O}RI+PzFw7HNll:|U]h:f3Z8C9gV'S_{;hN\c8OuMTzYZw}]Cf?qe7-3]/amI": a& = a& + 160
Mid$(A$, a&, 160) = ":47HdxT5(RyCKnc^mAnR_Er]mJENSrR+2Hw|y/y-x^6r6Y)F8q-ESj\=T4TZEJ3EtvV)k9G^Xy40F7]on^sl.?]Luz|+z}-fNeBj*:DJbi9nylcc*kbFwXavB+L>rY>q0\WM):Dy3ZPx[9EvJHsfF8\?-cN?p:'E": a& = a& + 160
Mid$(A$, a&, 160) = "Q+w^:Jn.7gz<*+'y]jtP:HKste,LO9(owdW7BFrMuo9-mv((6iQr--3o^p[6RH;+ruS}8Q5qX_rb)C>)j_fh[WRk=tzHy_S6*D.\kU/JxnstP(q'*[*N)5p{8X-*|D3O5lQInfh2VPjTvBaod.]t71?ajr/gm/>B": a& = a& + 160
Mid$(A$, a&, 160) = "2ZrKp6J8,Y):[qUFgA28w9ng]76}it/vBueOQ{j*IxWm5ez{FIGL4LFA(TC0-CTy<6>)jBocZwo]L[R.x:?vz_.hD8d'x]xr8n/OF1}q=yGXv(}KJ[V8qzT]hlXG^<]rLZ5)9]lD9I<,_i,Hq4Fjw9.G-q:=/)-T": a& = a& + 160
Mid$(A$, a&, 160) = "9r5?|dO,Coh6R)}u(AeldTW6RWvTO(zu8XpbW.[,/+DnIO1x6TaO54,Z\)Y\eH[FEc1D9P?C:4]OiBJ7t7:vUKnA<]7jQ>^jCUdE',hjN+N_+|VU.u>|US'W<0L|2;n-7xB)ALhG>0TQ/YjMV7=pIP<dgM/.+iSu": a& = a& + 160
Mid$(A$, a&, 160) = "o9QOOaj(DI|LXalF7wKCoU^Gfrp)Tis2AQn/iOebaFA[VJ46hD9Z6O(^tXH]1>X:dM>wgM.A8{0b_z1c4q:p_JnA?tU+7rGT;htMZnjI]Zmp4Ybl[[)G,>CQcsKMZ/wk]E{G\Wg/a[]KdIustE]4k.WqreeRJTO1": a& = a& + 160
Mid$(A$, a&, 160) = "ji]ch/DC'\l\Z}9ZVn-DXVN+E4erPfl7k[eA6Ns|XGHTkL70B:|lUlyMr*HenG.h'<7kZ?3Ne>7oQjb);YkeY2SkWK|^JaShEjydZe)oZRmq'.,FoWa1cGZNz(UEQ'0Ny>0Co_>68>fvk/s.Uiz(.T7,|acM1xd\": a& = a& + 160
Mid$(A$, a&, 160) = "[j6+8oH*DhMq=|=nIwdd98JjX*Asn6F4+Oz\Lj2Iue=dUuW6B;/]j7yEM*FQ1bMfosVBf:fJnKbuS=cPb4]|*'tsO|k]t.<pQd_UJLwp*)mK*kbv3'K9ZQ:c26XzwFZ>n}}qmI<3jfEHEd|ch>kq_O.:ju?KS(3/": a& = a& + 160
Mid$(A$, a&, 160) = "U-O'[8c)^]i<_\jRD?q\Hpk0T*<Ld3H_|DFtO?NoEVVHf7ZIh;X;>t_-q{>ImS]TJgto>,*y.wQ8KKLJ|1F='lc8x8ygE{]h-K0I]Q,yer8<sD-spOY-BQGM2^jtIyq}uPK\'Qkf)FLwSvmJlmR5EZhAQ2e8wcKC": a& = a& + 160
Mid$(A$, a&, 160) = "Dq;puy0?ZiGigiKw]|FvW8'+lcv,wZ69;xNFVW?:LoK.<UsFUkX'C<'xyb3_I)QwGRmpvELz_HlEee+Bqs0A5nZUXh?n1NxXKXh]UpXc\jpmy9.ui?2A=a9N?>taZ0W1/V1WT\HhshvF]loYGw1qWDXGixsVY^MM": a& = a& + 160
Mid$(A$, a&, 160) = "SO8_iB3QlM_';rCxJS*CgG1hXFAi*?B]nb6^3NHAROpi[snkfGy8hx}in_<K9<^:nl.hs?oqa9x.Jr+(I2W'-3NkRx.u:Y;9*)5efL]yc),E9G=>Jh\>7q(yT3t4,)U2EB;;]WpGW)>Ka_p.U_K5ntGUawo>n>/U": a& = a& + 160
Mid$(A$, a&, 160) = "]t=}8de|xb<0]LFcS0MG8MH;d0RUjOf)'T3+^ta0_w'ohWuPC5h,zOECLF(.-ujgcR;OVK>n8p\):HMboO,{A)Z[4me0eeVEr{\<6*[fTi*06Xe<9zSV-[h]^2DrgZzh'q(aBLP3_q:IS<N0yN=xSAJfhFBe1Plw": a& = a& + 160
Mid$(A$, a&, 160) = "x'W'368EK^uf(,|1VtiYSmO_?.)efzU1ZUtnmdP</0Z/qclmha}Xy60oq/Ys)^/^=D{8mGj01VV(KPiaj/AxA4pB^{SSH3ox,9pymK3)\kClnr;l?2X/TML3c\;[ME0va<-P|))(3Tpxaf'4B(;z2Sc7C^-Hvqq4": a& = a& + 160
Mid$(A$, a&, 160) = "M0w.h8ORG'x^1le<3/(X'B^M5oU^gw5Yl5VGt/HHkBll[^<v7C9;YT'pi/se9TPZcn[I(s-z_unsm]D.dhw5}Hy:L5P'C>>aP>q-rXw*oA-cR4TJ1up[LQO=WkeX(<bz-Si]-F;8s27V.>a>}2<>=W]w1Nr6XwxU": a& = a& + 160
Mid$(A$, a&, 160) = "}Ty.(IPYMn0'R-qykwUx4mTaJSvU[6il{utU?Ift9;O>*y,.+F?wR]-3cQ9[(6j-?sVqqs8ii{n1SDAD[OG9kSbtt/KEk?zx'MBMpP17eT'd[h',Z{_s?D;puF>Z|2.u8IR_2V*XjXs{;>w(}Jd+dZDjUT2h<33,": a& = a& + 160
Mid$(A$, a&, 160) = "V0'\6hr?kv-9v|v_'>O5cVLTve'/^RgV9lv2(pv4.tGXcb=mb9=y7GNjVI'C|d>oA*'C=JzObRfpiK6H00;o\bzs]jA7.NHzv=0M}<:dSNa3<?nBv<20<s^Xz\mQk6,o[R|?MpDedF3]Gy])m.:C^HF4=yKFQZeP": a& = a& + 160
Mid$(A$, a&, 160) = "<tY=4XxXkXR2[PuuZoao>qSJ=uktaFA39:,TVCD]<FrGJm;e\bH-=\;9[nSi)_7pz}YN-6s^>o\Z<?}RcV^g4n2B6iuU[^Ixlutvso;qjVHQl}gj,M?f:anQzI6AKR]2ptS]2uN+5b:ozxNbPvr0V\_Yg>vTw(Zs": a& = a& + 160
Mid$(A$, a&, 160) = "B'CASTzIR*+)?XyRH7evK{4C-tw:o]uD{vUjyh1t7,k51vPbNaW)Cs0]ekwWFbx*/UYb.l7rz*Z|PZR3dU2fbbd/C8W'R_/bT^2Dx<>g*irN*:wdYy-Q8N3Q](4\tma(;vPCvN3UljR6(3s|':>:8-PX[PStpUhW": a& = a& + 160
Mid$(A$, a&, 160) = "Te]BNrn.cDtnUIP57M<ZwHqxDTNZHL<w[BsF]ra*m7we.jJF+71'+6iDUis9=hxTECE*cw4Q;[iw/')wjMq_kRLv*:c//}_G5O5nAePsjkeie<Lcf0A;^b>(gOR|MO:od;t0F+\qJv_+T70]oF,<W_DZl4=\0Ki;": a& = a& + 160
Mid$(A$, a&, 160) = "F^PBnwjm;D^9F;s]'C}iSOnY8K;:NIWAZyl6fFkZ^JkA'RQuARcpYDs^F+f]t-rIuZT3-NXXuOLwgkdKr6QT8z9\)ehU0njo*c(0Y>GhCy)<ua2d4(+_r*/R-e,I5Hm<}L}a,Eg7mNE,>4ut?tQ4AX=0<=mFTS29": a& = a& + 160
Mid$(A$, a&, 160) = "um51MzPzHetjT*9}2y2>}6sJ)FpySK>F7*yy/j+E(1|Do5L<XV_81dmoh-iDDM8V1}b)bUQlzC^CC_(Z-[ec9<tM=vztLVWQ-y)X)EG9U85;yqC*pNez'+8>CecO,49sZWNNI?cbWwW_LO<LAKh]/>En.XAv;toy": a& = a& + 160
Mid$(A$, a&, 160) = "Vzymw7wTrskTjc^D??3>PczscPHXq;zQ|qsc52^G,xnkDSurbd0NLQ]ABO:m(){LNyVeU-z\q:o7:O6pF;}.YA^FYII*Jc66/;]'22dXC\M0i0h\idTvL*T7{8IVhwL7;98;u-4_]41=)j|rPgaKsK*[GJ[w,Iyb": a& = a& + 160
Mid$(A$, a&, 160) = ">(Sz5wtkBH9')O2?2Q6Sa0Mp|T,-j\nn;_^;yR0o\N<da?kz79jR<0ibm-Sg;440ReeNfMlzaun(9?1oK^TxLvBSe3;EvX/NNLN)Ls{;EDkvjcV+PJ6D'cx{bdt9M(^'Cm,P>O\74Hc1Trcvy=+3:2<7;c{{WBFz": a& = a& + 160
Mid$(A$, a&, 160) = "K9mJ(\kNC+TC1OpcI/v;t'GRL;6NZsne3'xop/4,p9VtyEr3d(sL8=9MdK?t'UwZWyA=U:V^4},|:asCb];]MQ.u}/i9,(\<,E:?HXdT.Uc1+?'HL;j1(9(1\B_tLILE:AuWIvv2o,Q>M-bX0"
o$ = Space$(5876): oc& = 1
For i = 39 To 125
If i <> 64 And i <> 96 Then c$ = c$ + Chr$(i)
Next: Dim v As _Unsigned Long
a = Val(Mid$(A$, 1, 1))
For i& = 2 To Len(A$) Step 5: v = 0
For j& = 0 To 4: p& = 85 ^ (4 - j&)
c& = InStr(c$, Mid$(A$, i& + j&, 1)) - 1
v = v + c& * p&: Next: Mid$(o$, oc&, 4) = MKL$(v)
oc& = oc& + 4
Next: btemp$ = Mid$(o$, 1, Len(o$) - a + 1)
BASFILE$ = _Inflate$(btemp$, 5865)
End Function