Autor Thema: NotesStream & ByteArray  (Gelesen 7181 mal)

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
NotesStream & ByteArray
« am: 20.01.04 - 10:39:37 »
Hi Folks,

ich möchte mit NotesStream eine BinärDatei erstellen,
als Beispiel habe ich das BodyFeld eines doc welches ich
in eine Datei schreiben möchte.
Ich schreibe zwar die Daten aus dem Body Feld,
aber es wird nur der ASCII Text genommen, alles
was nicht ASCII ist, wird gefiltert. Das will ich verhindern.

Wer weiss Rat ?

Ciao
Don Pasquale

Dim pathname As String
pathname =  PFAD & "\" & "mail.dat"
   
Set stream = session.CreateStream
   
If Not stream.Open(pathname, "binary") Then

Messagebox pathname,, "Open failed"
'   Exit Sub
End If
   
If stream.IsReadOnly Then
   Messagebox pathname,, "File is read-only"
'   Exit Sub
End If
   
If stream.Bytes <> 0 Then
'   Exit Sub
End If
   
Call stream.Truncate
Call stream.WriteText(doc.GetItemValue("Body")(0))
Call stream.Close

« Letzte Änderung: 22.01.04 - 10:13:29 von Don Pasquale »

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:NotesStream und BYTEARRAY
« Antwort #1 am: 20.01.04 - 11:00:25 »
Nächster Schritt :

Statt Write Text nehme man nur Write.

Call stream.Write(doc.GetItemValue("Body")(0))

Nun wird aber ein Byte Array benötigt.

Wie packt man ein BodyFeld in ein ByteArray ?

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:NotesStream & ByteArray
« Antwort #2 am: 20.01.04 - 12:03:10 »
was liefert denn dieser Ausdruck hier zurück: doc.GetItemValue("Body")(0)

andere Frage: was ist dein Ziel (außer eine Binärdatei zu erstellen)?

Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:NotesStream & ByteArray
« Antwort #3 am: 20.01.04 - 12:29:41 »
doc.GetItemValue("Body")(0)

liefert mir den Inhalt des Bodyfeldes des aktuellen Doc´s.

Was ich will ist, den Inhalt des Body-Feldes ohne verlust irgendwelcher Formatierungsinformation in eine Datei schreiben und später wieder zurückschreiben. Alle Varianten bisher ermöglichten nur das abspeichern des ASCII-Textes, aber das reicht mir nicht.

Deswegen der Weg üer ein ByteArray. Irgendwie muß das ja klappen.

Ciao
Don Pasquale

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:NotesStream & ByteArray
« Antwort #4 am: 20.01.04 - 12:51:40 »
doc.GetItemValue("Body")(0)

liefert mir den Inhalt des Bodyfeldes des aktuellen Doc´s.

Was ich will ist, den Inhalt des Body-Feldes ohne verlust irgendwelcher Formatierungsinformation in eine Datei schreiben und später wieder zurückschreiben. Alle Varianten bisher ermöglichten nur das abspeichern des ASCII-Textes, aber das reicht mir nicht.


ich denke nicht, dass du mit
doc.GetItemValue("Body")(0)

irgendwelche Formatierungen auslesen kannst. AFAIK kriegst du da den Text des Feldes (evtl. mit irgendwelchen ASCII-Codes für Zeilenumbrüche oder Tabs), du kriegst aber keine Information darüber, ob da z. B. rote Schrift verwendet wird, oder etwas fett geschrieben ist. Außerdem erhältst du so auch keine Informationen über Attachments oder andere eingebettete Objekte.

Was du tun kannst ist, dein Dokument nach XML zu exportieren, das werden denke ich alle Infos mitgenommen.
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:NotesStream & ByteArray
« Antwort #5 am: 20.01.04 - 13:01:34 »
@Thomas,

ich denke Du hast Recht, das GetItemVlaue liefert mir nur ASCII.
Die Sache mit den Attachments ist längst gelöst.

Ich benötigte nur noch den byteweisen zugriff auf das BodyFeld (einer Mail) der Weg über XML will ich erstmal vermeiden. Das ist ja ebenfalls Neuland für alle Beteiligten hier,


Ciao
Don Pasquale


Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:NotesStream & ByteArray
« Antwort #6 am: 20.01.04 - 13:34:53 »
na ja, theoretisch müsstest du dann eben Buchstabe für Buchstabe deines Strings in ein Byte umwandeln und das dann in dein Array schmeißen
z.B.
Buchstabe e = 0x65 = 01000001. Deinem Byte Array müsstest du also für ein e das entsprechende Byte hinzufügen
« Letzte Änderung: 20.01.04 - 13:35:35 von Thomas Völk »
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:NotesStream & ByteArray
« Antwort #7 am: 20.01.04 - 13:37:24 »
@Thomas,

ja, aber wie kann ich auf das Body Feld zeichen für zeichen zugreifen ?

Ciao
Don Pasquale

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:NotesStream & ByteArray
« Antwort #8 am: 20.01.04 - 13:46:34 »
na ungefähr so

dim sBody as string
sBody = doc.GetItemValue("Body")(0)

dim i as integer
dim sChar as string
for i = 1 to len(sBody)
    sChar = mid(sBody,i,1)
     ...
     ...
next
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:NotesStream & ByteArray
« Antwort #9 am: 20.01.04 - 13:59:28 »
@Thomas,

wie Du selbst schon geschrieben hast:
GetItemValue bekomme ich nicht die
Sonderzeichen oder Steuerzeichen die sich
ebenfalls im BodyFeld befinden.

Ciao
Don Pasquale

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:NotesStream & ByteArray
« Antwort #10 am: 20.01.04 - 14:17:05 »
da bin ich überfragt. wie so ein RTFeld aufgebaut ist weiß ich ungefähr. wie du das alles in eine Datei rausschreiben kannst -> keine Ahnung, außer der Methode mit dem DXL-Exporter. Ich würde davor auch nicht soviel Respekt haben. Das ist echt kein Hexenwerk, die Hilfe bietet einige Beispiele und hier sind ja ein paar Leute, die sich auch damit auskennen.
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:NotesStream & ByteArray
« Antwort #11 am: 20.01.04 - 15:40:17 »
An den binären Aufbau eines RT-Feldes kommst Du mit Bordmitteln nicht ran. Wie gut der DXL-Exporter das leistet, weiss ich nicht. Sonst gibt es auch hier wieder nur die Möglichkeit, mit Add-Ons wie rtlib ( http://www.rtlib.com ) oder Midas ( http://www.geniisoft.com ) zuzugreiifen.
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 Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:NotesStream & ByteArray
« Antwort #12 am: 20.01.04 - 15:53:12 »
@Semaphor
Gibt es denn die Möglichkeit aus Visual Basic heraus da ran zu kommen ?

Ciao
Don Pasquale

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:NotesStream & ByteArray
« Antwort #13 am: 20.01.04 - 15:55:03 »
Na ja, über die API, aber dann kanns Dus auch gleich aus LS heraus aufrufen. Das ist das, was Normunds in RTLib macht. Das braucht allerdings Geduld und Nerven und die Bereitschaft, mit RBODs zu leben.
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 Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:NotesStream & ByteArray
« Antwort #14 am: 20.01.04 - 16:03:47 »
RBODs ?


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:NotesStream & ByteArray
« Antwort #15 am: 20.01.04 - 16:08:00 »
Siehe unser Wörterbuch ;-)

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:NotesStream & ByteArray
« Antwort #16 am: 21.01.04 - 09:17:34 »
Na ja, über die API, aber dann kanns Dus auch gleich aus LS heraus aufrufen. Das ist das, was Normunds in RTLib macht. Das braucht allerdings Geduld und Nerven und die Bereitschaft, mit RBODs zu leben.

Welche API Befehle könnten das denn sein ?
Aus der RTLib wird man ja nicht schlau, weil geschützt.

Ciao
Don Pasquale

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:NotesStream & ByteArray
« Antwort #17 am: 21.01.04 - 09:46:41 »
Kann ich Dir nicht wirklich sagen. Vielleicht kann Bernhard mal sagen, ob davon was in Normunds Buch steht, glaube ich aber eher weniger. Bei Ben Langhinrichs gibts Tutorials, die sagen, wie die RT-Felder funktionieren. Eines ist sicher, so ein Ding lässt sich nicht so ohne weiteres mit einem einzigen Call auslesen, da steckt deutlich mehr dahinter. Schau mal auf Bens Website nach (wie gesagt, ich weiss nicht, wie tief er da in die Materie wirklich reingeht).

http://www.geniisoft.com
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 animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:NotesStream & ByteArray
« Antwort #18 am: 21.01.04 - 11:49:20 »
was mich mal interessieren würde ist, was du für einen Zweck damit verfolgst, dieses Teil in eine binäre Datei zu exportieren. Was willst du denn mit der Datei mal machen?
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:NotesStream & ByteArray
« Antwort #19 am: 21.01.04 - 12:18:54 »
Die Attachments und der Mailinhalt sollen auf einem Dokumentserver archiviert werden.

Da es kein "Speichern unter " für eMail unter Lotus gibt im Gegensatz zu Outlook sehe ich derzeit nur diesen Weg. Die Dinge müssen ja irgendwann mal auf wieder zurück.

Ciao
Don Pasquale

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz