|
Xử lý
chuỗi ký tự trong Visual Foxpro |
|
Đó hỏi: Xin e-CHÍP vui lòng hướng dẫn về chương
trình xử lý chuỗi ký tự trong CSDL Visual Foxpro 6.0
(dạng DBF), sao cho các chữ cái sau dấu cách đều
viết hoa ("nguyễn văn tý" thành "Nguyễn Văn Tý") và
nếu có hai dấu cách trở lên liên tiếp thì chuyển đổi
thành một dấu cách. |
|
<chieu_cntt@> |
|
Đây
trả lời: Việc
chuyển đổi một chuỗi ký tự sao cho:
1. Các ký tự trắng ở đầu và cuối chuỗi phải được
loại bỏ: được giải quyết bằng hàm ALLTRIM của Visual
Foxpro.
2. Các từ riêng rẽ trong chuỗi chỉ được cách nhau
một ký tự trắng: được giải quyết bằng hàm
cBotKyTuTrang, trình bày ở đoạn mã 1.
3. Chữ cái đầu tiên trong mỗi từ riêng rẽ của chuỗi
phải được đổi sang chữ hoa, nếu có chữ Việt thì cần
lưu ý đến bộ mã của chúng. Đoạn mã 2 trình bày hàm
cProperVN1Byte để giải quyết vấn đề, trong đó sử
dụng bộ mã tiếng Việt VNI-1 byte. Sở dĩ phải dùng bộ
mã 1 byte là để bạn dễ hiểu hơn về thuật toán. Bạn
cần sửa đổi một chút cho phù hợp với trường hợp cụ
thể của mình.
Trong hàm cProperVN1Byte, hai biến cChuHoa và
cChuThuong là hai chuỗi ký tự chứa danh sách tất cả
các chữ cái (kể cả có dấu tiếng Việt) được liệt kê
theo trật tự tương ứng với nhau. Ví dụ, nếu cChuHoa
= “AÁÀẢÃẠÂẤẦẨẪẬ” thì cChuThuong = “aáàảãạâấầẩẫậ”.
Nếu chép hàm này vào máy của mình, bạn có thể thấy
các ký tự "đầu lâu xương sọ" trong phép gán chuỗi
của hai biến cChuHoa và cChuThuong. Đó là do bộ mã
thử nghiệm trên máy của tôi là VNI-1 byte (như
Vietnam, HaLong,...), bạn phải dùng phông chữ VNI-1
byte mới đọc được.
Để sử dụng hàm, bạn có thể viết đoạn mã tương tự ví
dụ sau: |
|
a =
"Đàm văn chương còm nHom đá banH FIFA"
CLEAR
@ 10,10 SAY cProperVN1Byte(cBotKyTuTrang(a)) FONT
"Vietnam"
RETURN |
|
Kết
quả in ra là: Đàm Văn Chương Còm Nhom Đá Banh Fifa. |
|
Đoạn mã 1
FUNCTION cBotKyTuTrang
PARA cChuoiCanBot
LOCAL cKetQua
cChuoiCanBot = ALLTRIM(cChuoiCanBot)
cKetQua = ""
DO WHILE AT(" ", cChuoiCanBot) > 0
cKetQua =
cKetQua + IIF(cKetQua == "", "", " ") + ;
LEFT(cChuoiCanBot, AT(" ", cChuoiCanBot) - 1)
cChuoiCanBot
= ALLTRIM(RIGHT(cChuoiCanBot, LEN(cChuoiCanBot) - ;
AT(" ", cChuoiCanBot)))
ENDDO
cKetQua = cKetQua + IIF(cKetQua == "", "", " ") +
cChuoiCanBot
RETURN cKetQua |
|
Đoạn
mã 2
FUNCTION cProperVN1Byte
PARA cChuoiCanDoi
LOCAL
cChuHoa, cChuThuong, cKetQua, cChuoiTamThoi, lHoa,
cKyTu
cChuHoa =
"A^`|}~ý€‡Œ¯ü°±²³{BCD®E´µ•¸þ¹º»¼½FGHI¾¿ÀÁÂJKLMN"+;
"OÃÄÅÆÇùÈÉÊËÌúÍÎÏÐÑPQRSTUÒÓÔÕÖûרÙÚÛVXYÜÝÞß@Z"
cChuThuong =
"a …àáâƒãäåæçèéêëìíbcde‚Š„†ˆ‰‹Žfghi¡©ª«jklmn"+;
"o¢•‘’”“–˜™š›óôõö÷øpqrstu£—œžŸ¤¥¦§¨vxyîïðñòz"
lHoa = .T. &&
Ký tự kế tiếp sẽ đổi sang chữ hoa
FOR I=1 TO
LEN(cChuoiCanDoi)
cKyTu = SUBSTR(cChuoiCanDoi, I, 1)
IF NOT (cKyTu == " ")
IF lHoa && Nếu cần đổi sang chữ hoa
IF cKyTu $ cChuThuong && Chỉ đổi nếu là chữ thường
cKyTu = CHRTRAN(cKyTu, cChuThuong, cChuHoa)
ENDIF
lHoa = .F. && Ký tự kế tiếp sẽ đổi sang chữ thường
IF cKyTu $ cChuHoa && Chỉ đổi nếu là chữ hoa
cKyTu = CHRTRAN(cKyTu, cChuHoa, cChuThuong)
ENDIF
ENDIF
cChuoiCanDoi = STUFF(cChuoiCanDoi, I, 1, cKyTu)
ELSE
lHoa = .T. && Ký tự kế tiếp sẽ đổi sang chữ hoa
ENDIF
ENDFOR
cKetQua=cChuoiCanDoi
RETURN cKetQua |
|
CHƯƠNG CAN CHÍP |
|
Cài
chương trình cho máy ảo của VMware |
|
Đó hỏi: Em đang sử dụng VMware Workstation 6 để
tạo máy ảo, e-CHÍP có thể hướng dẫn em cách cài 1
chương trình phần mềm nào đó từ đĩa CD hoặc trong
máy thật vào máy ảo? Ngoài ra, em muốn xóa 1 máy ảo
nào đó trong Vmware Workstation 6 thì phải làm thế
nào? |
|
<iloveyou_@> |
|
Đây
trả lời: Để sử
dụng được ổ CD của máy chủ (máy thật) trong máy ảo,
bạn chạy Vmware > chọn bảng máy ảo phù hợp (nếu có
nhiều máy ảo) > bấm chuột vào mục Edit virtual
machine settings > chọn CD-ROM và chọn Use physical
drive: Auto detect.
Sau đó, bấm chuột vào mục Start this virtual machine
để chạy máy ảo và cài chương trình trên đĩa CD giống
như cài trên máy thật. Chú ý: Khi máy ảo đang sử
dụng ổ CD-ROM thì máy thật không thể sử dụng được
(và ngược lại) nhưng bạn có thể chuyển ổ CD-ROM qua
lại máy ảo và máy thật bằng cách mở menu VM của
Vmware > Removable Devices > CD-ROM > chọn
Disconnect hay Connect. |
|
 |
