Nur ne Idee. Einigermaßen verständlich?
Leider nicht ganz.
Liegt wohl auch an meinem etwas anderen Ansatz.
Also wie gesagt, im Konstruktor der History lesen wir die bisherigen History-Einträge im Dokument aus und erstellen für jeden Eintrag ein HistoryEntry-Objekt. Alle HistoryEntry-Objekte wandern in ein Array/Liste/...
Die Liste ist Attribut der History (Membervariable)
Zu dieser Liste kommt noch der HistoryEntry für die aktuelle Änderung.
Ein Dokument wurde bis jetzt dreimal gespeichert und gerade wurde es zum vierten Mal gespeichert, ergo haben wir vier HistoryEntry-Objekte.
O1 vom 10.06.
O2 vom 12.06.
O3 vom 17.06.
O4 vom 25.06.
So, nun müssen wir die History im Notesdokument aktualisieren und dabei aufpassen, dass wir nicht zuviel Text schreiben.
Die max. Größe ist unserem History-Objekt bekannt.
Ebenfalls kennt dieses Objekt alle HistoryEntry-Objkete, die ins Dokument müssen.
Mein Gedanke ist nun, dass das HistoryObjekt nacheinander jedes HistoryEntry-Objekt fragt, wie groß es ist und zwar solange, bis die Gesamtgröße überschritten wurde oder eben kein Objekt mehr zum Fragen da ist.
Also:
Größe max = 15k
O4, wie groß bist du? - 4k -> Summe 4, OK
O3, wie groß bist du? - 4k -> Summe 8, OK
O2, wie groß bist du? - 4k -> Summe 12, OK
O1, wie groß bist du? - 4k -> Summe 16, mööp
O2, schreib dich ins Dokument
O3, schreib dich ins Dokument
O4, schreib dich ins Dokument
oder zumindest so ähnlich.
etwas klarer?