1. Trang chủ
  2. » Công Nghệ Thông Tin

bài 7 thao tác với file – các vấn đề khác

35 356 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài 7 Thao Tác Với File – Các Vấn Đề Khác
Trường học Trường Đại Học Công Nghệ Thông Tin - ĐHQG Hà Nội
Chuyên ngành Lập trình
Thể loại bài giảng
Thành phố Hà Nội
Định dạng
Số trang 35
Dung lượng 1,25 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mục tiêu bài họcHiểu về hệ thống phân cấp dữ liệu mà máy tính xử lý Hiểu về file, biết cách đọc và ghi dữ liệu từ file truy cậptuần tự Biết cách sử dụng điều khiển OpenFileDialog Biết cá

Trang 1

BÀI 7:

THAO TÁC VỚI FILE – CÁC VẤN ĐỀ KHÁC

Trang 2

Tổ chức ứng dụng, khái niệm “chia để trị”

Khái niệm về thủ tục, sử dụng thủ tục Function và thủ

tục Sub

Tham số Optional

Phạm vị biến

Ép kiểu ngầm định thu hẹp và sử dụng lớp Convert để

ép kiểu tường minh

Sử dụng các tùy chọn của trình gỡ lỗi

Hệ thống bài cũ

Tổ chức ứng dụng, khái niệm “chia để trị”

Khái niệm về thủ tục, sử dụng thủ tục Function và thủ

tục Sub

Tham số Optional

Phạm vị biến

Ép kiểu ngầm định thu hẹp và sử dụng lớp Convert để

ép kiểu tường minh

Sử dụng các tùy chọn của trình gỡ lỗi

Trang 3

Mục tiêu bài học

Hiểu về hệ thống phân cấp dữ liệu mà máy tính xử lý

Hiểu về file, biết cách đọc và ghi dữ liệu từ file truy cậptuần tự

Biết cách sử dụng điều khiển OpenFileDialog

Biết cách sử dụng điều khiển MonthCalendar

Biết cách sử dụng điều khiển MenuStrip

Biết cách sử dụng mảng và mảng động

Hiểu về hệ thống phân cấp dữ liệu mà máy tính xử lý

Hiểu về file, biết cách đọc và ghi dữ liệu từ file truy cậptuần tự

Biết cách sử dụng điều khiển OpenFileDialog

Biết cách sử dụng điều khiển MonthCalendar

Biết cách sử dụng điều khiển MenuStrip

Biết cách sử dụng mảng và mảng động

Trang 4

File là một tập hợp dữ liệu được lưu lại ngay cả khi ứngdụng đã kết thúc

File được lưu trữ trên các phương tiện thứ cấp như ổ

cứng máy tính, CD-ROM, DVD hay USB

Visual cung cấp các thao tác tạo, đọc và ghi dữ liệu vàoFile

File

File là một tập hợp dữ liệu được lưu lại ngay cả khi ứngdụng đã kết thúc

File được lưu trữ trên các phương tiện thứ cấp như ổ

cứng máy tính, CD-ROM, DVD hay USB

Visual cung cấp các thao tác tạo, đọc và ghi dữ liệu vàoFile

File được lưu

trên ổ cứng

Trang 5

File truy cập tuần tự

Là file mà thông tin được đọc ra theo thứ tự mà nó được ghi vào trước đó

Bài này sẽ giới thiệu về cách đọc và ghi file tuần tự

File truy cập ngẫu nhiên

Là file mà thông tin được đọc ra theo thứ tự ngẫu nhiên

File truy cập tuần tự

và File truy cập ngẫu nhiên

File truy cập tuần tự

Là file mà thông tin được đọc ra theo thứ tự mà nó được ghi vào trước đó

Bài này sẽ giới thiệu về cách đọc và ghi file tuần tự

File truy cập ngẫu nhiên

Là file mà thông tin được đọc ra theo thứ tự ngẫu nhiên

Trang 6

Các phần tử được xử lý bởi máy tính là một hệ thống

Trang 7

Hệ thống được tổ chức như hình sau

Trang 8

Phần tử nhỏ nhất mà máy tính xử lý Chỉ lưu giá trị 0 hoặc 1

Máy tính thực hiện thao tác đơn giản trên bit (kiểm tra giá trị của bit, gán giá trị cho bit, đảo giá trị bit)

Byte

Tập hợp gồm 8 bit Trong Visual Basic, mỗi ký tự gồm 2 byte Lập trình tạo ra các phần tử dữ liệu bằng các ký tự, máy tính thao tác trên chuỗi bit

Hệ thống phân cấp dữ liệu

Bit

Phần tử nhỏ nhất mà máy tính xử lý Chỉ lưu giá trị 0 hoặc 1

Máy tính thực hiện thao tác đơn giản trên bit (kiểm tra giá trị của bit, gán giá trị cho bit, đảo giá trị bit)

Byte

Tập hợp gồm 8 bit Trong Visual Basic, mỗi ký tự gồm 2 byte Lập trình tạo ra các phần tử dữ liệu bằng các ký tự, máy tính thao tác trên chuỗi bit

Trang 9

Tập hợp các ký tự có thể truyền đạt ý nghĩa

Ví dụ như trường lưu tên

Bản ghi

Là tập hợp các trường có liên quan

Ví dụ như trường lưu thông tin về điểm cho một sinh viên

File

Là tập hợp các bản ghi có liên quan

Ví dụ như file lưu thông tin về điểm cho một lớp học

Để lấy bản ghi dễ dàng, một trường trong bản ghi được chọn làm khóa bản ghi (ví dụ như mã số sinh viên)

Là tập hợp các trường có liên quan

Ví dụ như trường lưu thông tin về điểm cho một sinh viên

File

Là tập hợp các bản ghi có liên quan

Ví dụ như file lưu thông tin về điểm cho một lớp học

Để lấy bản ghi dễ dàng, một trường trong bản ghi được chọn làm khóa bản ghi (ví dụ như mã số sinh viên)

Cơ sở dữ liệu

Là một nhóm file có liên quan

Trang 10

Visual Basic cung cấp đối tượng luồng (stream) để hỗ

trợ cho việc đọc và ghi thông tin vào File

Khi một file được mở, một luồng được gắn vào đối tượngfile để “đổ” thông tin vào File hay “hút” dữ liệu từ file

Các lớp xử lý luồng được lưu trong namespace

System.IO

File và luồng

Visual Basic cung cấp đối tượng luồng (stream) để hỗ

trợ cho việc đọc và ghi thông tin vào File

Khi một file được mở, một luồng được gắn vào đối tượngfile để “đổ” thông tin vào File hay “hút” dữ liệu từ file

Các lớp xử lý luồng được lưu trong namespace

System.IO

Trang 11

Thêm namespace System.IO

Khai báo biến StreamWriter

Khởi tạo giá trị cho đối tượng StreamWriter

Nếu tham số thứ hai là False, nội dung có sẵn trong file

(nếu file tồn tại) sẽ được xóa hết

Demo ghi dữ liệu ra file

Imports System.IO Dim output As StreamWriter output = New StreamWriter (“calendar.txt”, True)

Thêm namespace System.IO

Khai báo biến StreamWriter

Khởi tạo giá trị cho đối tượng StreamWriter

Nếu tham số thứ hai là False, nội dung có sẵn trong file

(nếu file tồn tại) sẽ được xóa hết

output = New StreamWriter (“calendar.txt”, True)

Tên file mà dữ liệu

sẽ được ghi ra

Mục đích là để báo rằng muốn thêm thông tin vào cuối file

Trang 12

Ghi dữ liệu ra file

Trang 13

Cơ chế ghi

Ứng dụng không đọc dữ liệu ra file ngay khi thực hiện lệnh Write hay WriteLine

Dữ liệu được đọc ra file theo từng khối

Khi gặp lệnh Close, ứng dụng sẽ đẩy những dữ liệu còn lại

