Autor Thema: Überflüssige Leerzeilen per Script entfernen  (Gelesen 2651 mal)

Offline Lancelot

  • Senior Mitglied
  • ****
  • Beiträge: 357
  • Geschlecht: Männlich
  • Tu was Du willst, aber schade keinem!
Überflüssige Leerzeilen per Script entfernen
« am: 07.04.11 - 11:10:23 »
Hallo Experten,

ich sitze hier ratlos vor einem Problem.

Ein alter Mitarbeiten, der nicht mehr im Unternehmen weilt, hat eine DB entwickelt in der ein Feld besteht,
dass fortlaufen automatisch befüllt wird.
Der neue Wert wird dabei immer an der obersten Stelle im Feld eingefügt.
Dazu machte er nach dem Einfügen der des neuen Wertes per Formel "@NewLine" 2 neue Zeilen rein.

Ich soll dort ebenfalls Daten aber per Script an die oberste Stelle einfügen, doch in bekommen die 2 neuen Zeilen nicht weg.
Das bedeutet ich habe jetzt in dem sogenannten Protokoll immer  zwei leere Zeilen und dann kommt erst mein neuer Eintrag.

Das Feld ist Text gewesen und ich habe es auf Richtext umstellen müssen, wegen der 32 kb Meldung des Feldes beim Speichern.
Habe es mit Stringverarbeitung Left und Rightback versucht, mit Trim aber nichts klappt

Hoffe von Euch hat einer eine Idee wie ich die beiden Leerzeilen wieder raus bekommen.

Danke Euch schon mal im voraus.
Gruß Gerry (Lancelot)

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Überflüssige Leerzeilen per Script entfernen
« Antwort #1 am: 07.04.11 - 11:19:27 »
Ich würde zuerst versuchen, die Methode zu eliminieren, die Dir die zwei Zeilenumbrüche hinzufügt.

Zur Bereinigung könntest Du den Text des Richtextitems anhand der Zeilenumbrüche (Chr (13) & Chr (10))in ein Array umwandeln (split), durch ein Fulltrim die leeren Einträge entfernen und dann die verbliebenen Arrayelemente mit Zeilenumbruch in das Feld zurückschreiben. Auch ein @ReplaceSubstring (Alternative in Script?) könnte helfen (ersetze zwei Zeilenumbrüche durch einen).

Offline Lancelot

  • Senior Mitglied
  • ****
  • Beiträge: 357
  • Geschlecht: Männlich
  • Tu was Du willst, aber schade keinem!
Re: Überflüssige Leerzeilen per Script entfernen
« Antwort #2 am: 07.04.11 - 11:48:31 »
Danke Peter für die schnelle Antwort.

Ich stehe jetzt etwas auf dem Schlauch?
Das Feld ist leider keine Liste, also würde mein Array nur eine Zeile haben.
Denk mal das ist nicht in Deinem Sinne!?

Die Zeielnumbrüche sind CHR(10), kann ich die per If abfragen?
Wenn ja wie bringe ich die 2 Dinger dann raus?
Gruß Gerry (Lancelot)

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Überflüssige Leerzeilen per Script entfernen
« Antwort #3 am: 07.04.11 - 12:00:58 »
Natürlich ist Dein Feld keine Liste, zur Verarbeitung sollst Du den Inhalt auch nur temporär in eine umwandeln. Also sinngemäß so (ohne korrekte Syntax, nur Logik):

Dim array As Variant
array = FullTrim (Split (Text von Deinem Feld, Chr (10)))
Call doc.RemoveItem ("DeinFeldname")
Dim rtitem As New NotesRichtextItem (doc, "DeinFeldname")
Forall a in array
   Call rtitem.AppendText (a)
   Call rtitem.AddNewLine (1)
End Forall

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Überflüssige Leerzeilen per Script entfernen
« Antwort #4 am: 07.04.11 - 12:13:54 »
Mit dem Weg über ein Array stösst man aber bald an die nächste Grenze (64 kB).
Es müsste also das RTI selbst manipuliert werden.

Bernhard

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Überflüssige Leerzeilen per Script entfernen
« Antwort #5 am: 07.04.11 - 12:33:53 »
Das war auch nicht ansatzweise als Dauerlösung, sondern nur zur Reparatur gedacht, falls ich mich da missverständlich ausgedrückt habe.

Wenn zukünftig immer ein neuer Eintrag oben eingefügt werden soll, wird es mit dem Richtext sowieso umständlicher (z.B. tempdoc erstellen, dort RTFeld mit neuem Eintrag und Zeilenumbruch, altes RTFeld anhängen, altes RTFeld ersetzen durch das aus dem tempdoc).

Ich würde solche Historien sowieso anders organisieren und nicht in ein Mega-Historien-Feld des Dokumentes schreiben, aber das ist hier nicht das Thema ...

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz