S_MATCH
|
WTSupported in traditional Synergy on Windows
|
WNSupported in Synergy .NET on Windows
|
USupported on UNIX
|
VSupported on OpenVMS
|
xcall S_MATCH(match_string, field, result)
Arguments
match_string
The match control string. (a)
field
The field that S_MATCH will attempt to match. (a)
result
The variable that will be loaded with one of the following values: (n)
1 = The match is successful.
0 = The match is not successful.
Discussion
The S_MATCH subroutine performs a string match.
The match_string argument contains one or more match expressions, where a match expression is zero or more asterisks (*), followed by zero or more strings, quoted strings, or question marks (?). The following interpretations apply:
Match zero or more characters.
Match any single character.
Match this string exactly.
Match this string, ignoring uppercase and lowercase.
For the field “This is a test string”, here are some examples of what matches and what doesn’t:
|
Match string |
Result |
|---|---|
|
“*test*” |
1 |
|
“test” |
0 |
|
“string” |
0 |
|
“*string” |
1 |
To specify a quote character within the match_string, use two consecutive quotation marks (““).
|
|
S_MATCH is affected by the case value of the LOCALIZE routine wherever the operation depends on (or is independent of) the case of a character. It is also affected by the current operating system language locale. |
Examples
The example below inputs a match control string, searches a file for that string, and displays the number of matches that were found.
.define TTCHN ,1
.define NMCHN ,2
record
line ,a80
found ,d1
match_str ,a80
matches ,d2
proc
open(TTCHN, o, "tt:")
open(NMCHN, i, "names.ddf")
xcall flags(20, 1)
display(TTCHN, "Enter a string to match: ")
reads(TTCHN, match_str)
repeat
begin
reads(NMCHN, line) [eof=done]
xcall s_match(match_str(1:%trim(match_str)),
& line(1:%trim(line)), found)
if (found)
begin
incr matches
writes(TTCHN, line)
end
end
done,
display(TTCHN, %string(matches), " matches found.")
close TTCHN
close NMCHN
stop
end
If names.ddf contains the following data and the match string is “B*”, three matches will be found:
|
Ben |
,Jones |
|
Beverly |
,Jones |
|
Burt |
,Jones |
