Problème sérialisation

jabaka Messages postés 19 Date d'inscription mercredi 28 janvier 2004 Statut Membre Dernière intervention 26 septembre 2008 - 25 sept. 2008 à 12:55
jabaka Messages postés 19 Date d'inscription mercredi 28 janvier 2004 Statut Membre Dernière intervention 26 septembre 2008 - 26 sept. 2008 à 13:28
Bonjour je vous expose mon problème que voici:
J'ai trouver quelques sources qui parlais de sérialisation et même quelque un qui traitait du RichTextBox
Mais voila que lorsque je serialise ca me donne l'erreur comme quoi le RichTextBOx n'est pas marqué comme sérialisable!!!!
Quelqu'un peut m'éclairer sur ce sujet je vous laisse le code que j'ai essayé Merci d'avance
<hr />

Dim serializer
As Runtime.Serialization.Formatters.Binary.BinaryFormatter = _

New Runtime.Serialization.Formatters.Binary.BinaryFormatter

Dim stream
As FileStream

'If struct Is Nothing Then Return False
If
Not File.Exists(
"aa.txt")
Then
stream =
New FileStream(
"aa.txt", FileMode.Create)

Else
stream =
New FileStream(
"aa.txt", FileMode.Append)

End
If
serializer.Serialize(stream, RichTextBox1)
stream.Close()
<hr />

11 réponses

jabaka Messages postés 19 Date d'inscription mercredi 28 janvier 2004 Statut Membre Dernière intervention 26 septembre 2008
25 sept. 2008 à 14:16
A oui juste comme ca si ca peut aider.Je veux réussir à envoyer par socket le richtextBox du moins le contenu ( textes et images )
Si il existe un autre moyen je suis preneur
0
cs_AshenShugar Messages postés 202 Date d'inscription jeudi 24 juin 2004 Statut Membre Dernière intervention 22 janvier 2009 1
25 sept. 2008 à 14:24
Bonjour,
Je dirais qu'ici, tu cherches à serializer un objet qui ne peut pas l'être : le RichTextbox. Pour utiliser serialize, il doit implémenter l'interface ISerializable il me semble.
Si j'ai bien compris, ce n'est pas la contrôle que tu cherches à envoyer, mais son contenu. Dans ce cas, essaie plutot quelque chose du genre : serializer.Serialize(stream, RichTextBox1.rtf)
0
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
25 sept. 2008 à 15:28
euh c'est pour faire quoi??
si c'est juste pour enregistrer le contenu du richtextbox , faut pas réinventer la roue :
RichTextBox1.SaveFile(

"filename as string", RichTextBoxStreamType.RichText)

Bonjour chez vous !
0
jabaka Messages postés 19 Date d'inscription mercredi 28 janvier 2004 Statut Membre Dernière intervention 26 septembre 2008
25 sept. 2008 à 15:33
Merci pour ton aide j'ai déja je crois fait un petit bout avec ca mais je me bute à un problème.Lorsque je fait l'étape inverse j'obtiens l'erreur suivante :
Le flux d'entrée n'est pas un format binaire valide. Le contenu initial (en octets) est : 30-30-30-30-61-64-61-64-61-64-31-39-31-39-31-39-30
Je ne sais pas d'ou cela peut venir.....Et aussi une chose
lorsque je serialise je m'y prend de cette facon :
<hr />Dim serializer As Runtime.Serialization.Formatters.Binary.BinaryFormatter New Runtime.Serialization.Formatters.Binary.BinaryFormatter()Dim ms As MemoryStream New MemoryStream()
serializer.Serialize(ms, obj.Rtf)
ms.Position = 0
Dim buffer(ms.Length) As Byte
ms.Read(buffer, 0, buffer.Length)
client.LaSocket.BeginSend(buffer, 0, buffer.Length, SocketFlags.None, AddressOf CallBackSender, client)
ms.Close()
<hr />
Et pour deserialiser
Dim

serializer
As Runtime.Serialization.Formatters.Binary.BinaryFormatter =
New Runtime.Serialization.Formatters.Binary.BinaryFormatter()

Dim ms
As MemoryStream =
New MemoryStream(e.Bbyte)

Dim rtff
As
New RichTextBox
rtff.Rtf =
CType(serializer.Deserialize(ms), RichTextBox).Rtf

Ce pourrait-il que le probleme se situe du coté du surlignement rouge
Encore merci d'avance pour votre aide et patience :P
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jabaka Messages postés 19 Date d'inscription mercredi 28 janvier 2004 Statut Membre Dernière intervention 26 septembre 2008
25 sept. 2008 à 15:35
Je tiens a faire cela pour envoyer par reseau le contenu d'un RichTextBox(images formatage etc... inclus)
Si quelqun connais une autre facon de tourner la roue je suis preneur :P
0
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
25 sept. 2008 à 16:11
tu mets ça dans un fichier et tu envoie le fichier donc comme dit plus haut

RichTextBox1.SaveFile(

"filename as string", RichTextBoxStreamType.RichText)

Bonjour chez vous !
0
jabaka Messages postés 19 Date d'inscription mercredi 28 janvier 2004 Statut Membre Dernière intervention 26 septembre 2008
25 sept. 2008 à 16:13
Oui j'y ai penser je dois avouer mais sérieusement c le texte d'un chat que je veut envoyer alors je ne veut pas creer et envoyer des fichiers a tous les 20 secondes
Merci de l'idée pareil
0
cs_AshenShugar Messages postés 202 Date d'inscription jeudi 24 juin 2004 Statut Membre Dernière intervention 22 janvier 2009 1
25 sept. 2008 à 16:34
Effectivement, ce ne serait pas l'idéal.
C'est quoi ton code qui permettrait de l'envoi du contenu du Rtf ?
0
jabaka Messages postés 19 Date d'inscription mercredi 28 janvier 2004 Statut Membre Dernière intervention 26 septembre 2008
25 sept. 2008 à 16:37
Dim serializer As Runtime.Serialization.Formatters.Binary.BinaryFormatter = New Runtime.Serialization.Formatters.Binary.BinaryFormatter()
Dim ms As MemoryStream = New MemoryStream()
serializer.Serialize(ms, obj.Rtf)
ms.Position = 0
Dim buffer(ms.Length) As Byte
ms.Read(buffer, 0, buffer.Length)
client.LaSocket.BeginSend(buffer, 0, buffer.Length, SocketFlags.None, AddressOf CallBackSender, client)
ms.Close()

ici obj est une reference d' un RichTextBox
0
jabaka Messages postés 19 Date d'inscription mercredi 28 janvier 2004 Statut Membre Dernière intervention 26 septembre 2008
25 sept. 2008 à 18:01
Ici je laisse un code vite fait trouver mais ca me donne un erreur  lors du cast du deserialise
<hr />Imports System.IO

Imports System.Runtime.Serialization

Imports System.Runtime.Serialization.Formatters.Binary

Public
Class Form1

Private
Sub Button1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button1.Click

Dim Rfftt
As Rfft =
New Rfft()
Rfftt.Rtf = RichTextBox1.Rtf

Dim myFileStream
As FileStream =
New FileStream(
"test.txt", FileMode.Append, FileAccess.Write)

Dim myBFormatter
As BinaryFormatter =
New BinaryFormatter()
myBFormatter.Serialize(myFileStream, Rfftt.Rtf)
myFileStream.Flush()
myFileStream.Close()
myFileStream =
New FileStream(
"test.txt", FileMode.Open, FileAccess.Read)

Dim myFormatter
As
New BinaryFormatter()
Rfftt.Rtf =
CType(myFormatter.Deserialize(myFileStream), Rfft).Rtf
myFileStream.Flush()
myFileStream.Close()

End
Sub
End
Class
<Serializable()>
Public
Class Rfft

Inherits RichTextBox

Public Rfb
As
New RichTextBox

Sub
New()

End
Sub
End
Class
0
jabaka Messages postés 19 Date d'inscription mercredi 28 janvier 2004 Statut Membre Dernière intervention 26 septembre 2008
26 sept. 2008 à 13:28
Bon je crois j'en suis venu a bout mais voila un autre probleme survient:
Impossible de trouver l'assembly 'RadioCdkcWidget, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.

Quelq'un a un idée .....Ca vient de l'assembly mais je ne sais pas comment regler ce probleme merci d'avance
0
Rejoignez-nous