edmiLike
EdmiError edmiLike(SdaiString operand1,
SdaiString operand2,
SdaiInteger options,
SdaiLogical *result);
This function implements an extended version of the LIKE operation in the Express language as defined in section 12.2.5 in ISO 10303-11:1994(E) : The EXPRESS Language Reference Manual. The extension is that optionally the operation can do case insensitive comparison.
Arguments
Type | Name | Comment |
SdaiString | operand1 | The target string (left operand). |
SdaiString | operand2 | The pattern string (right operand). The pattern matching characters are:@ Matches any letter^ Matches any upper case letter? Matches any character& Matches remainder of string# Matches any digit$ Matches a substring terminated by a space character or end-of-string*Matches any number of characters\ Begins a pattern escape sequence! Negation character (used with the othercharacters) |
SdaiInteger | options | Specifies the options of the operation |
SdaiLogical | result | Address of a SdaiLogical variable that receives the result of the operation. The result is as follows:
|
Return Value
Options
Option | Comment |
|---|---|
CASE_SENSITIVE | Characters are compared case sensitive. The interpretation of the pattern matching characters are as described in <operand2> argument. CASE_SENSITIVE is the default behavior of the LIKE operation, i.e., when none of the options CASE_SENSITIVE and CASE_INSENSITIVE are set. |
CASE_INSENSITIVE | Characters are compared case insensitive. The interpretation of the pattern matching characters are as described in <operand2> argument. |
Example
SdaiAppInstance currInst;
SdaiLogical result;
EdmiError rstat;
. . .
if (rstat = edmiLike ("\AAAA", "
A?AA", CASE_SENSITIVE, &result)) {
/* Error in operation */
printf("\nError: %s in edmiLike\n",
edmiGetErrorText(rstat));
goto error;
}
if (result == sdaiTRUE) {
printf("\nString: %s matches pattern: %s", "
AAAA", "\\\\A?AA");
}
. . .
See also