' ***********************************************************
' PROGRAM: FUNCTION STRCMP(S1$, S2$)
' PURPOSE: string compare
' RETURNS: 0 - S1$ = S2$: -1 - s1$ < s2$: 1 - S1$ > S2$
' AUTHOR: vovchik (Puppy Linux forum)
' DEPENDS: bacon, bash
' PLATFORM: Puppy Linux (actually, any *nix with GTK)
' DATE: 04-03-2010
' VERSION: 0.01b
' ***********************************************************
' *****************
' FUNCTIONS
' *****************
FUNCTION STRCMP(STRING s1$, STRING s2$, NUMBER upcase)
LOCAL my_result, max_len, i, char1, char2
IF upcase THEN
s1$ = UCASE$(s1$)
s2$ = UCASE$(s2$)
END IF
IF LEN(s1$) > LEN(s2$) THEN
max_len = LEN(s1$)
ELSE
max_len = LEN(s2$)
END IF
IF EQUAL(s1$, s2$) THEN
my_result = 0
ELSE
FOR i = 1 TO max_len
char1 = ASC(MID$(s1$,i, 1))
char2 = ASC(MID$(s2$,i, 1))
IF char1 > char2 THEN
my_result = 1
BREAK
ELIF char1 < char2 THEN
my_result = -1
BREAK
END IF
NEXT i
END IF
RETURN my_result
END FUNCTION
' *****************
' END FUNCTIONS
' *****************
' *****************
' MAIN
' *****************
' test of function
q$ = CHR$(34)
PRINT
PRINT "STRCMP(",q$,"aaa,",q$,"Aaa",q$,") : ", STRCMP("aaa","Aaa",0)
PRINT "STRCMP(",q$,"aaa,",q$,"AAA",q$,") : ", STRCMP("aaa","AAA",1)
PRINT "STRCMP(",q$,"aaa,",q$,"bbb",q$,") : ", STRCMP("aaa","bbb",0)
PRINT "STRCMP(",q$,"bbb,",q$,"aaa",q$,") : ", STRCMP("bbb","aaa",0)
PRINT "STRCMP(",q$,"aaa,",q$,"aaa",q$,") : ", STRCMP("aaa","aaa",0)
PRINT "STRCMP(",q$,"aab,",q$,"aba",q$,") : ", STRCMP("aab","aba",0)
PRINT "STRCMP(",q$,"1 2,",q$,"12",q$,") : ", STRCMP("12","12 ",0)
PRINT "STRCMP(",q$,"a,",q$,"z",q$,") : ", STRCMP("a","z",0)
PRINT "STRCMP(",q$,"z,",q$,"a",q$,") : ", STRCMP("z","a",0)
PRINT "STRCMP(",q$,"a,",q$,"Z",q$,") : ", STRCMP("a","Z",0)
PRINT "STRCMP(",q$,"Z,",q$,"a",q$,") : ", STRCMP("Z","a",0)
PRINT "STRCMP(",q$,"cY,",q$,"cy",q$,") : ", STRCMP("cY","cy",0)
PRINT
IF STRCMP("a", "b", 0) < 0 THEN
PRINT "a is less than b."
END IF
IF STRCMP("a", "A", 1) EQ 0 THEN
PRINT "a is equal to A."
END IF
IF STRCMP("b", "a", 0) > 0 THEN
PRINT "b is greater than a."
END IF
PRINT
END
' *****************
' END MAIN
' *****************