Kiểu chuỗi
Kiểu chuỗi được sử dụng để lưu trữ chuỗi văn bản. Chuỗi văn bản là một chuỗi ký tự theo định dạng Unicode với số không cuối cùng ở cuối. Hằng chuỗi có thể được gán cho một biến chuỗi. Hằng chuỗi là một chuỗi ký tự Unicode được đặt trong dấu ngoặc kép: "Đây là một hằng chuỗi"
.
Nếu bạn cần đưa dấu ngoặc kép ("
) vào chuỗi, ký tự dấu gạch chéo ngược (\
) phải được đặt trước ký tự đó. Bất kỳ hằng ký tự đặc biệt nào cũng có thể được viết trong chuỗi, nếu ký tự dấu gạch chéo ngược (\
) được nhập trước chúng.
VD:
string svar="Đây là một chuỗi ký tự";
string svar2=StringSubstr(svar,0,4);
Print("Copyright symbol\t\x00A9");
FileWrite(handle,"Chuỗi này chứa một ký tự dòng mới \n");
string MT5path="C:\\Program Files\\MetaTrader 5";
Để làm cho mã nguồn có thể đọc được, các chuỗi dài không đổi có thể được chia thành nhiều phần mà không cần thao tác bổ sung. Trong quá trình biên dịch, các phần này sẽ được kết hợp thành một chuỗi dài:
//--- Khai báo một chuỗi dài không đổi
string HTML_head="<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\""
" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
"<html xmlns=\"http://www.w3.org/1999/xhtml\">\n"
"<head>\n"
"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n"
"<title>Trade Operations Report</title>\n"
"</head>";
//--- Xuất chuỗi không đổi vào log
Print(HTML_head);
Các phương thức (hàm) kiểu chuỗi tích hợp
Chuỗi có thể được xử lý bằng các hàm chuỗi, hàm chuyển đổi và các phương thức tích hợp của loại chuỗi được cung cấp trong bảng:
Phương thức chuỗi | Tương đương | Mô tả |
---|---|---|
Constructor string(const int len) | Xây dựng một chuỗi của một số đã chỉ định | |
string[] length cho cả đọc và viết. Chỉ mục phải nằm trong BufferSize() | Cung cấp quyền truy cập vào phần tử chuỗi theo chỉ mục được chỉ định | |
static string string.Init(const int len, const ushort character); | StringInit | Khởi tạo một chuỗi bằng cách sử dụng các ký hiệu được chỉ định với kích thước được chỉ định |
void string.Fill(const ushort character); | StringFill | Điền vào chuỗi ký tự được chỉ định |
int string.Len(); | StringLen | Trả về số ký tự trong một chuỗi |
int string.BufferSize(); | StringBufferLen | Trả về kích thước của bộ đệm được phân phối cho một chuỗi |
bool string.SetLen(const int new_len); | StringSetLength | Đặt độ dài cụ thể (tính bằng ký tự) cho một chuỗi |
bool string.Reserve(const int buffer_len); | StringReserve | Dự trữ bộ đệm có kích thước được chỉ định cho một chuỗi trong bộ nhớ |
bool string.Add(const string substring); | StringAdd | Thêm một chuỗi con được chỉ định vào cuối |
int string.Concatenate(const scalar val1, const scalar val2...); | StringConcatenate | Tạo một chuỗi bao gồm các tham số được truyền |
array string.Split(const ushort separator, const bool long_separator); | StringSplit | Trả về một mảng chuỗi theo một dấu phân cách được chỉ định |
int string.Compare(const string str, const bool case_sensivity); | StringCompare | So sánh với một chuỗi được chỉ định và trả về 1 nếu chuỗi đầu tiên lớn hơn chuỗi thứ hai; 0 - nếu các chuỗi bằng nhau; -1 (trừ một) - nếu chuỗi đầu tiên nhỏ hơn chuỗi thứ hai |
string string.Substr(const int start_pos, const int len); | StringSubstr | Lấy một chuỗi con từ một vị trí đã chỉ định |
int string.Find(const string substr, const int pos); | StringFind | Trả về chỉ số của vị trí mà chuỗi con cần thiết bắt đầu từ đó |
void string.ToLower(); | StringToLower | Chuyển đổi tất cả các ký tự thành chữ thường |
void string.ToUpper(); | StringToUpper | Chuyển đổi tất cả các ký tự thành chữ hoa |
int string.TrimLeft(); | StringTrimLeft | Xóa khoảng trắng, cũng như di chuyển xe và các ký tự bảng ở bên trái |
int string.TrimRight() | StringTrimRight | Xóa khoảng trắng, cũng như di chuyển xe và các ký tự bảng ở bên phải |
void string.Double(const double var, const int digits=8); | DoubleToString | Chuyển đổi một chuỗi thành một số kiểu double |
void string.Enum(const enum value); | EnumToString | Chuyển đổi giá trị liệt kê của bất kỳ kiểu nào thành chuỗi |
void string.Integer(const int value, const int str_len=0, const ushort fill=' '); | IntegerToString | Chuyển đổi một chuỗi thành một số kiểu long |
void string.CharArray(const uchar array[], const int start_pos=0, const int len=-1, const uint cp=CP_ACP); | CharArrayToString | Chuyển đổi một phần của mảng kiểu uchar thành một chuỗi |
void string.ShortArray(const ushort array[], const int start_pos=0, const int len=-1); | ShortArrayToString | Sao chép một phần của mảng kiểu ushort vào một chuỗi |
void string.Time(const datetime dt,const int mode=TIME_DATE|TIME_MINUTES); | TimeToString | Chuyển đổi datetime sang chuỗi định dạng "yyyy.mm.dd hh:mi" . |
void string.Format(const string format_str); | StringFormat | Định dạng các tham số thu được thành một chuỗi |