Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: TMC am 11.09.04 - 23:01:03
-
Die Designerhelp (R5 und ND6.5) sagt zu der Text Property der NotesItem-Klasse folgendes:
Read-only. A plain text representation of an item's value.
Data type
String
Syntax
To get: itemText$ = notesItem.Text
Usage
Multiple values in a list are separated by semicolons in the returned string. If an item's value is large, the returned string may be truncated.
For rich text items, this property skips non-text data such as bitmaps and file attachments.
For HTML items, this property returns Null.
Was mich interessiert:
a) "If an item's value is large, the returned string may be truncated."
Bei welcher Länge wird gekürzt? Gibt es da Erfahrungswerte? Ich finde jetzt diese Aussage in der Help nicht wirklich klar.
b) rich text items
Auch hier interessiert mich: Wie lange ist max. der Text, der hier extrahiert wird? 64K ?
-
Das wird limitiert durch die Limits von Strings:
"Length of a string literal 16,267 characters (32,000 bytes)"
(Aus der DesignerHelp).
Ben Langhinrichs ergänzt das um "this is a BASIC language limitation".
Ein "Character" speichert LS in 2 Bytes ab.
HTH,
Bernhard
-
Danke Bernhard.
Ist das auch Deine Erfahrung von item.Text?
Mich hat hier die Aussage "If an item's value is large" extrem verunsichert, da "large" wohl ein ziemlich relativer Begriff ist. Irgendwie erscheint mir auch, IBM will sich das offen halten, und könnte in RNext variieren?
Aber vielleicht wurde auch schlichtweg geschlampt in der Designerhelp, und vergessen, das zu konkretisieren (wie es ja auch manchmal vorkommt).
-
Bei Strings (ob scalar oder als Array) ist bei mir generell bei 16k Zeichen resp. 32k Byte Ende Gelände. In der Regel muss man das Zeugs dann ja auch noch irgendwo abspeichern (Item). Da kann man noch im Backend tricksen, aber spätestens, wenn das Item im Frontend benutzt wird, ist dann Schluss mit lustig.
Wegen der Abwärtskompatibilität (und dem ähnlichen Vorgehen anderer Systeme) kannst Du Dir getrost eine 32kB / 16k-Zeichen-Grenze setzen ;)
Bernhard
PS: Sicherlich wichtig - es gibt in der Verwaltung von Variablen und Items immer einen Overhead. Rechnerisch bekommst Du beispielsweise 500 32-Zeichen-Strings in ein Notes Text-Item. Praktisch mault aber Notes im Frontend bereits oberhalb 480 Elementen. Ich gehe da dann auf Nummer Sicher: 15 k Zeichen / 30 kB. Das könnte man jetzt theoretisch auseinanderklamüsern, aber ich sehe das nur noch praktisch.
-
OK.
Aber betrifft das auch zu 100% item.Text ?
Ich habe auch in der KB nachgesehen aber keine "Issues" gefunden. Ich muss hier nur bei einer Anwendung sicherstellen, dass item.Text mind. 5.000 Zeichen wiedergibt, daher meine Frage, wie sicher das ist bzw. wieviel zurückgegeben wird.
(Immer noch verunsichert wegen der unklaren Aussage in der Help)
Ansonsten nehme ich eine andere Methodik, um das Item auszulesen. item.Text erschien mir aber auf den 1. Blick ganz praktikabel.