[Gambas-user] Select Case problem
Tobias Boege
taboege at ...626...
Thu Mar 28 11:11:36 CET 2013
On Thu, 28 Mar 2013, Tobias Boege wrote:
> On Thu, 28 Mar 2013, Beno?t Minisini wrote:
> > Le 28/03/2013 07:47, Bruce a ?crit :
> > > On Thu, 2013-03-28 at 17:05 +1030, Bruce wrote:
> > >> Hi,
> > >>
> > >> I am trying to parse a text file that contains key,value pairs like:
> > >> Name=Malarky
> > >> Size=10
> > >> BackImage[N]=sometext
> > >> FrontImage[S]=sometext
> > >> etc
> > >> using a construct like
> > >> For idx = 0 to sourcearray.max
> > >> Select Upper(Split(SourceArray[idx],"+")[0])
> > >> Case "NAME"
> > >> blah blah
> > >> Case "SIZE"
> > >> blah blah
> > >> Case Like "BACKIMAGE[*]"
> > >> blah blah
> > >> Case Like "FRONTIMAGE[*]"
> > >> blah blah
> > >> End Select
> > >> Next
> > >>
> > >> This fails because Case Like "BACKIMAGE[*]" is being interpreted as a
> > >> regular expression where I need to escape the regexp "[]" meaning.
> > >>
> > >> Trying to use escapes like
> > >> Case Like "BACKIMAGE\[*\]"
> > >> fails as \[ is an unknown escape sequence.
> > >>
> > >> Any clues?
> > >>
> > >> tia
> > >> Bruce
> > >>
> > >
> > > Sorry, I have over simplified that. I also need to discern lines like
> > > BACKIMAGE[*]
> > > from lines like
> > > BACKIMAGE[*][*]
> > > so
> > > Like "BACKIMAGE*"
> > > wont work.
> > >
> > > B
> > >
> >
> > Case "BACKIMAGE[[]*]"
> > Case "BACKIMAGE[[]*][[]*]"
> >
> > Is that what you want?
> >
> > Escaping '[' character in regular expression is done by using "[[]" or
> > "\\[". (see the documentation of LIKE).
> >
>
> This expression (the first one of yours) would match
>
> "BACKIMAGE[", "BACKIMAGE*" or "BACKIMAGE]"
>
> but not
>
> "BACKIMAGE[*]"
>
> Using the []-LIKE notation, the correct expression would be
>
> "BACKIMAGE[[][*][]]"
>
> but I'd prefer the "\\" style for readability in this case. CMIIW.
Ahh! Ok, I mis-parsed your expressions. They _will_ match
"BACKIMAGE[*]", but also something like "BACKIMAGE[a]" which may or maybe
not what Bruce wants...
More information about the User
mailing list