Autor Thema: LotusScript: List  (Gelesen 6773 mal)

Jürgen Schomann

  • Gast
LotusScript: List
« am: 05.09.15 - 13:35:09 »
Wie lang kann der Bezeichner ListTag für ein List-Element maximal sein?

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: LotusScript: List
« Antwort #1 am: 06.09.15 - 12:26:36 »
Mir ist keine Begrenzung bekannt. Ausprobieren...
Strings dürfen (theoretisch) bis 2GB lang sein.
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: LotusScript: List
« Antwort #2 am: 07.09.15 - 07:59:38 »
Strings dürfen (theoretisch) bis 2GB lang sein.
Wo hast du das her? In Lotus Script? Da ist soweit ich weis immer noch bei 64 KB Schluß.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: LotusScript: List
« Antwort #3 am: 07.09.15 - 09:36:59 »
Thomas, die genaue Stelle find ich leider nicht mehr (war glaub ich in irgendeiner Slide)

habe aber mal in der Hilfe nachgesehen und dabei folgende Diskrepanzen gefunden:

Zitat
About data types (LotusScript Language)
(String length ranges from 0 to 32K characters) Initial value: "" (empty string)
und
Zitat
text$  =  notesStream .ReadText( [ oneLine& ] , [ eol& ] )
....
Defaults to the entire stream to a maximum of 2GB.

Ich kann auch aus eigener Erfahrung sagen, dass es in LS keine 32K/64K Begrenzung für Strings gibt, da wir ständig damit arbeiten. (RichtextItem.getUnformattedText liefert definitiv mehr als 64K)

Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline thkn777

  • Aktives Mitglied
  • ***
  • Beiträge: 176
Re: LotusScript: List
« Antwort #4 am: 07.09.15 - 13:49:00 »
Aus der Hilfe: (einfach mal nach "Limits" suchen)

Zitat
A List tag is essentially a key of type STRING.  You use this this "key" to uniquely retrieve its associated data once it gets stored.

Zitat
Length of a string literal:
16,267 characters (32,000 bytes).

Achtung - persönliche Paranoia: Ich würde alles, was über 240 Zeichen hinausgeht, aber mal in Ruhe testen. Ebenso Spezial- und Sonderzeichen.

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: LotusScript: List
« Antwort #5 am: 07.09.15 - 14:18:44 »
Ein "String literal" ist aber keine String-Variable, sondern eine Zeichenfolge die mit " " (oder {}, | | ) eingeschlossen im Programmcode steht. Und diese haben eine begrenzte Länge. Man bekommt auch nur eine begrenzte Gesamtanzahl an Strings in eine Script-Bibliothek. Beim Speichern erscheint dann "not enough string space"

Wie oben schon geschrieben, sind Strings relativ "unbeschränkt". Folgender Code
Code
Sub Initialize
	Dim s As String
	Dim c As long
	For c = 1 To 100000
		s = s + " "
	Next
	Print Len(s)
End Sub
gibt nach ein paar Sekunden 100000 aus (womit die 32/64k Grenze widerlegt wäre)

Achtung - persönliche Paranoia: Ich würde alles, was über 240 Zeichen hinausgeht, aber mal in Ruhe testen. Ebenso Spezial- und Sonderzeichen.
Hier kann ich nur zustimmen, insbesondere Umlaute werden oft anderes behandelt als vermutet (vor allem mit türkischer Locale  ;D )

Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline thkn777

  • Aktives Mitglied
  • ***
  • Beiträge: 176
Re: LotusScript: List
« Antwort #6 am: 07.09.15 - 15:00:36 »
Nach Durchlauf 27 kommt "Out Of String Space" ;)

Um die ursprüngliche Frage zu beantworten: SEHR lang.

Code
Option Public
Option Declare

Dim l As Long
Dim i As Long
Dim s As String
Dim myList List As String

Sub Initialize
	i = 0
	l = 0
	s = "A"
	While i<30 
		
		Stop
		
		l = Len(s)
		myList(s) = CStr(l)
		
		ForAll ele In myList
			Print CStr(i) & " --> " & CStr(Len(ListTag(ele))) & " / " & myList(ListTag(ele))
		End ForAll
		
		i = i + 1
		s = s + s
	Wend
End Sub
« Letzte Änderung: 07.09.15 - 15:16:26 von thkn777 »

Offline rambrand

  • Senior Mitglied
  • ****
  • Beiträge: 469
  • Geschlecht: Männlich
Re: LotusScript: List
« Antwort #7 am: 07.09.15 - 15:21:55 »
Mein Mathe-Abi war mieserabel, aber irgendwo zwischen 67.108.864 und 134.217.728 Zeichen?

Bye,
Markus
Domino/Notes ab 4.6 aktuell 10.1FP3
Traveler 10.0.1FP1
PHP-Entwickler
Domino/Notes-Entwickler (Hobby)
Consultant (Informationssicherheit & Datenschutz)

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: LotusScript: List
« Antwort #8 am: 07.09.15 - 15:48:52 »
Bei genug Ram schafft es mein Client bis Durchgang 28 (nlnotes braucht dann 1.8GB) und der Server (64bit) bis 30 mit "String too large" beim Versuch in der Zeile "s = s + s" einen String mit 2GB zu erzeugen.
Der namgr Prozess braucht dann aber auch 6,5GB

Zitat
[0E70:000A-2288] 07.09.2015 15:35:27   Agent Manager: Agent printing: 30 --> 536870912 / 536870912
[0E70:000A-2288] 07.09.2015 15:35:32   Agent Manager: Agent printing: 30 --> 1073741824 / 1073741824
[0E70:000A-2288] 07.09.2015 15:35:32   Agent Manager: Agent printing: String too large

Die Notes-Hilfe behauptet aber immer noch etwas anderes:
Zitat
Run-time Error Messages: String too large
A string is generated at run-time that exceeds the size limit of 32,000 characters.

(wobei sich IBM ja dann gerne auf sowas raus redet, wenn es bei Zeichen > 32000 zu Problemen kommt)

Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline thkn777

  • Aktives Mitglied
  • ***
  • Beiträge: 176
Re: LotusScript: List
« Antwort #9 am: 09.09.15 - 14:48:38 »
Nunja... effektiv wird der ListTag aller Wahrscheinlichkeit nach kleiner 32k sein. FALLS er in einem Notes-Dokument und einem Text-Item abgespeichert ist, wovon ich aktuell ausgehe...

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz