Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
BASFILE - Converts small files to BAS code.
#20
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

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

Find my programs here in Dav's QB64 Corner
Reply


Messages In This Thread
RE: BASFILE - Converts small files to BAS code. - by Dav - 09-28-2023, 11:05 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  BASFONT - Turns a FONT into BAS code SUB for using in your programs. Dav 9 2,893 09-04-2023, 12:13 AM
Last Post: grymmjack
  BASIMAGE - Put image files in BAS code to use with _PUTIMAGE Dav 12 3,780 07-17-2023, 03:18 AM
Last Post: SpriggsySpriggs
  UnscramblePic.bas - Rotate picture pieces puzzle Dav 14 3,726 07-15-2023, 07:12 PM
Last Post: Steffan-68
  RightClickMenu - Small right click popup menu function Dav 0 921 04-29-2022, 03:20 AM
Last Post: Dav

Forum Jump:


Users browsing this thread: 1 Guest(s)