ra file

 Không đóng file sau khi ghi có thể làm mất dữ liệu

Cơ chế đọc và ghi ra file

Cơ chế ghi

Ứng dụng không đọc dữ liệu ra file ngay khi thực hiện lệnh Write hay WriteLine

Dữ liệu được đọc ra file theo từng khối

Khi gặp lệnh Close, ứng dụng sẽ đẩy những dữ liệu còn lại

ra file

 Không đóng file sau khi ghi có thể làm mất dữ liệu

Trang 14

Cơ chế đọc

Ứng dụng đọc từng khối dữ liệu từ file vào RAM

Tại một thời điểm, chỉ một ứng dụng truy cập đến file

Cố gắng mở một file đang mở sẽ gây lỗi

 Phải đóng file ngay sau khi sử dụng xong

Cơ chế đọc và ghi ra file

Trang 15

Thêm namespace System.IO

Khai báo khởi tạo biến StreamReader

Đọc dữ liệu từ file

Phương thức ReadLine đọc một dòng văn bản và trả về

String Trả về Nothing nếu đã đến cuối file

Sử dụng phương thức EndOfStream để xác định đã đến

cuối file hay chưa

Demo đọc dữ liệu từ file

Imports System.IO Dim input As StreamReader= New StreamReader (“calendar.txt”)

Thêm namespace System.IO

Khai báo khởi tạo biến StreamReader

Đọc dữ liệu từ file

Phương thức ReadLine đọc một dòng văn bản và trả về

String Trả về Nothing nếu đã đến cuối file

Sử dụng phương thức EndOfStream để xác định đã đến

cuối file hay chưa

Dim line As String

Do Until input.EndOfStream

line = input.Realine() MessageBox.Show(line)

Trang 16

Là hộp thoại để mở file

Hộp thoại OpenFileDialog

Ký hiệu hộp thoại

trên ToolBox

Trang 17

Thêm OpenFileDialog vào Form

Hiển thị hộp thoại cho người dùng chọn file khi Click vàomột Button trên Form

Sử dụng phương thức ShowDialog để hiển thị hộp thoại, kết quả trả về từ phương thức này cho biết người dùng đã nhấn vào Button nào

Sử dụng đối tượng DialogResult để lấy kết quả trả về từ

phương thức ShowDialog

Hiển thị tên file

Sử dụng thuộc tính FileName để lấy tên file được chọn

Dùng MessageBox để hiển thị tên file

Demo sử dụng hộp thoại OpenFileDialog

Thêm OpenFileDialog vào Form

Hiển thị hộp thoại cho người dùng chọn file khi Click vàomột Button trên Form

Sử dụng phương thức ShowDialog để hiển thị hộp thoại, kết quả trả về từ phương thức này cho biết người dùng đã nhấn vào Button nào

Sử dụng đối tượng DialogResult để lấy kết quả trả về từ

phương thức ShowDialog

Hiển thị tên file

Sử dụng thuộc tính FileName để lấy tên file được chọn

Dùng MessageBox để hiển thị tên file

Trang 18

Sự kiện

DateChanged - Được thực thi khi một ngày (hoặc một

khoảng ngày tháng) mới được chọn.

Thuộc tính

Name - Xác định tên được dùng để truy cập các thuộc

tính của điều khiển MonthCalendar trong mã của ứng

dụng Tên nên có hậu tố MonthCalendar.

SelectionStart - trả về ngày được chọn đầu tiên (hoặc

duy nhất).

Điều khiển MonthCalendar

Sự kiện

DateChanged - Được thực thi khi một ngày (hoặc một

khoảng ngày tháng) mới được chọn.

Thuộc tính

Name - Xác định tên được dùng để truy cập các thuộc

tính của điều khiển MonthCalendar trong mã của ứng

dụng Tên nên có hậu tố MonthCalendar.

SelectionStart - trả về ngày được chọn đầu tiên (hoặc

duy nhất).

Trang 19

Demo sử dụng hộp thoại OpenFileDialog

Private Sub openFileButton_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles openFileButton.Click

' hiển thị hộp thoại Open

Dim ketqua As DialogResult = openFileDialog.ShowDialog()

'mở file nếu người dùng không nhấn vào Button Cancel

If ketqua <> Windows.Forms.DialogResult.Cancel Then

'lấy tên file được chọn

Dim tenfile As String = openFileDialog.FileName

‘hiển thị tên file

MessageBox.Show(tenfile) End If

End Sub ' openFileButton_Click

Private Sub openFileButton_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles openFileButton.Click

' hiển thị hộp thoại Open

Dim ketqua As DialogResult = openFileDialog.ShowDialog()

'mở file nếu người dùng không nhấn vào Button Cancel

If ketqua <> Windows.Forms.DialogResult.Cancel Then

'lấy tên file được chọn

Dim tenfile As String = openFileDialog.FileName

‘hiển thị tên file

MessageBox.Show(tenfile) End If

End Sub ' openFileButton_Click

Trang 20

Hiển thị lịch, từ đó người dùng có thể chọn một ngày

hoặc một khoảng ngày tháng

Điều khiển MonthCalendar

Ký hiệu MonthCalendar

trên ToolBox

Ký hiệu MonthCalendar

trên ToolBox

Trang 21

Thêm MonthCalendar vào Form

Xử lý sự kiện DateChanged cho điều khiển này

Khi người dùng chọn ngày thì sẽ hiển thị ngày vừa chọn

Demo sử dụng MonthCalendar

' xử lý sự kiện DateChanged của MonthCalendar

Private Sub dateMonthCalendar_DateChanged( _ ByVal sender As System.Object, ByVal e As _ System.Windows.Forms.DateRangeEventArgs) _ Handles dateMonthCalendar.DateChanged

' hiển thị ngày vừa được chọn

MessageBox.Show(dateMonthCalendar.SelectionStart) End Sub ' dateMonthCalendar_DateChanged

' xử lý sự kiện DateChanged của MonthCalendar

Private Sub dateMonthCalendar_DateChanged( _ ByVal sender As System.Object, ByVal e As _ System.Windows.Forms.DateRangeEventArgs) _ Handles dateMonthCalendar.DateChanged

' hiển thị ngày vừa được chọn

MessageBox.Show(dateMonthCalendar.SelectionStart) End Sub ' dateMonthCalendar_DateChanged

Trang 22

Dùng để nhóm các chức năng liên quan trong ứng dụngWindows

Menu

Trang 23

Thêm MenuStrip vào Form

Thiết kế Menu

Xử lý sự kiện khi nhấn vào mục Menu

Demo sử dụng MenuStrip

Trang 24

Thêm MenuStrip vào Form

MenuStrip được

thêm vào Form

Trang 25

Thiết kế MenuStrip

Color…để hiển thị hộp chọn màu Thiết kế MenuStrip

Color…để hiển thị hộp chọn màu

Font…để hiển thị hộp chọn

font

Trang 26

Xử lý sự kiện khi nhấn vào mục Color…

Trang 27

Khai báo mảng không khởi tạo phần tử

Dim arr As Array

Dim int() As Integer = {12, 16, 20, 24, 28, 32}

arr = CType(int, Array)

Khai báo mảng có khởi tạo phần tử

Dim MangSo() As Integer = {12, 24, 36, 48}

Dim MangKyTu() As String = {"K", "S", "S", "D", "N"}

Dim MangDoiTuong() As Object = {"this", ”a”}

Dim objArray() As Object

Mảng và các cách khai báo

Khai báo mảng không khởi tạo phần tử

Dim arr As Array

Dim int() As Integer = {12, 16, 20, 24, 28, 32}

arr = CType(int, Array)

Khai báo mảng có khởi tạo phần tử

Dim MangSo() As Integer = {12, 24, 36, 48}

Dim MangKyTu() As String = {"K", "S", "S", "D", "N"}

Dim MangDoiTuong() As Object = {"this", ”a”}

Dim objArray() As Object

Trang 28

Ta sử dụng vòng lặp để đọc dữ liệu từ mảng

Dim sourceArray() As Integer = {1, 2, 3}

Dim counter As Integer

For counter = 0 To sourceArray.Length - 1

result.Append(sourceArray(counter).ToString()) Next counter

Đọc dữ liệu từ mảng

Ta sử dụng vòng lặp để đọc dữ liệu từ mảng

Dim sourceArray() As Integer = {1, 2, 3}

Dim counter As Integer

For counter = 0 To sourceArray.Length - 1

result.Append(sourceArray(counter).ToString()) Next counter

Trang 29

Ta sử dụng InsertArrayElement để thêm dữ liệu

vào mảng

Dim arrayInsert() As String = {"O", "A", "G", "B", "B"}

InsertArrayElement(Of String)(arrayInsert, 2, “Chanh")

Thêm dữ liệu vào mảng

Trang 30

Khai báo dữ liệu kiểu cấu trúc

Structure Person

Dim strLastName As String Dim strFirstName As String Dim strPhone As String

End Structure

Gán dữ liệu cho kiểu dữ liệu cấu trúc

Dim udtPerson As New Person

With udtPerson

.strLastName = “Nguyen Van"

.strFirstName = “A"

Dữ liệu kiểu cấu trúc

Khai báo dữ liệu kiểu cấu trúc

Structure Person

Dim strLastName As String Dim strFirstName As String Dim strPhone As String

End Structure

Gán dữ liệu cho kiểu dữ liệu cấu trúc

Dim udtPerson As New Person

With udtPerson

.strLastName = “Nguyen Van"

.strFirstName = “A"

Trang 31

Khai báo ArrayList

Dim alPersons As New ArrayList

Thêm dữ liệu vào ArrayList

alPersons.Add(udtPerson)

Insert dữ liệu vào một vị trí bất kỳ trong ArrayList

If Not alPersons.Contains(udtPerson) Then

alPersons.Insert(1, udtPerson)

End If

Xóa dữ liệu từ ArrayList

alPersons.RemoveAt(0)

Thêm, xóa dữ liệu từ ArrayList

Khai báo ArrayList

Dim alPersons As New ArrayList

Thêm dữ liệu vào ArrayList

alPersons.Add(udtPerson)

Insert dữ liệu vào một vị trí bất kỳ trong ArrayList

If Not alPersons.Contains(udtPerson) Then

alPersons.Insert(1, udtPerson)

End If

Xóa dữ liệu từ ArrayList

alPersons.RemoveAt(0)

Trang 32

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object,

ByVal e As System.EventArgs) Handles Button1.Click Dim i As Integer

Dim ItemList As New ArrayList()

'insert an item

Ví dụ về ArrayList

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object,

ByVal e As System.EventArgs) Handles Button1.Click Dim i As Integer

Dim ItemList As New ArrayList()

'insert an item

Trang 33

End Sub

End Class

Trang 34

Các phần tử được xử lý bởi máy tính là một hệ thống

phân cấp dữ liệu Các phần tử phức tạp được cấu thành

từ các phần tử đơn giản hơn

Các phần tử được xử lý bởi máy tính là một hệ thống

phân cấp dữ liệu Các phần tử phức tạp được cấu thành

từ các phần tử đơn giản hơn

Trang 35

Hãy nhớ đóng file sau khi đã thao tác xong với file để

tránh lỗi xẩy ra

Hộp thoại OpenFileDialog để mở file

Điều khiển MonthCalender hiển thị lịch, từ đó người

dùng có thể chọn một ngày hoặc một khoảng ngày

Hộp thoại OpenFileDialog để mở file

Điều khiển MonthCalender hiển thị lịch, từ đó người

dùng có thể chọn một ngày hoặc một khoảng ngày

tháng

Điều khiển MenuStrip để thiết kế menu

Mảng và mảng động

Ngày đăng: 23/05/2014, 17:42

TỪ KHÓA LIÊN QUAN