Autor Thema: Zeilenweise Text aus RT Feld auslesen  (Gelesen 5395 mal)

Offline AC

  • Senior Mitglied
  • ****
  • Beiträge: 367
  • Geschlecht: Männlich
Zeilenweise Text aus RT Feld auslesen
« am: 28.09.04 - 16:39:46 »
Frage an die Profis
Ich hab in Dokumenten Richtextfelder in denen nur Text (mit Zeilenumbruch) enthalten ist.

Ich will nun den Text zeilenweise aus dem RTFeld auslesen.
( Nur am UI durch Benutzeraktion, kein Serverprozess)

Via rtitem mittels getformattedtext hole ich mir nun den Textinhalt des bodyfelds in eine Variable.

Wie verfahre ich danach am besten weiter ?

Ich denke mir, es ist am besten ich erstelle ein Textdatei, lade da den ganzen Inhalt des
RT felds rein , schliesse die Textdatei und kann dann ja wieder zeilenweise mir den Inhalt aus dieser
Textdatei dann wieder auslesen. Dann habe ich ja meine einzelnen Zeilen.
(in der Textdatei stehts mit Zeilenumbruch drin, habe ich schon ausprobiert)


Erscheint mir jetzt die einfachste Methode.

Andere Möglichkeit wäre über EOL Zeichensuche in dieser Variable zu verfahren, aber irgendwie
sagt mir das nicht so zu. (Ginge wahrscheinlich mit left und der Angabe des Zeichens , aber ich müsste
ja da zwei verschiedene EOL Zeichenwerte kombiniert abprüfen - Chr$ (10) und Chr$ (13) ).


Textdatei - Methode ok oder gibts was besseres?
(etwaige 64kb Grenzen sollten keine Rolle spielen, da der inhalt des bodyfelds nicht so groß sein dürfte)

Muß das ganze noch auf Performance checken, weil es auch mal mehrere Dokumente sein können, die ich auslese.

Notesclients habe ich hier nur auf Windowsebene.
Für den Dateinamen würde ich etwas eindeutiges wählen.
Ich würde immer in die gleiche Datei neu schreiben, dadurch könnte ich die stehen lassen und bräuchte sie nicht zu löschen.
Die Textdatei wäre dann im Lotus-Dataverzeichnis meiner Kollegen, ich denke nicht, dass die da schadet.


Oder würde das jemand anders machen?

Danke für die Tips.Holcomb
Microsoft Certified Technology Specialist Microsoft Dynamics NAV 5.0 C/Side Introduction
Microsoft Certified Technology Specialist Microsoft Dynamics NAV 5.0 C/Side Solution Development

"...Glücklich ist, wer vergisst, was doch nicht zu ändern ist..."

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Zeilenweise Text aus RT Feld auslesen
« Antwort #1 am: 28.09.04 - 16:49:13 »
Von der Performance her ist das Schreiben / Lesen von Textfiles sicher die schlechteste Variante. Evtl. bekommst Du bei dem einen oder anderen sogar noch Rechteprobleme, oder das Verzeichnis gibt es nicht oder ...
Ich würde mir eine Function schreiben, die (notfalls sogar byteweise) auf 0A / 0D sucht, beachtet, dass eine Kombination 0A0D oder 0D0A EIN CR ist usw.
Bei den heutigen Prozessoren bekommst Du da erst ab etlichen Dokumenten überhaupt etwas mit, viel langsamer ist dagegen zum Beispiel das Laden der Docs (wenn es mehrere sind).

HTH,
Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Zeilenweise Text aus RT Feld auslesen
« Antwort #2 am: 28.09.04 - 16:50:14 »
Du hast ja unformatierten Text. Warum holst Du Dir dann den formatierten Text? Nimm doch RTitem.text oder .abstract oder über notesdocument.getitemvalue, das liefert Dir reines ASCII zurück und da kannst Du dann weiterarbeiten
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline AC

  • Senior Mitglied
  • ****
  • Beiträge: 367
  • Geschlecht: Männlich
Re: Zeilenweise Text aus RT Feld auslesen
« Antwort #3 am: 28.09.04 - 16:57:40 »
Du hast ja unformatierten Text. Warum holst Du Dir dann den formatierten Text? Nimm doch RTitem.text oder .abstract oder über notesdocument.getitemvalue, das liefert Dir reines ASCII zurück und da kannst Du dann weiterarbeiten

Hallo Semea, danke für den Hinweis, werde ich machen, kam ich so jetzt nicht drauf.
<scheuklappen off>

Gruß, Holcomb.
Microsoft Certified Technology Specialist Microsoft Dynamics NAV 5.0 C/Side Introduction
Microsoft Certified Technology Specialist Microsoft Dynamics NAV 5.0 C/Side Solution Development

