<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум компьютерной помощи &mdash; Как с NotesMIMEEntity кодировать в base64 NotesStream?]]></title>
	<link rel="self" href="https://itpmr.ru/extern.php?action=feed&amp;tid=845&amp;type=atom" />
	<updated>2014-04-16T07:59:34Z</updated>
	<generator>PunBB</generator>
	<id>https://itpmr.ru/viewtopic.php?id=845</id>
		<entry>
			<title type="html"><![CDATA[Re: Как с NotesMIMEEntity кодировать в base64 NotesStream?]]></title>
			<link rel="alternate" href="https://itpmr.ru/viewtopic.php?pid=124150#p124150" />
			<content type="html"><![CDATA[<p>Вот итоговый агент , который в пеерменную&nbsp; вариант encode&nbsp; закидывает вложение в Base64 кодировке.</p><br /><p>Sub Click(Source As Button)<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; Dim session As New NotesSession<br />&nbsp; &nbsp; Dim uiworkspace As New NotesUIWorkspace&nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Dim histold As String&nbsp; &nbsp; <br />&nbsp; &nbsp; Dim uidoc As NotesUIDocument <br />&nbsp; &nbsp; Dim doc As NotesDocument<br />&nbsp; &nbsp; Set uidoc =uiworkspace.CurrentDocument<br />&nbsp; &nbsp; Set doc =uidoc.Document<br />&nbsp; &nbsp; datapatch$ = {C:\out\}<br />&nbsp; &nbsp; Dim rtitem As NotesRichTextItem<br />&nbsp; &nbsp; Set rtitem = doc.GetFirstItem( &quot;ПРИЛОЖЕНИЯ_&quot; )<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; <br />&nbsp; &nbsp; Dim inStream As NotesStream<br />&nbsp; &nbsp; Set inStream=session.Createstream() &#039; сохряненный файл на винте&nbsp; &nbsp; <br />&nbsp; &nbsp; <br />&nbsp; &nbsp; Forall obj In rtitem.EmbeddedObjects<br />&nbsp; &nbsp; &nbsp; &nbsp; If ( obj.Type = EMBED_ATTACHMENT ) Then<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Call obj.ExtractFile( datapatch$ &amp; obj.Source )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; oname$ = obj.Source <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Call inStream.Open(datapatch$ &amp; oname$, &quot;binary&quot;)&nbsp; &nbsp; &#039; в поток inStream файл&nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Dim dwStart As Long<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Dim docTemp As NotesDocument<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Dim body As NotesMimeEntity<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Set docTemp = session.CurrentDatabase.CreateDocument<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Set body&nbsp; &nbsp; = docTemp.CreateMIMEEntity<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; session.ConvertMIME = False<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Call body.SetContentFromBytes (inStream, &quot;&quot;, ENC_NONE)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Call body.EncodeContent (ENC_BASE64)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; encode = body.ContentAsText<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Dim aFind(3) As String<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; aFind(0) = Chr(13)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; aFind(1) = Chr(10)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; aFind(2) = Chr(9)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; aFind(3) = &quot; &quot;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; encode = Replace (encode, aFind, &quot;&quot;)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Print &quot;УРА!&quot;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Call inStream.Close<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Kill &nbsp; &nbsp; datapatch$ &amp; oname$&nbsp; &nbsp; &#039; стереть файл&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Print &quot;Выгрузили!&quot;<br />&nbsp; &nbsp; &nbsp; &nbsp; End If<br />&nbsp; &nbsp; End Forall<br />End Sub</p>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2014-04-16T07:59:34Z</updated>
			<id>https://itpmr.ru/viewtopic.php?pid=124150#p124150</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Как с NotesMIMEEntity кодировать в base64 NotesStream?]]></title>
			<link rel="alternate" href="https://itpmr.ru/viewtopic.php?pid=124149#p124149" />
			<content type="html"><![CDATA[<p>В итоге нашел libBase64 библиотеку на лотускрипте.<br />Use &quot;libBase64&quot;<br />Dim b64 As New CBase64()<br />plainText$ =&nbsp; b64.encode (inStream)</p><br /><p>А вот и сама функция!</p><p>Function encode (nsIn As NotesStream) As String<br />&nbsp; &nbsp; &nbsp; &nbsp; Dim dwStart As Long<br />&#039;&nbsp; &nbsp; &nbsp; &nbsp; dwStart = timerStart()<br />&nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; Dim session As New NotesSession<br />&nbsp; &nbsp; &nbsp; &nbsp; Dim docTemp As NotesDocument<br />&nbsp; &nbsp; &nbsp; &nbsp; Dim body As NotesMimeEntity<br />&nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; Set docTemp = session.CurrentDatabase.CreateDocument<br />&nbsp; &nbsp; &nbsp; &nbsp; Set body&nbsp; &nbsp; = docTemp.CreateMIMEEntity<br />&nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; session.ConvertMIME = False<br />&nbsp; &nbsp; &nbsp; &nbsp; Call body.SetContentFromBytes (nsIn, &quot;&quot;, ENC_NONE)<br />&nbsp; &nbsp; &nbsp; &nbsp; Call body.EncodeContent (ENC_BASE64)<br />&nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; encode = body.ContentAsText<br />&nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; If Not bMimeModeEncoding Then<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Call Me.removeWhitespace (encode)<br />&nbsp; &nbsp; &nbsp; &nbsp; End If<br />&#039;&nbsp; &nbsp; &nbsp; &nbsp; Print timerElapRateString (dwStart, &quot;encodeToString&quot;, .001*nsIn.Bytes, &quot;kBytes&quot;)<br />&nbsp; &nbsp; End Function</p><p>Sub removeWhitespace (s As String)<br />&nbsp; &nbsp; &nbsp; &nbsp; &#039; Remove CR, LF, tab and space<br />&nbsp; &nbsp; Dim aFind(3) As String<br />&nbsp; &nbsp; aFind(0) = Chr(13)<br />&nbsp; &nbsp; aFind(1) = Chr(10)<br />&nbsp; &nbsp; aFind(2) = Chr(9)<br />&nbsp; &nbsp; aFind(3) = &quot; &quot;<br />&nbsp; &nbsp; s = Replace (s, aFind, &quot;&quot;)<br />End Sub</p>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2014-04-16T07:29:39Z</updated>
			<id>https://itpmr.ru/viewtopic.php?pid=124149#p124149</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Как с NotesMIMEEntity кодировать в base64 NotesStream?]]></title>
			<link rel="alternate" href="https://itpmr.ru/viewtopic.php?pid=124145#p124145" />
			<content type="html"><![CDATA[]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2014-04-10T11:24:53Z</updated>
			<id>https://itpmr.ru/viewtopic.php?pid=124145#p124145</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Как с NotesMIMEEntity кодировать в base64 NotesStream?]]></title>
			<link rel="alternate" href="https://itpmr.ru/viewtopic.php?pid=124144#p124144" />
			<content type="html"><![CDATA[<p>Не получается загнать в string содержимое mime.<br />Не понятно, на какое поле указывает Set mime = doc.GetMIMEEntity<br />Вот пример кнопочки:</p><p>Sub Click(Source As Button)<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; Dim s As New NotesSession<br />&nbsp; &nbsp; Dim doc As NotesDocument<br />&nbsp; &nbsp; Dim mime As NotesMIMEEntity<br />&nbsp; &nbsp; Dim uiworkspace As New NotesUIWorkspace&nbsp; &nbsp; <br />&nbsp; &nbsp; Set doc =uiworkspace.CurrentDocument.Document<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; Dim stream As NotesStream<br />&nbsp; &nbsp; Set stream = s.CreateStream<br />&nbsp; &nbsp; Call stream.WriteText(&quot;Te2xt of mes2sage.&quot;)<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; s.ConvertMIME = False &#039; Do not convert MIME to rich text<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; Set mime = doc.GetMIMEEntity<br />&nbsp; &nbsp; If Not(mime Is Nothing) Then<br />&nbsp; &nbsp; &nbsp; &nbsp; Call mime.DecodeContent()<br />&nbsp; &nbsp; &nbsp; &nbsp; Call mime.SetContentFromText (stream, &quot;text/plain;charset=UTF-8&quot;, ENC_BASE64)<br />&nbsp; &nbsp; &nbsp; &nbsp; Call mime.EncodeContent(base64)<br />&nbsp; &nbsp; End If<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; &#039;Call doc.Save(True, True)<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; s.ConvertMIME = True &#039; Restore conversion<br />End Sub</p><p>Я так понял, что можно создавать MIME хранилища, Data Type: MIME Part.</p>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2014-04-09T08:51:54Z</updated>
			<id>https://itpmr.ru/viewtopic.php?pid=124144#p124144</id>
		</entry>
</feed>
