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

nền tảng lập trình c bài 7 xử lý nhập xuất dữ liệu

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 (431.92 KB, 85 trang )

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
1
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Bài 7: Xử lý nhập/xuất dữ liệu
• Khái niệm về các loại tập tin
• Xử lý hệ thống tập tin và thư mục qua các lớp

Xử lý đọc ghi tậptin
Xử



đọc

ghi

tập

tin
2
-8 tiết -
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Khái niệm về các loại tập tin
ố ể ể ố ể

Đố
i với các ki


u dữ liệu như ki

u s

, ki

u
mảng, kiểu cấu trúc… thì dữ liệu được tổ chức
trong bộ nhớ trong (RAM) của máy tính nên khi
trong

bộ

nhớ

trong

(RAM)

của

máy

tính

nên

khi

kết thúc việc thực hiện chương trình thì dữ

liệu cũng bị mất
• Để giải quyết vấn đề, người ta đưa ra kiểu tập
tin (file) cho phép lưu trữ dữ liệu ở bộ nhớ
ài (đĩ )Khikếtthú h tì hthìdữ
ngo
ài

(đĩ
a
)
.
Khi

kết

thú
c c
h
ương
t
r
ì
n
h

thì

dữ

liệu vẫn còn do đó chúng ta có thể sử dụng

nhiềulần.
3
nhiều

lần.

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Khái niệm về các loại tập tin

• Có 3 loại dữ liệu ki

u tập tin:
− Tập tin văn bản (Text File)
− Tập tin định kiểu (Typed File)
− Tập tin không định kiểu (Untyped File)
4
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Khái niệm về các loại tập tin
• Tập tin văn bản (Text File):
− Là loại tập tin dùng để ghi các ký tự lên đĩa, các ký tự
này đượclưutrữ dướidạng mã Ascii
này

được

lưu

trữ


dưới

dạng



Ascii
.
− Điểm đặc biệt là dữ liệu của tập tin được lưu trữ thành
các dòng, mỗi dòng đượckết thúc bằng ký tự xuống
các

dòng,

mỗi

dòng

được

kết

thúc

bằng



tự


xuống

dòng (new line), ký hiệu ‘\n’; ký tự này là sự kết hợp của
2 ký tự CR (Carriage Return - Về đầu dòng, mã Ascii là
13) và LF (Line Feed
-
Xuống dòng, mã Ascii là 10)
13)



LF

(Line

Feed

Xuống

dòng,



Ascii



10)


− Mỗi tập tin được kết thúc bởi ký tự EOF (End Of File) có
mã Ascii là 26
5
− Tập tin văn bản chỉ có thể truy xuất theo kiểu tuần tự.
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Khái niệm về các loại tập tin

• Tập tin định ki

u (Typed File)
− Là loại tập tin bao gồm nhiều phần tử có cùng kiểu:
char int long cấutrúc vàđượclưutrữ trên đĩadưới
char
,
int
,
long
,
cấu

trúc



được

lưu

trữ


trên

đĩa

dưới

dạng một chuỗi các byte liên tục.

Tập
tin
không
định
kiểu
(Untyped
File)
Tập
tin
không
định
kiểu
(Untyped
File)
− Là loại tập tin mà dữ liệu của chúng bao gồm các cấu
trúc dữ li

u nhưn
g
n
g

ười dùn
g
khôn
g

q
uan tâm đến n

i
ệ gg ggq ộ
dung hoặc kiểu của nó mà chỉ lưu ý đến các yếu tố vật
lý của tập tin như độ lớn và các yếu tố tác động lên tập
tin mà thôi.
6
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Khái niệm về các loại tập tin

Ctỏ tậ ti

C
on
t
r


tậ
p
ti
n:

− Khi mộttậptinđượcmở ra để làm việc, tạimỗithời
điểm,
sẽ

một
vị
trí
của
tập
tin

tại
đó
việc
đọc/ghi
điểm,
sẽ

một
vị
trí
của
tập
tin

tại
đó
việc
đọc/ghi
thông tin sẽ xảyra.Người ta hình dung có mộtcontrỏ

đang chỉđếnvị trí đóvàđặt tên nó là con trỏ tậptin.

Sau khi đọc/ghi xong dữ liệucontrỏ sẽ chuyểndịch

Sau

khi

đọc/ghi

xong

dữ

liệu
,
con

trỏ

sẽ

chuyển

dịch

thêm một phần tử về phía cuối tập tin. Sau phần tử dữ
liệu cuối cùng của tập tin là dấu kết thúc tập tin EOF
(End Of File).
(End


Of

File).

7
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Khái niệm về các loại tập tin

Biế tậ ti

Biế
n
tậ
p
ti
n:
− Là một biến thuộc kiểu dữ liệu tập tin dùng để đại diện
cho mộttậptin.Dữ liệuchứa trong mộttậptinđượctruy
cho

một

tập

tin.

Dữ


liệu

chứa

trong

một

tập

tin

được

truy

xuất qua các thao tác với thông số là biến tập tin đại
diện cho tập tin đó.
8
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Bài 7: Xử lý nhập/xuất dữ liệu
• Khái niệm về các loại tập tin
• Xử lý hệ thống tập tin và thư mục qua các lớp

Xử lý đọc ghi tậptin
Xử




đọc

ghi

tập

tin
9
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xử lý hệ thống tập tin và thư mục
• FileSystemInfo

FileInfo
FileInfo
• DirectoryInfo
• DriveInfo
• Path
• FileSystemWatcher
10
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các lớp hệ thống tập tin
• Bên trong namespace có tên System.IO là một
tập hợp các class được sử dụng để định vị và
ế
thao tác các tập tin, thư mục và thi
ế
t bị. Các
class hệ thống tập tin được chia thành 2 loại

class: informational và utility
class:

informational



utility
.
• Hầu hết các class loại informational dẫn xuất từ
l ở
Fil S I f
Cá l à
c
l
ass cơ s


Fil
e
S
ystem
I
n
f
o.

c c
l
ass n

à
y
trưng tất cả thông tin hệ thống liên quân các đối
tượng hệ thống tậptin Đó là các class có tên
11
tượng

hệ

thống

tập

tin
.
Đó



các

class



tên

FileInfo và DirectoryInfo.
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC

Các lớp hệ thống tập tin
• Ngoài ra, class DriveInfo trình bày thiết bị trong hệ
thống tập tin, mặc dù nó vẫn là một class thuộc loại
informational, tuy nhiên nó không dẫnxuấttừ
informational,

tuy

nhiên



không

dẫn

xuất

từ

FileSystemInfo bởi lẽ nó không chia sẻ các kiểu hành vi
chung (ví dụ, bạn có thể xóa các tập tin và thư mục,
nhưng không thể xóa các thiếtbị)
nhưng

không

thể

xóa


các

thiết

bị)
.
• Các class loại utility cung cấp các phương thức static
(hoặcphương thức shared trong Visual Basic) để thực
(hoặc

phương

thức

shared

trong

Visual

Basic)

để

thực

thi một số hoật động trên các đối tượng hệ thống tập tin
như các tập tin, thư mục và hệ thống tập tin đường dẫn
(th)Cá l li tilit b ồ ál

Fil
12
(
pa
th
s
)
.

c c
l
ass
l
oạ
i
u
tilit
y
b
ao g

m c
á
c c
l
ass :
Fil
e,
Directory, và Path
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM

TRUNG TÂM TIN HỌC
FileSystemInfo Class
• FileSystemInfo cung cấp các chức năng cơ bản cho tất
cả các lớp xử lý hệ thống tập tin và thư mục

Bảng các thuộc tính chính của FileSystemInfo

Bảng

các

thuộc

tính

chính

của

FileSystemInfo
Thuộc tính Ý nghĩa
Attributes
Gán hoặc lấy giá trị các thuộc tính của tập tin hay
thư mục hiện hành.
CreationTime
Gán ho

c lấ
y


g
iá tr

về thời
g
ian t

o l
ập
của t
ập
tin
CreationTime
ặ yg ị g ạ ập ập
hay thư mục.
Exists Kiểm tra tập tin hay thư mục có tồn tại hay không.
13
Extension Lấy thông tin phần mở rộng (kiểu) của tập tin
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
FileSystemInfo Class
Bảng các thuộc tính chính của FileSystemInfo
Thuộctính
Ý nghĩa
Thuộc

tính

Ý


nghĩa
LastAccessTime
Gán hoặc lấy giá trị về thời gian truy cập cuối cùng
của tập tin hay thư mục.
LastWriteTime
Gets or sets the time the file or directory was last
written to.
Name Trả về tên của tập tin hay thư mục
ấ ẫ ầ
14
FullName L

y đường d

n đ

y đủ của tập tin hay thư mục
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
FileSystemInfo Class
Bảng các phương thức chính của FileSystemInfo
Phương thức
Ý nghĩa
Phương

thức

Ý

nghĩa

Delete Xóa tập tin hay thư mục trong hệ thống tập tin.
Refresh
Cập nhật lại dữ liệu trong class với thông tin
mới nhất từ hệ thống tập tin
15
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xử lý hệ thống tập tin và thư mục
• FileSystemInfo

FileInfo
FileInfo
• DirectoryInfo
• DriveInfo
• Path
• FileSystemWatcher
16
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
FileInfo Class
• FileInfo cung cấp các chức năng cơ bản để truy xuất và
thao tác với một tập tin trong hệ thống tập tin.

Bả áthộ tí h hí h ủ Fil I f

