Tải bản đầy đủ (.pdf) (8 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (170.03 KB, 8 trang )

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]);

}


×