Display VB6 Source codes vi màu trong trang Web
T rong VB6 Integrated Development Environment, khi ta edit source codes các hàng
Comment (chú thích) được hin th bng màu xanh lá cây và các Reserved Words
ca VB6 đuc hin th bng màu xanh dương đậm. Ðiu ny làm mát mt, khiến cho
codes d đọc.
Tiếc thay khi ta copy các hàng codes y ra và paste vào trong mt trang Web thì
chúng b mt đi đặc tính màu sc. Nếu codes không có comment thì khó hiu. Ngược
li nếu comment nhiu quá, người đọc d ln ln codes vi comment.
Do đó trong bài ny ta viết mt program VB6 để thc hin hai chuyn:
1. Làm cho source code đẹp bng cách thêm phía trưc mi hàng
codes mt s blank spaces để ta thy rõ phn nào nm trong
phn nào trong cu trúc ca codes.
2. Thêm màu xanh lá cây cho comment và màu xanh dương cho
VB6 reserved words để hin th trên trang Web.
Làm cho codes đẹp phát xut t ch Pretty Printer hi thi Pascal rt thnh hành.
Pascal là ngôn ng lp trình đuc sang tác bi giáo sư N. Wirth, người Thy Sĩ, để
dùng làm phương tin dy sinh viên nhng kiến thc và k thut căn bn v Software
Engineering. Mt trong nhng đặc đim ca Pascal là nó có nhng Statement
Blocks (đon codes) để dùng trong Structured Programming, tc là có
IF..THEN..ELSE, REPEAT..UNTIL, CASE .v.v.., thay vì cái gì cũng Goto làm cho khó
theo dõi codes vì nó nhy lung tung ging như spaghetti (bánh tm Ý).
Statement Block trong Pascal được bt đầu bng ch Begin và chm dt bng ch
End. Cái đó không có gì đáng nói, nhưng khi cái Structure (cơ cu) ca program
chúng ta tr nên rc ri, ta cn phi thy tng cp Begin-End rõ ràng. Tt hơn hết là
làm sao mi ch End nm ngay phía dưới ch Begin ca nó, du có cách bao nhiêu
hàng. Codes s li ra, tht vô theo đẳng cp rõ ràng, trông rt ÐẸP (PRETTY).
Vì hi xưa có phương tin Edit source code trên mt Terminal ( mt trong nhng màn
nh ni v mt computer chánh) là có phước lm ri, nên đòi hi Editor làm Pretty
Codes cho mình thì hơi quá đáng. Do đó người ta phi dùng mt program khác để làm
Pretty Codes.
đây, chúng ta s thc hin công tác Pretty Code, đồng thi đi thêm mt bước na là
thêm màu cho codes trong trang Web. Ta s tn dng Listbox và các String Functions
ca VB6. Ðầu tiên, ta Load content ca mt Text File cha VB6 source code vào
ListBox lstCodes. Khi User clicks nút Pretty Codes program s làm hai chuyn sau
đây:
Làm cho code đẹp
Kết qu ca code đẹp được cha trong Listbox lstPretty. Nguyên tc chính trong
công tác ny là lưu ý nhng ch như IF, DO, WHILE ..v.v. là nhng ch đng đầu ca
mt Statement Block. Các statements thuc v Statement Block y s nm tht vô
mt TAB position (3 spaces chng hn).
Kế đó khi gp môt ch END hay LOOP, là ch đúng cui mt Statement Block, thì
chính nó s nm li ra mt TAB position tr li.
Có mt trường hp cn lưu ý là Statement IF có th kết thúc trên cùng mt hàng, tc là
nó có thêm code nm sau ch THEN. Trong trường hp y, ch IF không phi là đầu
mt Statement Block nên ta không cn phi tăng TAB position, tc là hàng kế tiếp
không cn phi tht vô.
Các ch ELSE, ELSEIF và CASE là nhng ch va là cui mt Statement Block, va
là đầu mt Statement Block kế đó. Nên ch có chính nó li ra thôi, hàng code kế tiếp
tht vô tr li. Pretty Codes hin ra như trong hình dưi đây:
Thêm màu cho trang Web
Mt bng lit kê các Reserved Words ca VB6 cũng đuc loaded vào trong Listbox
lstReservedWords. Nếu danh sách y chưa đủ, bn có th Edit thêm các ch khác
vào file ReservedWords.txt.
Hu hết các Reserved Words đu nm riêng mt mình và cách mt blank space vi
characters kế nó. Tuy nhiên bn phi coi chng khi ch y nm đầu hay cui hàng.
Trong trường hp đó nó không có leading (nm phía trước) hay trailing (nm phía sau)
blank space.
S dĩ ta phi chú ý đim ny là vì khi ta so sánh whole-word (nguyên ch) ta phi
phân bit ch As đứng riêng mt mình (là mt Reserved Word) vi ch HAs. Thành ra
ta tìm ch " As " (có space hai đầu), ch không phi ch "As".
Mt hàng Comment thường bt đầu bng du single quote '. Ðôi khi phía sau mt
hàng code cũng có Comment. Do đó ta xem trường hp th nht như là đặc bit khi
Comment không có codes nm phía trước. Trong program ta dùng mt Browser để
display kết qu trang Web.
Program ny cho phép bn Paste VB6 Source code t Clipboard vào ListBox
lstCodes, bng cách click nút Paste Codes hay press Ctrl-V. Nó s thay thế codes có
sn trong lstCodes. Sau khi làm pretty code, kết qu HTML s được t động lưu tr
trong file codes.htm. Bn cũng có th copy mt s hàng HTML codes trong Listbox
lstColor bng cách multiselect nhiu hàng ri click nút Copy HTML hay press Ctrl-C.
Dưới đây là mu ca HTML codes vi màu:
Function SimilarWords(ByVal Word, ByVal ILen, ByVal TWord, ByVal Tlen) As
Boolean
' Two words are considered Similar if the shorter word has at least (its
length minus 2)
' characters that are found in the other word.
' In other words, the two words differ only a couple characters at the
most.
Dim L1, L2, W1, W2
Dim i, MatchCount, Pos
' Identify the shorter Word and its length
If ILen > Tlen Then
L1 = ILen
L2 = Tlen
W1 = UCase(Word)
W2 = UCase(TWord)
Else
L1 = Tlen
L2 = ILen