Cờ Mở Tệp
Giá trị cờ mở tệp xác định chế độ truy cập tệp. Các cờ được định nghĩa như sau:
Định danh | Giá trị | Mô tả |
---|---|---|
FILE_READ | 1 | Tệp được mở để đọc. Cờ được sử dụng trong FileOpen(). Khi mở tệp, cần chỉ định FILE_WRITE và/hoặc FILE_READ . |
FILE_WRITE | 2 | Tệp được mở để ghi. Cờ được sử dụng trong FileOpen(). Khi mở tệp, cần chỉ định FILE_WRITE và/hoặc FILE_READ . |
FILE_BIN | 4 | Chế độ đọc/ghi nhị phân (không chuyển đổi chuỗi sang chuỗi). Cờ được sử dụng trong FileOpen(). |
FILE_CSV | 8 | Tệp CSV (tất cả các phần tử được chuyển đổi thành chuỗi của loại phù hợp, Unicode hoặc ANSI, và phân tách bằng dấu phân cách). Cờ được sử dụng trong FileOpen(). |
FILE_TXT | 16 | Tệp văn bản đơn giản (giống tệp CSV, nhưng không tính đến dấu phân cách). Cờ được sử dụng trong FileOpen(). |
FILE_ANSI | 32 | Chuỗi loại ANSI (ký tự một byte). Cờ được sử dụng trong FileOpen(). |
FILE_UNICODE | 64 | Chuỗi loại UNICODE (ký tự hai byte). Cờ được sử dụng trong FileOpen(). |
FILE_SHARE_READ | 128 | Truy cập chia sẻ để đọc từ nhiều chương trình. Cờ được sử dụng trong FileOpen(), nhưng không thay thế việc cần chỉ định FILE_WRITE và/hoặc FILE_READ khi mở tệp. |
FILE_SHARE_WRITE | 256 | Truy cập chia sẻ để ghi từ nhiều chương trình. Cờ được sử dụng trong FileOpen(), nhưng không thay thế việc cần chỉ định FILE_WRITE và/hoặc FILE_READ khi mở tệp. |
FILE_REWRITE | 512 | Khả năng ghi đè tệp bằng các hàm FileCopy() và FileMove(). Tệp phải tồn tại hoặc được mở để ghi, nếu không tệp sẽ không được mở. |
FILE_COMMON | 4096 | Đường dẫn tệp trong thư mục chung của tất cả các terminal client \Terminal\Common\Files . Cờ được sử dụng trong FileOpen(), FileCopy(), FileMove() và trong hàm FileIsExist(). |
Một hoặc nhiều cờ có thể được chỉ định khi mở tệp. Đây là sự kết hợp của các cờ. Sự kết hợp của các cờ được ghi bằng dấu của phép OR logic (|
), được đặt giữa các cờ được liệt kê. Ví dụ, để mở tệp ở định dạng CSV để đọc và ghi cùng lúc, chỉ định kết hợp FILE_READ|FILE_WRITE|FILE_CSV
.
Ví dụ:
int filehandle=FileOpen(filename, FILE_READ|FILE_WRITE|FILE_CSV);
Có một số đặc điểm cụ thể khi làm việc khi bạn chỉ định cờ đọc và ghi:
- Nếu
FILE_READ
được chỉ định, sẽ cố gắng mở một tệp hiện có. Nếu tệp không tồn tại, việc mở tệp sẽ thất bại, tệp mới không được tạo. FILE_READ|FILE_WRITE
– một tệp mới sẽ được tạo nếu tệp với tên được chỉ định không tồn tại.FILE_WRITE
– tệp được tạo lại với kích thước bằng không.
Khi mở tệp, cần chỉ định FILE_WRITE
và/hoặc FILE_READ
.
Các cờ xác định loại đọc của tệp đã mở có mức độ ưu tiên. Cờ cao nhất là FILE_CSV
, sau đó là FILE_BIN
, và FILE_TXT
có ưu tiên thấp nhất. Do đó, nếu nhiều cờ được chỉ định cùng lúc, (FILE_TXT|FILE_CSV
hoặc FILE_TXT|FILE_BIN
hoặc FILE_BIN|FILE_CSV
), cờ có ưu tiên cao nhất sẽ được sử dụng.
Các cờ xác định loại mã hóa cũng có mức độ ưu tiên. FILE_UNICODE
có ưu tiên cao hơn FILE_ANSI
. Vì vậy, nếu bạn chỉ định kết hợp FILE_UNICODE|FILE_ANSI
, cờ FILE_UNICODE
sẽ được sử dụng.
Nếu không chỉ định cả FILE_UNICODE
lẫn FILE_ANSI
, FILE_UNICODE
được ngụ ý. Nếu không chỉ định cả FILE_CSV
, FILE_BIN
, lẫn FILE_TXT
, FILE_CSV
được ngụ ý.
Nếu một tệp được mở để đọc dưới dạng tệp văn bản (FILE_TXT
hoặc FILE_CSV
), và ở đầu tệp tìm thấy một chỉ báo hai byte đặc biệt 0xff,0xfe
, cờ mã hóa sẽ là FILE_UNICODE
, ngay cả khi FILE_ANSI
được chỉ định.
Xem thêm