Domino 9 und frühere Versionen > ND8: Entwicklung
Größe eines Richtextfeldes (in Bearbeitung) prüfen
pram:
--- Zitat ---lngRichTextSize = rtItem.ValueLength ' ==> liefert aber nur die Größe des ersten RT-Items (es kann ja mehrere geben)
--- Ende Zitat ---
mir ist dazu noch was eingefallen.
an das 2./3. ... kommst du ran, wenn du das item löscht (zum Auslesen von $Scriptlib funktioniert dieser Trick, könnte aber bei RT-Items wieder anders sein):
while doc.hasItem(itName)
set it = doc.getFirstItem
length = length + it.valueLength
call it.remove()
wend
Sollte man natürlich in einer KOPIE machen. ValueLength enthält nicht die Attachment-länge, diese stehen in den zugehörigen $FILE-Items
Was willst du eigentlich machen/erreichen
Gruß
Roland
eknori:
Die Property Get EmbeddedImageSize in der NotesRichTextApi Lib gibt dir die Grösse aller embedded images in einem RTI zurück.
ghostmw:
@pram:
--- Zitat von: pram am 13.09.11 - 13:54:43 ---
--- Zitat ---lngRichTextSize = rtItem.ValueLength ' ==> liefert aber nur die Größe des ersten RT-Items (es kann ja mehrere geben)
--- Ende Zitat ---
mir ist dazu noch was eingefallen.
an das 2./3. ... kommst du ran, wenn du das item löscht (zum Auslesen von $Scriptlib funktioniert dieser Trick, könnte aber bei RT-Items wieder anders sein):
while doc.hasItem(itName)
set it = doc.getFirstItem
length = length + it.valueLength
call it.remove()
wend
Sollte man natürlich in einer KOPIE machen. ValueLength enthält nicht die Attachment-länge, diese stehen in den zugehörigen $FILE-Items
Was willst du eigentlich machen/erreichen
Gruß
Roland
--- Ende Zitat ---
Ich muss abfangen, dass das RT-Item inkl. aller Attachments und Screenshots darin nicht mehr als 1 MB beim Speichern wird.
Die Attachments habe ich schon verarztet, passt.
Nur das RT-Item erweist sich mit seinen embedded images und mehrfachen Vorkommen eines RT-Items mit gleichem Namen.
@eknori:
bei mir leider nicht, habe testweise mal einen Screenshot gemacht und reingehängen, der wird nicht gefunden ... leider.
ghostmw:
... habs gefunden, wie's funktioniert.
Man schnappt sich ein leeres Dokument und schiebt das Richtext-Item in das neue Dokument per CopyItemToDocument-Befehl.
Damit werden alle Screenshots und Attachments auch das aktuell noch nicht gespeicherte mitkopiert und man kann anhand der Dokumentengröße die Größe des RT-Inhalts ermitteln.
Danke für die Tips eknori und pram
P.S.: es gibt eine kleine Ungenauigkeit, da das Dokument ja selber auch einen gewissen Platz braucht, aber wir sind verdammt dicht dran.
Man muss noch im uiDoc den Befehl uidoc.Refresh ( true, true, true ) absetzen vor dem Kopieren und das rtItem mit rtItem.Update auch noch aktualisieren, dann aber klappts zuverlässig.
koehlerbv:
Ich mache sowas mit privaten ProfileDocuments: Altes RTI dort löschen (so vorhanden), Grösse bestimmen vom "Rest", das zu RTI messende RTI rüberwerfen und erneut messen, den ermittelten ProfileDoc-Grössenrest abziehen - fertig.
Zwar stimmt auch das noch nicht (da in der ProfileDoc-Verwaltung ggf. neue Informationen entstanden sind), aber mit Bordmitteln dürfte man es wirklich nicht genauer hinbekommen. Vier Byte mehr oder weniger, bei denen sich eigentlich gar nicht so genau bestimmen lässt, wozu die nun gehören ...
Bernhard
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln