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

  1. (* ------------------------------------------------------ *)
  2. (*                      COMP4.PAS                         *)
  3. (*            (c) 1993 te-wi Verlag, München              *)
  4. (* ------------------------------------------------------ *)
  5. PROGRAM Compare_4;
  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.     t1, t2 : CHAR;
  18.  
  19.   BEGIN
  20.     IF Length(s1) > Length(s2) THEN BEGIN
  21.       mPos := Length(s1);
  22.       s2 := s2 + #32;
  23.     END ELSE BEGIN
  24.       mPos := Length(s2);
  25.       s1 := s1 + #32;
  26.     END;
  27.     sPos := 1;
  28.     REPEAT
  29.       t1 := UpCase(s1[sPos]);
  30.       t2 := UpCase(s2[sPos]);
  31.       IF t1 = t2 THEN
  32.         IF sPos = mPos THEN BEGIN
  33.           Compare := Eql;
  34.           Exit;
  35.         END;
  36.       IF t1 < t2 THEN BEGIN
  37.         Compare := Lss;
  38.         Exit;
  39.       END ELSE IF t1 > t2 THEN BEGIN
  40.         Compare := Gtr;
  41.         Exit;
  42.       END;
  43.       Inc(sPos);
  44.     UNTIL FALSE;
  45.   END;
  46.  
  47. CONST
  48.   s1 : STRING = 'begin';
  49.   s2 : STRING = 'abs';
  50.   s3 : STRING = 'compare';
  51.   s4 : STRING = 'zappenduster';
  52.  
  53. BEGIN
  54.   WriteLn(Ord(Compare(s1, s2)));
  55.   WriteLn(Ord(Compare(s4, s1)));
  56.   WriteLn(Ord(Compare(s4, s4)));
  57.   WriteLn(Ord(Compare(s3, s4)));
  58. END.
  59. (* ------------------------------------------------------ *)
  60. (*                  Ende von COMP4.PAS                    *)
  61.  
  62.  
  63.