Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Using STREXTRACT
Message
From
06/10/2018 15:34:06
 
 
To
06/10/2018 13:24:37
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Windows 7
Network:
Windows XP
Database:
Visual FoxPro
Application:
Desktop
Miscellaneous
Thread ID:
01662486
Message ID:
01662492
Views:
44
Don't want to be RATting on vfp capabilities, but going AT it from left and right might be KISS on this specific UC

LastIndexOf in other script languages feel overblown compared to vfp conciseness

;-)



>>Hi,
>>Please consider these two cases
>>
>>A=F1 (Plan 99 \Old Plan 100\)472 676 w
>>A=F1 (Plan 99 \(Old Plan 100\))472 676 w
>>
>>
>>I need to Extract the Text Between the two Brackets i.e "(" and ")"
>>
>>If I use STREXTRACT(A,'(',')'), for the first Case I get " Plan 99 \Old Plan 100\", which is correct as per my requirement.
>>
>>But I get "Plan 99 \(Old Plan 100\" for my second case while It need "Plan 99 \(Old Plan 100\)".
>>
>>I Need to extract the Text Between Two Extreme Brackets. How to do this in both the above situation.
>>
>>Thanks
>
>Harsh,
>
>A generalized function that expands on STREXTRACT():
>
>
>? OuterStrExtract("A=F1 (Plan 99 \Old Plan 100\)472 676 w", "(", ")")
>? OuterStrExtract("A=F1 (Plan 99 \(Old Plan 100\))472 676 ", "(", ")")
>
>FUNCTION OuterStrExtract (Searched AS String, BeginDelimiter AS String, EndDelimiter AS String)
>
>	LOCAL ARRAY Segments(1)
>	LOCAL SegIndex AS Integer
>	LOCAL RebuildInnerStr AS String
>	LOCAL OuterString AS String
>
>	m.OuterString = ""
>	m.RebuildInnerStr = ""
>
>	FOR m.SegIndex = 1 TO ALINES(m.Segments, STREXTRACT(m.Searched, m.BeginDelimiter, "", 1), 0, m.EndDelimiter) - 1
>		m.OuterString = m.OuterString + m.RebuildInnerStr + m.Segments(m.SegIndex)
>		m.RebuildInnerStr = m.EndDelimiter
>	ENDFOR
>
>	RETURN m.OuterString
>
>ENDFUNC
>
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform