[Gambas-user] Base 64 question

Jussi Lahtinen jussi.lahtinen at ...626...
Thu Apr 28 20:44:55 CEST 2011


Maybe "wait" is for refreshing progress bar or similar...

Jussi



On Thu, Apr 28, 2011 at 17:57, Caveat <Gambas at ...1950...> wrote:

> xml.Decode...pfft!  Funny, I never would have thought to look in gb.xml
> for a base64 decoder!
>
> Anyhoo, did you compare xml.Decode and the routine below with the decode
> function I wrote in the example project I sent earlier... or are you
> *still* waiting for my decode function to return a result? lol
>
> I'm wondering if the Wait is doing much useful in the subroutine below
> (in theory it should be allowing processing of all pending events, but
> no user interaction).  Perhaps you could remove it and see what
> happens...
>
> Regards,
> Caveat
>
> On Thu, 2011-04-28 at 22:09 +1000, richard terry wrote:
> > On Thursday 28 April 2011 21:50:55 richard terry wrote:
> >
> > I've tried them both the xml reader and the subroutine below, on a
> real-life
> > file, a hl7 file containg a pdf of a vascular result
> >
> > this code written by
> > Christer Nygren <petterfilip at ...626...> and some others,
> >
> > on my machine seems considerably faster than the xml.decode function
> >
> > Public Sub FromB64(B64Str As String) As String
> >   Dim Position As Long
> >   Dim dt As Byte
> >   Dim B64Decoded, u, c As String
> >   Dim Tkn, p As Integer
> >
> >    Position = 1
> >   Tkn = 0
> >   Do Until Position > Len(B64Str)
> >     Wait
> >     c = Mid(B64Str, Position, 1)
> >     p = InStr(B64Const, c)
> >     If p > 1 Then
> >       p = p - 2
> >       Inc Tkn
> >       Select Case Tkn
> >         Case 1
> >           dt = (p * &h4)
> >         Case 2
> >           B64Decoded = B64Decoded & Chr(dt + ((p And &H30&) / &H10&))
> >           dt = (p And &HF&) * &H10&
> >         Case 3
> >           B64Decoded = B64Decoded & Chr(dt + ((p And &H3C&) / 4))
> >           dt = (p And &H3&) * &H40&
> >         Case 4
> >           B64Decoded = B64Decoded & Chr(dt + p)
> >       End Select
> >       If Tkn = 4 Then Tkn = 0
> >    Else    ' Ej skrivbart tecken
> >      If p = 1 Then
> >        Position = Len(B64Str) + 1
> >      End If
> >    Endif
> >    Inc Position
> >   Loop
> >    Select Case Tkn
> >      Case 1
> >        B64Decoded = B64Decoded & Chr(dt)
> >    End Select
> >   Return B64Decoded
> > End
> >
> > ??coments from those who know?
> >
> > richard
> >
> >
> > > On Thursday 28 April 2011 21:38:52 Fabien Bodard wrote:
> > > > Print XmlReader.Decode("strvalue", "Base64")
> > >
> > > Funny that, I based my head against a wall trying exactly that syntax,
> I
> > > eventually found some old gambas code on the web that worked.
> > >
> > > But... just typed it in again, and it works. Dunno......... maybe I
> didn't
> > > capitalise it or something.
> > >
> > > Anway, thanks.
> > >
> > > Like everything else in gambas, blindingly simple if you know.
> > >
> > >
> > > Richard
> > >
> > > > 2011/4/28 richard terry <rterry at ...1946...>:
> > > > > On Thursday 28 April 2011 20:16:31 Fabien Bodard wrote:
> > > > > I tried  this:
> > > > >  XmlReader.Decode(data, "?????"
> > > > >
> > > > > what goes in the encoding type "?????"
> > > > >
> > > > > I looked on the website to no avail
> > > > > I tried strings like "Base64", "base64" etc
> > > > >
> > > > > couldn't figure it out.
> > > > >
> > > > > any hlep appreciated.
> > > > >
> > > > > Richard
> > > > >
> > > > >> gb.xml !
> > > > >>
> > > > >> 2011/4/28 Caveat <Gambas at ...1950...>:
> > > > >> > Hi Richard,
> > > > >> >
> > > > >> > I don't know of any base64 decode function in Gambas, but then I
> > > > >> > didn't look that hard ;-)
> > > > >> >
> > > > >> > There are various different flavours of base64, so be sure you
> know
> > > > >> > which variant you're dealing with.
> > > > >> >
> > > > >> > I enclose with this mail a source archive of a little project
> I've
> > > > >> > put together (sorry, it's Gambas2, hope that's OK) that
> demonstrates
> > > > >> > decoding (and encoding) of base64 data.  I found the information
> on
> > > > >> > how to put together the encode and decode algorithms here:
> > > > >> > http://en.wikipedia.org/wiki/Base64
> > > > >> >
> > > > >> > There's also a reference to base64 in Gambas here:
> > > > >> > http://www.gambasforum.com/index.php?topic=330.0
> > > > >> > The algorithms given in those code snippets could well be far
> more
> > > > >> > efficient than mine.
> > > > >> >
> > > > >> > My Base64 Project
> > > > >> > -----------------
> > > > >> > First thing to try is just hit the Encode button, it should
> convert
> > > > >> > the text in the top textarea into base64 and place the result in
> the
> > > > >> > lower textarea. Generally, if the In textbox is blank, the input
> for
> > > > >> > Encode or Decode will be the upper textarea, and if the Out
> textbox
> > > > >> > is blank, the output of the Encode or Decode will be shown in
> the
> > > > >> > lower textarea.  To encode binary data, you'll need to use a
> file as
> > > > >> > input, so use the In textbox to specify the file name.  To
> decode
> > > > >> > base64 that represents binary data, you'll need to use a file as
> > > > >> > output, so use the Out textbox to specify the output file name.
> > > > >> >
> > > > >> > You can try out binary to base64 using fluffy.jpg (shipped with
> the
> > > > >> > project) as your In file.
> > > > >> >
> > > > >> > To test round-trip (so start with a binary, encode it to base64,
> > > > >> > then decode the base64 data to make an identical binary)...
> enter
> > > > >> > fluffy.jpg in the In textbox, blank the Out textbox, hit Encode.
>  In
> > > > >> > the lower textarea Select All, Copy... then in the upper
> textarea
> > > > >> > Paste.  Now clear the In textbox and enter coffee.jpg in the Out
> > > > >> > textbox.  Hit Decode.  You *should* find a new file in your
> Base64
> > > > >> > project directory called coffee.jpg, and it *should* be
> identical to
> > > > >> > the fluffy.jpg shipped with the project.
> > > > >> >
> > > > >> > I'm not convinced that my completely untuned, horribly
> inefficient
> > > > >> > algorithms in Gambas will be the best way to go if speed is of
> the
> > > > >> > essence or if the pdf files are gonna be more than a few 100
> kbs...
> > > > >> > you might find it quicker/more robust to call out to a built-in
> > > > >> > function in java/python/some other program...
> > > > >> >
> > > > >> > Anyways, all the (commented) source is there for you to
> see/fiddle
> > > > >> > with...so have fun, but if you have any questions, just give me
> a
> > > > >> > shout.
> > > > >> >
> > > > >> > Regards,
> > > > >> > Caveat
> > > > >> >
> > > > >> > On Thu, 2011-04-28 at 07:38 +1000, Ian Haywood wrote:
> > > > >> >> No, HL7 parsing is fine, let me restate the question: does
> gambas
> > > > >> >> have an inbuilt function to
> > > > >> >> decode base 64 data?
> > > > >> >>
> > > > >> >> Ian
> > > > >> >>
> > > > >> >> On Thu, Apr 28, 2011 at 3:48 AM, nando <
> nando_f at ...951...>
> > >
> > > wrote:
> > > > >> >> > Health Level 7 file format
> > > > >> >> > To start visit:
> > > > >> >> > http://en.wikipedia.org/wiki/Health_Level_7
> > > > >> >> >
> > > > >> >> >
> > > > >> >> > ---------- Original Message -----------
> > > > >> >> > From: richard terry <rterry at ...1946...>
> > > > >> >> > To: mailing list for gambas users
> > > > >> >> > <gambas-user at lists.sourceforge.net> Sent: Wed, 27 Apr 2011
> > > > >> >> > 18:13:57 +1000
> > > > >> >> > Subject: [Gambas-user] Base 64 question
> > > > >> >> >
> > > > >> >> >> Hi list,
> > > > >> >> >>
> > > > >> >> >> I've a HL7 file apparently with embedded base64 data (as a
> pdf)
> > > > >> >> >> I wondered if there iwas any way to de-encode the data, if
> that
> > > > >> >> >> is the right syntax.
> > > > >> >> >>
> > > > >> >> >> Regards
> > > > >> >> >>
> > > > >> >> >> Richard
> > > > >> >> >>
> > > > >> >> >>
> ----------------------------------------------------------------
> > > > >> >> >>-- --- --------- WhatsUp Gold - Download Free Network
> Management
> > > > >> >> >> Software The most intuitive, comprehensive, and
> cost-effective
> > > > >> >> >> network management toolset available today.  Delivers lowest
> > > > >> >> >> initial acquisition cost and overall TCO of any competing
> > > > >> >> >> solution. http://p.sf.net/sfu/whatsupgold-sd
> > > > >> >> >> _______________________________________________
> > > > >> >> >> Gambas-user mailing list
> > > > >> >> >> Gambas-user at lists.sourceforge.net
> > > > >> >> >> https://lists.sourceforge.net/lists/listinfo/gambas-user
> > > > >> >> >
> > > > >> >> > ------- End of Original Message -------
> > > > >> >> >
> > > > >> >> >
> > > > >> >> >
> -----------------------------------------------------------------
> > > > >> >> >-- --- -------- WhatsUp Gold - Download Free Network
> Management
> > > > >> >> > Software The most intuitive, comprehensive, and
> cost-effective
> > > > >> >> > network management toolset available today.  Delivers lowest
> > > > >> >> > initial acquisition cost and overall TCO of any competing
> > > > >> >> > solution. http://p.sf.net/sfu/whatsupgold-sd
> > > > >> >> > _______________________________________________
> > > > >> >> > Gambas-user mailing list
> > > > >> >> > Gambas-user at lists.sourceforge.net
> > > > >> >> > https://lists.sourceforge.net/lists/listinfo/gambas-user
> > > > >> >>
> > > > >> >>
> -------------------------------------------------------------------
> > > > >> >>-- --- ------ WhatsUp Gold - Download Free Network Management
> > > > >> >> Software The most intuitive, comprehensive, and cost-effective
> > > > >> >> network management toolset available today.  Delivers lowest
> > > > >> >> initial acquisition cost and overall TCO of any competing
> solution.
> > > > >> >> http://p.sf.net/sfu/whatsupgold-sd
> > > > >> >> _______________________________________________
> > > > >> >> Gambas-user mailing list
> > > > >> >> Gambas-user at lists.sourceforge.net
> > > > >> >> https://lists.sourceforge.net/lists/listinfo/gambas-user
> > > > >> >
> > > > >> >
> --------------------------------------------------------------------
> > > > >> >-- --- ----- WhatsUp Gold - Download Free Network Management
> Software
> > > > >> > The most intuitive, comprehensive, and cost-effective network
> > > > >> > management toolset available today.  Delivers lowest initial
> > > > >> > acquisition cost and overall TCO of any competing solution.
> > > > >> > http://p.sf.net/sfu/whatsupgold-sd
> > > > >> > _______________________________________________
> > > > >> > Gambas-user mailing list
> > > > >> > Gambas-user at lists.sourceforge.net
> > > > >> > https://lists.sourceforge.net/lists/listinfo/gambas-user
> > > > >
> > > > >
> -----------------------------------------------------------------------
> > > > >-- ----- WhatsUp Gold - Download Free Network Management Software
> > > > > The most intuitive, comprehensive, and cost-effective network
> > > > > management toolset available today.  Delivers lowest initial
> > > > > acquisition cost and overall TCO of any competing solution.
> > > > > http://p.sf.net/sfu/whatsupgold-sd
> > > > > _______________________________________________
> > > > > Gambas-user mailing list
> > > > > Gambas-user at lists.sourceforge.net
> > > > > https://lists.sourceforge.net/lists/listinfo/gambas-user
> > >
> > >
> ---------------------------------------------------------------------------
> > > --- WhatsUp Gold - Download Free Network Management Software
> > > The most intuitive, comprehensive, and cost-effective network
> > > management toolset available today.  Delivers lowest initial
> > > acquisition cost and overall TCO of any competing solution.
> > > http://p.sf.net/sfu/whatsupgold-sd
> > > _______________________________________________
> > > Gambas-user mailing list
> > > Gambas-user at lists.sourceforge.net
> > > https://lists.sourceforge.net/lists/listinfo/gambas-user
> > >
> >
> >
> ------------------------------------------------------------------------------
> > WhatsUp Gold - Download Free Network Management Software
> > The most intuitive, comprehensive, and cost-effective network
> > management toolset available today.  Delivers lowest initial
> > acquisition cost and overall TCO of any competing solution.
> > http://p.sf.net/sfu/whatsupgold-sd
> > _______________________________________________
> > Gambas-user mailing list
> > Gambas-user at lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/gambas-user
>
>
>
>
> ------------------------------------------------------------------------------
> WhatsUp Gold - Download Free Network Management Software
> The most intuitive, comprehensive, and cost-effective network
> management toolset available today.  Delivers lowest initial
> acquisition cost and overall TCO of any competing solution.
> http://p.sf.net/sfu/whatsupgold-sd
> _______________________________________________
> Gambas-user mailing list
> Gambas-user at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gambas-user
>



More information about the User mailing list