Bả
ng c
á
c
th

u

c

n
h
c

n
h
c

a
Fil
e
I
n
f
o
Thuộc tính Ý nghĩa
T ả ề th hứ tậ ti hiệ hà h đ
Directory
T
r

v


th
ư mục c

hứ
a
tậ
p
ti
n
hiệ
n

n
h

đ
ang
truy xuất
DirectoryName
Trả về tên của thư mục chứa tập tin đang truy

DirectoryName
xu

t
IsReadOnly Lấy và thiết lập thông tin chỉ đọc cho tập tin
17
Length Kích thước của tập tin
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
FileInfo Class

Bả áh thứ hí h ủ Fil I f

Phương thức Ý nghĩa


Bả
ng c
á
c p
h
ương
thứ
c c

n
h
c

a
Fil
e
I
n
f
o
AppendText
Tạo một đ

i tượng StreamWriter cho phép ghi
thêm văn bản vào trong tập tin.
CopyTo
Sao chép tậptinđếnthư mụckhác

CopyTo
Sao

chép

tập

tin

đến

thư

mục

khác
Create
Tạo một tập tin mới dựa trên các thông tin của
tập tin hiện hànhCreates a file based on the
current file information
current

file

information
.
CreateText
Tạo một đối tượng StreamWriter cho phép ghi
văn bản vào trong tập tin.
18

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
FileInfo Class

Bảng các phương thức chính của FileInfo
Name Description
Decrypt
Giảimãtậptinđã được mã hóa

Bảng

các

phương

thức

chính

của

FileInfo
Decrypt
Giải



tập

tin


đã

được



hóa
.
Encrypt Mã hóa nội dung tập tin.
MoveTo
Di chuyểntậptinđếnthư mục khác
MoveTo
Di

chuyển

tập

tin

đến

thư

mục

khác
Open Mở tập tin để đọc hoặc ghi nội dung
OpenRead Mở tập tin ở chế độ chỉ đọc.

OpenText Mở tập tin và trả về một StreamReader cho phép đọc nội
dung bên trong tập tin.
OpenWrite
Mở tậptinở chế độ chỉ ghi
19
OpenWrite
Mở

tập

tin



chế

độ

chỉ

ghi
.
Replace Thay thế nội dung của tập tin bằng thông tin trong FileInfo
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Ví dụ

Kiểmtratậptincótồntại hay không:

Kiểm


tra

tập

tin



tồn

tại

hay

không:
• Sao ché
p
t
ập
tin
p ập
20
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xử lý hệ thống tập tin và thư mục
• FileSystemInfo

FileInfo
FileInfo

• DirectoryInfo
• DriveInfo
• Path
• FileSystemWatcher
21
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
DirectoryInfo Class
• DirectoryInfo cung cấp các chức năng cơ bản để truy
xuất và thao tác với một thư mục trong hệ thống tập tin.

Bảng các thuộc tính chính của DirectoryInfo

Bảng

các

thuộc

tính

chính

của

DirectoryInfo
Thuộc tính Ý nghĩa
Parent
Trả về thư mục chứa (thư mục cha) của thư mục
hiện hành đang truy xuất

Root
Trả về thư m

c
g
ốc tron
g
chuỗi đườn
g
dẫn của thư
Root
ụ g g g
mục hiện hành
22
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
DirectoryInfo Class

Bả áh thứ hí h ủ Di t I f
Phương thức Ý nghĩa

Bả
ng c
á
c p
h
ương
thứ
c c


n
h
c

a
Di
rec
t
ory
I
n
f
o
Create
Tạo thư mục theo thông tin được mô tả trong
DirectoryInfo.
CreateSubdirectory
Tạothư mụcconcủathư mụchiệnhành
CreateSubdirectory
Tạo

thư

mục

con

của

thư


mục

hiện

hành
GetDirectories
Trả về một mảng đối tượng kiểu DirectoryInfo
gồm các thư mục con trong thư mục hiện
hà h

n
h
GetFiles
Trả về một mảng đối tượng kiểu FileInfo gồm
các t
ập
tin tron
g
thư m

c hi

n hành
23
ậpgụ ệ
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
DirectoryInfo Class


Bả áh thứ hí h ủ Di t I f
Phương thức Ý nghĩa
ả ề ộ ả ố ể

Bả
ng c
á
c p
h
ương
thứ
c c

n
h
c

a
Di
rec
t
ory
I
n
f
o
GetFileSystemInfos
Tr

v


m

t m

ng đ

i tượng ki

u
FileSystemInfo gồm các tập tin và thư mục
trong thư mục hiện hành
MoveTo Di chuyển thư mục hiện hành sang vị trí khác
24
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
DirectoryInfo Class

V
í dụ: Duyệt qua các tập tin có trong thư mục
Windows:
25

×