Jak zrobić moduł zapisu i odczytu dla całego programu?

Jak zrobić moduł zapisu i odczytu dla całego programu?
ET
  • Rejestracja:ponad 14 lat
  • Ostatnio:prawie 14 lat
0

Wiem, że się da dla poszczególnych składowych... zrobiłem sobie, korzystając z dobrodziejstw MSDN podstawowy moduł zapisu danych z DataGridView do .txt jako jeden string rozdzielony myślnikami (choć, już odczytu nie..).

Mój problem jest taki, że mam do przechowania jako save nie tylko datagridview ale i co gorsza usercontrol na którym znajdują się elementy graficzne... czyli ważne jest, żeby przechować ich wielkość, nazwę, kolor, informacje i rozmieszczenie.. wyciągnięcie tych informacji to najmniejszy problem..

Mógłby mnie ktoś poratować kodem, który łączyłby zapis datagridview i tego elementu Box (na którym są te rysunki)... czyli dwa zupełnie różne elementy.. no i sposób na odczytanie ich później?

massther
  • Rejestracja:ponad 16 lat
  • Ostatnio:prawie 9 lat
0

Xml, serializacja. Niestety obiekty gui nie są serializowalne. Ale jeśli stworzysz odpowiednie klasy, które np. w konstruktorze dostaną twój Box, a później udostępnią zestaw właściwości jakie chcesz zapisać /odczytać z pliku i klasę oznaczysz jako serializowalną to można powiedzieć że .net zrobi pracę za ciebie.

Kopiuj
[Serializable]
public class BoxSerializable
{
  public BoxSerializable()
  {
    this.Box = new BoxControl();
  }
  public BoxSerializable(BoxControl box)
  {
    this.Box = box;
  }

  [XmlIgnore]
  public BoxControl Box {get; set;}

  public Color BackColor
  {
    get {return this.Box.BackColor;}
    set {this.Box.BackColor = value;}
  }
 ...
}

Albo ręcznie dokonywać serializacji, czyli ręcznie produkować i odczytywać xml.

Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 7 godzin
0

Skoro piszesz w C++, to masz do dyspozycji całą gamę:
• serializację dotnetową
• dotnetowe funkcje do operowania na plikach
• strumienie plikowe C++
• funkcje biblioteki standardowej C
• WinAPI

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.