Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Using STREXTRACT
Message
From
06/10/2018 13:59:02
 
 
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:
01662488
Views:
41
>>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
>
Thank You Sir
Harsh
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform