home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / das_buch / profiler / comp3.pas < prev    next >
Pascal/Delphi Source File  |  1993-05-03  |  2KB  |  60 lines

  1. (* ------------------------------------------------------ *)
  2. (*                      COMP3.PAS                         *)
  3. (*            (c) 1993 te-wi Verlag, München              *)
  4. (* ------------------------------------------------------ *)
  5. PROGRAM Compare_3;
  6.  
  7. {$A+,B-,D+,E+,F-,G-,I+,L+,N-,O-,P-,Q+,R+,S+,T-,V+,X+,Y+}
  8. {$M 16384,0,655360}
  9.  
  10. TYPE
  11.   Quality = (Lss, Gtr, Eql);
  12.  
  13.   FUNCTION Compare(s1, s2 : STRING) : Quality;
  14.   VAR
  15.     sPos : INTEGER;
  16.     mPos : INTEGER;
  17.  
  18.   BEGIN
  19.     IF Length(s1) > Length(s2) THEN BEGIN
  20.       mPos := Length(s1);
  21.       s2 := s2 + #32;
  22.     END ELSE BEGIN
  23.       mPos := Length(s2);
  24.       s1 := s1 + #32;
  25.     END;
  26.     sPos := 1;
  27.     REPEAT
  28.       IF UpCase(s1[sPos]) = UpCase(s2[sPos]) THEN
  29.         IF sPos = mPos THEN BEGIN
  30.           Compare := Eql;
  31.           Exit;
  32.         END;
  33.       IF UpCase(s1[sPos]) < UpCase(s2[sPos]) THEN BEGIN
  34.         Compare := Lss;
  35.         Exit;
  36.       END ELSE IF UpCase(s1[sPos]) > UpCase(s2[sPos]) THEN BEGIN
  37.         Compare := Gtr;
  38.         Exit;
  39.       END;
  40.       Inc(sPos);
  41.     UNTIL FALSE;
  42.   END;
  43.  
  44. CONST
  45.   s1 : STRING = 'begin';
  46.   s2 : STRING = 'abs';
  47.   s3 : STRING = 'compare';
  48.   s4 : STRING = 'zappenduster';
  49.  
  50. BEGIN
  51.   WriteLn(Ord(Compare(s1, s2)));
  52.   WriteLn(Ord(Compare(s4, s1)));
  53.   WriteLn(Ord(Compare(s4, s4)));
  54.   WriteLn(Ord(Compare(s3, s4)));
  55. END.
  56. (* ------------------------------------------------------ *)
  57. (*                  Ende von COMP3.PAS                    *)
  58.  
  59.  
  60.