| |
VB.NET - Ein- und UmsteigerEinen String in einen Stream speichern | | | Autor: Jenpet | Datum: 29.01.15 16:56 |
| Hallo,
ich habe eine Frage zum Stream.
Ist es möglich einen String in einen Stream zu schreiben ohne das ich dazu eine Datei erstellen muss oder einen Pfad angeben muss?
Da ich eine Schnittstelle zu einem Programm verwenden muss und diese nur die Funktionen LoadFromFile und LoadFromStream zur verfügung hat, wollte ichs ohne Datei versuchen.
'Dim stream As Stream = Nothing
'Dim writer As StreamWriter = New StreamWriter(stream)
'Dim myString = task.getDescription
'Dim enc As Encoding = Nothing
'Dim byteArray As Byte() = enc.GetBytes(myString)
'stream.Write(byteArray, 0, byteArray.Length)
Dim writer As New MemoryStream(Encoding.UTF8.GetBytes( _
task.getDescription))
Dim RichText
RichText = Bez1.GetEditObject(3)
RichText.LoadFromStream(writer, 1, False, False)
RichText.Save() Zumindest kann ich in den MemoryStream meine Beschreibung speichern, jedoch nimmt die LoadFromStream Funktion den in meinem Code nicht an und gibt nur die Fehlermeldung aus:
Interface nicht unterstützt
Ich hab schon Beispiele im Internet gesucht, jedoch war da leider nichts hilfreiches dabei.
Ist es überhaupt möglich einen String in einen Stream zu speichern? | |
Re: Einen String in einen Stream speichern | | | Autor: Manfred X | Datum: 29.01.15 19:11 |
| Hallo!
Wenn das Interface, das die Funktion "LoadFromStream" enthält, in Net tatsächlich nicht unterstützt wird,
wird Dein Vorhaben - zumindest in dieser Form - wahrscheinlich nicht klappen.
Was genau ist dieses "Richtext" und wie hast Du auf die Library verwiesen (Projektverweis [Net, Com]
oder direktes Laden der Bibliothek per Loadassembly???)
Wie ist die Methode deklariert? Typen der Parameter?
| |
Re: Einen String in einen Stream speichern | | | Autor: Jenpet | Datum: 30.01.15 08:57 |
| Hallo,
Richtext ist ein RTF Feld in einem anderen Programm, in das ich meine Daten kriegen muss.
Das ist eine Com Schnittstelle die ich verwende und mit der ich mich nicht wirklich gut auskenne.
Stimmt ich hätte vielleicht die Funktion hier auch noch posten können, sorry ist mir gestern nicht eingefallen, da ich mich zu sehr auf den Stream konzentriert hab.
Doku:
Zitat: | | Methoden
Name | Beschreibung
Clear | Rtf Inhalt löschen
LoadFromFile | Rtf Datei einladen
LoadFromStream | Rtf Stream einladen.
Save | Rtf Inhalt speichern
SaveToFile | Rtf Datei speichern
SaveToStream | Rtf Stream speichern
Eigenschaften
Name | Beschreibung
Application | Zugriff auf das Basis Objekt von dem alle Interfaces
abstammen.
Parent | Gibt das Parent Interface zurück.
TextDocument |
TextDocument ermöglicht den Zugriff auf das RTF Control
3.1.51.6 IAutoRichText::LoadFromStream Methode
Rtf Stream einladen.
IDL
[id(0x00000005)]
HRESULT _stdcall LoadFromStream([in] IUnknown* Stream, [in] enum RichTextInputFormat InputFormat, [in]
VARIANT_BOOL Selection, [in] VARIANT_BOOL PlainRTF);
Beschreibung
Lädt einen Rtf Text aus einem Stream ein.
Parameter
Parameter | Beschreibung
[in] IUnknown* Stream | Ein Interface auf ein Stream Objekt das IStream unterstützt. Es wird ab der aktuellen Position gelesen.
[in] enum RichTextInputFormat InputFormat | RichTextInputFormat
[in] VARIANT_BOOL Selection | True es wird der aktuell selektierte Text mit dem geladenen
ersetzt. VGL: TextDocument
[in] VARIANT_BOOL PlainRTF TRUE | die Datei wird als RTF interpretiert. Ansonsten wird
der Inhalt als Text gelesen
| |
Mit LoadFromFile funktioniert es, aber ich will nicht eine Textdatei erstellen, wenn ich die Daten eh die geschrieben werden sollen sowieso in meinem Programm habe. Darum "kämpfe" ich gerade mit Stream.
@DaveS mit der probier ich es gerade, aber ich bin mir nicht sicher ob ich die Klasse falsch verwende oder die Methode kein Memorystream akzeptiert? (Ich benutze das erstemal die Memorystream Klasse) | |
Re: Einen String in einen Stream speichern | | | Autor: Jenpet | Datum: 30.01.15 11:16 |
| Mit der versuche ich es gerade, aber es scheint nicht zu klappen.
Benutze ich die MemoryStream Klasse hier falsch oder sieht das richtig aus?
Dim uniEncoding As New UnicodeEncoding()
Dim memStream As New MemoryStream(100000)
Dim firstString As Byte() = _
uniEncoding.GetBytes(task.getDescription)
memStream.Write(firstString, 0, firstString.Length)
Dim RichText
RichText = Bez1.GetEditObject(3)
RichText.LoadFromStream(memStream, 1, False, False)
memStream.Close() | |
Re: Einen String in einen Stream speichern | | | Autor: Jenpet | Datum: 12.02.15 08:44 |
| Danke für die Antworten!
Das mit dem IStream kann ich mal testen.
Wenns wirklich nicht anders gehen sollte wie DaveS sagt, komm ich wohl leider nicht um eine Datei herum. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Neu! sevPopUp 2.0
Dynamische Kontextmenüs!
Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|