"...Glücklich ist, wer vergisst, was doch nicht zu ändern ist..."

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Zeilenweise Text aus RT Feld auslesen
« Antwort #4 am: 28.09.04 - 17:04:44 »
Sorry, Holcomp - habe Deine Frage falsch verstanden. Ich dachte, Du wolltest das dann in einzelne Strings oder ein Array haben.

Bernhard

Offline AC

  • Senior Mitglied
  • ****
  • Beiträge: 367
  • Geschlecht: Männlich
Re: Zeilenweise Text aus RT Feld auslesen
« Antwort #5 am: 28.09.04 - 17:22:24 »
V
Ich würde mir eine Function schreiben, die (notfalls sogar byteweise) auf 0A / 0D sucht, beachtet, dass eine Kombination 0A0D oder 0D0A EIN CR ist usw...

HTH,
Bernhard


Hallo Bernhard,
Shit, jetzt ging grade meine Antwort an Dich verloren. Also nochmal.
Wenn sie doch noch auftaucht, sorry fürs doppelt posten.

Das zeichenweise durchiterieren (oder wie man es nennen mag) um chr10 und dann chr 13 bzw auch in umgekehrter Reihenfolge 13 und 10) zu suchen, schreckt mich etwas ab.

Erstens die Programmlogik (geb ich ja zu).
zweitens zweifle  ich doch etwas, obs schneller ist wenn ich jedes einzelne Zeichen im Text untersuche, als die Textdatei Methode an die ich dachte.

Da Du "etwas" (leicht untertrieben) mehr Erfahrung hast als ich, glaubs ich es dir.

Letztendlich kommt es aber auch auf das "Textmaterial" im RT Feld auch an.

Von daher wär es am besten beide Verfahren zu implementieren und dann auch eine "repräsentative" documentcollection laufen zu lassen und mit Notestimer sich die Zeit stoppen zu lassen.


Danke für den Hiwneis mit den zwei Werten für EOL zeichen.
Semeaphoros hat mir das schonmal knapp vor einem Jahr auch hier erklärt und es ist bei mir  hängen geblieben, bzw ich habs vorhin auch wieder rausgesucht.
 

Hmm, also ich werde mal versuchen einen guten Programmcode für das zeichenweise duchsuchen zu finden.

Beim Textdateiverfahren;
Was die Pfadangabe bei der Datei angeht, ich würde keinen Pfad angeben, so dürfte es auch keine Probleme geben.
Rechteprobleme sollte es keine geben, weil ich die Benutezr hier unter meiner "Fuchtel" habe und soviele nicht mit der Anwendung arbeiten werden.

Gruß, Holcomb

 

Microsoft Certified Technology Specialist Microsoft Dynamics NAV 5.0 C/Side Introduction
Microsoft Certified Technology Specialist Microsoft Dynamics NAV 5.0 C/Side Solution Development

"...Glücklich ist, wer vergisst, was doch nicht zu ändern ist..."

Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
Re: Zeilenweise Text aus RT Feld auslesen
« Antwort #6 am: 28.09.04 - 17:52:21 »
Servus,

ich hab heute zufällig ein @Explode in script gebastelt. Vielleicht hilft sie dir weiter....

Hier erst einmal die Funktion:
Function Explode(strWert As String, tz As String) As Variant
   Dim arrWerte() As String
   Dim i As Integer
   
   Do While Not strWert = ""
      If Strright(strWert,tz) <> ""  Then
         Redim Preserve arrWerte(i)   
         arrWerte(i)  = Strleft(strWert,tz)
         strWert = Strright(strWert,tz)
      Else
         strWert = ""
      End If
      i = i + 1
   Loop
   Explode = arrWerte
End Function

Wenn du sie dann mit
Set rt = doc.GetFirstItem("RTFeld")
var = Explode(rt.Text, Chr(13) +Chr(10))
aufrufst, hast du die einzelnen Zeilen in var stehen.

Ich hoffe das ist, was du suchst.
HTH
-daniL
†090620141300

Offline AC

  • Senior Mitglied
  • ****
  • Beiträge: 367
  • Geschlecht: Männlich
Re: Zeilenweise Text aus RT Feld auslesen
« Antwort #7 am: 29.09.04 - 09:35:32 »
Hey rar, cool danke.

Werde es dann nachher genauer ansehen und ausprobieren
(sobald die morgendliche Hölle hier mit den Usern, abgestüruten Notebook im Aussendienst, "falsche" EDI Daten etc vorbei ist).

Merci, Hoclomb, 
Microsoft Certified Technology Specialist Microsoft Dynamics NAV 5.0 C/Side Introduction
Microsoft Certified Technology Specialist Microsoft Dynamics NAV 5.0 C/Side Solution Development

"...Glücklich ist, wer vergisst, was doch nicht zu ändern ist..."

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz