Autor Thema: [LotusScript]: split -> String too large Fehler  (Gelesen 4366 mal)

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
[LotusScript]: split -> String too large Fehler
« am: 24.10.07 - 16:41:48 »
Hi,

wir haben hier ein Rätsel.
Code
Sub Querysave(Source As Notesuidocument, Continue As Variant)
	Const valT = "aaa~~~~111"
	res = Split (valT, "~~~")
	For i = 0 To Ubound(res)
		Print "res(" + Cstr(i) + ")=" + res(i)
	Next
	
	Continue = False
	
End Sub
Als Split Trenner sind 3 ~. Im String selber gibts aber 4 ~ nacheinander. Notes reagiert mit einer Fehlermeldung: String too large.
Ist darüber etwas bekannt?

Danke
Axel
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: [LotusScript]: split -> String too large Fehler
« Antwort #1 am: 24.10.07 - 17:46:50 »
Das Rätsel habe ich jetzt auch, Axel. Erstes Rätsel: res und i sind nicht deklariert  ;D

Aber Spass beiseite: Bis zu
Const valT = "aaa~~~111"
res = Split (valT, "~~")
(oder im String vier, im Split zwei Mathilden) läuft alles wie erwartet (und erzeugt bis zu vier Stings), aber dann knallt es. Ich kann hier auch noch keinen mathematischen Zusammenhang erkennen, warum da etwas überlaufen sollte.

Bernhard

Offline MiFi

  • Frischling
  • *
  • Beiträge: 2
  • Geschlecht: Männlich
Re: [LotusScript]: split -> String too large Fehler
« Antwort #2 am: 24.10.07 - 18:05:50 »
Hallo Axel,

das Problem liegt in den vier "~~~". Lotus kriegt da die Füsse durcheinander, weil diese vier "~~~~" gleich mehrfach in sich geplittet werden würden. (Notes ist halt doof).

Eine Frage:
warum hast du einen Delimiter mit "~~~~" splittest aber dann mit "~~~"

Gruß
Michael

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: [LotusScript]: split -> String too large Fehler
« Antwort #3 am: 24.10.07 - 18:11:27 »
... das Problem liegt in den vier "~~~". Lotus kriegt da die Füsse durcheinander, weil diese vier "~~~~" gleich mehrfach in sich geplittet werden würden. (Notes ist halt doof).

Diese nassforsche Aussage musst Du jetzt erläutern, Michael (willkommen bei AtNotes!). 3/2 geht, 4/2 auch, aber nicht 4/3? Wo wird da welcher String zu gross??

Bernhard

Offline MiFi

  • Frischling
  • *
  • Beiträge: 2
  • Geschlecht: Männlich
Re: [LotusScript]: split -> String too large Fehler
« Antwort #4 am: 24.10.07 - 18:39:26 »
Hallo Bernhard,

wiso kann ich Dir auch nicht sagen, ich hatte aber das Problem  schon öfters und konnte es nur dadurch vermeiden, indem ich solches splitten umgangen bin. Ich denke entweder ist die Message total daneben, oder Notes splittet sich zu tode, weil er die Zeichenfolge innerhalb des Delimiters mehrfach findet. (Ist aber wieder nicht logisch zu Suche mit 2) Es ist für mich keine Regel zu erkennen.
In eurem Beispiel:
Bei 4 und Suche mit 2 bekommt man ein Array mit 3 OK
Bei 6 und Suche mit 2 bekommt man aber ein Array mit 5 ??
Ich habe aufgegeben das zu verstehen und benutze eindeutige Trenner für meine Strings die ich dann zerlegen will.

Erläuterst Du mir bitte "nassforsche"  ???

Gruß
Michael

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: [LotusScript]: split -> String too large Fehler
« Antwort #5 am: 24.10.07 - 18:41:47 »
Danke Bernhard.
Mein jüngerer Kollege, im Wii-Tennis am Netz seit gestern leider viel zu gute Kollege Witali, von dem die Frage letztlich kam, reagierte auch ein bischen genervt auf die Antwort von MiFi. Ich dagegen bin inzwischen sowieso Scheiss-Liberal.

Kann man einem Enterprise-System wie Lotus Notes Attribute wie "doof" zusprechen  ??? ;D
Die werden in Projekten von Menschen implementiert. Und zwar verschieden.

Ich hab keine Interesse an Flame-Wars über Computersprachen, nur zur Info.  Java macht es so:
Code
public class Test {
	public static void main (String []args) {
		String valT = "aaa~~~~111";
		String[] res = valT.split("~~~");
		
		for (int i = 0; i<res.length; i++) {
			System.out.println("res[" + i + "]=" + res[i]);
		}
			
	}
}
ergibt:
Code
res[0]=aaa
res[1]=~111

Mit 6 Trennzeichen im Quellstring: 
Code
public class Test {
	public static void main (String []args) {
		String valT = "aaa~~~~~~111";
		String[] res = valT.split("~~~");
		
		for (int i = 0; i<res.length; i++) {
			System.out.println("res[" + i + "]=" + res[i]);
		}
			
	}
}
ergibt:
Code
res[0]=aaa
res[1]=
res[2]=111

 
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline bikerboy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.155
  • Geschlecht: Männlich
Re: [LotusScript]: split -> String too large Fehler
« Antwort #6 am: 25.10.07 - 09:30:14 »
Hmmm eine frage hätte ich da,

warum benutzt ihr so komische Trenner ?

Ich meine es scheint ja immer wieder Probeleme zu geben, wie kommst du zu dem String? Wenn du ihn zusammenbaust kann es auch mal sein, dass du keinen wert zwischen den Delimiters hast?

Nehmen wir an dass du mti 2 Tilden trennst und dann auf einmal keinen Wert dazwischen hast und zack hast du 4 Tilden die deinem Trenner entsprechen und das würde doch auch einen Fehler provozieren.

Oder testen ihr nur die Unzugänglichkeiten von Notes aus ?
Robert Kreutzer

Anwendungsentwicklung

"Jeder Idiot kann was kompliziertes bauen, es Bedarf eines Genie für etwas einfaches"

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: [LotusScript]: split -> String too large Fehler
« Antwort #7 am: 25.10.07 - 09:39:31 »
Wenn es in Notes so wie in Java implementiert wäre, könnte ich damit besser leben:

aa~~~~cc

würde bei Split auf ~~ ergeben:
a[0]  = "aa"
a[1] = ""
a[2] = "cc"

Gruß Axel
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz