Hoạt động hàm compare:

Một phần của tài liệu tai lieu lap trinh delphipascal (Trang 60 - 71)

- trừ hai số nguyên

Hoạt động hàm compare:

-so sánh hai xâu strA và strB -kết quả có thể là:

<0 khi strA nhỏ hơn (ở trước) strB =0 khi strA giống strB

>0 khi strA lớn hơn (ở sau) strB

-Tham số IgnoreCase nhận một trong hai giá trị true/false, có ý nghĩa là phân biệt chữ hoa hay không. Tham số này có thể bỏ.

Ví dụ:

Có phân biệt chữ hoa và thường:

procedure TForm1.FormCreate(Sender: TObject); var s1,s2:string;

begin

//hai xâu có độ dài bằng nhau (đều là chữ thường): s1:='các bạn';

s2:='các bạn';

showmessage(inttostr(string.compare(s1,s2))); end;

---

procedure TForm1.FormCreate(Sender: TObject); var s1,s2:string;

begin

//hai xâu có độ dài bằng nhau (có chữ hoa là Á): s1:='các bạn';

s2:='cÁc bạn';

showmessage(inttostr(string.compare(s1,s2))); end;

---

//hai xâu có độ dài bằng nhau (có chữ hoa là Á trong s2; s1 đổi các thành ccá): s1:='ccá bạn';

s2:='cÁc bạn';

---

//hai xâu có độ dài khác nhau (có chữ hoa là Á trong s2; s1 đổi các thành ccá): s1:='ccá bạn';

s2:='cÁc bạn, khỏe ...';

---

Có thêm tham số thứ ba:

Nếu là true thì không phân biệt chữ hoa/thường. //hai xâu có độ dài bằng nhau:

s1:='các bạn'; s2:='cÁc bạn';

showmessage(inttostr(string.compare(s1,s2,true)));

---

//hai xâu có độ dài khác nhau (có chữ hoa là Á trong s2): s1:='các bạn';

s2:='cÁc bạn, khỏe ...'; (adsbygoogle = window.adsbygoogle || []).push({});

---

Hàm CompareTo

Cú pháp:

TênBiếnXâu.CompareTo(const strB: string): Integer;

Hoạt động:

phân biệt chữ hoa/thường.

So sánh xâu này với xâu strB. Kết quả trả về: =0 hai xâu giống nhau.

<0 khi xâu này trước xâu strB. >0 khi xâu này sau xâu strB.

Ví dụ:

procedure TForm1.FormCreate(Sender: TObject); var s1,s2:string;

begin //hàm compareto phân biệt chữ hoa/thường. s1:='chào bạn';

s2:='chào bạn';

showmessage( inttostr(s1.CompareTo(s2)) ); end;

---

procedure TForm1.FormCreate(Sender: TObject); var s1,s2:string;

begin //hàm compareto phân biệt chữ hoa/thường. s1:='chào bạn';

s2:='cHào bạn'; //chữ chào thành cHào showmessage( inttostr(s1.CompareTo(s2)) ); end;

---

procedure TForm1.FormCreate(Sender: TObject); var s1,s2:string;

begin //hàm compareto phân biệt chữ hoa/thường. s1:='chÀo bạn'; //đổi chữ chào thành chÀo

s2:='chào bạn';

showmessage( inttostr(s1.CompareTo(s2)) ); end;

---

procedure TForm1.FormCreate(Sender: TObject); var s1,s2:string;

begin //hàm compareto phân biệt chữ hoa/thường. s1:='chào bạn';

s2:='choà bạn'; //đổi chữ chào thành choà showmessage( inttostr(s1.CompareTo(s2)) ); end;

Hàm Copy

Cú pháp

String.Copy(const Str: string): string;

Hoạt động (adsbygoogle = window.adsbygoogle || []).push({});

Sao chép và trả lại nguyên xâu đó.

Ví dụ:

procedure TForm1.FormCreate(Sender: TObject); var s:string;

begin

s:='kiểu dữ liệu TStringHelper';

showmessage( 'đây là xâu được sao chép lại: '+string.Copy(s)); end;

Hàm CountChar

Cú pháp

TênBiếnXâu.CountChar(const C: Char): Integer;

Hoạt động

Đếm số lượng kí tự chứa trong nội dung biến C có trong xâu này.

Ví dụ

procedure TForm1.FormCreate(Sender: TObject); var s:string;

begin

s:='chào các bạn, đây là ví dụ về hàm CountChar.';

showmessage( 'số lượng kí tự ''à'' là: '+inttostr(s.CountChar('à'))); end;

Hàm IndexOf Cú pháp

1. TênBiếnXâu.IndexOf(const st: string): Integer;

2. TênBiếnXâu.IndexOf(const st: string; StartIndex: Integer): Integer;

3. TênBiếnXâu.IndexOf(const st: string; StartIndex: Integer; Count: Integer): Integer;

Hoạt động

Tìm vị trí đầu tiên của xâu st trong xâu này, với vị trí bắt đầu (nếu có) là startIndex, trong phạm vi bao nhiêu kí tự (nếu có) là count.

Trả về -1 khi tìm không thấy hoặc khi giá trị bắt đầu StartIndex không hợp lệ.

Ví dụ:

-Bạn tạo một ứng dụng mới, nháy đôi vào form, gõ các lệnh sau vào thủ tục formCreate, rồi nhấn phím F9 để xem lần lượt các kết quả.

-Nội dung các lệnh:

procedure TForm1.FormCreate(Sender: TObject); var s:string;

begin

s:='chào các bạn.'; //kí tự đầu tiên có vị trí là 0 //ví dụ cho cú pháp số 1.

//lưu ý có phân biệt dấu tiếng Việt: (adsbygoogle = window.adsbygoogle || []).push({});

showmessage('vị trí của ''a'' là: '+inttostr(s.IndexOf('a' ) )); showmessage('vị trí của ''á'' là: '+inttostr(s.IndexOf('á' ) )); //ví dụ cho cú pháp số 2.

showmessage('vị trí của ''c'' là: '+inttostr(s.IndexOf('c' ) ));

showmessage('vị trí của ''c'', bắt đầu tìm từ vị trí 3 (từ chữ o) là: '+inttostr(s.IndexOf('c', 3 ) ));

//ví dụ cho cú pháp số 3

showmessage('vị trí của ''c'', bắt đầu tìm từ vị trí 3 (từ chữ o), phạm vi tìm là 2 kí tự, là: '+inttostr(s.IndexOf('c', 3,2 ) ));

showmessage('vị trí của ''c'', bắt đầu tìm từ vị trí 3 (từ chữ o), phạm vi tìm là 4 kí tự, là: '+inttostr(s.IndexOf('c', 3,4 ) ));

Hàm Insert Cú pháp

TênBiếnXâu.Insert(StartIndex: Integer; const Value: string): string;

Hoạt động

Chèn thêm xâu value vào xâu TênBiênXâu từ vị trí startindex.

Ví dụ

Yêu cầu: chèn thêm xâu ‘các’ vào xâu ‘chào bạn’ để có kết quả là ‘chào các bạn’

Phân tích: ở đây ta dùng hàm của thư viện tStringHelper nên kí tự đầu tiên có số thứ tự là 0, nên vị trí bắt đầu chèn là 5.

Thao tác:

Tạo ứng dụng mới trong delphi.

Nháy đôi vào form và chèn thêm các lệnh để có thủ tục như sau:

procedure TForm1.FormCreate(Sender: TObject); var s:string;

begin

s:='chào bạn'; //kí tự đầu tiên có số thứ tự là 0

showmessage('chèn xâu: ''các'' vào xâu '''+s+''' từ vị trí 5 là: '+s.Insert(5,'các ')); end;

chương trình và kết quả như hình dưới:

Hàm IsEmpty

Cú pháp:

TênBiênString.IsEmpty: Boolean; Hoạt động: trả về kết quả là true/false (-1/0)

True (-1): khi xâu đó là rỗng (nghĩa là không có bất kì kí tự nào) False (0): khi xâu đó có ít nhất một kí tự nào đó.

Ví dụ:

Yêu cầu: hãy cho biết biến xâu s có chứa kí tự nào không?

Phân tích: nếu xâu s không chứa kí tự nào cả thì đó là xâu rỗng nên ta dùng hàm isEmty.

Chương trình:

procedure TForm1.FormCreate(Sender: TObject); var s:string; (adsbygoogle = window.adsbygoogle || []).push({});

begin

s:=''; //s là xâu rỗng

showmessage('kết quả của hàm isEmty là: '+booltostr(s.IsEmpty)); s:=' chào bạn'; //s là xâu không rỗng (chứa ít nhất một kí tự nào đó. showmessage('kết quả của hàm isEmty là: '+booltostr(s.IsEmpty)); end;

kết quả của chạy chương trình:

Hàm Join

Cú pháp

1. TênBiênXâu.Join(const Separator: string; const Values: array of const): string; 2. TênBiênXâu.Join(const Separator: string; const Values: array of string): string; 3. TênBiênXâu.Join(const Separator: string; const Values: array of string;

BắtĐầu:integer; SốLượng:integer): string;

Separator là xâu dùng để phân cách các xâu cần nối lại.

Values là danh sách các xâu cần ghép lại, được thể hiện theo cách: Cách 1. Là hằng mãng một chiều có dạng [xâu0, xâu1, xâu2,…,xâuN]. Cách 2. Là biến mãng một chiều, với kiểu phần tử là kiểu string, chỉ số đầu có thể khác số 0.

BắtĐầu là vị trí bắt đầu trong danh sách các xâu cần ghép.

SốLượng là số lượng xâu sẽ được lấy ra trong danh sách các xâu.

Hoạt động

Dùng xâu separator để phân cách các xâu được ghép lại.

Nếu có tham số bắtđầu và sốlượng thì lấy ra ‘số lượng’ phần tử trong danh sách với vị trí từ ‘bắt đầu’ tính sang phải.

Nếu không có tham số bắtđầu và sốlượng thì lấy hết tất cả phần tử trong danh sách.

Một phần của tài liệu tai lieu lap trinh delphipascal (Trang 60 - 71)