Talk:Regular Expressions Tutorial

From Free Knowledge Base- The DUCK Project: information for everyone
Jump to: navigation, search

Using RegEx to save programming time on VB6 code

I have a list of forms:

frInterface(0) frInterface(1) pboxTrack txtOut pbar2 pbar1 lbWait lb0msTop lb100msTop lb50msTop lb100msBottom lb500msBottom lb1000msBottom lbStatus txtNull

I need to use them to make formulas and new variables. It would take a lot of time to manually type it all. Using a Windowz application search and replace will not do any good. RegEx to the rescue!

%s/^\(.*\)/mw\1 = \1.width \/ me.width:  mh\1 = \1.height \/ me.height/

Yields:

mwfrInterface(0) = frInterface(0).width / me.width:  mhfrInterface(0) = frInterface(0).height / me.height
mwfrInterface(1) = frInterface(1).width / me.width:  mhfrInterface(1) = frInterface(1).height / me.height
mwpboxTrack = pboxTrack.width / me.width:  mhpboxTrack = pboxTrack.height / me.height
mwfrInterface = frInterface.width / me.width:  mhfrInterface = frInterface.height / me.height
mwtxtOut = txtOut.width / me.width:  mhtxtOut = txtOut.height / me.height
mwpbar2 = pbar2.width / me.width:  mhpbar2 = pbar2.height / me.height
mwpbar1 = pbar1.width / me.width:  mhpbar1 = pbar1.height / me.height
mwlbWait = lbWait.width / me.width:  mhlbWait = lbWait.height / me.height
mwlb0msTop = lb0msTop.width / me.width:  mhlb0msTop = lb0msTop.height / me.height
mwlb100msTop = lb100msTop.width / me.width:  mhlb100msTop = lb100msTop.height / me.height
mwlb50msTop = lb50msTop.width / me.width:  mhlb50msTop = lb50msTop.height / me.height
mwlb100msBottom = lb100msBottom.width / me.width:  mhlb100msBottom = lb100msBottom.height / me.height
mwlb500msBottom = lb500msBottom.width / me.width:  mhlb500msBottom = lb500msBottom.height / me.height
mwlb1000msBottom = lb1000msBottom.width / me.width:  mhlb1000msBottom = lb1000msBottom.height / me.height
mwlbStatus = lbStatus.width / me.width:  mhlbStatus = lbStatus.height / me.height
mwtxtNull = txtNull.width / me.width:  mhtxtNull = txtNull.height / me.height

Now I need to declare the variables. More nasty manual edits? nope. RegEx makes it fast and easy!

%s/^\(.*\)/dim mw\1 as single, mh\1 as single/

Yields:

dim mwfrInterface(1) as single, mhfrInterface(1) as single
dim mwpboxTrack as single, mhpboxTrack as single
dim mwtxtOut as single, mhtxtOut as single
dim mwpbar2 as single, mhpbar2 as single
dim mwpbar1 as single, mhpbar1 as single
dim mwlbWait as single, mhlbWait as single
dim mwlb0msTop as single, mhlb0msTop as single
dim mwlb100msTop as single, mhlb100msTop as single
dim mwlb50msTop as single, mhlb50msTop as single
dim mwlb100msBottom as single, mhlb100msBottom as single
dim mwlb500msBottom as single, mhlb500msBottom as single
dim mwlb1000msBottom as single, mhlb1000msBottom as single
dim mwlbStatus as single, mhlbStatus as single
dim mwtxtNull as single, mhtxtNull as single