Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: Đọc file dạng mảng trong lập trình C#?

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

    Mặc định Đọc file dạng mảng trong lập trình C#?

    Đây là đoạn code ghi ra file .QLDHS

    Visual C# Code:
    1. SaveFileDialog svfdl = new SaveFileDialog();
    2.             svfdl.Filter = "Quản lý điểm học sinh ( *.QLDHS)|*.QLDHS";
    3.             if (svfdl.ShowDialog() == DialogResult.OK)
    4.             {
    5.                 Stream s = File.Open(svfdl.FileName, FileMode.Create);
    6.                 BinaryFormatter b = new BinaryFormatter();
    7.                 b.Serialize(s, ArrHSHS);
    8.                 s.Close();
    9.             }


    Tôi khai báo mãng như sau:
    Visual C# Code:
    1. BussinessOject.TblHoSoHocSinhInfo[] ArrHSHS;
    2.  
    3. OpenFileDialog Opfdl = new OpenFileDialog();
    4. Opfdl.Filter = "Quản lý điểm học sinh (*.QLDHS)|*.QLDHS";
    5. if (Opfdl.ShowDialog() == DialogResult.OK)
    6.         {    
    7.           txtDuongDan.Text = Opfdl.FileName;
    8.           Stream s = File.Open(Opfdl.FileName, FileMode.Open);
    9.              
    10.          BinaryFormatter b = new BinaryFormatter();
    11. ArrHSHS = (BussinessOject.TblHoSoHocSinhInfo[])b.Deserialize(s);
    12.                 s.Close();
    13.                 MessageBox.Show(ArrHSHS[0].DiaChi);                
    14.             }

    Chạy tới đoạn hộp thoại MessageBox thì nó lại quăng ra lỗi chưa new thằng ArrHSHS “Object reference not set to an instance of an object.”
    Nhờ huynh đệ jup jai quyết vấn đề này với!! hic làm 2 ngày rùi mà ko ra!!!



    Đây là class TblHoSoHocSinhInfo dùng để tổ chức lưu dữ liệu



    Visual C# Code:
    1.  [Serializable]
    2.     public class TblHoSoHocSinhInfo
    3.     {
    4.        
    5.         private int m_HocSinhId;
    6.         private string m_MaHocSinh;
    7.         private string m_HoTen;
    8.         private DateTime m_NgaySinh;
    9.         private int m_GioiTinh;
    10.         private string m_TenCha;
    11.         private string m_TenMe;
    12.         private string m_DiaChi;
    13.         private int m_TinhTrangLuuBan;
    14.         private int m_LopHocId;
    15.  
    16.  
    17.         public int HocSinhId
    18.         {
    19.             get
    20.             {
    21.                 return this.m_HocSinhId;
    22.             }
    23.             set
    24.             {
    25.                 this.m_HocSinhId = value;
    26.             }
    27.         }
    28.         //------------------------
    29.         public string MaHocSinh
    30.         {
    31.             get
    32.             {
    33.                 return this.m_MaHocSinh;
    34.             }
    35.             set
    36.             {
    37.                 this.m_MaHocSinh = value;
    38.             }
    39.         }
    40.         //------------------------
    41.         public string HoTen
    42.         {
    43.             get
    44.             {
    45.                 return this.m_HoTen;
    46.             }
    47.             set
    48.             {
    49.                 this.m_HoTen = value;
    50.             }
    51.         }
    52.         //------------------------
    53.         public DateTime NgaySinh
    54.         {
    55.             get
    56.             {
    57.                 return this.m_NgaySinh;
    58.             }
    59.             set
    60.             {
    61.                 this.m_NgaySinh = value;
    62.             }
    63.         }
    64.         //------------------------
    65.         public int GioiTinh
    66.         {
    67.             get
    68.             {
    69.                 return this.m_GioiTinh;
    70.             }
    71.             set
    72.             {
    73.                 this.m_GioiTinh = value;
    74.             }
    75.         }
    76.         //------------------------
    77.         public string TenCha
    78.         {
    79.             get
    80.             {
    81.                 return this.m_TenCha;
    82.             }
    83.             set
    84.             {
    85.                 this.m_TenCha = value;
    86.             }
    87.         }
    88.         //------------------------
    89.         public string TenMe
    90.         {
    91.             get
    92.             {
    93.                 return this.m_TenMe;
    94.             }
    95.             set
    96.             {
    97.                 this.m_TenMe = value;
    98.             }
    99.         }
    100.         //------------------------
    101.         public string DiaChi
    102.         {
    103.             get
    104.             {
    105.                 return this.m_DiaChi;
    106.             }
    107.             set
    108.             {
    109.                 this.m_DiaChi = value;
    110.             }
    111.         }
    112.         //------------------------
    113.         public int TinhTrangLuuBan
    114.         {
    115.             get
    116.             {
    117.                 return this.m_TinhTrangLuuBan;
    118.             }
    119.             set
    120.             {
    121.                 this.m_TinhTrangLuuBan = value;
    122.             }
    123.         }
    124.         //------------------------
    125.         public int LopHocId
    126.         {
    127.             get
    128.             {
    129.                 return this.m_LopHocId;
    130.             }
    131.             set
    132.             {
    133.                 this.m_LopHocId = value;
    134.             }
    135.         }
    136.         //------------------------
    137.  
    138.  
    139.  
    140.         //Khởi tạo đối tượng rỗng
    141.  
    142.  
    143.         public TblHoSoHocSinhInfo()
    144.         {
    145.             this.m_HocSinhId = 0;
    146.             this.m_MaHocSinh = "";
    147.             this.m_HoTen = "";
    148.             this.m_NgaySinh = DateTime.Now;
    149.             this.m_GioiTinh = 0;
    150.             this.m_TenCha = "";
    151.             this.m_TenMe = "";
    152.             this.m_DiaChi = "";
    153.             this.m_TinhTrangLuuBan = 0;
    154.             this.m_LopHocId = 0;
    155.  
    156.         }

  2. #2
    Ngày gia nhập
    10 2007
    Nơi ở
    Gameloft studio
    Bài viết
    175

    Visual C# Code:
    1. BussinessOject.TblHoSoHocSinhInfo[] ArrHSHS;//Chỉ mới có khai báo mảng đối tượng, chứ bạn chưa khởi tạo
    2.  
    3. OpenFileDialog Opfdl = new OpenFileDialog();
    4. Opfdl.Filter = "Quản lý điểm học sinh (*.QLDHS)|*.QLDHS";
    5. if (Opfdl.ShowDialog() == DialogResult.OK)
    6.         {    
    7.           txtDuongDan.Text = Opfdl.FileName;
    8.           Stream s = File.Open(Opfdl.FileName, FileMode.Open);
    9.              
    10.          BinaryFormatter b = new BinaryFormatter();
    11. ArrHSHS = (BussinessOject.TblHoSoHocSinhInfo[])b.Deserialize(s);
    12.                 s.Close();
    13.                 MessageBox.Show(ArrHSHS[0].DiaChi);  
    14.                 //ArrHSHS[0] chưa khởi tạo mà sử dụng thì tất nhiên báo lỗi      
    15.             }

    Bạn xem lại, C# toàn là hướng đối tượng, cho dù là bạn tạo ra class thì cũng phải khởi tạo đối tượng khi khai báo một mảng đối tượng đó.
    Ví dụ:
    Visual C# Code:
    1. int[] dem=new int[6];//Khởi tạo mảng gồm 6 đối tượng bên trong từ 0 đến 5.
    Không biết ghi gì luôn ...

  3. #3
    Ngày gia nhập
    02 2008
    Bài viết
    43

    Visual C# Code:
    1. BussinessOject.TblHoSoHocSinhInfo[] ArrHSHS = new BussinessOject.TblHoSoHocSinhInfo[15]
    Mình cũng đã thử khai báo vậy rồi nhưng nó vẫn bị cái lỗi này !!
    Ko hiểu được nguyên nhân nó nằm ở đâu nữa

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

    Trích dẫn Nguyên bản được gửi bởi c1inme Xem bài viết
    Visual C# Code:
    1. BussinessOject.TblHoSoHocSinhInfo[] ArrHSHS = new BussinessOject.TblHoSoHocSinhInfo[15]
    Mình cũng đã thử khai báo vậy rồi nhưng nó vẫn bị cái lỗi này !!
    Ko hiểu được nguyên nhân nó nằm ở đâu nữa
    Nó vẫn báo lỗi thôi bạn àh, bạn làm theo khởi tạo trên là đúng, nhưng bạn quên một chi tiết khi bạn khai báo thế, bạn vẫn phải khởi tạo từng thành phần
    Ví dụ bạn muốn sử dụng ArrHSHS[1], thì phải khởi tạo riêng cho nó như sau:
    Visual C# Code:
    1. ArrHSHS[1]=new BussinessOject.TblHoSoHocSinhInfo();
    Đã được chỉnh sửa lần cuối bởi Forlorn_hope : 12-03-2009 lúc 09:54 AM.
    Không biết ghi gì luôn ...

  5. #5
    Ngày gia nhập
    09 2008
    Bài viết
    71

    bạn dùng Serialize - Deserialize 1 object ra file phải không ?
    Code:
    (BussinessOject.TblHoSoHocSinhInfo[])b.Deserialize(s);
    cái bạn sai là method Serialize chỉ cho phép Serialize 1 object ra file, nhưng bạn lại serialize 1 mảng BussinessOject.TblHoSoHocSinhInfo[], nên nó báo lỗi

    Cú pháp của nó là :
    Code:
     public void Serialize (
    	Stream serializationStream,
    	Object graph
     )
    ---> hướng giải quyết : bạn không nên để 1 mảng BussinessOject.TblHoSoHocSinhInfo[] khi serialize ra file, bạn nên để trong 1 Arraylist hoặc List<BussinessOject.TblHoSoHocSinhInfo>
    Đã được chỉnh sửa lần cuối bởi gauto988 : 12-03-2009 lúc 07:21 PM.

  6. #6
    Ngày gia nhập
    02 2008
    Bài viết
    43

    Mặc định Đọc file dạng mảng trong lập trình C#?

    Bạn có thể chỉ giúp mình kĩ về cách dùng Arraylist hoặc List<BussinessOject.TblHoSoHocSinhInfo> được ko

    Mình nghĩ vấn đề đúng là ở chổ ý bạn nói đó hì!! Bạn chỉ giúp thêm nha. Nhưng khi mình Serialize() thì nó vẫn thành công và không báo lỗi dzì hết
    Đã được chỉnh sửa lần cuối bởi c1inme : 12-03-2009 lúc 10:40 PM.

  7. #7
    Ngày gia nhập
    02 2008
    Bài viết
    43

    Thank ban nhìu nha!! mình dùng Arrlist đã giải quyết được vấn đề trên rùi!!

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

  1. Trả lời: 3
    Bài viết cuối: 10-04-2013, 08:06 AM
  2. Giới thiệu cách chuyển File Ảnh thành file Video trong download proshow gold
    Gửi bởi thuhu0900x trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 3
    Bài viết cuối: 03-07-2012, 03:54 AM
  3. Đọc dữ liệu file midi dạng số HEX và lấy lời nhạc trong file ra file text
    Gửi bởi kimngockhtn_2007 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 29-06-2011, 04:40 PM
  4. File server để dùng ajax trong visual2010 là file gì, xử lý kết nối với SQLserver như thế nào?
    Gửi bởi lenamshenlong trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 9
    Bài viết cuối: 26-05-2011, 05:14 PM
  5. Làm sao để open file bằng cách double click vào file trong windows explorer?
    Gửi bởi Batchuoc_09 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 11
    Bài viết cuối: 18-07-2010, 01:12 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