2010-09-20 38 views
7

Trong Java, người dùng có thể lưu một đối tượng tuần tự hóa vào một tệp và tải một đối tượng từ tệp đó. Chúng ta có thể làm điều này ở Delphi không? Nếu có, Làm thế nào?Cách lưu một đối tượng vào một tệp trong Delphi

+2

Trong Java, không thể cho bất kỳ đối tượng nào: lớp của đối tượng phải khai báo rằng nó triển khai Serializable (nhưng đó là tất cả, nó chỉ là một giao diện gắn thẻ không có bất kỳ phương thức nào). Điều tốt đẹp là Java serializes tất cả các thuộc tính đối tượng theo mặc định, bất kể sửa đổi truy cập của họ (không có "DIY" RTTI mã hóa là cần thiết). – mjn

+0

đã chỉnh sửa câu hỏi của tôi – rajeemcariazo

Trả lời

6

Nếu bạn hỏi "Chúng ta có thể làm điều này trong Delphi không?" - câu trả lời là: . Tôi đoán bạn muốn biết, CÁCH này có thể được thực hiện trong Delphi? Vâng điều này phụ thuộc vào những gì bạn muốn serialize:

Nếu bạn muốn serialize

  • đối tượng dữ liệu riêng của bạn, sau đó bạn có thể viết riêng chức năng saveTo/LoadFrom bạn
  • thành phần, sau đó bạn có thể sử dụng bất kỳ đối tượng không xác định nào là component streaming system
  • , sau đó bạn cần một số kỹ thuật RTTI và các đối tượng phải xuất bản các thuộc tính có thể tuần tự của chúng
+3

Khả năng hiển thị được xuất bản chỉ cần thiết khi vẫn sử dụng RTTI "kiểu cũ". Kể từ D2010, RTTI mở rộng không yêu cầu các thuộc tính để hiển thị khả năng hiển thị để có thể liệt kê chúng. Thêm vào đó nó có thể liệt kê nhiều hơn các thuộc tính "chỉ". –

3

Các bài viết đầu tiên liên quan đến bởi Andre dường (có lẽ tôi lướt đến nhanh) để sử dụng "cũ" pre-D2010 phong cách RTTI (Run-Time Loại thông tin), đó là phụ thuộc vào các thuộc tính có khả năng hiển thị được xuất bản để có thể liệt kê chúng.

Kể từ D2010 Delphi có RTTI mở rộng hoàn toàn mới (được xây dựng trên đỉnh cũ) mà không yêu cầu khả năng hiển thị được xuất bản và thực hiện nhiều hơn thuộc tính liệt kê. DeHL, như được mô tả trong bài viết thứ hai liên quan đến Andre, không sử dụng RTTI mới, và nếu bạn đang tìm kiếm một thư viện, tôi cũng sẽ giới thiệu thư viện này.

Nếu bạn muốn xây dựng của riêng bạn, bạn có thể có một cái nhìn tại một bài viết về XML serialization bằng cách sử dụng RTTI mới Robert Tình yêu: http://robstechcorner.blogspot.com/2009/10/xml-serialization-basic-usage.html

Robert Tình yêu cũng có một cái nhìn tổng quan tốt đẹp của bài viết RTTI: http://robstechcorner.blogspot.com/2009/09/so-what-is-rtti-rtti-is-acronym-for-run.html

và đối với một số ý tưởng thêm về những gì có thể được thực hiện với phong cách mới RTTI, có một cái nhìn tại

Practical usage for Delphi's new RTTI - Attributes,ValuesWhy should I care about RTTI in Delphi?

2

NativeXML NativeXML website có khả năng lưu trữ/truy xuất các đối tượng theo định dạng XML, cung cấp cho bạn khả năng thao tác bổ sung theo phương pháp RTTI. Thao tác nhanh chóng và dễ dàng các tài liệu XML và khả năng bổ sung của việc lưu/tải các đối tượng liên tục.

Các vấn đề liên quan