{*********************************************************************} PROGRAM StrCompare; { Jan 23/94, Greg Estabrooks. } USES CRT; { IMPORT Clrscr,WriteLn. } VAR SubName :STRING; { Holds the Subject name entered. } FUNCTION StrCmp( Str1,Str2 :STRING ) :BOOLEAN; { Case InSensitive Routine to compare two } { strings. } VAR StrPos :BYTE; { Current position within Strings. } CmpResult:BOOLEAN; { Result of comparison. } BEGIN CmpResult := TRUE; { Initialize 'CmpResult' to TRUE. } IF Length(Str1) <> Length(Str2) THEN { If not same length then don't} CmpResult := FALSE { Bother converting case and } { compareing. } ELSE BEGIN StrPos := 0; { Initialize 'StrPos' to 0. } REPEAT { Loop until every char checked. } INC(StrPos); { Point to next char. } IF UpCase(Str1[StrPos]) <> UpCase(Str2[StrPos]) THEN BEGIN CmpResult := False; { If there not the same then return } { a FALSE result. } StrPos := Length(Str2); { Now set loop exit condition. } END; UNTIL StrPos = Length(Str2); END; StrCmp := CmpResult; END;{StrCmp} BEGIN Clrscr; { Clear away the screen. } Write(' Name of subject ? :');{ Prompt user for subject name. } Readln(SubName); { Now get users input. } IF StrCmp('English',SubName) THEN { If there the same then tell user} Writeln('You chose ENGLISH') ELSE { If not then .............. } Writeln('Unknown Subject!',^G);{Tell user its unknown. } END.{StrCompare} {*********************************************************************}