|
-
Nếu muốn cài chương trình từ máy thật, bạn phải kết
nối mạng giữa máy ảo và máy thật bằng cách vào mục
Edit virtual machine settings > chọn Ethernet 1 và
chọn NAT > chạy máy ảo rồi mở thư mục share trên máy
thật (bạn nhớ tạo thư mục share này trước đó) để cài
chương trình như bình thường.
- Để xóa máy ảo bất kỳ, bạn chỉ cần chạy VMware >
bấm phím phải chuột vào tiêu đề máy ảo rồi chọn lịnh
Delete from Disk trong menu ngữ cảnh (hay chọn lịnh
này trong menu VM). |
|
Chuyển
hộp thư Yahoo! Beta sang Yahoo! Mail |
|
Bạn
tôi có một hộp thư Yahoo!Beta. Vài lần đầu thì vào
được nhưng rất chậm (dù đang sử dụng ADSL). Đến các
lần sau thì quá trình vào hộp thư gần như bị đứng
nửa chừng. Có cách nào để mỗi lần vào hộp thư Yahoo!
thì luôn hiển thị hộp thư Yahoo! cũ. |
|
<the_ruby9323@> |
|
Muốn
chuyển hộp thư Yahoo! phiên bản beta trở lại phiên
bản trước đó, bạn làm như sau:
1. Đăng nhập vào hộp thư Yahoo! Beta > Nếu tốc độ
đăng nhập giao diện Yahoo! Beta quá chậm, bạn hãy
bấm chuột vào mục Trouble logging in? rồi chọn
Original Yahoo! Mail trong menu xổ xuống, để chuyển
qua giao diện phiên bản cũ. |
|
 |
|
2.
Khi mở được cửa sổ Yahoo! Beta, bạn bấm chuột vào
mục Switch Back ở phía trên hay bấm chuột vào mục
Option > Switch to Original Yahoo! Mail. |
|
 |
|
3.
Trong hộp thoại yêu cầu xác nhận, bạn bấm nút Switch
to Original Yahoo! Mail. |
|
 |
|
LÊ HOÀN |
|
[Đầu trang] |