Tài liệu Xử lí ngoại lệ phần 2 doc

8 308 0
Tài liệu Xử lí ngoại lệ phần 2 doc

Đang tải... (xem toàn văn)

Thông tin tài liệu

Ví dụ 12.4: Sử dụng một vài hàm toán học. using System; namespace Programming_CSharp { public class Tester { public static void Main() { int val2; char ch; for(double ctr = 0.0; ctr <= 10; ctr += .2) { val2 = (int) System.Math.Round((10*System.Math.Sin(ctr))); for( int ctr2 = -10; ctr2 <=10; ctr2++) { if (ctr2 == val2) ch = 'x'; else ch = ' '; Console.Write("{0}", ch); } Console.WriteLine(" "); } } } } Kết quả: Vòng lặp đầu tiên thực hiện thông qua một biến lặp là một giá trị double, mỗi bước lặp tăng . 2. Giá trị Sin được lấy thông qua việc sử dụng hàm Math.Sin. Do giá trị Sin từ -1 đến 1 và để cho dễ hiển thị hơn, giá trị này được chuyển từ -10 đến 10. Để chuyển thành giá trị này thì ta nhân với 10 rồi sau đó thực hiện việc làm tròn bằng cách dùng hàm Round của Math. Kết quả củ a phép nhân và làm tròn là một giá trị từ -10 đến 10 được gán cho val2. Vòng lặp for thứ hai thực hiện việc xuất một ký tự ra màn hình. The image part with rela tionship ID rId4 was not found in the file. Lớp thao tác tập tin Khả năng để viết thông tin vào trong một tập tin hay đọc thông tin từ trong một tập tin có thể làm cho chương trình của chúng ta có nhiều hiệu quả hơn. Hơn nữa, có rất nhiều lần khi chúng ta muốn có khả năng làm việc với những tập tin hiện hữu. Phần tiếp sau chúng ta sẽ tìm hiểu những đặc tính cơ bản của việc thao tác trên tập tin. Điều này sẽ được theo sau bởi một khái niệm quan trọng của tập tin là luồng (stream). Sao chép một tập tin Một lớp tập tin tồn tại bên trong lớp cơ sở gọi là File, lớp này được định vị bên trong namespace System.OI. Lớp File chứa một số các phương thức tĩnh được sử dụng để thao tác trên tập tin. Thật vậy, tất cả các phương thức bên trong lớp File điều là tĩnh. Bảng 12.2 liệt kê nhữ ng phương thức chính của lớp File. Lớp File Phương thức Mô tả A p p endText Nối văn bản vào trong một tập tin Copy Tạo ra một tập tin mới từ tập tin hiện hữu Create Tạo ra một tập tin mới ở một vị trí xác định C r eateTex t Tạo ra tập tin lưu giữ text Delete Xóa tập tin ở vị trí xác định. Tập tin phải hiện hữu nếu không sẽ phát sinh r a ngoại lệ. Exists Kiểm tra xem tập tin có thực sự hiện hữu ở vị trí nào đó. GetAttributes Lấy thông tin thuộc tính của tập tin. Thông tin này bao gồm: tập tin có bị nén hay không, tên thư mục, có thuộc tính ẩn, thuộc tính chỉ đọc, tập tin hệ thống Ge t CreationTime Trả về ngày giờ tập tin được tạo ra GetLastAccessTime Trả về ngày giờ tập tin được truy cập lần cuối GetLastWriteTime Trả về ngày giờ tập tin được viết lần cuối Move Cho phép tập tin được di chuyển vào vị trí mới và đổi tên tập tin. Open Mở một tập tin tại vị trí đưa ra. Bằng việc mở tập tin này chúng ta có thể viết thông tin hay đọc thôn g tin từ nó. O p enRead Mở một tập tin hiện hữu để đọc O p enTex t Mở một tập tin để đọc dạng text O p enWrite Mở một tập tin xác định để viết Se t Attri b utes Thiết lập thuộc tính cho tập tin Se t CreationTime Thiết lập ngày giờ tạo tập tin SetLastAccessTime Thiết lập lại ngày giờ mà tập tin được truy cậ p lần cuối SetLastWriteTime Thiết lập ngày giờ mà tập tin được cập nhật lần cuối. Bảng 12.2 : Một số phương thức chính thao tác tập tin. Chương trình 12.5 sau minh họa việc sao chép một tập tin. Ví dụ 12.5: Sao chép một tập tin. // file : filecopy.cs: sao chép một tập tin // sử dụng tham số dòng lệnh namespace Programming_CSharp { using System; using System.IO; public class Tester { public static void Main() { string[] CLA = Environment.GetCommandLineArgs(); if ( CLA.Length < 3) { } else { try { } Console.WriteLine(“Format: {0} orig-file new-file”, CLA[0]); string origfile = CLA[1]; string newfile = CLA[2]; Console.Write(“Copy ” ); File.Copy(origfile, newfile); catch (System.IO.FileNotFoundException) { Console.WriteLine(“\n{0} does not exist!”, origfile); return; } catch (System.IO.IOException) { Console.WriteLine(“\n{0} already exist!”, newfile); return; } catch (Exception e) { Console.WriteLine(“\nAn exception was thrown trying to copy file”); Console.WriteLine(); return; } Console.WriteLine(“ Done”); } } } } Chương trình thực hiện bằng cách sau khi biên dịch ra tập tin filecopy.exe ta gọi thực hiện tập tin này với tham số dòng lệnh như sau: filecopy.exe filecopy.cs filecopy.bak Tập tin filecopy.cs đã hiện hữu và tập tin filecopy.bak thì chưa hiện hữu cho đến khi lệnh này thực thi. Sao khi thực thi xong chương trình tập tin filecopy.bak được tạo ra. Nếu chúng ta thực hiện chương trình lần thứ hai cũng với các tham số như vậy, thì chúng ta sẽ nhận được kế t quả xuất như sau: Copy filecopy.bak already exists! Nếu chúng ta thực hiện chương trình mà không có bất cứ tham số nào, hay chỉ có một tham số, chúng ta sẽ nhận được kết quả như sau : Format d:\working\filecopy\filecopy.exe orig-file new-file Cuối cùng, điều tệ nhất xảy ra là chúng ta thực hiện sao chép nhưng tập tin nguồn không tồn tại: Copy filecopy.cs does not exist! Như chúng ta ta thấy tất cả các kết quả có thể có của chương trình minh họa 12.5 trên. Ch ương trình thực hiện việc sao chép một tập tin và nó kiểm tra tất cả các tình huống có thể có và thực hiện việc xử lý các ngoại lệ. Điều này cho thấy chương trình vừa đáp ứng được mặt logic của lập trình vừa đáp ứng được việc xử lý các ngoại lệ. Như chúng ta biết trong lệnh sau: string[] CLA = Environment.GetCommandLineArgs(); thực hiện việc lấy các tham số dòng lệnh được cấp cho chươ ng trình. Lớp Environment này chúng ta đã tìm hiểu và đã sử dụng trong phần trước. Lệnh sau kiểm tra xem chương trình có nhận được ít hởn giá trị tham số dòng lệnh hay không. if ( CLA.Length < 3) { Console.WriteLine(“Format: {0} orig-file new-file”, CLA[0]); } . val2; char ch; for(double ctr = 0.0; ctr <= 10; ctr += .2) { val2 = (int) System.Math.Round((10*System.Math.Sin(ctr))); for( int ctr2. System.Math.Round((10*System.Math.Sin(ctr))); for( int ctr2 = -10; ctr2 <=10; ctr2++) { if (ctr2 == val2) ch = 'x'; else ch = ' ';

Ngày đăng: 21/01/2014, 00:20

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan