[Gambas-user] Select Case problem

Tobias Boege taboege at ...626...
Thu Mar 28 10:15:06 CET 2013


On Thu, 28 Mar 2013, Bruce wrote:
> 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

OK. If the lines above (from your most recent mail) are literal strings,
then you'll need something like:

Case Like "BACKIMAGE\\[*\\]" ' The compiler transforms "\\" to a literal "\"
                             ' so that you end up with the right expression.

to match "BACKIMAGE[*]" but since you want to distinguish between, e.g.
"BACKIMAGE[*]" and "BACKIMAGE[*][*]" - why would you use "Case Like", i.e. a
regular expression at all? These are distinct strings you want to keep
distinct, no need to group them by regular expressions then?

Regards,
Tobi




More information about the User mailing list