|
|||||||
![]() |
|
|
Các công cụ đề tài | Các chế độ hiển thị |
|
#1
|
||||
|
||||
Cách đọc nội dung file DBF
Em có hàm đọc header của file DBF sau đây, nhưng ko biết làm sao để lấy được nội dung của nó bỏ vào datagrid. Em cũng chỉ mới bắt đầu làm quen với C# thôi. Mong được giúp đỡ.
Code:
//Input: tên file DBF
public void ReadFileDBF(string filename)
{
// Mở file DBF
System.IO.FileStream filestream = new System.IO.FileStream(filename,
System.IO.FileMode.Open, System.IO.FileAccess.Read);
System.IO.BinaryReader bReader = new System.IO.BinaryReader(filestream);
// Chỉ định vị trí bắt đầu đọc dữ liệu từ stream
bReader.BaseStream.Position = 0;
// Đọc dữ liệu vào buffer tạm và phân tích thành các thành phần trong CMainHeader
byte[] buffer = new byte[32];
bReader.Read(buffer, 0, 32);
header = new CMainHeader(buffer);
// Tính số field, đọc dữ liệu vào buffer tạm và phân tích thành các thành phần trong CFieldHeader
int nField = (header.header_length - 1) / 32 - 1;
field_header = new CFieldHeader[nField];
for (int i = 0; i < nField; i++)
{
bReader.Read(buffer, 0, 32);
field_header[i] = new CFieldHeader(buffer);
}
// Đóng file DBF
bReader.Close();
filestream.Close();
}
----------------------------------------------------------------------- Đề nghị bạn để code vào trong thẻ [code]. Lần sau sẽ xóa. nhc1987. Đã được chỉnh sửa lần cuối bởi nhc1987 : 11-01-2008 lúc 08:49 PM. |
|
#2
|
||||
|
||||
|
Sorry, ko cố ý spam nhưng mà ko biết file dbf là do chương trình nào tạo ra :P
Chỉ biết mdf do SQL Server tạo ra và mdb do Access tạo ra. Kiến thức CSDL còn hạn chế, dbf có phải do Oracle tạo ra ko vậy?
__________________
|
|
#3
|
||||
|
||||
|
DBF === Database FoxPro.
Về cái FoxPro, nói thật Dr chưa hề sờ mó tới, thậm chí còn không có cài nó. Theo Dr nghĩ thì bạn có thể sử dụng Jet OLEDB Provider và dBase ISAM driver để làm việc này đó. Dựa vào tư tưởng đó bạn có thể tìm ra ngay được một bài viết rất rõ ràng về nó ở trên Microsoft nè: http://forums.microsoft.com/MSDN/Sho...09324&SiteID=1 Chúc thành công!
__________________
Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com Phone: 0972 89 7667 (Office: 04 667 00248) Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!) |
|
#4
|
||||
|
||||
|
DBF đúng là file CSDL FoxPro. Hoàn toàn có thể đọc nó bằng các stream như bình thường (cấu trúc header được public)
Cái DBF này đã có làm qua hồi lúc năm 2, viết chương trình convert từ DBF sang XML.
__________________
Keep moving forward!
... Retired ... |
|
#5
|
||||
|
||||
|
Có thể dùng ADO hoặc ADO.NET để truy cập DBF file
Code:
Dim cnn As New ADODB.Connection Dim rs As New ADODB.Recordset 'Open folder where dBase files are located cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=E:\My Documents\dBase;Extended Properties=dBase 5.0;" rs.Open "Select * from MyDBase.dbf", cnn, adOpenStatic, adLockBatchOptimistic http://caulacbovb.com/forum/viewtopi...97&hilit=DBASE |
|
#6
|
||||
|
||||
|
Sorry ! đây là mã C# dùng ADO.NET, giả sử file DBF đặt ở ổ d:\ ví dụ d:\Table1.DBF
Lưu ý chuối connection nhé , tên DBF không có trong connection mà chỉ có thư mục cha thôi. Cho dù cấu trúc DBF đã được public những ko có nghĩa là chúng ta phải viết code view lai ,tận dụng ado chỉ mất vài dòng code. Code:
System.Data.OleDb.OleDbConnection cn= new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\;Extended Properties=dBase 5.0");
System.Data.OleDb.OleDbDataAdapter da = new System.Data.OleDb.OleDbDataAdapter("SELECT * FROM Table1", cn);
System.Data.DataTable dt =new System.Data.DataTable () ;
da.Fill (dt);
this.dataGridView1.DataSource = dt;
Đã được chỉnh sửa lần cuối bởi Haipt : 12-01-2008 lúc 08:53 AM. |
|
#7
|
||||
|
||||
|
Vấn đề ở đây là có thể đây là bài tập về Cấu trúc dữ liệu, mà khi đó thì làm gì cho xài ADO.net
__________________
Keep moving forward!
... Retired ... |
|
#8
|
||||
|
||||
|
Hơ hơ, đây đâu phải box cấu trúc dữ liệu và giải thuật đâu
Trong các post trả lời thì post nào sát yêu cầu tác giả nhất nào! Sau này nếu có ai hỏi cách đọc file MDB rùi lưu vào DATAGRID không lẽ em cũng giả định là không được sài ADO sao |
|
#9
|
||||
|
||||
|
nhc1987 thích tự coding hết tất cả nhỉ, ko cần dùng hỗ trợ à? Ko phải tự dưng mà người ta viết ra mấy cái hỗ trợ ấy đâu. Đừng nghĩ code ko dựa vào hint, ko dựa vào hỗ trợ là pro. Cũng đừng nghĩ có hint thì sẽ làm mai một kỹ năng code. Máy cũng tự động code được, cái chính là mình biết tận dụng công nghệ phục vụ cho việc làm của mình. Làm việc bằng cái đầu vẫn thích hơn là làm việc bằng tay.
__________________
|
|
#10
|
||||
|
||||
|
Em nghĩ nếu dùng hỗ trợ thì cũng phải biết hỗ trợ làm sao mà được (Thuật toán ) , mình làm lại có được không ? . Xai như thế mới hiệu quả
|
![]() |
|
| Bookmarks |
| Các công cụ đề tài | |
| Các chế độ hiển thị | |
|
|
Các đề tài tương tự
|
||||
| Đề tài | Người bắt đầu đề tài | Diễn đàn | Các trả lời | Bài viết cuối |
| ADO.NET Đọc tên file và nội dung file Excel? | lucas_it | Thắc mắc lập trình C# | 0 | 31-05-2011 11:25 AM |
| Thay đổi Icon của file phụ thuộc nội dung của file? | nam_dkn | Thắc mắc lập trình C# | 0 | 14-12-2010 04:45 PM |
| Bài tập C Tìm dung lượng file | kass | Thắc mắc lập trình C/C++/C++0x | 11 | 06-07-2010 01:20 AM |
| Đọc file text? Đọc file dung lượng lớn? Lỗi lưu kết quả khi đọc nhiều lần? | totoise | Thắc mắc lập trình C/C++/C++0x | 6 | 19-04-2009 08:21 PM |