home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / extra18 / toolbox / compare.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1992-01-21  |  1.5 KB  |  57 lines

  1. (* ------------------------------------------------- *)
  2. (*                COMPARE.PAS                        *)
  3. (*  Case-insensitiver Vergleich zweier Zeichenketten *)
  4. (*         (c) 1990, 1992  W.Rinke & DMV-Verlag      *)
  5. (* ------------------------------------------------- *)
  6. UNIT St_Compare;
  7.  
  8. INTERFACE
  9.  
  10. TYPE
  11.   Quality  = (Lss, Eql, Gtr);
  12.  
  13.   FUNCTION Compare(s : STRING;
  14.                    sList : STRING) : Quality;
  15.  
  16. IMPLEMENTATION
  17.  
  18.   FUNCTION Compare(s : STRING;
  19.                    sList : STRING) : Quality;
  20.   VAR
  21.     spos : INTEGER;
  22.     done : BOOLEAN;
  23.     mpos : INTEGER;
  24.   BEGIN
  25.     IF Length(s) > Length(sList) THEN BEGIN
  26.       mpos := Length(s);
  27.       sList := sList + #32;
  28.     END ELSE BEGIN
  29.       mpos := Length(sList);
  30.       s     := s + #32;
  31.     END;
  32.     spos := 1;  done := FALSE;
  33.     REPEAT
  34.       IF UpCase(s[spos]) = UpCase(SList[spos]) THEN
  35.         IF spos = mpos THEN BEGIN
  36.           Compare := Eql;
  37.           done    := TRUE;
  38.         END;
  39.       IF UpCase(s[spos]) < UpCase(SList[spos])
  40.                                              THEN BEGIN
  41.         Compare := Lss;
  42.         done    := TRUE;
  43.       END ELSE
  44.         IF UpCase(s[spos]) > UpCase(SList[spos])
  45.                                              THEN BEGIN
  46.           Compare := Gtr;
  47.           done    := TRUE;
  48.         END;
  49.       Inc(spos);
  50.     UNTIL done;
  51.   END;
  52.  
  53. BEGIN
  54. END.
  55. (* ------------------------------------------------- *)
  56. (*              Ende von COMPARE.PAS                 *)
  57.