Problème sérialisation

Signaler
Messages postés
19
Date d'inscription
mercredi 28 janvier 2004
Statut
Membre
Dernière intervention
26 septembre 2008
-
Messages postés
19
Date d'inscription
mercredi 28 janvier 2004
Statut
Membre
Dernière intervention
26 septembre 2008
-
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

Messages postés
19
Date d'inscription
mercredi 28 janvier 2004
Statut
Membre
Dernière intervention
26 septembre 2008

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
Messages postés
202
Date d'inscription
jeudi 24 juin 2004
Statut
Membre
Dernière intervention
22 janvier 2009
1
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)
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
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 !
Messages postés
19
Date d'inscription
mercredi 28 janvier 2004
Statut
Membre
Dernière intervention
26 septembre 2008

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
Messages postés
19
Date d'inscription
mercredi 28 janvier 2004
Statut
Membre
Dernière intervention
26 septembre 2008

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
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
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 !
Messages postés
19
Date d'inscription
mercredi 28 janvier 2004
Statut
Membre
Dernière intervention
26 septembre 2008

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
Messages postés
202
Date d'inscription
jeudi 24 juin 2004
Statut
Membre
Dernière intervention
22 janvier 2009
1
Effectivement, ce ne serait pas l'idéal.
C'est quoi ton code qui permettrait de l'envoi du contenu du Rtf ?
Messages postés
19
Date d'inscription
mercredi 28 janvier 2004
Statut
Membre
Dernière intervention
26 septembre 2008

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
Messages postés
19
Date d'inscription
mercredi 28 janvier 2004
Statut
Membre
Dernière intervention
26 septembre 2008

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
Messages postés
19
Date d'inscription
mercredi 28 janvier 2004
Statut
Membre
Dernière intervention
26 septembre 2008

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