Delphi Basics
AnsiCompareStr
Function
Compare two strings for equality SysUtils unit
 function AnsiCompareStr ( const String1, String2 : string ) : Integer;
Description
The AnsiCompareStr function compares String1 and String2 for equality.
 
This is the modern, Locale safe form of CompareStr.
 
All Ansi commands support multi-byte and accented characters.
 
It returns these values :
 
String1 < String2  : -ve number
String1 = String2  : 0
String1 > String2  : +ve number

 
The comparison is not affected by length - it is carried out on a letter by letter basis. But a longer string is greater than a shorter, otherwise matching string.
 
The comparison is case sensitive.
 
Notes
In Delphi :

Upper case letters > Lower case letters
Lower case letters > Numbers

Multi-byte character sets are operating system defined. For example, Oriental versions of Windows uses multi-byte characters to support their very large set of primitives ('letters').
Related commands
AnsiCompareText Compare two strings for equality, ignoring case
 
Example code : Compare various strings
// Full Unit code.
// -----------------------------------------------------------
// You must store this code in a unit called Unit1 with a form
// called Form1 that has an OnCreate event called FormCreate.
 
unit Unit1;
 
interface
 
uses
  SysUtils,   // Unit containing the AnsiCompareStr command
  Forms, Dialogs;
 
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure CompareStrings(const string1, string2 : string);
  end;
 
var
  
Form1: TForm1;
 
implementation
{$R *.dfm} // Include form definitions
 
procedure TForm1.FormCreate(Sender: TObject);

begin
  // Compare two obviously different strings
  CompareStrings('HELLO', 'WORLD');

  // Compare identical strings
  CompareStrings('Hi 2 you', 'Hi 2 you');

  // Upper case letters follow lower case in Delphi
  CompareStrings('ABC', 'abc');

  // All letters follow numbers in Delphi
  CompareStrings('abc', '123');
end;

// Compare two strings, and show which is bigger than the other
procedure TForm1.CompareStrings(const string1, string2: string);
var
  result : Integer;
begin
  // Compare some strings
  result := AnsiCompareStr(string1, string2);

  if result < 0 then ShowMessage(string1+' < '+string2);
  if result = 0 then ShowMessage(string1+' = '+string2);
  if result > 0 then ShowMessage(string1+' > '+string2);
end;
 
end.
Hide full unit code
   HELLO < WORLD
   Hi 2 you = Hi 2 you
   ABC > abc
   abc > 123
 
 
© CodeGear 2006 - 2007. All rights reserved.  |  Home Page