home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* COMPARE.PAS *)
- (* Case-insensitiver Vergleich zweier Zeichenketten *)
- (* (c) 1990 W.Rinke & TOOLBOX *)
- (* ------------------------------------------------------ *)
- UNIT St_Compare;
-
- INTERFACE
-
- TYPE
- Quality = (Lss, Eql, Gtr);
-
- FUNCTION Compare(s : STRING; sList : STRING) : Quality;
-
- IMPLEMENTATION
-
- FUNCTION Compare(s : STRING; sList : STRING) : Quality;
- VAR
- spos : INTEGER;
- done : BOOLEAN;
- mpos : INTEGER;
- BEGIN
- IF Length(s) > Length(sList) THEN BEGIN
- mpos := Length(s);
- sList := sList + #32;
- END ELSE BEGIN
- mpos := Length(sList);
- s := s + #32;
- END;
- spos := 1; done := FALSE;
- REPEAT
- IF UpCase(s[spos]) = UpCase(SList[spos]) THEN
- IF spos = mpos THEN BEGIN
- Compare := Eql;
- done := TRUE;
- END;
- IF UpCase(s[spos]) < UpCase(SList[spos]) THEN BEGIN
- Compare := Lss;
- done := TRUE;
- END ELSE
- IF UpCase(s[spos]) > UpCase(SList[spos]) THEN BEGIN
- Compare := Gtr;
- done := TRUE;
- END;
- Inc(spos);
- UNTIL done;
- END;
-
- BEGIN
- END.
- (* ------------------------------------------------------ *)
- (* Ende von COMPARE.PAS *)