Viết chương trình từ điển bằng VB
Sưu tập Nghiêm Phú Cường – http://www.diachiweb.com CHƯƠNG I : PHÂN TÍCH YÊU CẦU CỦA ĐỀ TÀI I - Các vấn đề có liên quan Trong lónh vực tin học ngành học khác có tài liệu ngôn ngữ tiếng Anh, từ điển Anh Việt cần có để người tra cứu Để thực chương trình tra từ điển ta cần phải thực vấn đề sau : • Tổ chức cấu trúc liệu cho từ điển • Tạo giao diện cho người sử dụng • Đưa vào chương trình tìm kiếm từ cần tìm load từ cần tìm với tốc độ nhanh • Viết chương trình săp xếp từ nhập theo thứ tự abc • Từ điển phải tra cứu qua Web (mọi người có thẻ truy cập ) • Bên phần hiển thị nghóa có ví dụ tiếng Anh, ta click vào từ ví dụ nghóa hiển thị II - Phân tích đưa giải pháp thự c Để thực chương trình ta phải đưa chọn giải thuật tìm kiếm, xếp cho yêu cầu đề tài Yêu cầu trước tiên đề tài phải tổ chức cấu trúc liệu cho từ điển, nên ta cần phải đưa giải thuật, sau chọn giải thuật phù hợp hiệu với ngôn ngữ lập trình mà ta chọn để viết chương trình – Tổ chức liệu cho từ điển Sau cách tổ chức liệu cho từ điển : • Tổ chức liệu theo dạng B-cây • Tổ chức liệu theo dạng nhị phân • Tổ chức liệu theo dạng danh sách đặc • Tổ chức liệu theo dạng danh sách liên kết Do tổ chức cấu trúc liệu theo dạng B-cây phức tạp khó tổ chức ngôn ngữ Visual Basic, chọn tổ chức cấu trúc liệu theo dạng danh sách đặc - Các giải thuật xếp Khi nhập từ vào file liệu (để dễ dàng cho việc tìm kiếm, tra cứu) ta phải xếp từ theo thứ tự abc Ở ta chọn cấu trúc liệu theo danh sách đặc, ta xếp từ nhập vào file liệu danh sách đặc Sau giải thuật xếp : • Sắp thứ tự phương pháp đếm • Sắp thứ tự phương pháp xen vào trực tiếp • Sắp thứ tự phương pháp xen vào nhị phân Sưu tập Nghiêm Phú Cường – http://www.diachiweb.com • Sắp thứ tự phương pháp HeapSort • Sắp thứ tự phương pháp BubbleSort • Sắp thứ tự phương pháp giảm độ tăng • Sắp thứ tự phương pháp QuickSort • Sắp thứ tự phương pháp trộn Để cho phù hợp với chọn lựa vớicách tổ chức cấu trúc liệu cho từ điển chọn trên, nên giải thuật chọn giải thuật thứ tự phương pháp xen vào nhị phân Giải thuật xếp xen vào nhị phân: procedure binary_insertion ; var x: item ; i, j, q, r, m: integer ; begin for i = to n begin x : = a[i] ; q: =1 ; r: = i - ; while (q INTERNET_FLAG_FROM_CACHE < /constants/API_Flags.htm> INTERNET_FLAG_OFFLINE < /constants/API_Flags.htm> InternetCloseHandle BOOL InternetCloseHandle( IN HINTERNET hInet ); Đóng điều khiển Internet đơn Trả TRUE điều khiển đóng thành công, FALSE khác hInet: Giá trị điều khiển Internet đóng The function terminates tác vụ xảy điều khiển lọai bỏ liệu tồn đọng Nếu thread khóa gọi tới Wininet.dll, thread khác trình ứng dụng gọi InternetCloseHandle điều khiển internet sử dụng thread để xóa tác vụ phá bỏ thread InternetConnect HINTERNET InternetConnect( 101 Sưu tập Nghiêm Phú Cường – http://www.diachiweb.com ); IN HINTERNET hInternetSession, IN LPCSTR lpszServerName, IN INTERNET_PORT nServerPort, IN LPCSTR lpszUsername, IN LPCSTR lpszPassword, IN DWORD dwService, IN DWORD dwFlags, IN DWORD dwContext Mở FTP, Gopher, or HTTP session site quy định Trả giá trị điều khiển FTP, Gopher, HTTP session kết nối thành công NULL khác hInternetSession Điều khiển Internet session hành lpszServerName: Địa chuỗi chứa host name Internet server Lần lượt chuỗi chuỗi chứa số IP cuûa site ASCII dotted-decimal format nServerPort: Number cuûa TCP/IP port server kết nối tới Có thể giá trị danh sách Flags set port sử dụng Sự phục vụ thiết lập giá trị dwService INTERNET_DEFAULT_FTP_PORT sử dụng port mặc định cho FTP server (port 21).INTERNET_DEFAULT_GOPHER_PORT sử dụng portmặc định Gopher servers (port 70).INTERNET_DEFAULT_HTTP_PORT sử dụng port mặc định cho HTTP server (port80) INTERNET_DEFAULT_HTTPS_PORT dùng port mặc định cho HTTPS servers (port 443) INTERNET_DEFAULT_SOCKS_PORT sử dụng port mặc định cho SOCKS firewall servers (port 1080) INTERNET_INVALID_PORT_NUMBER sử dụng port mặc định cho service specified by dwService.lpszUsername Địa chuỗi null-terminated string chứa tên củauser log vào Nếu tham số NULL chức dùng appropriate default, lọai trừ HTTP Tham số NULL HTTP nguyên nhân để server trả giá trị lỗi Đối với FTP protocol, mặc định "anonymous" Next Topic: FtpGetFile BOOL FtpGetFile( IN HINTERNET hFtpSession, IN LPCSTR lpszRemoteFile, IN LPCSTR lpszNewFile, IN BOOL fFailIfExists, * 102 Sưu tập Nghiêm Phú Cường – http://www.diachiweb.com ); IN DWORD dwLocalFlagsAndAttributes, IN DWORD dwInternetFlags, IN DWORD dwContext Khôi phục lại file từ FTP server lưu trữ tên file định trước, tạo file local process.Trả TRUE thành công, trả FALSE khác hFtpSession: Giá trị điều khiển FTP session lpszRemoteFile: địa chuỗi null-terminated chứa tên file khôi phục lại từ hệ thống từ xa lpszNewFile: địa chuỗi null-terminated chứa tên file tạo hệ thống cục fFailIfExists : Boolean flag cho biết có hay không chức tiếp tục file local name định trước hiên có Nếu fFailIfExists TRUE file cục có FtpGetFile bị hỏng dwLocalFlagsAndAttributes: File thuộc tính file dwInternetFlags: Flags phương pháp kiểm tra chức điều file download Cờ set giá trị điều kiện di chuyển tìm thấy Những kiểu dịch chuyển cờ dùng để phối hợp với giá trị set lần thứ hai cờ control caching Trình ứng dụng chọn nhiều kiểu giá trị di chuyển: FTP_TRANSFER_TYPE_ASCII Dịch chuyển file dùng phương pháp chuyển FTP's ASCII(type A) Điều chỉnh định dạng thông tin cải thiện tới local tương ứng FTP_TRANSFER_TYPE_BINARY Dịch chuyển file dùng phương pháp chuyển FTP's ASCII(type A), file dịch chuyển xác có Đây phương pháp dịch chuyển mặc định FTP_TRANSFER_TYPE_UNKNOWN Defaults to FTP_TRANSFER_TYPE_BINARY INTERNET_FLAG_TRANSFER_ASCII Transfers the file as ASCII INTERNET_FLAG_TRANSFER_BINARY Transfers the file as binary Moät file tạm thời tạo file không cached Sự tác động việc download file yêu cầu, object, danh sách thư mục thực server gốc, từ cached FTP resourse reloaded từ server dwContext Điều sử dụng trình ứng dụng đãđược gọi 103 Sưu tập Nghiêm Phú Cường – http://www.diachiweb.com FtpPutFile BOOL FtpPutFile( IN HINTERNET hFtpSession, IN LPCSTR lpszLocalFile, IN LPCSTR lpszNewRemoteFile, IN DWORD dwFlags, IN DWORD dwContext ); Stores a file on the FTP server • Returns TRUE if successful, or FALSE otherwise To get a specific error message, call GetLastError hFtpSession Valid handle to an FTP session lpszLocalFile Địa chuỗi null-terminated chứa tên file gởi từ hệ thống cục LpszNewRemoteFile Địa chuỗi null-terminated chứa tên file tạo hệ thống từ xa dwFlags Điều kiện bên việc phát sinh di chuyển Có thể hợp giá trị sau: INTERNET_FLAG_TRANSFER_ASCII Transfers the file as ASCII INTERNET_FLAG_TRANSFER_BINARY Transfers the file as binary dwContext Application-defined value that associates this search with any application data FtpOpenFile HINTERNET FtpOpenFile( IN HINTERNET hFtpSession, IN LPCSTR lpszFileName, IN DWORD fdwAccess, IN DWORD dwFlags, IN DWORD dwContext 104 Sưu tập Nghiêm Phú Cường – http://www.diachiweb.com ); Bắt đầu truy cập tới file remote viết đọc Trả TRUE thành công, NULL khác hFtpSession ; Giá trị điều khiển FTP session lpszFileName : Địa chuỗi null-terminated chứa tên file truy cập hệ thống remote system fdwAccess: Giá trị xác định file truy cập Điều GENERIC_READ GENERIC_WRITE,nhưng hai dwFlags Điều kiện bên việc phát sinh di chuyển Trình ứng dụng chọn kiểu dịch chuyển cờ điều khiển cache file controlled Kiểu dịch chuyển giá trị sau: FTP_TRANSFER_TYPE_ASCII Transfers the file using FTP's ASCII (Type A) transfer method Control and formatting information is converted to local equivalents FTP_TRANSFER_TYPE_BINARY Transfers the file using FTP's Image (Type I) transfer method The file is transferred exactly as it exists with no changes This is the default transfer method FTP_TRANSFER_TYPE_UNKNOWN Defaults to FTP_TRANSFER_TYPE_BINARY INTERNET_FLAG_TRANSFER_ASCII Transfers the file as ASCII INTERNET_FLAG_TRANSFER_BINARY Transfers the file as binary The following values are used to control the caching of the file The application can use one or more of the following values: Forces a reload if there was no Expires time and no Last-Modified tim returned from the server when determining whether to reload the item from the network Causes the FTP resource to be reloaded from the server dwContext Application-defined value that associates this search with any application data This is only used if the application has already called FtpOpenFile should be used in the following situations: • Trình ứng dụng có liệu cần gởi tới FTP server tạo giống file FTP server, trình ứng dụng file cục chứa liệu 105 Sưu tập Nghiêm Phú Cường – http://www.diachiweb.com Trình ứng dụng cần khôi phục file từ servervào nhớ application-controlled thay phải viết file vào disk • An application needs a fine level of control over a file transfer For example, the application may need to display a progress indicator when downloading a file to indicate to the user that the file transfer is or is not proceeding correctly FtpRenameFile BOOL FtpRenameFile( IN HINTERNET hFtpSession, IN LPCSTR lpszExisting, IN LPCSTR lpszNew ); Renames file lưu trữ FTPserver Trả TRUE thành công, FALSE khác hFtpSession: Giá trị điều khiển tới FTP session lpszExisting: Địa chuỗi null-terminated chứa tên file có tên thay đổi remote FTP server lpszNew : Địa chuỗi null-terminated chứa tên file boot từ xa Tham số lpszExisting lpszNew parameters phân củatên file tên file đầy đủ có liên quan đến thư mục hành Dấu (\) (/) sử dụng chia thư mục tên FtpRenameFile translates the directory name separators to the appropriate character before they are used • FtpRemoveDirectory BOOL FtpRemoveDirectory( IN HINTERNET hFtpSession, IN LPCSTR lpszDirectory ); Removes thư mục định trước FTP server Trả TRUE thành công, FALSE khác hFtpSession Giá trị điều khiển FTP server lpszDirectory : Địa chuỗi chứa tên thư mục remove hệ thống từ xa.Điều đường dẫn hoàn toàn đủ khả tên có liên quan tới thư mục hành Tham số lpszDirectory phần tên file tên file đầy đủ có liên quan đến thư mục hành Một dấu vạch chéo ngược (\) dấu (/) sử dụng giống chia thư mục tên 106 Sưu tập Nghiêm Phú Cường – http://www.diachiweb.com V – Những khó khăn, thuận lợi hướng phát triển chương trình 1.Những khó khăn : - Bởi chương trình từ điển liệu tổ chức theo cấu trúc liệu nên không hổ trợ đưa lên web ASP - Visual Basic không hổ trợ công cụ cần thiết phần hiển thị nghóa Web không rõ ràng chương trình tra từ điển windows(mặc dù cố gắng tìm kiếm công cụ để hiển thị phần này) - ActiveX Control không hổ trợ mạnh Web, muốn dùng chương trình Web người sử dụng chương trình phải vào Security Browser chỉnh lại cho phép ActiveX Control phép chạy nên dẫn đến chế độ Browser bị giảm Do chạy hệ điều hành có tính bảo mật cao Linus … - Khi dùng ActiveX Control để đưa lên Web, giao diện lên truy xuất liệu Server Vì để chạy chương trình đòi hỏi người sử dụng phải tự download file liệu từ Server máy theo hướng dẫn mà Server thông báo sau đăng ký sử dụng Thuận lợi : Điều thuận lợi chương trình sau người sử dụng download liệu chạy chương trình Từ Điển họ ngắt kế nối với Server sử dụng chương trình sau ngắt kết nối Vì chương trình sử dụng ActiveX Control load liệu máy local nên có tốc độ truy xuất cao (tốc độ tra từ) gần giống chương trình chạy Windows Hướng khắc phục phát triển chương trình Vì khó khăn tất yếu khách quan nên ta khắc phục vấn đề , muốn chương trình tra từ điển Web chạy với tất hệ điều hành Browser khác truy xuất trực tiếp liệu Server ta cần phải tổ chức lại liệu chương trình theo dạng Cơ Sở Dữ Liệu dùng ASP đưa lên Web (không dùng ActiveX Control) Hướng phát triển chương trình ta them vào loại từ điển khác như: Việt-Anh, Từ Điển Tin Học, … Đối với chương trình tra từ điển Windows ta dùng chuột kéo từ cần tra vào ô tra từ cho tự động tra từ điển mtd300 có thị trường ta dùng chuột phải để tra từ Click and See 107 ... chương trình dùng cho Admin Chương trình cho Admin thao tác tất chức mà chương trình từ điển có Người quản lý chương trình tra từ, thêm từ, sữa từ, xóa từ, back lại từ tra Khi Admin click vào... Server Chương III : PHẦN HIỆN THỰC CHƯƠNG TRÌNH 36 Sưu tập Nghiêm Phú Cường – http://www.diachiweb.com A – HOẠT ĐỘNG CỦA CHƯƠNG TRÌNH TỪ ĐIỂN Chương trình từ điển tổ chức theo dạng cấu trúc liệu... người lập trình bố trí công việc chương trình theo thứ tự câu lệnh từ xuống dưới, trường hợp bố trí chương trình khó khăn Trong kiểu lập trình đối tượng, người lập trình phân yếu tố chương trình