home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1990 / 10 / tricks / compare.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1990-07-16  |  1.4 KB  |  52 lines

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