La pregunta que les tengo es como hacer para que los mensajes que me llegan los copie en el Text8.text
Aqui en la imagen les muestro con dos clientes Irc
(http://img215.imageshack.us/img215/7010/ayudaoz7.jpg)
No t e entendido muy bien d k kieres pero m ago una idea....
#causal :HOLA JEJEJJEEJ555
Esto es lo q recibes, asi k podrias acer un split al signo d los dos puntos y como lo q seria el hola jejej se meteria en el array en al posicon uno
Otra cosa q podrias acer es un poco mas chapucero y seria q si simpre se recibe lo mismo #causal : mensaje. Pues q leas x la derexa restado las primeras letras.. No se si m entiendes y tmpoco si era esto lo q pedias :-X
si siempre se recibe #caudal: Mensajey la idea que me das es buena pero me podrias dar un ejemplo con codigo ;D
cadena = "#caudal: Este es el mensaje"
separa = split(cadena,":")
text8 = separa(1)
El unico error q tendrias es q si el mensaje tendria algun :
asi k como dices q siempre s recibira lo d caudal..
cadena = "#caudal: Este es el mensaje"
text8 = right(cadena,len(cadena) - 8)
Ma espesifico:
lo que necesito es que un timer vaya leyendo lo que va apareciendo en el text1 (cada 3seg ejemplo) y luego copie solo los mensajes que aparecen despues de #casual: y les ponga en el text8
esto lo quiero hacer asi para que los mensajes queden mas visibles y entendibles
Con respecto a tu codigo le entendi pero como ago para que lea del text1.text
(http://img145.imageshack.us/img145/3985/ayuda1bm2.jpg)
Tendrias q hacerlo desde la llegada de datos del winsock
....
....'data serian los datos q llegan
If Left(data, 9) = "#causal :" Then Text2.Text = Right(Text1, Len(Text1) - 9)
...
...
asi es como lo tengo pero tampoco funciona
yo pensaria que seria mejor si existe algo que lee permanentemente el Text1.Text y si encuentra un #casual: copie luego lo que este despues de el y lo ponga en el Text8.Text
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Buffer As String
Dim Buff() As String
Winsock1.GetData Buffer
Buff = Split(Buffer, " ")
If Left(Buffer, 9) = "#causal :" Then Text8.Text = Right(Text1, Len(Text1) - 9)
Text1.SelStart = Len(Text1.Text)
Text1.Text = Text1.Text & "Servidor >" & Buffer
Text1.SelStart = Len(Text1.Text)
Winsock1.SendData "PONG :" & Buff(UBound(Buff())) & vbCrLf
End Sub
yo creo que deberias acer esto
en ves de poner asi:
If Left(Buffer, 9) = "#causal :" Then Text8.Text = Right(Text1, Len(Text1) - 9)
poner asi:
If Left(Buffer, 9) = "#causal :" Then Text8.Text = Right(Buffer, Len(Buffer) - 9)
creo que si copias l contenido del txt1 al txt8 no copiaria solo el nick o kisas no copiaria nada xq no cumple las condiciones,. ya que en el txt1 esta todo lo que recibe el bufer (txt1 = txt1 & buffer)
si me ekivoco aganmelo saber,.
El MaRo!
lo intente pero nada ;D ;D
Despreocupense que voy a poner a andar el motor de mi cabeza y lo saco ;) ;)
mmmm que raro,. bueno fijate bien
suerte
El MaRo!
Haber si esto te sirve ,debes colocarlo en el evento change del text1
Private Sub Text1_Change()
Dim VAriable As Integer
If InStrRev(Text1, "#causal :") <> 0 Then
VAriable = InStrRev(Text1, "#causal :") + 9
Text8 = Text8 & Mid(Text1, VAriable)
End If
End Sub
Lo que hace la funcion InstrRev es buscar coincidencias perooo de atras para adelante ,si la encuentra le suma "9" caracteres y te pasa al Text8 solo lo hablado.
Esto es como lo que querias vos de poner un Timer que lea el text1 cada X segundos ,pero leera el text1 cada vez que cambie o sea cuando recibe Data nueva.
NOTA: los dos textos tanto el text1 como el text8 deben esta Multiline=true ,asi te copia los "Enter"="vbCrLf".
Para mi opinion sera mejor sacar los strings desde el DataArrival del Winsock ,como dice el amigo.
Espero te sirva Saludos .-.
Hola me parece que la forma mas facil y no arroja error si no se encuentra la palabra "#causal :" seria de esta forma
Private Sub Text1_Change()
Text8 = Replace(Text1, "#causal :", "")
End Sub
Saludos
:-( :-( Ninguna de las dos formas funciono.
Pero aca les dejo un ejemplo mas espesifico de lo querido y bueno espero sus ayuda.
Yo tambien estoy trabajando en un coder pero hasta el momento no funca bien.
Aca les dejo:
>>>>http://rapidshare.de/files/26627545/EJEMPLO.rar.html>>>>
pero man... tonces no es que llega primero la cadena #casual
en el code que pusiste aparece esto PRIVMSG #casual :HOLASSS
tonces es ovbio que ningun ejemplo te va a funcionar,.
prueva otra vez cualkiera pero con esa cadena PRIVMSG #casual
El MaRo!
Hola ElMaro si te fijas bien mi codigo dice "InstrRev" por mas que la cadena sea "PRIVMSG #casual :" o "#casual :" la tiene que encontrar igual.
lo malo es que no lo encuentra ;D
Aca te envio el codigo pero tu problema esta aca :NO es Text1 lo que vos tenes ,si no que es Text1(1) ,o sea un array de text1.
este codigo lo probe y funciona bien
Private Sub Text1_Change(Index As Integer)
Dim Identificador As Integer
Dim Data As String
Identificador = InStrRev(Text1(1), "#casual :")
Data = Identificador + 9
Data = Mid(Text1(1), Data)
Text8 = Data
End Sub
Espero te sea util : fijate que pongo Text1(1) y NO Text1 ok ?
Cualquier cosa avisa si funca o NO funca ,pero sigo opinando que es mejor agarrar la data desde el Data_Arrival del Winsock.
Trata de usar OptionExplicit te sera util.
"Podemos ser lo mejor y tambien lo peor con la misma facilidad"
Bersuit Vergarabat
gracias amigo de maravilla lo hice asi
Private Sub Text1_Change()
Dim Identificador As Integer
Dim Data As String
Identificador = InStrRev(Text1, "#casual :")
Data = Identificador + 9
Data = Mid(Text1, Data)
Text8 = Data
End Sub
con esto ya podre hacer un buen cliente IRC el cual ademas le quiero dar otra utilidad ;D ;D
No me olvidare de ti amigo y cuando publique mi proxima creasion no me olvidare de Darte los mejores agradesimientos para TIII y a LeandroA otro gran amigo.
Salu2 LixKeÜ >>>>>>>>>>>>>>>>>>>>><