vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Einen 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?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Einen String in einen Stream speichern 
Autor: ModeratorDaveS (Moderator)
Datum: 29.01.15 18:10

System.IO.MemoryStream

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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?

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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)
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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()
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Einen String in einen Stream speichern 
Autor: Manfred X
Datum: 30.01.15 15:19

Prüfe, ob die verwaltete Definition der IStream-Schnittstelle in Deinem Fall funktioniert:
https://msdn.microsoft.com/de-de/library/system.runtime.interopservices.comtypes.istream(v=vs.110).aspx
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Einen String in einen Stream speichern 
Autor: ModeratorDaveS (Moderator)
Datum: 30.01.15 18:24

Ich habe leider deinen Beitrag nur sehr oberflächlich gelesen. Wie Manfred schreibt versuchst du anscheinend COM-Objekt mit .Net zu vermischen, was nicht geht.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Einen String in einen Stream speichern 
Autor: Manfred X
Datum: 30.01.15 19:42

Hallo!

Vielleicht über eine geeignete Implementierung des IStream-Interface in einer Net-Klasse ????

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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