Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 12 kết quả

Đề tài: Cách đọc nội dung file DBF

  1. #1
    Ngày gia nhập
    01 2008
    Bài viết
    2

    Mặc định 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. #2
    Ngày gia nhập
    11 2006
    Bài viết
    633

    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. #3
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,578

    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 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

  4. #4
    Ngày gia nhập
    10 2007
    Nơi ở
    HCMUNS
    Bài viết
    460

    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. #5
    Ngày gia nhập
    06 2007
    Nơi ở
    Hà Nội
    Bài viết
    265

    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
    Xem chi tiết
    http://caulacbovb.com/forum/viewtopi...97&hilit=DBASE

  6. #6
    Ngày gia nhập
    06 2007
    Nơi ở
    Hà Nội
    Bài viết
    265

    Mặc định Cách đọc nội dung file DBF

    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. #7
    Ngày gia nhập
    10 2007
    Nơi ở
    HCMUNS
    Bài viết
    460

    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. #8
    Ngày gia nhập
    06 2007
    Nơi ở
    Hà Nội
    Bài viết
    265

    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. #9
    Ngày gia nhập
    11 2006
    Bài viết
    633

    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. #10
    Ngày gia nhập
    06 2007
    Nơi ở
    Đà Nẵng
    Bài viết
    41

    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ả

Các đề tài tương tự

  1. Bài tập C++ [Socket][Transfer File]Send và Recv file dung lượng lớn >100MB bị treo dialog
    Gửi bởi bear_hoang trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 28-05-2013, 11:50 PM
  2. Bài tập C++ giúp e bài nối nội dung từ file này sang file khác vs
    Gửi bởi acer5750 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 08-09-2012, 01:51 AM
  3. ADO.NET Đọc tên file và nội dung file Excel?
    Gửi bởi lucas_it trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 31-05-2011, 11:25 AM
  4. Thay đổi Icon của file phụ thuộc nội dung của file?
    Gửi bởi nam_dkn trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 14-12-2010, 04:45 PM
  5. Đọc file text? Đọc file dung lượng lớn? Lỗi lưu kết quả khi đọc nhiều lần?
    Gửi bởi totoise trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 19-04-2009, 08:21 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn