Título: Quien me ayuda a mejorar este codigo?(Socket) Publicado por: n3ts4mura1 en 5 Agosto 2006, 06:21 am Ayudenme con esto porfavor tengo lo siguiente:
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim datos As String Winsock1.GetData datos 'num = Len(datos) Select Case Left(datos, 4) Case "Rojo" RichTextBox1.SelColor = &HFF& '=rojo RichTextBox1.SelText = (RichTextBox1.SelText + "Servidor Dice" + datos ) Case "Azul" RichTextBox1.SelColor = vbBlue RichTextBox1.SelText = (RichTextBox1.SelText + "Servidor Dice" + datos + vbCrLf) Case "Verd" RichTextBox1.SelColor = vbGreen RichTextBox1.SelText = (RichTextBox1.SelText + "Servidor Dice" + datos ) Case "Amar" RichTextBox1.SelColor = vbYellow RichTextBox1.SelText = (RichTextBox1.SelText + "Servidor Dice" + datos ) Case "none" RichTextBox1.SelText = (RichTextBox1.SelText + "Servidor Dice" + datos ) Case Else 'RichTextBox1.SelColor = &HFF& '=rojo RichTextBox1.SelText = (RichTextBox1.SelText + "Servidor Dice" + datos ) End Select End Sub de esta manera recibo los datos del otro lado y puedo cambiarles de color . y de esta manera los envio. Private Sub Command1_Click() On Error Resume Next Dim enviar As String Dim color As String enviar = Text1.Text color = Combo1.Text Winsock1.SendData color + enviar End Sub Si se pueden dar cuenta envio el color junto con el texto pero. en el comobo tengo esta lista. Rojo Azul verd Amar none si me paso al poner mas de 4 carcateres me falla por que al recibir lo tengo solo con 4 y al recibir el mensaje me sal esto. servidor diceRojo hola como estas y la idea es que no salga la palabra rojo nose si alguien me puede ayudar a mejorar este codigo porfavor. Título: Re: Quien me ayuda a mejorar este codigo?(Socket) Publicado por: elmaro en 5 Agosto 2006, 12:50 pm cundo envies la cadena enviala asi
Código: Winsock1.SendData color & "|" & enviar y cuadno la recibes solo tenes que separr las dos cadenas,. con un simple Split() en el DataArrival() pon esto Código: cadenas = Split(datos, "|") 'desglosa la cadena yo diria que envies el color en hexadecimal, asi no tengras que usar condicion if o case y pones el color directamente al desglosar la cadena asi: Código: RichTextBox1.SelColor = color bueno espero te sirva. avisa si tienes alguna duda pd: sry no avia visto que postiaste suerte El MaRo! Título: Re: Quien me ayuda a mejorar este codigo?(Socket) Publicado por: n3ts4mura1 en 5 Agosto 2006, 21:08 pm Osea quieres que lo reciba de esta manera.
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim datos As String Dim color As String Dim Dice As String 'Dim Pos As Integer Winsock1.GetData datos cadenas = Split(datos, "|") 'desglosa la cadena color = cadenas(0) 'en esta variable almacena el color Dice = cadenas(1) 'en esta variable almacena el texto RichTextBox1.SelColor = color RichTextBox1.SelText = (RichTextBox1.SelText + "Servidor Dice :" + Dice + vbCrLf) End Sub Y que lo envie de esta. Private Sub Command1_Click() On Error Resume Next Dim enviar As String Dim color As String enviar = Text1.Text RichTextBox1.SelText = RichTextBox1.SelText + "Servidor Dice= " + Text1.Text + vbCrLf 'color = Combo1.Text Winsock1.SendData color & "|" & enviar End Sub no me funciona de esa manera =( a y otra cosa nose si esto funcionara. el color lo saco de aca. mira. 'esta en un boton que dice colores Dim color As String cdl.ShowColor 'RichTextBox1.SelColor = cdl.color 'RichTextBox1.Text = cdl.color color = cdl.color el cdl es el CommonDialog para los colores. nose si eso es posible pero bueno eso hice y no funciona =( Título: Re: Quien me ayuda a mejorar este codigo?(Socket) Publicado por: n3ts4mura1 en 7 Agosto 2006, 11:01 am plz ayudar =(
Título: Re: Quien me ayuda a mejorar este codigo?(Socket) Publicado por: ジ en 7 Agosto 2006, 18:19 pm :huh: es para un chat.......... :huh: man, ya te esplicaron como diferenciar los datos que llegan y envias, fijate bien ;)
Título: Re: Quien me ayuda a mejorar este codigo?(Socket) Publicado por: -POLACO- en 8 Agosto 2006, 07:14 am Para No agarrar la palabra rojo haces como te dice ElMAro y si no haces asi :
Siempre y cuando la cadena que te envian con el color tenga "4Digitos" he Declaras otra variable ejemplo : Código: Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Leete TRATAMIENTO DE CADENAS funciones Mid,Left,Instr,etc,etc, Un Saludo .-. |